1692963953016186253024653606540849486805955442978083169151419614102287443272089771482857133696971109944680559340738469066554111817907647997489686357539171225103220545679943397419259009338089675413370200715512435123128679594249555072750744761327278628028134102028643393745139361245598086541391038650501633161883531037630202497529400182697401139542000699200250395828258012542125985666603077350063526588935210181270621141358325511601821105313968607313687544022109568414954246924653565969603564233357618701278017357467800851989147817819779267588468622691706981275509350294874849996802141679517991086675716233604909699474122198411039130936354417972643598535947356383834462732135318338972459420749388939067305157100401297049853337634138047196725317448395533206478792229391139688372306824678335094282179718466564823151878895205364476947853696485893079102463751220152326918426766439531719418214846914769760076109680432238191703939237160288420577180174557365667602316526010424385966032725453243565411449213826842601623643702784983426288213530103808271339095138297537998354780450054778525971048637996281874691274959699293683844656750935201317491667063294172760325674499813740784918473720722452955781883687771565449450516529664273867995602616969051063175870491280524914700230841666344049319800039768826349798424953041488602752303385567465081309841471891255247819989207684273925225199380195759671717077797565767773340270638394982174302280842438433714568169312608610587527596268291711682195643894171263656109455064908789502563787808840609469691580235657819334678353498321134982124912061927527332807930607488708710560696129873077866254975832243480917097080387892192125188163189893147640649845289228058957853919940220480153616039943656037510364102230386735822172599925133826859226843846349331529420790532084826889505652709948333214747936522777277309040991677400513659209830021522523404911489745437289000968429433823840067336264656675218028923008714953960462916418660358931892027625067723178157763278066508352886196920026597982478170810693099445915822004286257860658438988589610477959824907939229048437891671353366024940714769554198687861225354014918774645992445461031170396047229120694538895619267550176685856076337688344511505205935146486104538199223170361785974770254954412400571722280705136234844580958827367903696404187878883105828095002314567616959023909976804772827625702094934151398143561730489260754681997978571080925243482743721966156140793550607719273038857426163455458615585613575293568136427413534472008101523084969219846522800349678102828090525723382569420684287149074496536285941538844430308847941266070062524505531807491963237140923078443733035946399716696962248499316852509428022110085174209599390393465308136278421198967267222638315610448766702565873958904788365662664020970595729493066060619226347742730544214579106897622350172867278031206934009713929648675311784607668687677013025297038821817428505735732395720278037356563069669801305830255200870669959868637586520569420110310208482298350540251055845745659158237692900459489500997956696655408057500867656169956094808603135585242113905400918502725314175009542570160428868966313783376448996247626441894432325333850779183439161972755974693515487510306056285373648850917056704866559031828564438116998485413882246187795293845649248482326910987074721457772833512633313621569904343285014775942981919038745623685171354620904463725686066852663072034554751045242691282969707139773082824917559796973439001505458950169555522995408564779268264185982690918950678052957535993080583715306307812699889680576392673082158972898448681479327945852208170812286958444836790167071772351888546508422957049810040085622152193181367225368092273842682314856745820429478256568101806783224837466259377575434323215661953855734576877339103743529395005673775434754334637376368225042231433118128312514650447836962928341016917047588686795871437282703491413759566894269393940900514675571563391697258874037561199448697851066811387247490392219589401386008773394490490358466256545081129437067972673941598428665343005096238024560604210549508940675004185547370276810289114304065661826372636300811713613161037245999113955247859290282485776222091642827291557848124074866315089745602001808938211585183983733130374397917654257217807192449456770264627720645299866917710567118016598516057112855364449025307808785611482149200677035859167495198244572688820813240547523432544690817341898127131836349779573194366319879872378454588424303327032703956191580050218410379635185210009699934652902834773889057170353839950070277005431571552407940989888151697744512729684950141357663394038536864243472941555475899525845797539162889254683689661413727572835532695192544318160128685766965405070081228371832805582867829998777761331436347587337338473924511741031032842639268866318126508547764900477242154952399914404902860535047345162725828252925729395610768551780702215760743355826346982553810237401409749853254526978271851919341445969389648344366012241588792654239492401515089253241437676836191175767274999267249608511004637918053594463677513896964614170675401460506199978754456816364785666600120151959682928327601035568198566177434120164392603893641783848084656597566883982864037990754882251349728365874842736486162072846963696557693947145882522384767078237189002656369503544758422113470515128776986877053367445863017328011675147857073072832974662941808737789027237457766591925083588160566615084896656497624231947830131216493792926644393228556527839951020832945780781099606395767632452795647847092394081429925623320739932671056246782641548262830670672303275608757222520826708347017287595498271022992880081612174885349084142843783106633680967594539583571184074515584378605357580762191930995489632049708267411743410923371638553029488321548609691725746740637926603672766268491013791508502040098976516819308347748842559332098436865505281591330356037390722081406242879498232861375418504554664312869059869988919513212742963292684691834665083037040845963636814309629061837629209313238988319401310283601925486707397460706945336146677737746552100260446638702928640926607093197466131985501670439142749480276759172927160822499921784818257042304574605137084179847501309052924823812805890105359068024530209757333803218587465362849060003837007178076335556831716370862595980242703480840041836281714203693869005464284966526445441788545883530579453408273780410677456688741815807967061347489890425967717951789348301546978234466477105200410804337740568907200918466232494194765820226310624483246914478502752354039665151654093571298087053148109256266404626928605085793699516143151515879560044310568714966128348947203941158253442237092334164580076594999854085157882680880095949987393227476478558155733324512060698072666248995469715215999250274208852861520679798531400596246957707480503247781787071671470483514089958213110004567581809214502768504564150323817092080177933860590058255780746648878826545159386643088417617900634834911163006380169680590912903186784741616717282197853253361279104714556222970199780545711787539766933493100784733347610959546551962945214431576303911284834676230363991786866149358708959657072355255017777937166840019796075975423267350157114644442311536445451258980269537231697365884926704625581656186865258051599380563195541477506483564131283006660919385875224653901523429360262784681667354686672270384492520158524001090090639167984163046138095603894196893763603287807469791189712400023312524605397172976141975814074796820135788366951540087542946526363893598324985546985730188023301891837796755606432909285940540083906119317690729692184843811615808292876057753668923882181051710423480426899723326365045134931111818729531229115020769100942776853304205288873447076694237530368515096856654216778079354473109220440636140844888334523558721081809665400285951176243802564934719976979939333497174512630444652958927610571389294139627178098740380164270982222069739524223125644987989431051010138292651366065597220164366218326743163554277213996921612589000854043243263115937929814509520805826748286339322869197486510901283863183311972731676172002632098818515568206187708596402625520868040080963883323381685422314256847494940777082229388988914145501349786254036971655038264722942762419735581755035227594677793306567954011632924645511021902185066580832815280412213824478834701552774864903695512831127267093000986226831839730635426083019672284617336622704854559803688748728588683098842521697346177684633355156679549159799623693180037192159576854767890856446892330598799503794514457078650702681558951547879733443447606342396449428144867842260872504670384781930974706497653449204146273153754208150675587608510041296741868671711712875322846135690908531270700782102183427208914424253326207871708281300005207445506566418962899734356547526752034736693766544317300578422343394261327148067591521016218565029128316512991843627683281021804777252826100842953376460654779765793987997683257649432199222657098137629274687904344772530473743258608464114686103934782454641580642987549945602742629547176534391623446439106154575188336454723018255855301199337809143030279041725638102112941591857632807977087323307845889944524495147648909319482158318685751428751254284171697352613248300642422569767669896064379533334603647588311108796296793213334267095377545823559513452976831576312604234927964311152991796594444423156655917835463095193401504049906619909578578337980036013025017742316625043457530071903698254413884933784175985401122461544466179734183957995160194396152794355873586743031906298317848280555610175610328145443785611557921649159457743112711798050830597586764799174551923999770587528518153801946576495492850533136063845254164773206795432437736518727533658398075738533040882364579872169844623866410932675416206842829550355483649637820766133245476993217987943915312413545942904410123374048089910612904954925967284586070167874783800670044025858285336804385610563703085802645003111503351506119836729108192225344702659010921417763617589362756232477791647416072367880076493550331342008832016574684582305568169830322305778329725726263906283283036687669962001645052252505312704857022075090619920773449493502911203948429843070437368120160465800752574233336093968843725119421611836789025984162947135602816281326379616691065140439944408628518855063745401034404431874487112279313810395383183956609764696758740954394294881122255751689397816301692136264781965141332884904802139359709545094184339291940751542087446548937130762118745024984690083441721432777170713266487667480337258916104963931908709308102502317599662520724374763515114780283979913760823837553942832340451591245679376730458271356299707724507937457256699543227007038956925785944801085329448009007502887227484532358978968117235252084977735509224940661607646443281262111258128115839190011460372633840512070319100080246496854176062689911562689413893597427725279541300945353014505733476323491980607964178199345443779373566517626964970490339857726223986352468411105349003472051460656330641909011300761257439352950584084308128775851636057113049227614667957140219560382777157122631319945312009339756597254377138575649456306214260615657811094662809014218689600013398423668239340922317858083500599335538492885372999066816329380781633172095897729232571025994262731927230254274516210227939034213151393024554939637099103388460393751273252924110530562400869235873952718489320584274919810184008530490737363625643583748309626065561217305971557144199823869906123770158872603831600575369768375221236357059442415521966914544579798755017300458614993471024135584146489539839377254230926821964101261655388177915577132077815744838531298279983724793127620280509093736984957718961862265685060866176281491415438311005324607124924594387211588770692378481174382028670951998645262298453084706702655194836803625028700748718850365892504832425660670626587631642001049290540833406593464458669383759870155982647943658202217914769409820640032857799200895512426881168589766421405542876817854904643383721995993497973621176111014329637843587470858135944252119525292179058954592032491015933187368281008281777496133399236067540229620975517541413564110406713341304696176780630845053169147102232529366073002920016381449809130937309206212001141399840582801521044949624582810666574044850733815507647015700505384230003895171042185974350581255209803036543713967959683825221538147739763138320121155196288781024920845340616187647880176022197359582037536720228331136948567884284229521963620358537912723276191448344044409014394883920428382927809622377339791604731073672352255861748652377164562413988205410808408795628679419123329662330093305320628184391709627773070600870875446692529209549218429984910704610427714531052542277014932712869660093970192750203343129927329886198661147732200789392688510651556920936100862098835741631401443762821958259904016932456220350336442856931213183879741194428631904146796886576162500191943176425191439983581791791390489540306225110436556073736599638754038588726044609381956317606822513433254184484966235281196118840455632526016786794122034743696981805801033737327727282441724179963919710744191756693743375402077320139426555264299132899090746036402716464070008038416785800567382381814998755504528574834182175680908501646963718695448632766525949913935108214990845615374136238876610776512214451001497957352973574617930411775231013782229198991128746470281631951999510619208406893557215816487942629479164426118926897234714261582024052817955831281742290480861774385897182247069144449286807194723084015974314968092368953464252023552270434994690763801768929179286081245087561508109657801199345765088883449001280578250864700816779878301940748455861585196774349021381659677931007883874559228219317592364589630620999820293781028465092544042739896965560252873081121942274599268467588926871343292862288624757517797187679147777267927031377372274272414214654060619943671250392674714725936516799946872520613508310779252054246104529432273617267385553968922065495187316819813825625318172736085333089314222446945601901995265983482126307356968529196449133499732735906551509575250868338986309683092601824092765418128029545404489335423480822877738043489724520779381816405779219137107966518767113398882587490958141900913891928111908867519933432022663755436822829976058947285050615116491920329430898541368941790051851464683924683722729171032238965286036499190049756547548248006564899884561225401140191560997884177074768004776774950154549038476489261624387936553745872977463124702491027228042471804900429888031229314271271562451023340190509841584771804844355041856976899936202673822415381823986791033842841415016762759052387117012551956391753828106589156991885141483897480727569068101427260340486652357853954670224967879750713804466243718524626017838591311388179129241834833159523261402226264558755906831962421477903885157522711822801051421504572122889971192071229066182061807398748055728013669156913756011591841092672507644400340967792446810860421228599947041514456023295251424276270249598171249736788841803873062187308908753245688440175718572234258776222856334344653990991091039303799459649561426357939875852825238322902862379257610933147372189719030915192359462517841740587764311019015012397672258206308526195090761610089715665664831645358995839798284892006619265015842093701831780159000235937707476695356803253031657823585804864864494228104878364153860853014494786693692193169960780770618290901617198675652738854632472667175615433098711986270238080516855781146843832186138397304354701046133579791362637635306022379763715634311587789971056122923233023161114304735030362871010459933105930274226061243811027704360603878922508066838952692522820640736185368231970284033422441627112329162430530983080973739709895104868629328497425688365185504732209950901217281530783517117740716174184495818308110189166505624641059411163050198228859583920435864648092367360678017451998489098379022753481048869107469440779467751647368940246283209818989402564804217075881186026494714063266867376298185075710378353019437292984861856322711046707740382170340652841038248569844527425431691498834447029652297017372374322918565814270012099007457026456152296586292703608233859353019917218066532345967902294469204761566805240544059141184695310440340707008586561204356300882513470949839267291550706750826934830096278333340265206476815691108042712529389016094965222199102964932138971436941497471720044766309629488819900699601628898570780518669384592856761762962025809897820279249737562483565105621565652911056869927795784098646990582220913794063116822332373945301559072966057866363648499465400938362656429363349168425471904944558178844436062753397300179580539200981782781736253828202091341478031181001953419586979994232674735024211136999644444546251741676429664451581879838244066910367781219367477120190157071925205023085262257386730280931827695080038300699150607797738300197511264891392673252066392880947048282844563020259876084137590134387403343676529335435644361366378283862836533966506170888571749211367624715864094394144308622397949042255573279031145269785646725986896512618270639206885095086482832168081721483934836494638903294662227596324432140205889304934461330497679970414984697385889025136672481442287134056051800843563615513698521527399555757733644506592687192930650040917240216717310004013990687019647661930719592677018905692808969720293201494113695147172574988464847189792681384228983781845289089416908643163565298128570541361539972191557373301142295515156377030947928771300144195701659183112663946737075213748456790297060778702330899832051741705224115961605251789556031686132487395873795825278967338810368414159247383470705175105414228376445662191737876947025670973291868865218297084019405669432249995814376373256943388833838877875626245969142614767503268888244831667177944959280215318279900610987199443234633347054262085911390939859123129742327850716663497467312033770709887170039028554794299735215204813695752280437438267490375014156091154295598349102759031894188509773742499912988200136440852915863184887878007962876974897941374906076102154282432720151262611707099334661455292680153607119669772913679580457867497348222653746041362999983873574212670632825248847868606465689570365727251465316130067914143407414764939714494419488541759932935692442730262074337227512519009597783921452054176079727625152431609462386556246440844517587869908320439840950223999395345411129117314812263263245212556013762164075152907793444367148101391713235887740364312748650841927325847092813669679034856085525741382469542666446147518004356342608022693293471986196313108981619508519733491157293764136432844036992055316762030129386065572705536135423425689019070636692839184633709144803778911183521401712500544353467167963036902165105519701219220932733791496992557158871151153338690657619434894751034538886560040257485283017105935093589784416006682189123828869524450486925913371337621977529903438299262739998436962740510145568430086755832510788876488118503219937909813430458242241437798037636837554791766588328724052350574778908349130615963581763015647251951965294527706114002581413988546341997346503018962998817271452445651760642067490138561027094604196919351961240583734239283023512594524126498930891693319531340075056981980951337379988574929425207698005974591050164501890032218341905962078429489542214785695296253265035309584677694410724239947012203550127403988423123409272627091061439093389915095748357418829213544719194475014132647832973123586597636639241846723885612714026576717148664433880124812302513355969437369422808453234367697803139503336266860207291749415071382517429441357915006339448287333998478833888017721098510452262487775723790047500104694611061037061175001926130080681475436631786213451055596830595703725979839016446893256344922083427489518301384153123376698503373360439269490134684597679274175548600799112298267125029220574299757637800610264674098292773785908420080164242396031231784423284181049537336285756716147159793779233206925231079075195187484691780281798004348520131722534936048491154903603330551363777824088723885845786014559249635508365359346327808005805735087806645850032897653332922623635026198179556427129842816835389983253399596188321033471236517648805984108941438622923367908989914313904374882061162694000366031126291655928359456010561745124291712203036657823623756693672946516485717072785917101247107318245105064910418963699931337928110497875476879412359593739369153319108525596087263664883657141279018123100593998352061811647255490256498032137633627721300657656991066255955528553600760910987165935609026843710549102913268166894295012108016188480121323394496602468731703121371480517777654318094602939344637159957684454311116049160052658406761545658307164552634362655261649630276606389305904797790636477525930793779529042133303222471387818479652210369885495120540546417473550954708615761084387332518370223555612197009021868838394172341453321106858195348808215635030232174699952295386330810845821895640903874842782531627249234384004698719271908306867726989112524844749108714239297190779575672082451351015633515114428743123457005877576711668444877049276392455254722790438588907854458919748211812452561997556503408259549451201612682509463811859318243499371788165478008045833300506474637364731532586532316250335537458048569158946109394659758307552545272787653420670998914846254725250830093108031866773093317766042292196612263717569331205909449743261024801269168242433117880594838620744729048418492445374586014074697731139678956867330935354559483680198260557286346627567685618167195916994635808199672964171671535509429226441871616105592264910749307491801195971799924202413222741763563628584552832493686405531370491826709664075572487631410832450867661794233052240791068675736153318802917968130165066584322765985882249674384190561878317967957046607225601866481307432277446718519366910918497880858423747875858792959217874226652271692417408611568406558907989350428261105724178588583842192229727937221513734082747686271454842717626096865571608702928784292427846654734073077247236490007166260631770572096413923652262528980838156988901413252379804535602144050113709888279687213148354178314849171389047418494951683767431706746477257718696597153879750760576143930563741314142608814285709218993919919104709269574676091063093985546123675410662432038280471735059520197568409627361818433535494808269049353136935452596989456287127676346565669431795273014355597084116380550491690542730314596287990672320491263100907047674081964787027945441962286117766888222028459678373181229904907565056483939838053783201373662424927005365493471997400333589557728411247903568058907895432153766942862447609254020181542903126659833465804769731502999275723252537764774280924907684282855839101443517151567276266383524600931737946803459923111853910851042615006672742593555396678923170396778207257852327248529277691940114500120993884039644952313053076158046337346172277768116684488442779225227767773290824782849214935079073166136611083704603504225302740188578915689717509942603370247411996528069390317093206574072472559266868707941766980173354208460336892518354637815648869300044934625161741130634157949402547916618668882208259548811334244013194803623754844896773647367706939347724257291216044029529347428931397135816945364645718751671482420850954597352522552424389182237542601154977337317969174489231728607562837501506612507478302482184524539339448990265754071065943023440949289685438315193349466031315552711747865024727716624562453645282568521834539350249166883976212632283407458405244967216110863558200013090346907238514372738336967972030396648478548215895666805615899026945806701480403294150305056097811437781508097668795645837190476993619985294061295928328719528987720943615823554523912590334773103641620384490608742797517887547649970156244332136361679867728470193682088971889011129610276755963062522446674608398691184412389544339182744948179264893777240159998054909523001417588779154718047162001113740818700416576571315058664977573560204930535720714008713281807433487471746317834868974130375824788936662860393325928314106041493031155966477828857948186172175562016620051154102108733086079670146910953925103477495995911205853813501140434457603319600286162471676031228638435115692991235304805954007299689207932209606266743153513695462603753142577877778005764562813074496353576328886165838698225279302574264754751186655151403966140953302721445799340323702324871437711872412358007077374148586074178840145169103347243505178111995255692268398513816427080244450398058939653881119353910204704993407235367183767588588956058603364155084391891906916939368908670997508676024170766429961437003950064939152307245702249479336831293795509196114432234595452374453404161284739336104953258346843750042614229614533528568853324668809323701487163757458847677242322585564804250781999643977426244686881282470329405627245452515555254086157814075262784800120924003002875927102286936572090264157675566008767362740216828600124609588191696687210804113412305367021336990783505734245959416393841865760862688448712465929303000599146584595957481873760403134046789735862106861033016914521039267198068924896974743663928445507928785192269648194609013796149599740813276911605646445946016728172951651134241333286159518625621736343624398879453181199356927561452601935882036046360534567411224118297059496655081868767782871918731893859398952236951802731694350252252711859682144280535153141636272409728761939029101816326007242389080804556435509826101756296069902250700367553191645190355123269484363568278569306511445272828865778700927756629796668120195472018788855623830518282071338434358249860498918955531001101746079011688951686028506694478030394032580957937101238789819778398212348416117553678391076202460617767633592008488701138870364068965619290459982420376845350645188571368371764988149269373688093094720794072140381296704077445586658402151982307319003128330104866224572410501601084246484463990163423092305643842450840020091738850057370204234802865603082388446707457586031898889375873956949783162873261687896440307619062855117299979707165800869755942015854128534247721675775779355450170471619331472670493255531380053415367880621714860743358540337025460625657744600011752914051979600384971002928674551522576090872910874211373933475738448858218018286549140150261949870622007211560175068397698349520602067632552884798581904521191336902877890002153271750159804970770273337585016315205157982333547732565701484864595512115878244329995689768509705745520171110153963972459243888809842082152391197905940090186429512959409997373704534175120951534315179523492007742212481998264420406315512313710475593200829027790004672865366501612671862072891157555776342596402145466843758404859761512954435522907304819783439183120435678565480908228577516785289242081813823520782773418982898168296546875150577970036681081528648694871319658074500286389772200603834903020819242767843045013033676078584813601625519001377499482136814286461757461124268401792133493598223066532697590808486216176635341095226896105069095797074055855170403973134805096268895791405407059967633802560741285543325189717123690296804909149467925327137277672752447385942652227343648677557942240793500453478128758907355967215702284381194737965777090633635645560359261332401832014186375670710287349221279141438832166297888150300552103687338826302545936537312051466794418671684745196221332781533324840462971248941744925571490762224689721994471085853522670633505849704265317099264120795510411482669417570394335362425472144355479560881107364508126774583023601285669682991611324593845584363631162414159419921290638689687791629957484476423505708546106332565515321488860382399836117844135201111838100023196825055303665098863974407803913896703786919613876112630935228923702517482069122076943693875700177996002161102372660949733335534809926393906432567276826290714386038462731794549730278321438316064810458381248583561392042991699295883133280369511651562906827215331959443663057331938606379038210799206107848308953666395753482943705597090464414960075598814166832208339604989933585740886638968142742459716330224220612103861871596465922045608321885803182143226154689529332161245977848998740878068166272377069898701360717434714957009224510556473671811662247401757522421871272803363138919734928063861906760053169938470718953412653170718376767229219047507113188644632660052421013428942774545477928388140564747169798291111128938089927584579686046149618557244488214629530913248664795370737799121084817511799405545800265282273887193165490366813235539115181017611041168981158925917601562968655490891681560740806897010742955705672762360931888424408258264644457855588389549862257791230102983025375409910723848711500322400605394703322417910460281725055776290775645660128875748702507836931535634618358032856737362066072097550563998621294598850902785252691719870007651369821382924307162556317834238031297627711398245626590694741142068659717762856182149056958918827625611678187798007413962351883556756435301722522689525185234283157152651223055111593315117818959922408423897821213319921040695356134092546700782304391289478827598425254078477913010107032869823025300016510533437661915929747734290400053672932978952319578458665943320774727956225709184275389352862405799322030703046271275883865656237404223780675511484773750696683798631335232549894754840191078159345377186186235426567606186563632114629360157288567374804691232663887521484683144009476368815439128660181932953126090209260205753612221179649612056549610095262354805360485451745701910817337612061814133494475425558599313195402718308917164627617184272043348167789000557051520701313785417741149353763991453613639094830607871806158259094231530028899766733054688941857550308340886484134442029961200961878901333183613746365344282993506790971927717194721962729898239148138657915706916920068691727356762415057926993758670491059104901462413222702182367429688560424438013534010200721880572095586149292685165249042517957109894768092242003684979734392089374774453064243434288389473664620388453531194393595484336699946880023247532072409381202566900424485758087163582012871679306086626283376544950911254676296323083865025423340823962114195835993174762620085503533244284277217526843394731965032831205418031035604973055472578284416168904916738330273952777332576893498541172312883610947944045907877829719745860739357860679674907407242195340970424842103041733623452753287437748392343091384945310768938666200412634315752180800301474484504540328889302779454396389097418396924457121259227084309089063313352779376056143130875847418162268136204298171774337123124508769153882869291032326039676652905857959864323542059979144603405375507249556015540621615051229624665247655494592308044761139497275693787920589300268023898614538752170387457530295064562717397520440617280589611282953860355479256415101412811999287741664166557176840584571606298061680290355409196269743736375823748841265195881248946370895483689337049603559914722631921386536042007055414512461332546606705274584499957741537602391101996697604296315089421162355344113978472661944909681996153621998279270910667942222906663778838781495273104542154451154064550404456851830233727474311686142199148971825330567400430768929977368956225470151152046445893932152097932778110698662808543108653363927096913334698591388037887921242352690512640378611023411335026024824213556726203423959656749863820771560077806168783348178431989576129463063450238479276896266761863858813478675526038261970329913975579911087844589797284626637877338505647330409753919510807328457140257574560256941185176949386163485056828369689557828425594887751627091434580587917283098011187680326630409001689150712530056733734311538886654655537389161974572753940578441843170046948129675794714001905710667521747238620326789330592789945703746733557356296996176468040059101143739050199598534200435804701989370025633763357053168144276600474667569592613598633855947166137902665232014096233102075803958622588674677770256703844307854317522761035854124971928947005861987199209966251415540034239043419624200467171855723720095961360147832933855368910804074747562763249216843189281732681573520979403444411859587073683033343208162747244397629509561906871834687583384500477693357665750307189526032963340389793844867226539220987757830090220308877389575692333500360600785737486409420070101719086729814101766024876456507276720370407790174886933295440872859159686770028933477213691749482574127561719799649653740411688281661797771919254572352389801255093851390153137009775283240995867696852907542332975995119417780208249532089797032815857463336001685439415121811403259502934798666922923211589312772268695854037923961670782311142910751394568990853282273282237009034979949725849022006559765904941690082372644384841744549945425046449450266258107064167659597394553014897750472134873704289274685090405939147928755585323230990967191308952219578615584746555438751842561427469514319538187207759202581885867953629736505606786024026213474143877949774779941109849133615308405964367405566067455498275978873067056045561625053288247060463576055177975735414113204898630119440973412763805015144115126244930770522399368294854555835144803518298776381563295831550964037177688656484544859962349353395226576538989369319425893512782407814553751646866274983552278552029673950022381361841955107920115651721875931185785932120941846936298223053548586097579737012773789261811490369708455157095269467588336396517755841131905711153345850373172010411346564257895319732756804963102491908308971115310730886201815494155460943751950517175164121025703764665713996019102819028743219353501210058949990658559630104915987889175472563464268806187118550332352936506877152820581792365743455798118668849189346181983639248203575901889323936069167844860462626241637897738200122320107238578588640106980896809947723253085683715625880433217145532072049061920912016712927301877607585977875776110056075459820160630530776990047047251700397186410165815343839413540746077923682334482231746089868912244384023346770736505437759937530319368370604874215734798639483134316154752844539457230192041868645458947199986705123717393376694683745818921499822293505882696351926409672905298706515058831880478904416083889050308751607178552169599679160759077722085276087105001966286345436535013093239259065974639141086762406610098026742240168586636594551576373888510474160315203777600533169457376709723258155137707070379156716301002131990157220160483074035358199744399274778075018735199236275134189539520208267015712891009095178123600102312431386828338659281253908347838877284853178408596944935070410621310867576672244386263962841870183146630522580006398160672098987021129422786383375580890062390862633288838906596735904841213953143737919060709227729770925746027263957896144058539374173389183384077850073141137963530245722073123938413367710453919160499542779856845154692692393333019979461580339349717436250108869423120618726862695771737298588542155875649790106848193284251376521637562624746078411167932790924905594424722929620022533468677907741638016821187121377069344050054372656421980511062082406757222923908953683235218615582507479191886052685052390761321255374747230401394178111286673320262629105932580400404842694799118033428223274089368794555387642339439210715034246586731698794622343761148851518332748264382418210571149504362590568494633691225613364003109715823746357781976605680223205174723782150045439677263944148120465828853760099240139362392538854832512561545834663943688987110111210105328142130867909883670323896560089431406323437095558490346146141251715212268838798303446503699944363455364119571315367073233974994389126604511647375194102033245352032367362075682204863050205194689058297428873157817631940097947349076931594736945564516407466747481735983244862163391371321544715063563267348323018374251136380246798270188180263496718942098774612234755820710058953963723530797811827938009340958777026502280926757522737078121220439537991039335148309335153717941345344674534779618613889623632412304326861973719461410871318870977533081813143141582080779843966209658295307499700777900591862005506579511933922153309081941728245554294504390449062693245148941663189976644648942766701368388823507572087503943092701039173289934898970199947719050826698517302553902100137952747416716742608934641547598735620178978152808221148166023774705582858924154963470180536229765539815246616207108707067253980362980067160983540731161842932942930234161255297788133763414697727202938568959067739528438713827066819224996019923636128503616099632178516180004571483409594382596598845794842391476258347675551244915689817328051301351593421752205325114848143916120980002383441014103110647822713696480958549633493485319575817989824130311940246761014527647603954884766505500118118945732808815731852474606283573035972066722831377110015768682293211554435312909722517510603498618219565266275014094124406848717744176143274039721180025178432106014778257480477709385384847842554429352282855575662691685015339752653927115623795327771277035034265160992772423397372178777276712823093931984757702098927732205110083091044310446319099216452387568655903249139404602231029355047759919415888099909641747825631407694885178725897967487687749562943312030611757812695618722777391353016968077460091628939608471453800084448517481412131739932093749812724829860635516814276036936520531831348869035315294634331803816794335631553335842227729672379421620072162421000914357393454765334773601064047601648036500786636438456591102261147957832614851508659166304738453274237751409691962439537313359721528408417947736075997859356061120052376070913672834757139136028512705964143208975091409819178866673541163587757107150476630523923669038485468771534915271762087174024490548441921593666837924305533713891574352758065651271312693842694250799071314770942674984596562093789386248582070557959664461888631395989253062008261501703436725512878317554654548245396383650716490099876715308352352021948211812172656581588868067082668933214069625635023281743868941356831478358091712899098722729011102588569571020758486911106763918856358811758933743613012971599795762899741480888502570967383145154745153268140039705401544256371040157211895311567046760665931578790943910283391221225123025034307553304528709001608464713253499553175920773848499847886057479424949245231932784304901015924481312142458799679095524121883136739499492009486859444452922752763932152294737548718746880570193029418313280506273652674942119596927754841633555730652768723209635895046183148646732606117770795688815152031306877368799164567024588754185263319198130579094689553566325405579964187093773030414954842416114207612201563121677939888175591973542203826831115459384259669053341132807482445282356678402844362656599222328252437309643129711378993451007540968528844187297426541827627419020723706846018426583245514185251928773369215966426512643758413993653567427843872590169285269889547379960387958399046520484357830624180052214886239627749951516063937480938648150115545230471562325261850692255768597752427510768701952970937849620720621853824556001533239987503618484649142107441168988580116662432709415308332754453994530597970926927075435938641684169146556767842120298041078952988050416609446764761391289490807195942765733484200261125275950808514712425642265344775593687187828578624453306833886335921956994153132224791596235512174082008706273478367241485767086342110867429540750782952555749162177611463421625395274785890125120620871207476663348106641051854343335420860090849867769807653605094255259033990072097463882455205457869355196490920644065693027290668916768637751039721093078995674088908200988380336873371616599032896230210170089495833738822313574911995176408236744820447256131143934268699969773172051567490101422700808051133502313536906965359047880962389608282267843637477443993296148786665977865951426946127816214922167804117129243322035811393974887273852511790102545146216099965792507359364901621340530299644565891933941066317482216159517107584241959319299973312256716405289320422753443243149293696289258559511212899264539955397571041818444528796522180412583837267742299181206709091060886666914870751835818784816265038949768291911278577646792499788395250516833293959893363333394143479078445889269857036735600325166519519943495195075785224124927616630353109366073546570790665347584801569607501257337333890681558979574174819221329654003994721392511478738390765261897405957747021551794145872205259010495069633397235427636287406495293710452683839030071986234063588401677142415460737564210371944400093561309644642557470082266483929762898880875524522574487786969019198231779808924183964351864990712883951614749748037418432519430695766334797622637591774718580253319741870039786094557648260260453471821991067184171580895935780573035281885838342560625029601045743697713040218758898068630030229016716092591960213048575331396132313045794818284862335110570082354362752508300696025908005836586723857808817246495828947133797668892884764536654599749163692079495279008613445287545734243656744760862389577526123027981821693736531922268723099819679636044699499946665939354438540542289405627657873544838104590883963852821692122263566726334509869899058875250224503581848224391878246281609756160213586714017452928969939977046590308584859477730373338787155709128621576210885519379224665227951970421125947483338327430986855767057543929734365426784562254693050332496943315295220330427121638333743146551224994629971651941330083038037545027241645880132350784391492811723705966737020759789312442712768162552295304936114088272382392977562791447743815680540512894777500957707982295535682620571066747626757363387875440466212216312212458411372355780082841741985317006380274421274213023031941139763286490588056824929782145461706630809348648632151530173758311268419746910503447610631195128301846032519861625508786888956003131396507990904703517167750852734651310891209348682243534282979554287599159806119732421501472212302197036380737216695014074940710288793495059960475342552191211685448484015209300016243902029168540412435863841736649455108051492101153696044476823451968215847847819779641812231279548146445486811316757008402920453477391064929850067533408177838554711014789947833794298048073283808188846731298114700038755727916694173959917964838998970956370454395595402804618283099548540864422887566294176547371117617789013825560509763520732683877771841542858510297953313508110741422059392598906013271501258139192881783041618740454909513423062317038728912032549140043894931774583634322854796819964892604263279651845975628197676773189924779236246989162363007427664001665130137972174329620781281654649830494179917066230152741136922672763924789942081271646026862938392483680055224470601229378458053497430956087240515058784240153193978571322035321730093372985013293141978189182357286619133553353163496768751745810473942494301880241400758346825257557337014990668442051752198103255283112104216027804923984899335609118448039179093659168662959488045319819659260521660574483998576175969573495753500819341200679150076398528275938602180623563795760128219259494014854015948813051750423141196531695713195468263733593736883518487326306967420734677387521215479440931978456230863054877562497868540228373927479786221264694979339533379814982057674332095964155410591692552809323561563775865121074787914927447590765703189744660993869332750880009892246177311048988779754916944173668666521099067791461877636846614259106197304516977873674120336979870722526419764336520723989048535566118525375496207027603589227546538688985558380434583525756203144647899379495600818900500531893303169816598598948508278246532371474886736334622395686066882601941593794488478665193916614727538362892774624517102571233303138444264636120024826796067092356700242610127854637388800899960085556065267448675719257849356940631441896022999195663973615750140703395454486353352234362258837527959731985669295073652699486352513882987562536825850696455409979063505182056170185168964031165330334848141068360455171612991807983787429731393848116647818268123235630198843083119457422013687550766472538189923272256507002695521127908320938995831238763673627509084864435739603538947082766289276612907252958923077988147557331773300629018263811080973752983485178674593687365475774380827216257521633717773403412858275707908177696395285360068899664631576004800354346425782708529084453618405414976742712820588478080423123730602470708966411687119042149993429919920835678275010205779667330865755178077811021559012331144897330015572519338474521411776937185562436122897576583624277243219499795060379474856613199744967962834547026235733142238751712771743840192499048954842218265765952851785394054163904843651127154315905922004657880470240342915980453088979879504768015698355756721193570280721338747113028970633455845259761398458877957963842612355549565437369807848229804454164715350813356686886290781693874316233204183286512555799884236704716667231563183041566552055395839441696156212210074460153890463427798488176452921774747492613174495382977252940614787285909275656266580193372447113220968164652380703920194729054872728628795245880734473850317443216805690369828159243799108958314564102501353194420635523407341504670926320481244001442804765918094214710766202450205408131311543321863570858976322426745518516029635157498822129636259530534957450390107320254605979482168234040434139431285032494145488782548060367271468252041268077038258589833979746388004823492141254152355883652682499879938145199447704111937565129594617295763452007773400941897474605090922276499033596193780011003935061253858129937783074947822240268974236344632569352491311200437851297086299638225224885190274781611121713332501342538583000484042884097819039661789801054766387023213269949522742973214593799694717978455393609143843967022146084146987050080726119190759506842377565082460302491651261274144441737344406224791795385401535106962995977125126364256674405640432935210692570000799208468002887140598750634241701227657047180184222470823134025437986244475906387219229288528867924774307865468993615189709890151620103454094062090302244592928637953672823716396124240060667780083927754419997732422703671408638135237450383181264730741352966696312787641113838650974257626116131968360911641551228246343937980544193545438483265230128226677439823925592039825534735155965654040538053445176978302250010413380128864185422088874363036079069023072797555571524648748504748240750873060773217662857012430447503964956154171940152619663022125287023141069410659038905329251113696139174986381121708798532620696812682511996679863320594825679101038299825990812429649963343508811279160415297058351433698495225149517733304525660437886832864110792788799603419925559748603571436569983224338171413602395375437591886287924834832867240923155651598938109179161973913062221528783739420843389900875050813276274916846148502839905639696240880745728713861105555475202066464648114895784208220663033612642968981402525442983656599151466358396929894668991019092181921832746622358331158153531895826143170433005833994668665761395196146799201863604259802115561198373836440379733559521440160629278174487234115997939813505828937885201934256333642854781269362109168723093900210632277374995135292244740223020066409783152293501951498020728100818313331396804435686091928512074851140228317961566114011697151751679690846264118415539367256060218917340688234531598390512348076575057451997755622422658507158682013457216597015513440761128972103308467478731748402312140131095791034340199915691396557197224598578620387245479377315803070314474623929629826574670156363917234510394421986738554978959340164442725558872519143003753453270055996150480855011301565723618101220009012520384871882385825612877702277304005135946123099025516733716680848318166323553850659323042298152953812660832110360853694090347266969008516640127616733560430347327164031242712757132796668695861199925198849527112097025947340179518654210441676836581503990396231980527632345072905722050306987616929418481956765365157912366439939185326443309398709765616816129319839387142407385890554105526982598779463561874049116335668958021563366552471091334530293586031958494167922026407609783181029663197441506054147725854762263716714332788203593159801303712581783218508584005903915901011152242460077500562110140515934765821094760676228119267651473352739459103970002695177035745467252797597475600375724522836220569079274304236018671017538370792649178815353629062105004872638099303243739868689864828796902874006930350292583571925079669295717020710642191407828695147583910679351807335125737422700507841162723748953287891770678231017640800591805382027218917566116317211879177803896267317790761569853166049345256018985503838549212258179385605197238155183218181032040490920939459118434928326081763566479926848438544304611933936154170251077323854274195905079678751454788343149060460120382321954799045447642742451161644515158685886166793897260089959147163662985202836839052332221395818837784756992167286055701066846028856588768769101774943600259425934934482739022676603147391201294640461768447503959820796444313340242470611747916767782300125684368364022114842293214215670221043158182673153837293509307450436737545010417146748375712738774205386415279695128471828932640787498511207462740225280976197574533773906501190569747448287115026597867622968645573966114052258340468505084829202309041594181337430958160900962130295118546233866793892454933149665915029384121857137958948107530437479809550011811051001941913520309851073966675799494845195621454103865635821405930767903682001687358519211650855710587644066853892542032878048366453432676064525591881695353012154510497395557671780288942275883138804072246203173115044308027870265791461824739831816062424408026976241458509818717899950693359476619708800266988026755723924094460471524224046884608405784944659961187329109041029101254697205636223622201680925576470766015592895569435093272755023593350387710374683820677854996609429654284915667861743057807019055067573859995534645224814010212114240216487723115388213371089813786556089448916404130118006145477752586132433296264923984085601235121406146955348756672718944245806311531653929723484009914127920593600108416926018214656281269138937885590152604606000482072997394141280960095659343738220785925394737156957272464162481311136981103101107016632206508537998079177460180529530413031842604619786796587167343152054934567879934349425749899572395554027850009413990651428964525542086410224836691606881333619212590876332558477437771689731579613866659929991270348349699668700178697998486787266570277536106682418234033683528258434617741084944759611539585753646837028180471631317072987985288992806041000949394321113139854857696817543774308463061561942684789655482248614487220673003434989836395095697702811973128361108720849482091814424943228145879528468580789635802071443303863415366728391242691386334701777094712721695522179457637547393534150459246452239801572988207760111094637378498704294142586432986438584717675131856750529368877117168966133668400779201790771098611907467139722901673766595502307646421408878658322335142839582815763396464472333673650324871386646009752949522787823633415130033103517990782995043738211122667706239073485235562409851318099577057527153514393555338614526586774857576911445346307757012129439141283105484816143078756266669641388968175692096572448252516654771256877773089577052905591876341107409975272873130338861470921926089914945276102396840561614243459756059204122924506685265677073435124588853105510876608794156628326540360852826470218887456908082396112352017265921527906783301207283063118593874454027995279153167050397032925786988236469429424096731664774827875322960818612586395842943136570112633707446747646193517000261515987976443682801154493576282664537616976925581040394109764691064777311735512076501388390557662222248814558405931672909350544378126617023991971408763909761279081925857045462130967421505473401324127997339497727681324142053529575682599464415853853461079218215912977382957612897157440690488223059900202119651729873465113425213422284792341781438315622695793044068301386782127040718536901991384687163657317463157503189450516749329716503389602808683297311606549504942666853125746763875312753589138124352852451545271445985244036784189080362406742248580573084061714873471955342873781208831575699320867733231934794667219447461503529406067715854247906962506298466235090708155552951100153196905312505771680580124593246988030782693484540335398055268431236475321528710442992853034812234916407343910290428190102274683863723934837152313205208153644455263991659617813331517963270945119277274087744320037534913991844860085052239459752314784027145048061732188513673486914926006939994097902385341410796272647150905594049735621924299252362848504573596448197866005898610531965083261536556969196136058523533334959903066370324600342046377255935563745264637869585551984175960725460506688999530444972506869655300448048157566536926035459820370530986343241780746319100778635055400591590107851987204502309051410428924938750193607929591891114433516006700962934197519318499171717271971910835831383943424546856837214756683897868415112930946679289596974659991023276166549593472099693889983569835695918939840166477134200955345026124860189531741989944371996639307138625738239448254810572676359437589115690324964761961603397585814828560547334653692491890224874996930513506453746529135976291992721488415132616804662537504425312996786931646941054086773890306223480655566064758474462389408992086953141208746001858015147884102054231057742671475554610391518692051451978104448089761678674924107833323375670752465676634467895031283296039455718014245277300504089837105441496241531980588590854629615181759618514312760150044573168089892986237965989304281595372048616012184959297457655515944096267065726607817765801193463822261552271976831177314277724893789247167637925398881871098632116123651268339862224308010726326002211679891912977315178263240742083150954576771673239061255261747765135613141445316568369107758241984548222545384302708713237157789548426707808407577949805627371242691544448133344364959540865449752231255110698629112604708241053982499480809962676115835839943383326138401223863101615867889064164179418324327449105202036112886689801444970816930575303160810840525151360113660055893081456733353009569393070816733702669627838506923466806926547221212696819178199162419456142473488618976329556811471874694914939479053337153615463806709520981133971426513473298757968712551976680870340328100626284645719663871149947070873822269934110595416413978024899265819046815841641203974893698982630188299287222038827046069238090944145691102030096058031305556849517619695208029281589078947492872404975773128204552634613622568097361649327854010143658718615225535461919925797950525846750411564716745571413967001895915394148375513613510506102974000655971606070672606444959155764964646354021229026763756052682267088920257946275369045830414838958888790118303499210820824355376280478715542668708182992409609671924332959071042247024949917241780356190019682627025167105820676671165814039568926910132543107513771594649850616209218912076609904675778002792566975306574970077257099889693467890374988729398951798293581249784266715628117380967799981782440715316889589510984627118633548130364879577981658065798566625695323885413106752811926171813205525120462088388318770308317581400862421835791181549805418709970085267123666438712644334040381918328719413167271605286588154391939314618434290597512313686459076681936347043778857229171645844928260907750572476688807800881673138152436147956854263660977913704803245763625035971488867857127809664821325061040949938421295282617308779582654231144846531304217546752497173756570061724761750269249995771531574853048271549500857268237354278021034675401895299987324644246821425617896067669945642770605411488178883734708284035844215774744495682233579755619118789171648430298981124233275981163910754324742657514256504000493670215206410110168751842394316922902130408959450353833542339631836248050171559333219458073852688072058989978836013637082094955180523293821156326296502478098285893740452169156553753203225623252496742078933756993764429804357035374469855091981435237697095339136492057613110304144710446345736643123771991398146504284913153882959057341129068437052122861766785924774725055898988231447828549909412627724343247987355703503513265642278572165401528552601302523356443948555457167553283912170937307197342110800789446417509164814942266850952772920270019942730258103849711518689031568413967127398991701094536864352803858275148831468952608684266425853372950757724187106745734983977135347783531055709286815915292265831640750272130207279689318865968434139317378144296661714597944588538195566931655096888502062330751513349990372300433844124722879594252594285119561275145899371294700811817900483345142046647644868359137792340902123574840901134974294679833846455132868259026979418888993701103493587961431116823693450439420229264736758427997292158286628499115875964681849317418482401796212088633894800786672623886189496612375552654897005934755726836336690159518725063924867404200921868426717895028983044553264590472353664836666164103289812704875060257791999330648705923638513478651077787456176176746973033598298049505949059401268215977398763435076342805017652590606577287949661329355313516837976487563826051100501684148995995436474412971516122004742846288278854346119146258250844139906831292711766655653698712052161890677215447471943896159081113282303435953563559506700734057974595612035668384039471751269431410415351927587388100564441581383409733342226967011921839605085937544655109385050462110126918354216975277817443034733659539923201047629448630506075187105575954770188174859601136455648082180003847183832992933585118480085711259000629298953099751403195290736284255491121910798085391791865158361241726983208769741484444241800008028159837395459573452249674314734736281735922768584385091389191692523099642915914565970662266378279570812827776804199924365907801174743343272393778543058728803018393038747403512660340275242150612393111158478123573815728425821969382454432196239843784363087184040687187965342616047609328315830939177434747853672761062306775616914211119169049247293190236504305793100665560205542500608429237291643660365400313204979755731065445539683772701730595529178505021127308712618449794178884530423679051108740511338523189511046060395309923356334767663287775075470140624437145708182122397726433980178460789495679970222413474191800905863842722952060808127494309798345358359978797982617246896358696633536128299300339317770835047649319821349748891338687342838196249268880770773237547630341200151119691907910502092889291645329367867989566756689551297877853240507434006113746464726565402845566385289107970230226051299106585824147868580554727699056646873708286068257935189176439649513977733860861141411853085729987212463251788480899934821000493612972847638258742050663616778887681095134484316891808643212744181195192602559967954568281006399005007950565036677110464142392036672429401923178025786410766398151217612058286479790814983438184065808307407164487530805070833650519243875822486945261949292627357414656838168539255948073000680203945106895881633992242674128869649764811493935685335848435659114066377398719680395988571099956046039399869277549953699760453640346915696930293720708659037534197492505954385066858372929147818631347821156423611127446907098457923805493286890079905417588269804278346520150024988023500218014751561400510051629837073558838278426644160817227297795388020239935806348354839847154082692705701181001158383264010422395396941193098001855575646281449931699146069389824572239142478780907432112619027872436700028785616006199915121590763175764579023349812935293107897150114875647387495777398017326858017107806397702728899809088633927888019261047693156544812772150683504145071500132823369883260170884662993932461405604755755735486936128123401280815277574239787026518323574200216711753712748408072796353034222137156765183709049716853012953743119869030994099684542643055400745692307708437915658538286857145121357411381126440146189088817070735235738415265153175877150513416465027647593844772049478322117217206974738417290664708113144154469751441183492801694594672288957366437209920512353607519182832004228574745913628500944691852368035563804333416826560402003444612786402544260001956587182349301892289763277338839600411178019413241456730500963250419901181923422577704701470925912427634381089694610079863016617295117968017209911386263279237152902679413747335094081417820648422951359542928483907091641271816687438425785171268161667217983407508630206210624301950336940325749173579563271280527291972242615573481852627699945732179244807619783347628051001788348257951806898509244009040777892224709042622605752104748206654549098499210451577371861881353759651805570428213692274105500135699911392720258038909443395564092522793045344781375973010981611075302115999067253950986159054962732987981426370876756661209586858348973075369403366550998663099644712127892267060058491133248162059666373053809614291116147469493789604913580713505766331531895084450789018957168009337742775502197038338415412413900739809671203211099489534826781824272268166210475991767923762145593873075857309439363163199258956371229751949944984043268924457474274213391834414871561923458305473427431682324343867103891073691310832959692403490107098204763260841090055514464710886241481145414124850322440383755232567941090913030080617615041775118984631794168593950962792046021790508455682704439423402434340033179698594085820536277922440746300298111636055325462877341398705554625871194643315909457911664388028570719165825292522282611731901320915795707880370776823269571549090395668195882014326638909591079124078347391942756083013314590727213966820819180138531298846005358909209802021607405671136489298613607705407372431306490066318080733946935041746979162296542965332934812535016363910096488266984551817646221290780195068841699395246844777497894720292166935801184838101528201989156887766374035598078234531844522460151837150011310085214672045879039844918554998185278593772593008831704735066832564140646554092368177893510037248974669607914325803936008001564905078154633293382923486830986260205059191841596836364439613772858774860497392925640221751480399431103600013614226467811250343302088229789213968665546723789347071962777582789826987067991138747473122413439217895745813064475711670690938171206698857670955676360323733218603119668602512685084208552607913230446912389753373588601380769021655019197881971323300019773711799531605492254049818603485319078261578581849288514390471432977200926890467320189005015596498282183246018037503373843926970692287105611759914213315042760021907685232542920248659758107182965593804977556148362832276526964159093565926726685206115927904666519199005218403093874482844031454401697108352255187636009126402519227677857278018723348545884927895557267011817597318230568874760699453048235578814180828727753392661592673356581460676394982312398022001731707089504175121719003111915067040643038132751544881400657461031403287538124890052381684125330615048190535192594945208836989084054007189998401749226548903627789660324147919238454670741751340534187275401826603858192071103528474205567646212513448992786257616784658040671934553732788620666195376986356956638177211829101044291510882667189132407557990040019399635118728192854920047181165969958392489224834086779288955549165703200650017575320776194320064043477947687698263228393518373114584223591663999190235631100601513647048737697877120144092907893900099405440602862899101612742909158373869244900658988073176752865255335472596569322862152936687250344010102052065625161532343162260374224700618642727309671227069662876329082566230263724361198406745083429668766857185915048772959976408554376346763104585763018822571658903102334108970450888135531165312568415085783383825175247264084864850503648270922395585873737739167621330144871955162770141863305006211125024833058971681725243960938481941315119405922327348444281776471635273155139498632248217588763739485920574163397468326912567130311565133791732850777476713160405940974586115064292354917351817307482278592328241513511495098384707831173419637355533000716324287792490492509021627470954156350842656681552735146425846476278156343422010192183930903397810497119224308941921947677109236103509320453615911144016120839068837816041779209227249016221089483867851899978848673953705959863674985382916185251093061596882922775835526334976081523009402876901662427793585577105219834514190521540088560316257658887514264391733732706246409578739964839000083298954811857276599753956371198450230519445018158077229292014539622017168354443346877298172821309114063823189616047967524875084575804664247537675820234360935060122180074603567258214960111542878743654953147146779886942935482917011158336639969302214756600664938100120168653712714748244299563937961117563032066957022166221582948441295133032204073390201027871620605771722972740209320336311222937335085614098942400721855654095500750230810388032804542989251027307098876261561578362579818620139352460319486856676946132674080332672112895983984944747839167536785780464439770683944598470721290713030996209746560570481559592504678882904595829948593806162571150753181750556625636185007181872406159846716541632869902333877733576448281197569337100594936899817184640844377664970683896689314351394775234817325312370882101341379314073910986886292095286145664150300491711828458198398998641340906860559416567113931334760867893348158488386698356169204028351681607855058210395653396689231532264783901924908636476891114998025287690928851095294850616924928203609407610536648135098965582846573775971008462518540859427514012925696290301640807463982680708318365176059229018580576892588887561874247881992304094840162488657414175829734297723439614250422767089188477318454161946772453327213962377867810038586732904968290352892635587624445473577754417030111481246312723881297806086933039684703484514606388499466713938241470118379026670746201298410433758271334332120449690775484855994199327752646093237383742453246867985163043778798577124309910110791885132417931485324713790896393203766797357405844205059172616222019092328603880545580991026934616622899641159888602349510754636264118054005549503117412166205448563095781760635690549548632630987439296685814032812912879419293847354663177438614921645838692933925483149552618214079208691365354955220650781299370916068180874930547838954092882161213389551550879620597661466869053308417620539451680298269946753665258821414979784156683942209124344758343909848093163576159286823242806195001457305368692242875975074116285007961602840091331423118674176587370793356742159187174487893007917134671842491242274817553881854517430832612904466588688129769715007917053620809250392277134083349162634101187681974961032837667840776864663803169826701639531940825755583731249395110411217237441652520042101077185480835048204275732648540846949509938764230878811134962286411657323940929117172347627256175789982270878842301893275937718741879858915598661221466505657105472403760759390138491809467891818896491271419041784571918140223598802726849660444535367197569399872504583604417868679704294580575794389338311533855821818726505459369471918941784079043236260356743446305768162286076684163306275788277526838489536927933644603674342281985938486961717215518856587690951703791830577522831733079840824681252863503327470400376803621014339739728135664445026178310657135997241489258607234534220310931937424569429084277490948612033549604057709730091680992116951084079779795971589885755925677514841470863938027943519246218511335105630296944633733959182686186560905457097955356615923390322341936241275290439831842396074036227671232151787799158503835668140324269185139230388987609053495970462032992179510127338482655299316775950986180631986247929211452206437840528601155491429027472690986986197841735707042850374285036385782317824885214351341113784434833258104033346615647573228076629190403705199079229229618327356167498811131467041283263221029866465065698275439754665996189741601593571237176487351599248107027293564047037814793774723107830247347502650955102775732500337497196105833779108325732184805967654115720900048392397562883373014086831871957497433622510301780671719568218750677450280448990006947431673638987733158851671718942386145483506334704400123118896710297281550587247767644870440739575810467892104956046562208393162479978279210053827152748811123198210627026123327065541726333275653113843395755496157722540541417428349891090676090983096711439102377990373832342749643095414488804014305801755292214673717830939331257788923393751656832162305689183790775328406210338242353914968893204719620261985521504372910211508630636437444178888632926559356564704643765532917044931004763536298383334407355281759586483758873193042288141771000856087081229523961802534974705863306461718929431722724077512995737884837759463187566087756875214171779982278286812743072549949356733451398999304561020192795673457500267296802746857479341639285977806900979073747028820272979779890216582068132219822445482828169861737259470461857878762040274271603984593283719892479431703173317076317290378828556826370326569351245611381332029349559284798349589621356367646067563392910767903126007059394844616922683475294096839580766780233504732711703907829129488521742048077241190337584566110989893729246221702304383439523978164412227708577895559896885472878294649363270745062783246529929818833415733628828427251683250333479880104659577979364760359268636930996209254961339334720116648798850052398477339412925905212423444728579186723204224055828499352903921260170355648578972078390966605812805915828372023197897665066565683271899296736654341788531349532594010247532069454256548081967470692660601585823557717991127180019742236625802338129527422973895656459273112077873531089705694972760293663118481745221906013503075122597627948291061704941364467364467375886670223487765253505816179758088398441664811727950445602758801941413601026467828761191155999261647323414618630671006323131737573002263518324845926615904416482949904336390747486628595869402858891499594920355624396659355404970138813089662840100402797313800046251265874993730980674935078300638968141100185291208650098461633593836104312626622371383517726786732257093124361071109169672221111223132108774678855260942409714234528025548636734542561491755512753945294153930873401697644501618983193044844948850604902041249635292112500685706042709897394398316072274546990111758706805551443590177320981304806281994136564611178654595363525006507297159849094673240409380095701609091446180468819568108397750219503686424847103439309284363931775288401920598011910154477495989893797076905201533624372804805234368781674058109151434968879574904219349367809794138106887388283069747933602764487108996492384370156998484603957371169036737500711264034283623740590718403475872097748980872967835416627240011091219349184524385541883635927592135025327829308144745190130406105979897286837308205930706632337459146943043420742973941327496506104116754625280681751680123579565122721767150485118445887540167318418932002586684110323468309552268018972335574980354773194396141302485809473548366395478310968950507583549522746350276066446045604153078934112374795732704661708502761205204902754105118848537315491067979292295901600847528964483460700035869008168193943563592150195851652889194412487193483947768202435865716192844960446932607642331537232829488637265572225595705045438204878937088836481053849189464536835058774406975674481078050991568543254333770755260398705040153972038672815985964069310956863859203085069536827455770863731988741852607036400644073953943615223541519335158358725803174259496553389342478956107802888232265035762150962350724404103855935103778160205879810937634667505252173775853452032473337451759706301524506265500124610808903148464158607630108407367009174957987596051035942473765709455911310849246823922074908996212126413094666946548618252950954748263781987300372609248420391835494126238628465537046501431564878919354605848661134196953276262419498149890238527790839840113973905914147245921601046147792223172365194230487355195454814967774918604516599868236396155183333828891848045878632561685088849225531717321890621885530709681199141152965972093172869816438209247107067413567512455195483259290816621345571982029615075275772290989659825269632139409669561675743578596915019426444156821008515482887458105364344359256665234901694591822386548221227313539302750179399818797385150729382758791041487524018166918659977666230518110275643273396024627463799264689921499482593256466923912659077442561181608783412614676431287792507552727381999777883393593304807180025719168669366960529352240361948187530031135502760280816464069785471910605626027239648915493201356318902121289872206516721918389225257927790011423353324571482617840705370729079421564966661582691614049261797287577363307188525013760646722855052467266653854658552347663449352613042243897715576565921811280891309040359795536512213041180302971920142369206884748807184552790610007766571359160628065566868338818337656187225886936202776069030010005597766020667696030979752506659035850534265474460475577451289982377844569399945010712554331417817379400602027687463556996572254152032342964382149532613460344817136845427585615155117622755920738399183182041847939978870434323103692551837480100933039658854887709907315687227327137488807713118906881935854427594507274649876083101158721399989214925170957549433225478870011157621702233779002875930391454338350093662977702688994683921519368299687851554769883320311030631133554554026316550340845672405989914965968238272897627335717721769896680737786721348669219653233468543225506515089456243136341509671919186997371189264957221325185786909959589378277515300747184879128179914822632134915672587462392498202127770876252484063705221836372553055663196284096124467764903252354773827084949121442017292166199878454710577982293387849390026870955225331096052488858677681478987046119944148877034266423348889193116883672378285590964334143098754472618403003209981388719016411744253622657605788198351879782733382538342051166509783893728220705210803579461867681559449977033724632777501444481034194704486943072877950610069678634892991217580952977868115892459803497095447467704883889391597965963441592174374389300750703245064215569062697702270572498010392648103110705235087374441465195625309143248825345432953751116597872446001759882620843435865681834030872105853794184517462932650301353971074550162513884443294460773516828699236771277929942735577205647833053693569810074040272736726642837237955615786337236243871214074613680069014263146236259366065953373089784765328906719520126773903938990553936730554190310691821142022425659216578146003174499936858749106965801586071687542349406956265525637713038529416239943640712128949417901455606541943945044379637134387066718719450245563893687954169665739957276979719391643714841116660270120864628986182395520873080188020027803350430159119173320786501732258381212507728172288606503258741393928144878843825513421882748973026890444190607589463040122209911875686517638367191970415464253277022458452547534085955810212899360433497854483476466716154731431629516733387424295017451077877562997576852264002910968624769691818300768431826723639960777440206118497915455320178787840377764412485903802765580152659774095747350484118641112227873853245072826500981909023217309963733273149351041912451163766354345214939549337763851411746472508771947000373172071149209165093977491338156753779264270923611055212369770843779880885026470662412734749736581290505423722028930965988960357869087254649604339604543462958398615808211751306859692099288730984356696947596377590893070650710431803287285490803560469668873349802368364879641922864041202290461567476609109905201580239898078507972347562602274248253111843915477133861481296941778373828279129512715111442251156349508842320409094190038153088999343298888375626687471975277589405369124020840693706759015954957564106516176190366614018130379493843309174851126456970660373231226137339959680159770833200034414421460234787705890130572458379627167597408467132930865247946295856511205322386144175735446230488599396699667141010555752908389328267521333028049893472645195570953819222118989395012034625843535714488877109301450972886873233207511416615447559428850458233824242470715770516775094709617791869827011140167425337028238597264985885833366290835825510690088398507998596656377373912133917188892912961779464041873428818002132563318340314394125699753915518621270073930386774083543839541406240036668315234823872132605456006217357717060128210993163024810587675469661634964221363536012980176502254425135673661728182578794821631762854384961979710398039790865635151103750907509437685633574454776345612477436789719332036168833591844192564042247547533553553512212990350858304556666490091882729360895603050420944330498612990810768070791848469547335851416988802364673560032500166598529065494563113356100253977283113963875313884002174120835981209551795269400753433367230259640954375620438569737396588888532208417642921212109815862072218798169729798666445563009821684717556785698797469836832119690652589471598469801883932511215037181287875524327088391511784232898078170534309773828362425973554459142738937324369483863236997383621437838677104311133336118476946291569303503674191691619480251990818377658670628998596694084340274376094673195240464149407691785687133245043589812287802227564435060760381931322654168940567112900176905920167786715505471214852666584996642532877522131280228124232365588707821372787147595318120480991100634252138217458836870442302085852148868765424303749375903539480384341317356342909541910561064380192530413438025249210811393584454673078046804595262752055367499833448886806289642488221058153890212219948232839551102384230303820326496291628254057306995843360811848994458445843114038394023077650870563730647123172768884157873952192182601919794086270343983717924627896473819363533885737802116847246078579224820126699459806769241153942804465940844485311611912981951544902426324377592294268868939713649957657940001606618347513996193545136856667354148847748036592227406685567284493486148229690954443833500599313802619807302623257234027490516535191829498473187460068625491219639332424506273131917062508103938838531957556441159113194054577419670932587982128850674742842139312387718014253429136791719181147748930348132628767797303237567157047984504904815837621652802621478887111698862417209217683117401918971906086229172458973161922323607188956584916692340291329240138694644434119187405683740039349425449016979268862596296971986564949374366298308147025293544412981763992474091160734434584845281560539909028012087131403232266615418325596517174219692328695359168098629189076014625862342206153729742073887326056740498295314003324872138935839396534599391445284582037989088807606708319396728239673221265568227391182401774577540757258466138876947574460778073385327987356346580122466600779188391361135824314003430448985500846667351196160991653037299422986065085533315258343905658933129203747898659587399821408602740385879883961624521835054476102501258056427334507001337291989749087062315167943109289180807979553830834388878086259297778367159991326434293304171392958972431542438992744799584257926260157773760769733742370158703868019870674293405048165657402592454978743995081091313090659912739852842661417483231652499479813087382600978027825185057723848531353128231427116520154227526340183341695886448105840365307401427953649658118618620079931444898171336266099271911255656771149654155093191774903157459047699699403880477605187487449445804439805689715015287085340402676932290848987347812657449520431357997968516850984189386757616633980231593977275277402127095495531450357489832158310870220835667617805553790658581567386495527898375794786088779863975462172888066194640499572613555614985477187217917775812717376644957671235560586285385825348795104597743069556052170113870200383667236982865142710396930987014956860335635690516433164011417201612926745924212754552324441821198446694651169538694281343163157594609240683423248692596283792432874209948961327250753293910273221907682910239906395413595963734411122151868542578568001547411844631824540758798368636793565144235880927494741187540622114823109716302268990732540476173248446799393275264452463880124434175205450081272110028786948862871434536766928804608740179686968900138770057019633064600353674679759761720056037601799601180846140562222393657725123439309572398535916118451983840402483287414658102058963615596623247420124228951197142462760478262442764719318876875408023112577669249821663951838966818497773524637025671607822466050453591441925978245685814961031375781443835677426795708718193064582904937371176360542764208995769861569306823366299482614468690077368227134733833823379029800509044736448720062781543747995408527467888048760605951382803599668121111875125570489832474734146940329486728163738769736156675933723241855464242997941381006632121548306509330685118625661857167794902471418082705798416038996763608692108714031041133230726498895827843478429335133437285738621251557504604719017388682220834472577823681844202264666823152529738998257679339980072838916476782280063820600051685218296345953742097611338704882080061956081502341896326184331266331292409984286563017368124943610822343456729129320787087209399181493998097806252260488779026322289262714056020833034092212336179009495555396066619208266510297835599143142043999067644794004941767524651492867374402985818429104122138733886379364373050687161235991735432688312439137026715554954925267639881251704545745475851953475334302792220831792195662475366313619094262613717554500037809504809032351480875808988371371569453590999489340310038597117970156423664570787256092573714312061973094351779221932105981088115651330275930589615185396160425710711346084309482641165936425018090173764078254519481781746258736940342939811068775409874616464602500057651342808260777877126571575038088676098020261270316368472616863162396065145682554116460340535301234928375015194015119603766500071446959056274884749396192412088838870561296399758989840294184706923729205081726190142116893601098408948575298061516924447221027703966543765431737999092572874623055283045631836420644294691153540240975501415797097049652247757816821764548736396407565745949147299587410181909029132829759951793559602899964696259018664871243991881887032389195908565504953033816004530251752188633226168612648210028931666743468873188375138953895628755478223686459199601746720949219132986551757570694973008867774204056634283147896397375602988854326463690313383952977418386891148386849641648438765474424520464894059536141002289484986421489478691160067345158416986936915089331570297183602574227961271180261968380465295740027532877108850821314895059810289695449854070148374235995785018178373680430655227371122907075147215786077923734658843898524473361859040318432341038921235641717764433558029305324392649687683169385665261106738580499629344638746691994803510566366053144336881108198503848428915837228015281258674590074256227289648594772946052005647995628811097079481645473563809406116483647335477942453343043257834134619219611647365805577548184024654164828094130868532647996752681717533446802044099999609416184781160916603384235249701586360526273685349474219912722927636749688099695558904817839121054610185966197904875272324703835563791034809701645670744738806183554851337924260051077423316310975439814892923761751442371032028207837033448148482499124361117490433605186861743413247312050042646613291655039871826956598878726418545087713770910328264350232447888120140305217538452112729245152651961434936033724728434840669457279108403368002419312829760595304594889329679790415227945738685556061386308588859270491757582285024418949966046022822890260265257138755002872279349099307905860496707678969617271457927977517608009868581670687818717357813998417089719524616983906822108645358474195776556921728725693737808888287102068931001599922478582243573105319844139607555442694236150877411991379511153748764968069175496242460980877363202374150639988156425802707251915117795891546553626476714072692259660085004277907287800710609544049487659467059161378354748088917336833996490150683510282768742586469246274855723699412470521387421686998003057862781809699599861610222687950949502477073644161542977183046844505134871299104619648838306627444508623998850952460358958819924886780898884969060281172583756699281408012558031700578956456771870040242614093071952851122933418108229300485882729948849123946015741068191398909570891884787423618657405700510111415733423160866397948327163075392025755781706565454601913829739498435959733638528470581705318805035468166513072254021535724362173255577627270002614662703041562674216033801155496248827792189126916147956128030687479415328645926833505960851490128463089947191180555903109202094556502287185095721863124096513161809217357681738142369620013614123475900565899593935125198018150661003537292160744842687489960247975606067210514103063652008438168005739733703479997820691737568104094649107292152390940024966348123293360158916344606432315413787503871764878282850833186647998290625293733804094679650221324630098178996963719871102153112608762126223338025638826731827128202199538316212790803869411024832732825516071031263606645973592776854900857763352674420279301686668561173596661228114672868581853268135862937032717852702853248831826570464150495463932563551955533551180189418557140807671899865189589066540905136149701808126264790070122337872657329042238580739008192156608454472247135745059434435040870001823908028957481655427009034010390990901672556191066138932250756647640030668341307281014629150574153681089714407743408921761741094721405078044135155966513998801047649738853889373300532248763085554026799664335944733762485703567289923708092768542512618713529086184603639261730498656801989119423656685521695550728384229036774135286345339721204144910898966405021343695863095930279999949724727050790975421206370430431897050186976153364377954310764042538863815980100605985258657170495042879122032949693491348405726849290017195750749822306201451136443975382096004599552039007505365638006867910597772963046874262359675881219418221119408402227702595406055009475663015565976833249225807332413717086026852568574534743028899518772524841116637767212937365718708932213595699059893965546295302953552290530750405273102892975587977032797507368476906267384611877324496031652899327798475897478675887501401236079247661052802163941026506467556933277059220228466911862364528546318675412797772431432755601079692268610993392011180792674351742383394597844150262736094580536768666211091691479438643489630551636050590168752755266031360948085425958709529531728194271790000713253273609976973324137381013539737830527983828055765921126737113308900276718743464204769467148985761196541557945231734811825965695232686943905932852166440980831494641842671465749270307215959377389877678406465569246545251630910911086761120173221329600600431609473646350567559376149294462153245124680550181161322359876250961101262143970857276958595720932615024733919095730358934783443803910423249310894873978782736508715160648682185105361729501616612662690832155404342805051997126434800816730047078909228901894625336616551415209446065581516118327495642883939287427765064587482503150532349008186894564843097243386461552523032132342341591799104525744041680668773912196729763467653597480390654240344873892515397445276752822052422599149444855419288418574027228762537276643967805118120729947341262362800949389214995333052773449309740938596145989814619218917779344507200377029645189184941755708171613554150255698454639867512386121956657615576145758678374592375575508600561169317607875344480308345419244822297237605223816125465102100146522640541168108989724875638657602979073089441234560279217475133958726124191010966067975405585315094528445004617529749459066889014524247729373361999541325192355796674851213090565088188752949134065811923145268210780771824923573864348371974129586068597228231613755056634507540417559676598240690968222752973250247303571108082920792891797659506370494527932932842789432004385786129147133789653525334854861909559251340568828282964984588086579961141315879416879288198695498477199786923719083465392478711112580543589921203922919025744120885953991661041815543559240801603454268629222490648590002061921992302547499482887256791313389155097384338690923875781918441642764352273043040839572926677574082062851803078290816661807265136067310296037117970999825244341836078578325942856046085391808707647826362804209505579399907884086102349826278744574213887429333040291429929786172938358695634550746923066536533004503697361070593665436423392943277454469896772083303911441785590449945626408101742689392638484434274848926946769146541012536373998875135983548424025464151213275358748531474639562366236114081473823763245326537121569535873952515368832589525159414905078004526074974919046654931203382812300146742335686533462667820223845191921919003653329781570962590088675340838612333686877382384869743240168512466571831364694034516470756682151830096308581581908340763794932942327302612027057891620978551484219470736355148139527623005008492611810422022869952569814697496980312864924884514575003966503880111599358451621745441808407293663791247578934496181894007853547832567535497122972992936440390504600820548076373800751596760147215928905187278223201295377583251554211881399474992473620312366672083655892704608003559794567461884434066641125211225519442544230568461706787444324438966383343521911091547490628525730013224519157232639040876674038158623479358005847628648373328667277270937521166964702306997373646705792571291885208912993230680617331246629978644303705287499988277832542666478073870785512770542906881550766384324467390186653710179749989122205601035982722384601445870730343557784339431007988673327192767123012720615753910172694497479128639112227456631140335956563483423120005374580773941440870212048834321442395552998107658475021736385206563037144638298035243405517684915432492908058988817082195131896592608284984956639158793578798356238713276233360092637248106931498223620632336720897551212185536851063420335341424572416993101810074115197770842367571438520755332586055867241788276610202398179000623081520034123453965205483829947202361800924040763635537856886657164974207994811538937528322235027005610581874019448794547021122582401407795698549074719852244214744592239431909137403162408339638558833181950096600198377217245009059569782645740928667217082390731403624806593573044911935662579866713781137939511832613481953428378869695187093328985018098788898907825465417625971079208533733996879135837866547478852835187167158239726442897571758999231070106107960630564489299831172622675346636779251215381228343881657132334409853198743156870330988244314471033874535671756827399367924729504008302809248330924007505365851637048459972037145474433770016144343848363047394737245008567296694662320925147387596719556450572195364802338694560573735846431346642244678278884079613667002943584583018282564047444016157926512997461118874199883670210518048461525260129923982839249494868496760756557414398294869890266036376397861795470769190135743669082941625935136989782185162610869927480147663950292574218509542122473881656633717281302791777963740774105797156671318620797373793826855850134835191037016903373986948719589625159359539547388726200532028951211590393081999662321845499033738659349897734276014913234705462038577304904213907488887830598424537838039951506258913160745441467699235546717086552398634780386720898425317571443277832407792438490748449506523544484484218596941824659543390286748781116332162930083150289626762698755779831341162879586414128143586719825960182059559279310027332352305001637437767196274588161488370915253108201935090592990462507107896345525925347981160208357071186969059277727317965094801248681963522912326010974077965626282312387149321467887149614487395341867631049246854977467427930304682066643305819858918832315213961236805948682948137150818436482390495141297541936221210234789038246069072014244988043590087549516607634185802070688916467965402994421458209832560416413078995092035154849294582317384069048632110086386589885067221992759415374685482341120994092963570878647479326109122424568311304674869202074480368514683203297231057037194881077549270679528056542483614583947149722794945962752761888770416666984921577534903120204946250636328740971455009920315382658955244706344579343112138810021978999496153210825191431630636616302391953454413453604439507278772602138591323470008036450512166004113729541001013350502404564540268607519579872757361306138882601954970286327754414591911206433379802258619777437723698341961223255842096660526148829891710001111431560322046820867103261005367124618031484354422777308137465370324208922616391126479774916040972404590763741829190757600661734336381209763408302736905936498236164954374589864670692817896450097637808442528936227791367114247557514962747421144683646972801952623717520087280927822896286041296628961105388444716967034444287339050018268109852614680430229290899628774982555648974287157667395143979348969660132550046263705709482044750151356071001259247962390484692567399644742551727332688375162427099016716006923400251593534104682754568202732267131059024267083347070064818166622352448456362088128352120406946853516232189530323353332982390988517443629423616301437359742899492068774199703247055358712799442913583104071768012986347886698192873154794303884944365131339332907963600044899116187463105562090185878221455110413033337863514244069883532238910761408904222547030631437378716515318634367698606792719926502679911103124912798006087030166705150101580514574428002234172033290497830747089884692107122001757470491991675345100159646675351673847432716232421783526345432330209097169959076745730777786082658089632155327103329330613035384612640537731832396416016116299968709323656719418382460738500079849109067236535957359585075971873809639200487980056228459815140822747855223787197987103773947245874885922740368845811709125334814517976774966286866055842272450359080930417048008957121635317412554594480616144445803755074393929026162166677119708098335369881057676894817878380586297352393087398432629822594126407204274688762788315965612891432970987427602523496088062801950037152672852925871628078938592412438263929126115250632559757429836355973221615794314946868710921789104925927940563858389920289007428996830478122953840771563148173131851248854503675958125330613692074356682221866350061007172745268342205418360086883642270737024800190873929713008957148693441125147378797375561512414626947390464747014713114171756063063350736145639519482016944656703268440843846732693522773072407289816601041850017978980116056532407822708334522113292958785147719096505173131113963760225404226914935161468650727176074369055351176250470935183229821470929899297467907280359920575163162429828039162767335392056750130857361637337362116132836166084155973538710164400161068724725194086401309401781626561949233854183011514040984756083150813535842214435703306237676113259804556713090913243351842741567812862844817963814598230837005085170220527395478603364486713698143758725688133146106087888788878272377823649307580439568998206408795674397815707911160559947326552859743402003567595927653273726023219550960073374672463708092408782562206887906426164350311960822563161997881439172318501872299421436033458258498569120354049881902910900559389793671636137258203648770900836241223035728669857839018541342858928497339744775772399774611870991603160818312352120099766776411305272323044580303297005343936415962626563084382275692736737671061077047816844676787822905934301120838259977621583860337297553695941177007133666510939482383697335105672827384414855885833966813914080398048989080377792934541100698403071842411360723669321762224314235876707752654531895005789593321689951515178202543371140907547343161622524886398282613643498610680970719898971108803695225341985378878045070309309411552856940704068353760462886631052933596160053174530640839817936384245567491739489176566881749922312178167054020241081995694712424646447556117472168815643125080520711233882317361797464955614448247014853171728548891398350216653354162536026819810645724454709499061170885176103037733860257287654577430672082018811738306726004407533486484534243005997088981229906918407711317130291787652827823760692802946024946764269347387546535311715072673374670207357932589474429529124503614574244507048276288507422426409498256879083031604210646003779002064930982976439404260863051024419580309813477192052683894633362362813330610602752075849711486083955943228154700606760999027018304118810096694151269135517118031906967629118655716198479225153927476699441961360259577320011504858726578514409026625260080949861386353998572407994069529122273436252810801617932470307556337003584852151666035297109406548399122139602898752497840135571718842492956589348195342531390960301100048603734193188530360784917272960205752818863351991406125998202562785905836999901073585710851944246836211059245714754061630244711974668222375771273725284956205821009703696420992730313846833211750481831097941128822748696184118270113811141692974232080859224930393421014655905112233011476075254203183937391198705669790677651283813437737551824652323837362128140667192329263786650702604854494981932846350926746925523424911104433711671239501185985328634260687235307298082775348730083518350080935230243528992964714711107871018831284797552800389868068024093776360465177010614972190547923429911736585679395609241119772441919329349682546157834039185481604450462648792005128010142323666797091248638367385831093050746226065800598011597109411507045390964953916934801652126217905058531766653995738796772825953612583406086169050603744145679696896668422079029817511347991095265016694738600629166870197928750207253189928460318081612193290766769136618988539547543587184136962658897816636356431300203782258272534593028149152966985619451397791700617121517665119739792908017606858525947215924725559296033134571908344356822055233734780138946141515160263687420061485996034322729172740927149487603617190522130836061947601371478864734145654496420949016705042708579511863823266905404134209741821887553553014707501363053644897544217695501765773611318027899272636564643104716938085304063763190659515940759029099164285609339945647580990381047638466444233170890818447903462218964464347258437871690474476390200820655551776519898913279698218430846514896368408691032341051830244069829031714702632819907517759510587937909789578278024834536951975449550102102795700780707479571132239854792864427025097010068056936097715619765465229895310949945699677738299549738152552457922467011572030510362961426300182558800699187186481502401731487902022262947662526769267577224375929197261237089151050583689248083942421189860479600784503303368150663116868989091605307948719960009449317588830781938375413797376431980451145928552997846243840449021841236893997483195850008287379971870218537122416902746800391856947862930332503128595509228725150656546398074310072678811792729890563544671887909966520267914184364558962949358231576939974354588709076773515274054758819482357424725830411596949290064965644218628570202464644040543321436921161155546830744947568590641745006680326650566143855667496972084566855274818888269193500288877905770291403590629359804431291443248720344129856710021768228448434692529326100699898306573896880392453004877371428715517332153280077140827195530604428040983844312635697770400972503433053663750161334577543823985800225529603208901078936517082396640256539640222560385250675457632331102654846610751659043936677433015206301768945412275493887847533820783314480321300656533796353913133107673380982233324616020320269049710703064228750926500451822372128072137662337277249613541651210345676157669521550598952682898689074171349222997511689053370218904649829773319081751251708287913173117403624471654051772520669717212988568065356599669515358637395733158630858406613693589116807743833968990070109072794391433486348973110413663629527293642657712599636645952783569898834344782013833060530738806487324136353158593349781443165979383627975458700699653436686160723376283657449367581850814191891309241460922584436621315772227331972442586523597090309177741046235613163138717804684654078771714981782378017672884964057180751393909334510766727016847595485393065844449720911869821757465053050199047197727475891885188698783937531702243222139599852905312421448116666020624180391778840470999180264219024786022041913419296710873134247512848113675783870668102190602880099353380489658683063439937875365355174825389450097790220701888099245051211674088105198338321906061026851998827535246465217677665684328114420470532443168136857166036011393139581096863563904303124966362492181745277069312738978412199063578329076876840611406461960767905732117491162915293142753824387039280337038594843432004025961635438744317671849378376242589112319141098762986263144505985731355505387711295932113981880907634824851980301667987149821171382701753528676863874141453401633526160151700602625810175259008933349602637262249675585867392563893056890653737339924584062022616241831422556468522831677700532462696420825716777832640129742459526421855107311266406242274169700953549324644960010920834285729412884991138750235100364040092473962436753173121046972525147121912929290047840193434114514706750113295771876400618263946380246886597925166034713558016671492486823491852086563961102957334693681466040245477257375384757567098623335571924914866207027076781658881047067452239120846856568733918572706195027274477197065859176970787060508205063992460685092579538648457795289386348663306031727607739157626887302018598545569359013205667008504979150686584275524521128624559399866165564260483890609269859041789435447001797817368405727048065072858611437905309614085559650824820293322778648063176744994029011639844230505013633579479227642201305686678427361740838357443855047719322436949218897781877051029311229410511715825197088629770814900369755478007792672806889681191546861583084377086439602593486606551016354360666465102423774215172234987972492936437950007493980598396655272567821143367458886590516599955968126947962184398674768749485699855801610957353027286230714939275778140921917637646483185472819667405728868963665584928957069764736269807732570199679380948522691784953140786382159017110288993119406350918131700106796782793658934659986351023839295744383503511416264459377026929746899959670911153283561697488858497841297786222085039106102268617082489112417030300062336744130457727699428138019372821376621078777922087471674406685770266349132730574557895886058523138059862296977321448033188623134883402023498797404974872751270466342461931315339734405583815658069719176403816255131298019683584078645931213562123187629323903711420790258273562212834152224631537274090594085210003949656158421860656285696826662587183537365284566727296322547456920020224798620974232302958352816075378086419637626033234324921498293477233045831541860017995449087084776480668975258277417048439949734601142183776939949756100182187083440211163356468140855848761252365947212030266504432427528744253833619315142977879612937224820055087385613615639318737819428371497731313884702271846808197092044263782926688050484808201508091727760976587912391900636371114373639609338743553101382910713827510186120858896111398303151198800969937846698331692516488949997145776602258091375098412391402978143494024953931425676154172418558652017999037253262171236488175111321088168451636318545989930865657763811974189548895496952494351813315407759141973786594925536475804641004638410773233172109736375900487769026662675265062695488542058934988018318467713001166890971415633264547699010854482863499367139498561668589101562089758150909271178460637199998593112696974416232007610275272557819317043784987128606702568211594496867708433981563604756528853622207314955498630639006824594348234346712371926692833350734564925145986553646913781730053185789166855211348638904452589227156123576964590379001329549823205687964211031386495654351828574488208303822648725002634599390551289307745383475073543580561107587391049017818025049523037620514525655329824103547312159676744419828690367171758940084636156144054175616531984683512421856851610648773158971041396436912733614016546977706843323057251413865971801030477920700489655505483906170718619899756819371984535210927934451271448996256552531479282641141990078706332817933780141584272443658010697709173642619722453143804952967211313344062726862253765997881848614560045253494457889394668518718485032394062644113180936453859501360379589070333786971950382177377966343144690174524595501646561958615882395537982077574124062604278358575485083947981388820335407638631715873592747251088427154632726720386070371264640697154660069683974388029137146439515234215033856114385011456567314035474899979978744138603921550788052995722312036798127010897319803990169527682296130925088498580711193696692179126595589518716199432020099819822098221661793367199046593458529465351803315906867527505856680504687280032020926497706977428729377056150161457675695224748511965774968693183679490649815512955670299773922859821372715219266473645282444647010411649132974435804570633433358970009927442701493255855655450038307320458373700400570737046519774253863942268736996640334315825666797227588460423095926241533782139021908557625125668007803316365572749378292427794910787243877626669565814557406272723506644698874374189945589661515148982032115190502588354895233198900270532352216165676940346525201116542192080065028198202704939617064293268350933991982078814252771713885705259269022496060820624254304181245765905466607972975354632091484381436515233690672804123722593078430951771941172115027705794563890545896590818351940137774469665889554299720487013167248363154855186109278211053710627912672513858847076335326683788180315142026583578196481693902008184837006258440164076033761283358323020603858092543656301182613892136364132963151519015831159083588903502947381176038266732083338136288037294409182073707033751234209480802439713338198960188272031539965858060318654074076639487365065036990152994005224739309876523891522266762907494889943289933912916367794206732877503324797293132907111356742187714697794144900606250804574255898475893414483044252902365980860310758424809048165261352033287683575391470677474232578100366922084958348892603586320900843540218754787096945527570959470651522182027576095766277197041057686622452463571862799487398452857148719191448632493296766631313578395360106389084833547026092969064193981339686370836812636827399711692348998315043162101002075939349809906146880478431615730089698753131551000008084854242316285579700995538865555510347016768901421484462705780770332312051337911259461586334623235860395264945027703891842391704908762177360434840244696979147130857093013761584369919177122542240303096169361661073629719814904155198968183622015429102175147467974074108915259269488679246566361121741806113342653414427336631473087958801854267021048398475746420148180158398781664912923097434040015802644248820627056749675657994215067146958899272943971479897493082428455509001241968636151041762390702571046764086461988333628371626573148054120090579660655264416064901077575415065574293936253137550563687343673094301101584500011607930246051201677092392322621133528186088958160952057731331573832086675545578593045637267603011536740894079306199564693572039042629495565097781943951741663547881443261080867901004490064554138236480040628061316534772976878211953660619425987837600060415373437480137485176077573004065045799187617251451012513995283287359314740643235877686882974941987415449108904193773320001859967766105084496625334137436957405454465002172863852901031484260399540862051146874064893430095399816694485911073901727185278605849136446658211794128163127408521907379279022633905362930164590481317762746657769446960114319629277967417043368802959888882694092883871334215346831721953460269412539094867718943566013858430515398243967009394309184521674027197541642132202206743792851432758109450078450215121670473817566939848745324323888884378864968574486546319908613980463397583779109644222048229820948106212977796607576719295030430574833505453163407051707119931660198884517969344574775447766020414807266314277247192713438372073946585338241012332852959245810562031326223062995421154424321724665613864929351227464427121007699875081972870619604787842085091322492008246280278345114834525974645822492627536903000900907233455565123421014754011033273894193434393390632764605515103059278903839885004354446052559151252644586463443431161082366324621602062421903157938238231207810923225176154172216848146750181771398582785057406290440807244072772314921128466656592986720745207524238512884850066478206790606235762132572905836565197649048594476434455460815004708998326684562810414890593021194234347950607816260519538196375984295768659501787793401765903101352349355749645567643275017060463689148058554467988382391778271451690880651654094829630838236107987795776485053137395207063037729536707745344410342222352376073920026453903465301259929049411266256849452466442246979097407769177349556976395078816751139839049604972360843110207137130172050569736886204912464281488124788333598588736654766798668308080090322443498428786347637011979549185836772338275671630604744192548298321419823297585868200670333025174477416959964252781263775183670674556303031917930709423211021852752112699701781167190214089863643136463368951359084685810466719549117811279726272885136443295238618936426708543582650007270715376003059236362451399263500582499412699025486107652083299510092665135909475389226210468959083572470566763407014174727591940837723564715793593506520626111386071947808971185678539435126212610641376849143074852211016054907746960220422694258089572453097860946237521493147131103477172754333276779958376793714863061712160462179079611126549795917959961273889346396862285576952341995577510130636118841479063599417825462443294912467360061361138183221469513956932954646694102352983904074943940305921089793946077646629138153548910522001761287512853044563922027374657904319336492564581805970344689598058827002787222848839438611307594029432964521329351803567883021074363427397549989702006293005137098050183861780303912984344958994703186827541072117288036283179460083367141388298251969092209917724891702665766298503969923629460677557278789919263050647812101492045689817590150721611443357538075269690398657381502732926104036924456594226077920418818698798100197188301561776768180771690464370338292808604222630987340196459238603606456568823584549222845218099702213443163155249163861572042465278644322976722796894711560995048607205961608447110809846231676637144006472781177995915067687146974223153558225382279257526993257327330793157460840294815732746989133150862250013396579448096473734831639472898358912139419619285723207914506961717158069060660841609944981392447926397967222274317707904354609528089286202367988168210078723258865833384657146645485265678126560730560407011073802219552677052687730552388532777602629946861754044671131487333767790017058910081229520299309410162292541540658543548359317430267987880387116981686039180320580122123147735042622436321690655830037470309750505897056823677642352535390343309452737940075607111850482437806350879380472900492860575099359112154225860135285839331295958646561005498233133905729508347449347903306644144931715862083273301943991042899818053955996261581879956841830095465818690109814695753021121302454193531476231662500739127490912235406163706480478111401639164634511319323918744220778483709796093964728885818420057833748651111206014135126039377890231925254057022835340343126866248175616710426615234278917278988335723015110247028278183533985953631439636233600657515108631052650039929854796381662797245725410510990509595219158014923751792958180271166326745045470783415538383368717491918742013261637927923608511573829351988586942003006985424663509916758273686026912709695883701991157664085561092559180562676869220144211643032503956317940610927193520445914701587389360664386905909023403177499795925944296196875299803624359917792566269213410856648221255351572777494476376731153498154452576891588509191588177850702999278532852213397116413243708736633036559422951210488483837706592515951689825172311225731597077596520664270080768769465168974679824920137708204927928928217937854358254202173145960147242148923034933638143140765651534180145417354934600008129590415434516276012687161504665280271840533942366152550779798433425272799683112758090156629928904876752744207535508862356070568056521983933642093187729046027193894956229822606813774700609593428840802443789764297726747296248688172519893666482334991610750304810701699871065612115418148638544467992503408537546567086903752288249913790721992370282632177279731493698207254583672640018207913740326454699197676036343810717592638381206562165123717245356574103888088880426171314072655528014899463797834340124886055161939569201223688338494956768547206806844218750290584739441557189585838744562326898527970072444387896461448166162994653130978026977517863159740414361405514873174946351318637568815132858474433468939261462460476319204375469568077002736046033947292074223424562635780836094737003195115841028662503420966665275726059014421407463729020900054349821184491827731486980306285598360922307564708124362302605455119676567582325115263084472457310969836377214383267657685392799539183886497157342874068825573178568393739370968274342178571010853460089353083569765056355598955199342786353308263345404551220688038510593519325605880927551620270707853088508341281497367847230597733846193725851754930968236831444379007297790453786897459078660321775328275969238951072550409467019946182739154405079945189261883963419520624796006035110724542562511022823617914569626649609787388747211141927326392046784457777524849516288352104749326580083024403311677225362489843547075987132662894400255166506478417788017479996183858970046360276479816004273008816620722591665962581296168429890046308710186683727137636035213406827034509777892628686862622242190886987958958400138285867653680268057624454736604821283844778200946446247966608730127597722909064359859597579611344531556606447938544720903875355062025125334612764333374740792857573234559725688278575796819378522047407701782056171713095816612204581826614900102350615824325926006486630755260277307617849754002851628723428144386925646958589184419368359897619952926648146015444461952049274070634972996198003804291829950897513455337041140650267051000016671985563696562094583655060301426676926240323012811148435866390414840021909721526810760179658581177316568034072626466278755362287207812205445923837080518782706833400957050693527541704086726748278219217722492624875260707937318765886506514984839449506474879215096608987305209495468517879412207898073369162668928748673856940791947361735150857226601133232306390517525339705351553669833539637213617958385506517218992667998034389169686640612946316817113811769890721145718954154707567023050853139313213304627669811658918800675685801139387061776922857427169543664967066539218962203293554106247970980306276008043309264862009556271460970513751718071271593075297766637996673351146837049799138847672635538531337890989621311515519137288963546698138887057837540007215500323864077257635016272547055219662109476138514217044930819697410244691299002435476604300814958508923247887559690342893947831547421393160963783161800700911328142099932180230329360307343495197988339005272119875287278447507188871382370747097014837360761685294850333670796167176595171883676658782220264915235519776870010558455707362532005567327175420398393598846345436282266524794901053607161580924166142078624720336470634793349524816357811979148547115820370369846224247467911614785204562366973184858292529388370537834960568532491600570087206864934916543951597304613650564214049639226667756526855054610167289930330848590273357449914097880783108707482295191883300923851444376235648806417643535021417679838210785081734059216816769304568574581303126778588221148672474700288980531922774713969207493969654994218684715182038812252787760434427011359179952810051115933636641007026093172235628924352909124990021047008780855510370888809063619946996879557818088137916995932124061052691431256537408871466356772593237830143690318928675600413236645362344897334435907784312562835019848970520865240577260752872980470846537227064525263743252556114718598960535383164125180093072274798820368828700415281052121297046887851980378568170725407627416807727079965097174450389427539128032528245898931330754164066259930014057218053141385874265463869626225355792428177195202944583945863789984066498247028307456046373491374093882368123907052002143151979732950632296492395698971488529402723673357906627257931672016342971143825582565321300981205546671221537598133327957009068171428328009485003893451197872440166654164276219145571615975118442375339454606350915001163300165178805672042572661481666225901697633789914224928924064669628202403877672843500926155129552659198170748234444041484941297093176398245111292692560666925120150438604041882505268384114096743472241448749158919363946353079552335688480454182517309555931269749680662000823873005459197854115651948479191994623609076549212257682943249205654338149136658077622963728325144976045671216900890801120874920763041584249193290861004400565430470123183932496376513706433911252450435959740532071153129144182179405053124168330632557508605475355439090266122096784659119686001443338097080101846284936859853258530690645337943612289524644566667811236414793342757252857016259730505058334469604323340710520646915902330177813738668311329595299016956053577796958747947483202506119507940246407187576391861066747802540393514978467493709288007176021801998903027979146536738151396009037526482810799218998634088365161357618518677784201694378866449793077063785366750251853956217132077845253569960414096559393172677522212729425026015363205290431227584441064465065318881764684991152464926560324098222093198636306417693363760948204916423642539047550240077341102313846561977960307913099059665548660138544856240714422410812506713156325639413848172327208682395230852983394744224919001748981793622606901207687656248388110780491604707600565273800473617350950562607438808843043433751258099287522046034462145508361190633290646522916582680357482279327219329793203865370403882552244383628136603549762767911468147358443088507128308772459854911524508848482720330893138785693631959450090339592126009800328942260636464769460004577963473873755840599850222208387318881138241219211310748526920238179390529702646026438062536607610219102303222830342423868870415156475166618195083184592941696071660033339518478141631866168314606062905698622682870793186488907347126010254958300693072411285965599907201648614490937850640769226437672864091968193936997465387897821017437940693339534659746627120043421678221618917432691886949116687889031599932412525529606882340401124677040113903160833489980985653769418837901623385016382902321040678149629253568293087704205284621247494532895011466089648185310387211422861088001145719960075225336508809386721848035851941275213888680230134381517614401611721446483570812179425526938352374985438878680331325369330027431021992555839537863011935919125383571100215828080558161145708377173881260204937304425591106588999183486354726676853502927356348573707937687273555125832233688469786252767573133760763036695554077498744475526579841591141159580343574960622434406711280124809056895244889149947789825416424048158063768314343131518761668155666872484959488251971946136004528930589205891424525658985470529153672106224789778307917895265613391996428166378001623646467091543704683008987450376943241969597726464067117465042920309172729614230650773531887010651789886825889866837797695742103665177209078953361918219178471994690637991389703873760564932761373302272118295291482825761633650300196930987051848079129750283079191348224138820662232227192830483711883161868470500247997754227485909060666151402017271055139861393798266859485066455541850439017264842906444384283300062896932914991587954427194526249955809999542429663042085314960747152036947337528075730976779794545188061232153247413466351883385945739406058491742167156192735773207237636180734646361589813132099053997703537670753398451396377325533197484412268985852659192107294658251503432482512166542653337750227943953896916637101842570183358938041755948724512849414677460603169505514133293138251331302703042648194026434004208510229945016638711338533385675065211572572068992377427705527645036213644900962616648481255466124013549416600618262195650950052836340553764866061382907454375758681408959217986604951838354487515857751238041593834255035082815061056172994374459453633414666368162201039138454338273840501842214699724486816540402553904310863210273225374123201736458945377501444420669179598846543437014209142728592711677782782396339123458225523488398620794445665646101607142134400549710655027938878473772134064272985601485089839701697520311416453967322490206223201738192132703904931952351697621174635304449520010964930634129245537371663496293494182732606444415818605886286462837811953832643756866942507220259229863065675118916260131948042661511786159824487252729357135715691636592482039664164750416932336518054179671549823894883063626910721572427301238743531281443322976336881581687630993181694966244705961391213572559582572233498955561024130403461019862727418071239574565962793850912241117013871620986695977644324902686377733685360290455269367336829987178626500629445197059676725213326634389090684881280118461348434449329309487108260807131158050843264409700016312419936606322487525900841778499256566193592235987823699944810292107516321389520806770093714052611122699298519684180019297253885245338187974748416089463109765673677282633137429154860506808886371296302566502608405762647210226276825053432370733142401353041848752450063391972947960114376746035882546932736244884492714330666278087177280419567432194543826211869450835412271644577306668207902269365460539033569714908956909542888414140823151535372039227174665064739898291428748119150429116458858562999047685288724891683380662815703595953430294226002238434491059824602838105629035434596689594436502132254467464540901812590901688154448652762264247574581224112083726887161526004655150565928312060734809980674601162342739838505964256218237328866977487279270769272038273902427415333302715122949104509021264035863536770987183322599655657104940673487034877510809256060892033327751758838387350274365262498389168685873916600091886568480170926241967400104735552782934634829243716593306348191477618189361115547370752680847167330201282901715718233727217019143549858280357215969836642511274465481066163968254552145959877548734547427405987587604080648832823100901684476472693596788540391319922573049161436394969388977951363568197494810396820152950005298640839211080081647909870751153770648869693710697234348532179468399972236653525371969407676592318925020699854711860220646922674788146761946946017925025744351430687430651765240584398288987009596559553104937726268967125304179103332766107164864687721946414079445789788003582481114705784554808721777201260019772062248081604864465577500684368289360201639836847434105913876516345216530677146854408696504740435807898290904955347298532523476327251966408741414572975831198324223816542985237112937758455121026034154732890287991995838966082053427365322439925586052921315372547132740774116831875542519631212317558712679528713760934488504061955184813075229473182527526931769892570368039502696363525629508281518525119933173501303591370613151299852591656323460552326597601527609107670942344601948146135726987365012264914298911463279143042536133471819911211884809432348059241194690955383656009446712934678642296732179713729367013525285912207008272984283957934265247986188881325023729600371945719059451752361997509416978136370276931957599881113341393142360886959448876402276769060447270318731504038663287543257938961525305438349988015995884404492221736958708396528271954107272785430130130226208913439673922136150969783759031952172582873040016449590413948887251986939946079881048334920835120333648741299150156936581336204120702720151688096887068313324941622692161237926382767640005904713566507114767698772888019886367494080001020464290235404720848740104803522829881305860787296614832586059085952369030769992896383316664225446421139576033240822353931386004444985638153132751918411710117664694983221262415311036865413002237766783206645645821793552713833684121906552297374171912498202850915369594316484509279402986734940767206158357929496731738685538673632377333169622631138354679424221771864159652086478288650186478299814350994990934062205823079787006801617502873026037805243970657522982366822169719955357344598525396521035323679622223551536139020383044969625691132956216361038633709279220333170938397679825989902099880285213935129476101887919311159073808284810577483170274054660873628366735767553342880316063893532968022929026313217337045097247780305737187728707479186022258623560866679494961661089725442889735165756229136879464480571522401128371873952113962424397999486201954321569403038091896668906288603399968859105933032695345819689937106892128842949640851711296092288388676942108882570214237178752871989460289785868429092463165214312919230905616550168531547109986470608555663203999453617109577428988378280015268160115851824529533768951385367845669611307680316796942737177811545764743757258602889055408835329857047289766866724989207868783211568340777785382221620067655171670628730197623873009178990082081646552362255507244148260405984075916388678621222093368819510683021102365082416284511228047789560186441367037814584228588607163278466218937867316986013497548782060907180441138871743485056518322663965197047643167410524743048643673235932148270543615008555406613147867959860811935708378512078940654545310794771604743103500777120613984940248463101278267608631109206898950744192525784407821057462919408846871332702471565480781048024605052921841337680418797025182666729413059951129194132638625383847771599773391649697016302179234867443367327315625087416619436760609350755740604505111619228195367550285500306057882787405728162234010909985224800681840757312248415903056644729905667205455951049279571302729195622459849781767859151927062988916161992863487052381049787925844135055383187866524206010582728896524079576246773618538797951753784874011034855821337535715830052335177357764567025586313103018681633524696934055406085751309975775835645345322169859610166643928125900001819344045817610918640822426738372864898890297937840483304374495163153458034016624062383933076270478529130547846862232372266657895541594181737685477699357632580062448028587491828129073005332321632295137749997951292586823168586018507755164835226867239752282286315780109857567723579148555918521098990807733047995287331304432198745499285610988055263489354588097204492083962944191715953051789038937861272905031252848295338556279623605789395189036959326362620394876113082963651795761496143299619390038503203268570652687187045196940685918501622824520243709206726491899503988666544691128390207319166469956458413705817300151977413374952875883427222712617829786657538974639990395253107403660402106686511036961897523490667805597779414041632816760989114560587881534634216467478980209742290372933983945710271139614776450113315440696574181488810367137878448755051418749200084355529429461517236669727906222417031215850447722756058486207879638075798657400369297262951414237395864355383261195963754815075632393216454401786383725552381992179686215336757610396335673782686613608567456549731717836064981119795806388578961461326248148969058958096926716965167701676622211842464290525465728983902048040839050324371120534157444004039078600702794213784304203163605332158208037012491278430135212061003129454337863754638500958157476444873127219017279981463142076066043294527228407281435251495220467939859027405859244539959068274236899468307380136254677291897971978210137856453296231721771323631419623702650339768714627033548801742105655953811041826014821552229897579391093237363916879614016873182048613584684674586541069098239948233662587487964120546745659394672147287532275538116692892081724324820769392937939753625218934043993884206330599235464681759030118392499211127850201267855171896899631174629926881350474736206112802961840513111301751863161329843603969421122925250109253619065491563051604329143210470200967781674155796314175050981708768572358702891090398976543865056647832617481812856497644310594325315533000465368552181281290524201392005110874881091378822372417491628022750744367343103180460884038818904908972503240667333447621006757741030111381380032444703980617132565546140985774035212738124919112546793055613117907167877901088868082660021798871060012564590258750293009512690155333888926602623008095197229956068205674734482908181568399525957981120671228777481339620850087888479355250056959021180128762666893756890330236912884970233041388796256286714525280620862244586129164073414565116413153131934740835262442676461734136580227443662753844531670139984285417729297206839327349080700264558089820738611857889983321885620866884243610789135363977682048344564033622567156722575273701482968711940279164390488538667634907659574439307238681916895311176350335455466663177146575323890073844177063538153446186814564570155642406609191010344273165493544032534557300421165724850139026791942109499703230456834723712452777160626379547742053644289780989454285971936399579238147953041529986659598831783759269698078370905644415813424858602618784023733631772978811161726886498051931852061176104723579349927218078399088894784696677987984358793029376254706465647984350495159825356168392441995062598547053785136864011510824636120820108168122083774525035889461508700142881887786477888534081789604896214466078394858233712645546441906435233514122460577761122069047048029430515729402000341292001039471294674799323156509052654472834234692400639333692893552719358725278711635922000587937345490808245713744023362595147839000554037433470954929175067462626940703658388869958726734649766258366626460731461711458682466163544659912084739299566077681086260088938144204319051379149936371923489707125088677571924078876958077652229488128407791111695634375533981233320245147311217371041297835193699576931412475312180274983325140794831158988795789230017542902930028501456615296336657092717587150424633344546425377079324301129088194319122066711320199694185940963604161623256754872107793077238492011707591467279284498643758244416089531888528053854714768085164783393248096920915205582921432215882285625595716647207610860565550543640383963159701963331658621565792652955355708929299435552158956022925158690598281494096932275377932907304483375449217398248133029463058083992616227519636103703444711460628571431815912112109703481863176692162096627590153596277840293720932889556703118429552822913249611002157239780195275616657797558378293893431876118191344755662416264068161445847248355835331151053993907534368927686025003242986296994737562997680172623761591711993889512525719444513792184990851606699685193974476756925546103929210757778905484608512418934620381347387990811487449561477867525607271509030623653675067440416301441223301496617694308834496546632938863501112478110169565639798949965500564860030887763733195558125745772447224552348450601135595713705670083856268671824871416040244246401292871807954258019971258072844087024879626332222844272924374479267015619270700183995951888986727341319540471057672860864943181820934341585256498291661014412614577904801342463494488226065527851752278963891015878063588123213118216444143311375026973718050161860565441052111345928723258242685421927458380758847563937291091310373015531123669272629998672341051250943117979568139638014510460604225818419191677837967374141915257291765956214625938668732114098115185321102678011587146082008071640829597270891131848342688156667551154136972045045713469084911713426668268338389147286775417173008755575136130596284077991777070576655750084760101698741373595937252883125456678522125850407091358018637625182746131032713177189318343683210620844349550472542631398997040224275755050262378650304357150079066844576832593128363101148378142985225057539878838844797172701754552346486622264356978629500095894432969181469579105979117031476713781448112167125441821218568461183412696611578832938777390301361678549258763228211279187697609652597766711420146079448831810983663550661157446756477508034785337279548387547166175962219338613786280837117003206939211272115801914570549393426627792459200231594455639047220133276907364150307294452690192605969256172612421974369787579336430837804191347742691785013100560963214359742970971087965881423316947162065608025017180383258266449370493029694433197794669307432978893118818408842378106261783775250551661356324815134811490372472897501940259018531070274324630054612155720496796334180619562352551229913063869443438838564787734870517168484772111159741955376712201440648624173331802678033099210074318464661387309705775082529200235781250519487497302202630274334388411631220104480746619197200076436615362235539101455853251583601407781578670664969725659547284234073056343375269742979635669971449476518792392380257074744307283614058971756311520976062038373313215336598343636522093135858738622818426335193228491040054534260473436066897873022152024303173394693069395369887794138304722103386378107120312948535034277558057941611928341359562558695059050657159008812559242713882810045063879805073215048291205405438185774496192618205815817669087978842822615412296827457417426340560795272344830154434177058053742528498568896936043821102736425862923348727669318543172267908139679681195010408812275364335480854627591636131873695904725352205108766341187476170775971335585527068067977788187986923934229757152816511810432063461026422019939949819728600259831442249381153804383014614853036559009709463772586111707167836391653269193879541967318908124021630046625110268095953620646587730805298873785409831133675993532505303328746768289185694281463822644319428019270488842235750797330412741753628340790113716180916013725204593036623404096272859719525855199426676617988014473598252804014895560427892735120629126401877183538978819792010076488290141004701110607022211338626371075667630363833503810755179803790833282766798306606122204198155597265184314035040974249753975616250262181619786513600759139787543996084481933704665773130889146715390581308505333393008637933356559882019728129513688142743396218081999047649970123977718844101893925148297263145708364883787743131487136617302907644004187551389775470763954630414762244914168553864701602124282810695414001772063589588771793112958733431335028781551197638880828475119324300722939319886243090123445128376557215190583138712307872814822964272721169072097217672306998263562992012806639595136584893207645441620839400425337018583076329016026124493017698552687178447725717986395750660762583161169866435282950292918044496375810988458501491337757903768742041990510891568972027508490989188017916143732590902200639685637597701295662276198409496629229295730424798548551399536868584279222980320650110889781189810621777825110673382453372248707137821182089564200191599205914030420088096935230865416340195850120140239207002238723870672470592881099560957657440085452143908761632205651902812988409908498464977379477310300521387829188012493987137436039144847608779420084790205935687902225356989120176664631014554836425004392896859680338485259126647319549200873913202547429556567402421680445237483296175981593747404595906531074671978794299830843040024230068247296516325896455812812887814501590212385070952691137434081674875720867571541396183323099846311852315032232421785602745641242284073824613052360068909811254750163095892583815268803042278236403923763849973081026911541988090319027999897256224801410879566336707206969693864747186066024974808060972907012713301432522143783767896382134511290194289026983453079969017971536674570204172964114040172064883067139148978738208270793755500964122239887185638370858805281590815942186843895707665818642341179774221089284078141293810253751091708190552646223495490190840246173784462650871734562773571594915257801195573628200090540341146230969047854200929992789191494062934003105990239393849022850133032663207722190900485255812070539102783674396945943420776522724229506415249555519502080864345622793457366956158136675000226205421028491382983034010574657635511156644255966920009892740431154220481018041512849630262799485105881842509468708136966964695447151678820438126466307673363374408422424413759476940489859592320671784774733251082952629832050798541442741224428172640645858063681663780623387082565606903580098430320540785157558391518173960588646791766247674304463594250993047694202582074557814331380644589686832207329894795019260185754628299662515946914351030168583807028037001043699408377540492258220240569363244013322334657882000741420408210859265027820039779532338414391413691036233630883793795613478946387396909871209440003338036947610907673622167159599104974593161222546769405448279674116367545327907579595279807461379321876917856788418575002776123907060393652804761836882060342791296257360170276406022316522506567386414458520519368369314613882484208914368209833969215268656310132459152708425172792620428860345334065678366703183471808723211057883299940327797977354542930810993480037894424522664527362821986898746057046494830918732126396956667537993627157359680105314980876523221733133449465494993361921159273648679077173982188439154369538951251753270285799755850140680905261910378949219769699480537654029775769337166395171243677488098354426790722826122781481305177446488707971483587843661367682673398453749154037832781369671470579373584006333188733818723091662257814137538833310103183192427451635243532072623849159585806355258242495807387463794181112376047368746895075402980180780663275010850494031054178396334370553318834365665650361883646249567305187559318516038258811450701586886047312343945070849003833166469910888353129395208651221844018364067207889648692117530327159931048823476361728347732677904877221736296141721387500225905235921995333838207951291525860220233686094562735887560310634540122681546354681116807278916679458800325522177261142314980215672635722841633062859063312942021477877651934794185531361735769608748274578528826328786061488653924588631356900055625700851075336109514074469612701391253817472771248840359617147302673215678037448030771368203476924767428414115412011216218872410033259668542679368711208195027171266357106913252915096880021975050847445287797771767171599943786056543998582781697489106456046655756203627041773880422524105153555015900176433086424318057809375463670105111089982781674257161765165646928671111532182475684928381929023003550599820833869822313257980396287128210289221646076199114253002185292101411864396719440111364138209341808892816269243986530886405093457209656150877112910987136702784062468651464915198968902583743618849153436723430422421775737165254932996139978866306328523872920191774130145345179899413998554343295109050798684563943519728277719041465690951435264004370107235827322037576089482559436709497319525157346701712373312320089328889765735228513595969094288210662974157467804989291517362071539174915429487018587532895654618259865518137832044828558705639435040143995998248727660988727279594669831782363811736786425180971706616472864824631891177895770343804665982145230666171689767252285433481788508271525995190671979406877465249098330594285955374530647219286581264620571720995438285003696247333333066516617472198501651458581886473461199872446435932361204046485343156821428238205587998836702578104014959404518980774888549131568961696712198525687912162982863201423745447791690505284091996681146857734499183056682943292962980508849701350861199472229856270065736740148650193337375900170571497151287455261527173658180876795108092115028387500349835592885716509780902774783147020010613955772742905188277565512909286388412351515349096241194913547564988044654322541030394364368418142222558630671683260080546650562780518538783228584349119663763369577603557507902351013334582290042018553446909164884407226205406423119672161119092997474990932022252095177120412983153001569219352840499554913281381176131616187572228449763979426354829302828250667088205719836810946039809699250326554508344171137422155330654763729599182959240989537347631726861555359573242900186821609075892184935976802338272352132783259451314848503925988473632672558429503611557804834261253773825684759659448832468462628750151740539490593181815284248341810273388571346287099557188342907251385483975838040208659468758129885032013958405209899509105375911636548215939703441605568224804986274162691071752313370986165975209999698879146389215365840776131258550278779332468266649894910041618624516295756369514950169857956961284266713850875222620370859041733248997407611004010411028743450124564219322849496903169486301767225096516441726892437271352746655554640775873354074940544056013044370946670895149724555551989818022885115105895226606990878795829097656803238509065352993020116285464611076454744044160301868291740927903652018417209889572145487187459012183953851079957724678094056641355099421194345040919677305809778157903653672590542310933626432607902819698570562293704670584509993593050063299043460423685377036073043209838518073923248660112754862448312774854375419437895928473044737539893816144026295726828802203047186037543539668834245400758151938545345482178673290612829375898604000180762495303562255970609414375845423799138166404661780848702762958667909080744811394462697599528515956636588634266830241525591604451730251685796303074343913742056146566656641731143337880659000351284144945984327090906840318845045049950723971017972110702008681001471458967804070453837562238170475348682551562592883754168114808919790891015538943629879871674046918687697946851253863656911794222632327485861506510425322433949917656376244480271767995032705358304589590728388634005659414559585171683661407252072801800030349069937023363169774780296524523036157195770152582613755237614191896514333610991745076511511287024640293993276558002508403502649907287716046185682331279302507485282327558425851002745316726614849766493661483128790331315447331066829847859930698102315425577349598697878060255000609166096733513585825970838320435197289785815769492534313734637643527825269455704926895570532285531129138382074481416925317629618376760224200515928615444853284642895876521656153489899649746934064198947596004597829339074319804933458697434596397421627170237171621121909060052370601130640672059981597149115622112627823950513895829677011294904406530755064391277495149993622520341640750189426547537483438907745924650585370308961038652838704958181271506391646997633311500014931232716693120400834116853141704222391572618191548158576859387377534125564876175937105080904817491606190078270508626658259167076952078615291054250999161170624584056027765156930777703581247646508778368116185077158533775558280061134310662519869166640264162432528404955103458862152542019260933634388617253664120968319274318095977413833658306986293394037568193961185620753402871033988093264240233125788947431730563367975668848527714216643842443547597647557372167452619849824086699918404235348677497608289768683140068451966085406557001858325440659495185777419589507530971990461017677961779276339944096474647758089750238099867445963676678202501454745373695064150754662895929836094884447489512072860444073470688703527557686069234846772505427990478127015582422222733135521350827660726216937021531888937312613885557989417361956652119042873162021076170645972434195159189231080663429812548746547418892537156986947125362848126162364370841791608836814918728516333243385505510397070013750147611303099872395802370756881027394866238360416704714490196001978647897553243101586935514330506842085028961777995961566759278871607449922997512442150750599990041097603580064548302066910757423324009038314553106122334941883979090466060167650201707133682863476126207599557799665633073803978799009749322884557247139734205647854635320886585752878710813077762306932988551345409773638857079312230245864910217604105960006189884220542306560386807037933136297589514091239023568258525447572055025873144143996088949501173052909387821725417954805189398357655595322960679524838874321021138253468930307994515568122896159764262039279163897568463189965023958044303296165795367558594782732862565334585538343850311996646447670369462040376394856168161010850039514482270535368643387576850350623158902205441076866399599784063376245362354506363231242799307012432901867521885513411402249537251682685144866083668966864891280320790080148128289823500300497278372748564512172474644950287208461480522305228574328806721751067028981287146067439011594516193611786174755633258372521977469528049453315320355128775220503198487067190212538580224628079644882239296223830727363227763850315202360144667422282305213677055423905787493340337685659425811980581553336734931026731153045566943098511477884371535898871094049980737424578296502105559960420632382069042082009624839539332020180717532461798185016815929989934706440616835260262824105286629243529025272324034924086895350867120487182318248074422720617819413499164493090334412211986831422432068742942878302762550545509712581397915852150274928578182475308219236241619734164845021085386158122355357404077028531213594665579998393905978853592744799742349350718823926217517503786445988673627316433352068239340571345789285611713502363818905206810812253652736362503459589627294109337029682479996046003027822669336739407246914670287175953077823315428642009463294839399333509682760881107912522217195450846928922869014854184130692255363193882066461815448865629622472111703471078554604421983349139698621154932257514822683795498510571477282609080336903168735339531903088361591551888421230964364681230488204683565625882824241206227934661886775007966620340566422996316640659835142167255309395608493048931575876398511979844440050378142214922538874471440056655480170282837306565781143950971238527598922991927743585541219557378854640374490384949593736648061362635837625084477725085929605625801985652554461775938813961348154843082321538767459361007390224264958893547577992534718169494409427117701866317515259032509450830571808549991112051185210603825434565349611300313562095479906070257439614305793828846378113390761723563209145749911873254204886108201180652851812703132921357810590898288798682887167057004366181731344324543756069426158845359933819117992244349901994769807314349735408259157925185225930342705690860623079570996071207630940602972264658317113021823589787109090695236534075933571433892468319648774403386555209944221839271110623585453491222227176181727747566356720664604261514050177038855921741782708779601225523213138520171691415909058584478170250153542440648458429697502391745993419986197239375989642704183319060106111917744927906899882318603159470230364019779351682982032303992896544353391943771792613335426250182109864031375696867583512916783546851342938729863123998523159202398859999657042599098092067093871665587574945310974580007372783579081985847495383911135402095709053473901665646396229410730201957279829749023182675245906213340581588320414582989696783854876714417583332539356055974464260246037635208155219416563565093119109083183890723016343832391197783207279102775958285011216122480766586707263294487579321030604726127380347017267453401974288555210974782894284552099199402485847138543044444945314641948323374818341320944171743208820067519951406872684689609972221132944794685066921022417097931209397849551561986647831001106015124313942013426619099322255490383639794820002099604810990202123166465767164080109641216778620227236427383923982544458441057371185062242863270326443836490816083400995562943666900638903068614708581571555643852276740327021074550748634904200876600452962271805561605514687355846680907391541409456007273735245753641539456673426729639315272540106818797026200085675179516036608591993390061908032436556454679075315655089500030547190303478554496343699646044340374726694994982357612301576142839629630240391499928043270310360582869933112941145606380505802615479094507602400176982190956830982974873412112378724499442652119648600146683816068038383407736246731345049164305266256655472173490515083920654826936859318937933669424375665257099086027549721800440664032027222859202533607097440455833559782368075056173265851446697163296878127582927155365413316570602257093336834267805238198951006203484531335376474076679998986813476340430756031674382157174786697889578512814051150327732118394961640312652844727302660564548936934869170364842015909306218025903868143240589277386308962517305780070543333382738633022628477507491316173588675176981232689262302030822913913880458558983026227522024448076056170728427350280805900093166318954795142583102788558780586911002179056861789977968566985892808601436479976827057806414316008789371764103049045642634206202161641876764171748092374143192404371247622868244613946921915321290438564361196198201870533884101211356856203384078966904042384905169982282563980083481743226047559256308513806312332305402868978729986522093473230109355239927644161253956670690814088784211849307188052772039769484505552685932056309610184451567690901054660247700788474498829033787534811868666346875068532631511985402906067488442025819262027526442909274031329327517122267270309143539593951974650433378457959514303313339973727859553530363900132074213394479460130121266321838179978889501250039637229699153407914779227226569635466441028598486635880489640598777901216395118854631091087229653358042686892324056233422424148733718977832554906063576644003018182323239124459617514817668900121091212892344809762042469724367216978056677652466991310964123418676405332452240244714279450321315749910376506741865763519980572838387060540896973011651405664353026267838379426096031427910164283279932779401781575030585456897107864045514463535575420931105101926595634229917326183661611108727514336213383205056975931689380322716602268485711677358702066084517612575744602747867140709624590375340008563691837954784749810500441645476532442889685448978781255500602061162910615003474746342946784628163446161944498381450195993049876432020601020345216039518804228775822721464192604950000802470605591099420205577019531927611483189853260361022669924266717139715328284047110920719800293944215153750771454210519626271328299572254023668470125380518848561172626370392566485445219179070422180478528296575610229541767943409758644569815089936318194248394069346855067157830353852995134646084124141888454394476740538038164346154900824760189550835766616884284516446666454541382960829241190158298992089207791632909230640717091916265395723467612174121771292982770133177566807476177296120186750303979388377113028251139568953823924988355841903614643221800628989591766451788743214772279856949878357300536928025151463248503362966330067238528174408624974564103789551243859944444592970990450737857322187444540947661885728711655269555739332501020351004141891684770971053849313097683220579352015675427472154199877319450349702368452370278596698529168680658806127653621604308191180730920630426343803768814162776259512476280847579840181287451796237562777419021416186196817632581689544854214324841375867436778614837073577401269121448298767651604977534447112610696515484688313837110849646636152989073712673246666057482908606656340051870022990178683411353291769521930129361717713108935436619259031628844125056082132603315452835155379266149831798994006592083123744463661617879358978745629738581280674893395912189225478560333212027313042658663481102365406827142892868634414650108631184339943055759559675790801041384428791943281797136596666037627663433187315798676161099108351210365639687217109653226900005761394046008251735336738346084780296856283236745161579328693926577688280755527673635866437595482851943212480410888006490276235062621701840809089263021960059795893112012251692471467355441513243443375760140460894431379627583579811796435987345205468097655676050107893347072140148770743698980896769710154943809159461674426433903210299214438935063441200811777261592068281533091160877188603995924324053515710477831837173097549517451283785099914773053624247293520971781586575164967028057072787503331576769514833694761366865208685131910550252303202464321630342335330623516824257412211303965142070098779910072938277740288196301226687055377490817418194354153705687890113121416935317336042057840862519061194372683440298427598031408979081338416762668311181181906115639757178897582209306478583058149976900083133460779223049822054826136755146199292928478474347665292542958610075833576082073182279745558910563197874152288316662773853161553354594777356493028883991020886567945430556297622494598786818902484440031009581757083591835347467761886899746929009505144058773135497624652067881569213848150101077773473213647041044927784149440454805782189041904118683891856342317303855075096481764518567032198508953658693928417047539117000986530133660542043279607911344771770494717279027909016449865238314200279208594784368236937461061224058070426955082498841269123182718614414265895175821037225007507212329117281340086744028636928411936211692920353059606821162282824164398507621068017052094343832883607825979764183693503040750757849200577984546933670559299640767583090895089226841730393814069486478204841163056146780011736352321015908396125759602922262244719411300766815765552329356422202204811479674659295717429329885207020847846196531112284097933708194180578188057759445114024839828534329893952621349084705571506751230163676008642755139126627143973701387352053193141708748316809096086275206719878055436496881814353918455513241566255326529717308281477118987775195704237468944832558829995665888218671769012543774316562086090838229875178814472511217416035799122579849238957428316120599965732534045642017324150046811798542137457899546289527820623832843176269965659734853813909680613794977166244172424338925011196434317090579606108583163089376940225352277171981222410972984309714025876191395341068721534755866645708102574720759638840889133037168187004174234549982444283531143180374921154106678544087672015581571659430101757234641826392567684316885493647598565543315972424008967764145956120474446740006847472001998964466568503302535429208737156722396193682184952345636386187682553526474754026305965472291388129385888345678160928996397118882849496327043205980023629069151017210476136758921578508844657977562104846866438339538510254325317660484424992552058065437996087937419019763594243456145552175079922254141369020110486925398968945411345376496516531524430020234701003672965024510271265753113636364812030057637673456727427240328765872656896661794434455894497445695815923592960787800074702572420881070971971440836657419730222927500625825399633946898090690406063843978886169031771542829108660285912745315953162353204324303283955719591125482888660651033979848260353599167065070366128347198382224229140314141838316772188672069049977180631553410566995755183594038366171227182296687829212155632619501044570050799266452187778410474006315180652570637162605202636079448120333914119507601211938721973244967834394554300345071521857092167909989680074297447995236604624720484969632265957300767782464541177261642636643533977532138437751422542944785648071466111930651401892918783477291002460706896359557444148954954799284520435807145229687293600834195163298474618912473471242446868657587697428463107534335530940497965182252546305695414494387938095926503133475009594508946157004484460451975963490028352254057063244518990046749443436079224720088588869846263247998030847348170464744299284191213370669216240470128259104372093760650753580065149632110200723966126272525086862363893625387985195571035300131285240650763788157727107268714341835191357449176352456102939545913609544449428963231087880364353800694652721408140171212498061525774046182902445917379957864056056374148201500652905423439255919046609928595005400640907898995565648579990111125317826306591398646607662961439152922234024990812001711095602835837911569913683736793108252487895332599393197818514451619462359000267646327229964332334678370388472851261687284790981381152935350013196834466697866282242260907811630070424600985351722303854388932553075004609432234428244696007813889017848116341820626772181908951301743334646680110280842474463256205183044953780746519677013724247441558284488168134479464739464007773593962959447293564032481418485778052748913297029245650859969961237939835924639109182983526646978540422896341221237690505442367165374474351844564317691010103049037581322584432047773316532281052349244042426014122806920518029388725965310784623838995014686145777693878112500512527826938743359704713780796964281799849304962444873154473332679794212649780118498800684610410362132978351429309115493228663952808334964104368040469342421896082767682810103592448703427918705460117135525746977443942222154303863768583572761731188048336520615634101215018189061093571138624087836214582126506186255884095546791747105162016972614876020984401907875446099188387762078999749458370676532502712355656005094256034084783771329888444404411949785796616693699898049527562132437356024284085229542225428287288704402273050160140122206419191624609844798595651944575210677288220099329448258696986117130768863580132329509873639160310355762099243045074949118192029689914383952863586390775515969830411681141266232843646225034416338602197048174703406353834239645226128215000068246900833598985816307911820654384565376840525922632655416775609809566872897867797735429651253056761625702757874715476492572674186234032907109671880108427821117610380974312555889909817760039923024921818496720969422251718823353654155819800364377260392170258901247654743399942216064006364759317857180752398804494904876126668671731090418690250156481451266398838816644224771429784214405111158719193470016936969195130017153330121467496871645676819799641671977853409857688024396031946099401285197874560860855250293326900670612637698334598196315548592379676756841749375658643357902031916061634678500261801079710491061956720878342843856479057644075746965475738508664341980621806259629699240132495272144942284878935262556631347873017611728850140254020010090974768025073128060548591462174210543797418089562213316099647453995419733515458397131149100824968600131648574600706240470955662641767226715816998847295459486877631216433900406936138750673810804386560235581488422358970296275705671326087287415624281574958090091772018351364777616369093309723275796046076942162740961878997301681107645479084479574413955639480471127492560190520795861258858726348474826062691475968083373749699931661920784884041849015908634250582529143830699342319194563489134337893021441317523923059244829409209215065762542867334118207556454849186519682664937644248854436963455811623852903095488366675759464966656141230114777912932679475004404041455676976566030694644219232693513252542318321243778172935335788092970833371374339404054502643284808147688807917781317472107922238605050550567290343677832033830340240688109151581900549961832400042983959616943407220128773290314415815435079385881294573919809478472968417164799329048150163623843043247760184409962106983716914047147960176388739223055406944840838517946949731533497094415803799963243548896267558964703041182730682613643870623235885857850053917937376144111062510992450245411794265875564914036179421545678805501904312473272758857963754737380027952181225834556922287096350574134904944076843404329070846080847594265686772314184161316964885334586526042208225740756569376324175535892749721791919665574401380986853233007846978742308109063854618439472147855072344427690026075975542893852970169589727747604961185756181115572757782774227538710032972116172543352293917724516808300045239334645357164391681233530579685093763758250480695135094471383258108291238891684607088719799494536133485997136776130883208275669662790641127732430906213583850690745525926442775846956193572754858656502733145847756489174492343286572142530720947603239579788616907822218469660995929308578069649064226329906720159947692902826062615219630204664575011701132904949833593258061239475439764604488951098878629570344358327467691111442238474071867048040170758512531667720897226442510269352360595274329822798379010428058799449778511377752059620836359736876429618456062791139782348985098886790744494617716333834466528718622780911599842159882829656390017386956699666428849617900070239204996909287959879646839566600304710324826630667328198632586066217979111378249930715855764429148283753782987295026112194321273712198949738208222748427413849335017650765392725292295737066684376400482276354829823441167238662278820479182520281267443191903087797068000869336898783239480158313102458647384605695589415174189868633235656827265680180107625750180644542082270206822263782090850200126335186625623367056954734216734530091867777728840297476318013791841844450378248929001015986408975950238910601610803277361570429555324897516469898183818265332358540940076094294297500572909272314289757657863337397255101165745237092883653451486736387783074743508832733821823304268997037495369160529018474164833249185694008188026221280188276239827395651541329196772772023691654050163189991397174120498009059608700030466449648322362950529579423003107695956672417768973544269697820865041020747435716680498155880573470132808867144610827880495168769869929045897775410655095934140474187868957597622115645268720725384033665881052777963796498559962106761577581742267107595078389747705485746602678928666060071222687109518752872579533915353000318015426739859467569892573897369285196338324601195525849574585302989021152387368101565206151576360088666655350934309452496957901507468115257070219578903278646023408422888207646095040054789776274698501237701754539819890087716546233390968449749517870186335592244207591611753041415764194558357725808869854344536559127911458582580767489022710468311446877627832206995117979052900777428600422542278908616968632046662462482173535621575069604452959328500897585217933625138057470450918004217692384025721165256953238200619829345908469081651761248957466726085873173106732425313420309215327807984052588397992556915161810628719097696278404504743647783332295865167486934955893445425626504969517359578278426019700334886341543605766011512162428242513150095711859469009970609519057034340841260911369719632348491178528551726439571439860278416266409700665426970642231267461803452047675885710154839129146230470980668885403095628719323028656172120113991574154440736065654257721854780076124310720854353003309440018391773060194122718897217467790589613699486269516091782899921213884317493550450294474899577605784764069260144904868412027275546693739210913667214528540269239317584708855509781017575163031112328773748393143666258214794776823367682573469250792451242588992373317149942170867118205845831798174957157187383439995617131456683902859080956170848901443582857916441476599638148447033268575678622822054244730532861917903783414986015611459377267365552008479694683435205969347560227630892393410067649116493643885195619685435181962740168273004707492353159256538695435947116810980781199327606046070364464932495906425228476084807486354207908367989997912613142378808057436866938058899199865191340213553213269285765616367348896282831413630770127543976232620919132020262872954206506554104179342598727305350165443803694792021097287257395401210867584932979728546755215338930372072954104343411120391399737917597330204442403520911811583232336026583740357704123099996396129696528078169971421398765248029153172360340971921168134524488237719835081735816838076151088580391570195834762727425684628042569889399342979219927183791162987211573203829132098606784833477673073577570227239608288102610849159946160762318340883913538927414455534598327620953561571907439982323454335638642015685389155288716312868901725944170836277989394859166093477413132333227735519037546974803087571791929008843098335216468117918798875781008224848409742730290088714598586831269131334349743597040906558656735747036121939120791267133978621535878057846602314420487914850987526192721634054145183724971663223471328200148477274124575637240262149060892365983653364196153382938878371118161218056335303882811993461241039578619395716125361873559478133257522245503526397060320859532583330753278420475100676182851164838317407073927217605184470677676311452537358453287845029612358134096667993258015586975843744930214360670266544787263097476810917570940148218626662570434843755013102484196303235713206947534904664453375842520083639953008381559224224687805479219208069259721747533419403479328448151082883704663760705427945813633943818122371423163273852075908454661495401885600490765192036832504401069471125726284979597681750967417975727757421928900552001305106152391048983874880715028365844749199859627169007223871883917422027052883815224927813630390947181021192630342044444885068682738100862577862824122020424301360697993133904774874755564194475712967170338745243355909227805109314012632924330439456521653379727256756659724205617310954888188753398108953403394496839650327179980840370524128143823515733360699065785806429020176888830024649590310828736420095134192144715520505275583083712793313754595325936440550744643542056118507501261552005349900415485461356159611616329224087932339854011675893357589546125940262579444211916646499589823233254600778081067522590974762075384864343983764850545760432285240779549422891284659176120108822004149896341381171907594622342024921719494960202533902437077293647835136178335859347951121434254644093837202865727571575055614943905663723907194671581020287196349533166291673856611065357411194917358698362874282247075959406842862043716423710784098303424172130128520052420702435401493762136024776214107190058746734019069990741488489478536654244083236317310614535008640527025508339009614109348125486791980055022109221124717196661771946809867214543932093837689038610808922248126734184834632222776040420099730995869769808636553951084674163406574050945682199249273660518009782356185985434808296822297611413780115729270241974761615214778098667610363523455035325854893322325363004036439950569607628364168024908445546005274333759637418613920287912521511623828665957078831571785489513795094245406194245874637451252934808104247940272554818476076496409860187843839700927689602759286530617979370176730040968409862408277823488966808972473762957244123650631036999308497249433335826271218091373221609943444861618542620966885504979585889650658899091207668162121345567879769169760756323594727044239858889568531894626750782225861926927753882342190504932985190831840566932380039718726504037573470562429995012566989962009530824907717234661258559832399867801291062838535794691183238713356013117203082210492836758615948523121275910068104348030102645123143469177731048546005332277381538426866901402260124737438151903368239950873583970479905239417340441630476079740805416442523899881727799124739532169402821569169479838236234082163903330642547461642890688809927516513795405828851675493250903237886606781180603838244643369195195826077901834132474540432946264676199734950142928802281301009046750073749495948891224291497797497655652326066638443884806823508465183945890102645554874717372562371827287830830368367102791075986820806493596918221727328977429711058208099588963371591546521489593155644478810996108841838685577143344246455381662777616172649455502464631761623289795703061467343666011667179094364442789279617094274300182993790106005052881999213871732810454930336385349476202252801217117183994249567592156526234572757731619758948773358230478664635231405957791217848789808032782779879276752942792447031961039480934505691323398284214327538891181017525730196391946646182276832784037188467183517636623179237779777195489394945240076268927663188612130448229165380131971834760196933675425493833888796414117162448879826550164301751668089673638637257896357198922887081643536727241068823528889243489038752954295603340180333165341188121558304679024795649383160549830187426502851446295992311221143189294905930944106721362431332209840286572229168997802637752699452625164937124303525917811401686306727070931601200152608554968075072309184341769582569529448632787114883642798764274255661888400388015190094443065862937418356908080097515609478607200872798497828101909854810996450728200311317741646079305164756012719558554907547575149870060640979964153611931420188951941669112716965329213892154454495520480134464468852555698705386004362945250720059047761013659362942360409334751195047981591405765263802446868148429280131425619928361724164417689575355953398355042903877993583655742501328599907188759576382133601714532682611007462782945950314738161233185132187957774322676565507579264156703677466250750073542925403675156288536741215554478931423410341867153604218732074896403148778807843672169806723537892879461377530965447293701161451117066991978475626988751730071455766798327505499952654909251295767566168335207349193193689384300978385458977283837728383017307073826687154678179921950371878893966998875538511428167260441967922891231902687023152542951156228260148039606455669626286041548414930205487620901681584996524048171150771658988041480756555154400115113306036426137230035141690539700407885856723868700502679492008477741693623954026790100051689873470803307076986688116301017379268531898499849826371338849763295868306558218010457915676259087474056489187558679021532530551384202735384911736805826945344082129528707106389492186396979651396682404698019308541241206489532717985061461343205892267148711418014783844953691206355814856306444504870214063969572921614927412928867436641523225037505322237487010849360552255575545853692638506919134467222968649368959687842271649992713789746432470538810891037042526837586839777336225221045289988197069631518418992634159642384792502786332233438041392177138482321436007275867097961075493952169172577546425556188303726897805353021352882485142508609197724831848191368954028381896978017501981595294199978763476541725834370050167720824882924413184590457886324686509541140409784470738419570973539413414725758524759099906282412478269390228401395408404104879759567796470970459654466169765467597391526212089828683341457614236972650805568662990482777360128359656727269773642533064301675320229242124803085046007317522511703317025936233735031510183024078838639895955001638105634465117090332032051236888962886600938192306673861995344898243818360336136393191132804211907316049571779323832773184556853134750071917061350833756677732197152176591640871671390613532249197286447808712221051711736714830843459220189731753666972777328973250449029523612985745615124083492154069930135144572358920613410980159563336778383727518397960157565203323416122966578977056418460751743324955193302284000010513066791763429804455820158827855707589749733964387901991083155244091971011230117532492686754327158312341468963694489392996929829629335549673192542263905748150135687253046914645241470327088272320921927685243053656008774771955389152994894995396107513524173241518093628569703280202413797602832468878302805213769281626408277172968315162978452015003787578432133006521321301685408378747061092049752669849089806261365992246196814278319612906250853640123795999900553549834569354963256520847000271710507271530261161518602694065218474773629344982681994733696250191357588887033605713121434523826762453681616304215290690603380239836554151845734980397382072908538684199078396558050625862847426407186559985184211249398936988594483130154100988056059509319849538022129249746545888027151653517527950208978694843863704467144405697492299802755703556490649541350517028509878825314660884050157516760086246169269064094119852974909614114297916971456629523050970305615934952736829545476269393036747171683208988242045135590566701008364715920686080932771004155911388440521331963660271022610049383360545601611132765230294458789678281399638163995350781023047928052404853465562541957033354983368120701160385667333311859290222466381655152285100967830030250821219470647844348472262937464285865528589372316350214037214264953800193488421310453549766002716568863656666886051878770818419281571282904233418945033727953416210223068273913708123240788881679632820263605177350448266509212236807783758331948559508250963582188386801950332439353682582191010536657624379773523730624146463683265809908811283010734351049228669792477918607736425924403405281366257680060608892102357551865933715049541176953569647858300082807595419680788582066889282131267766762190405841880206494046480429882351139375587645110830144256580139263632790498624600315525465882287321644919534134163223566964916980619746720425018919900022099207813819680929463446682041725393401084819041021924388875412091543667747995507930007939060427769826603489287006209374788867879128015048001197486182997264737340446550447526050745312633453418066303704109614041263122161444252519121930595780531313894118360251932836050077239715188465688639851807160569634548892944444796134455196907575470932677882107742407870261350137055404377072438220801234609242603159422281061412207782624049946965055550930021226636061131492784270295238845256582288290997854507102445113752322465642239983785556154305266729426428447710825483137289364511541664907086721774689811618758687261758404516192077312024352016161372654994779472557026621786567003685670814756434807537425331820321255851627078114466387924462806737203548257642802329328152399217059171810083183808442565217367550651128226792778884063951924099122942607669951389711377151552632552330087064378232621742987228357462628016842234681548347985998049018468541475304091692820878025611472145900025746069993068879061224038385732743125046619822318733860664193633960363173959711320762864556181558067228711849979447478287239884898849193218396125560590606470923229741893566748427613698990165227159528622839623841540685778706189241883935350685766288035399857700393287963213006556089877957600916719405719060419432026983275884405002599529485441238898763920794088881726519331706067027785860883076274081150399376501932585871241462844926012324198981028148836316681232563023167650661619677191984429741415164192505056249524058174886814786987098567871390962013873409694332579473847626807468654079064188495251443826424921868444994185184532925714279723597226784857890110559371284519138793772011903772414583034055704917964356164939901653960930606271908066981575305207091710883317129358967102070247069542138529464657741861765819534729993733613917341462730787082980483596898983764226192681360237055073847784526398701340021715464814987905708706727675241475060567601002311611603584941248408739865289024624656380516876471103714290704904304968117215089877736930119946407078360301029938639772542848692817228923162458635692278185598092680635602237525406476305829333333937398357819365292089478877235907179103468054121039855191149502939579701482033274083647940278995157376643261693111149667459949252546583042224563425597481459086655504146940351015172633964340121287218266554918284140269276018854791465679585199939542216675102515225622732095260906153287320550307880587070326754274817685916344190390445090598978900686964404267069947530569055624925642193820628207594175945191905323477258254536119203822001921557299682894646176241394935570988689030295603928309702154104938112579115694103391394521327286690072768597575149924713092896452624839577825707057452328100305479136795868575499453566196167575098908658366936032975757272093647710896927855228090049491361464868761026577848979652286454914951445433883847461567287001088836168177801435557115310617330319220572866468452989626519650793054160518311958692717662031392366378625557849462787976137702385148503776755827258264695647286133006627126209288979976942125131958524988477303171287499834189756385546110030702138098345840075969928446360861524483348005556994871548911559226465833368087421335661677878590825188709615297528510831702677010066011844482707851065176038904119309197971540011415427718247814879180518733454357331550156448191289173585368934584790421668050633242442407536017320959328008889367112955738628897819142435192814273868267860172519452931956471987113012253491825311384398702779142340399357340839660052371815303452212108293187629841538527920516670184606088196672615368567291249444710214555413914440169001404933468984316634981780372579964375499741415081360908469312737507348568017998436087787467437175003320003080527806057646087219742502281140929499942048238208282748578553775130567686507024174988988804860675752120828894828053366205201595359008072209501168132920404874044841047257055418138223529152126887756612505696557895780843043616866936564507216767393922265080141428222930367006971372090141056546930886762171699889203952226028961503701390563733903180500476215935281792108362293802364450056746885338072816784457398631846063037444204383524030300515299074394212859194264346211215696671020769658940425114697175611910681212978270217313269458354076065402984481705882786863251843083216012258805810827690238244249906096206375540497264709632537149338397062417301676765368107389200486191739664302627391494440681426029309233210133737242219524535632456621434041538771690607699729113510014998201939187808093464190115355257473201559287768830179170835556800062562764430281150940522198991390923016685954346625870345684696235194094119626698929218456463553503120382850513756421892287500547781869208073123286225889533482885719523878563796151615170507671210625474656164668775570229385698360115793127974935773846088121894012359898157602799507752354935578451527921763857186003530740976357069738161436710133751135279818183974743049647826995117804628305134228709222486647341107215512124157353824063714504068342374414001533848768473539567182276242327650043469339367527339383845629121077112927582918307049942688932099041316762176175966134505962213152055529138139652088135104441478812516636510800937222630561110288365062255913837489861403514585639736522004464331475002566345537092628838986177663207923458682499457386958395908552194249797951532498437965772124117928905716835586466342673942482144468845301942771287573668734763980033572945366653837465304786190784226328002355107796999343017800951858597704508723899332653988191660940652845164022585963984816778748222833350855434511712201276597812383139071466744364562962858703942375165589723306402655111259106934249584240309991778591989145878204972242054571617467287696121861262422844119687212552389561196991481347734083668935343929504572712754389741795492547039935459862982376339220658350088940604049340343307948417395627826713198054772447714291597853582336899948892124030451504452868554492714469767561068111946869095396935707889986270998420545712910405834309196681054681055067360594350750832367713032107435287382649427575130759689620172055820045967018342264367491321550796982947462752480068562435046705417298597152546728732066361930150018698616075806533309664529356620040795998376493070526815327897024295066545275988877312062603282322122825412667173185584808103940016146321793838718652724592657349156002449457548551162534110871659626511373123136024158348030112835066875552079417121008404411130290850674529333933056985771476874294580122935371451293113023733478718112433541862701442490330525532217500481432319627652417466365522984079072800400146742694127847931782280572922076085143628653212089145234265568732236002592193326998169784400509657225759155843819596431254202150178501040782313718547934051337199377172787217854336764228392443148290878476929753845816176510311633177004526443227688291279725190619498189004502514932326841676148324133342524347329551523108946857636443793636585942822734695602018823198842928671665178690170159966152014941231006856367129419557094189651211751631644505947478495207343783113502838047548743963400429397701502934637679178619868815963518579706574226736783289433558862764171831235333377552584502416281088645067338028079832977621180965493024743172156834973087134257956107654352153150729521373813957647423216510281794588715769450871029569540213507422979125708773844563927545012172290962441704783371320633640352264889062849379495827016498865492122392808432847439223986356879824279452634889943953094059058044886097508797191289600777635337253276299283514555946318241879163403577316131904871133245743084565801423061936000151311882081686339006989274193630971064186033275007868624239385875683104296684280273923791863538162032774033322570255772073351853940947046088779781436195868508099660508963699238219395958403450536941865801951143694394241800345055785805906509607996061927130297926260169788531018728231950000119513604847625482946363510917637057425517612072550047741016920382429661267661839588723298546425961195159666874908839324315262999636117632341202976303246024829213134491041819042688986152596334580970952838092232922676029052829043773237742962090167081249908648326413828326027164292790189706799368276567693877770744334526826659430256372229341158950977813220343878898500688959139704396911172537114605717763868016873980954643038752541137941209676116308980311988001664922618816158416612969261222657930758755223111842984407795822062742453338196627958749421391657511811923191896671692289036017903641588030265438091238408579853508445443442513305059922628954066401286108768431834918783829759587839413194119205997695037162380928649350130840221036803806270052778442166934985717209651091617274883167538226347787438088870543255625689807124181912372845060668181165176086265150791195443204914418531780771446422977527382732512268652610050323866657717180583573908100239448891311801455962456219924577896701455663612894485697024748194160838650283630016428859442069490527852288070003190972643335903879092139101210694701205458918626898721106579279852347955919919699565757336017482380398473708324928330570820178915518237693834108925051658681965784777373443469755703954304426350614564222028892286947171215623286862769218159142051068130389311284957498178465302239950768751644403035593673635629949721955981205617603210842805167940484841529690221884776060094788047299339334798280843072873713364239739303516463325339845610965010027557068131406512243176426764760855720298404701288540544834760897752468193979631802007098683639725993150009028729998559918817803259882938383589436687792061671078661668916468879749520663738967613009484361120818628702033120642924051513385785404384738370700559851404462575156922761294928822926075704695016764434899084239797950613518811020913388495690961368417162089192432432299764977536455712757455722287036840198636352800994765756978687173586446189008579934651355418440306624527862267665644162731231105151479625979895914139799637998143015563954109564558664396603534941461825313092158675951215273758167517314406876347201574748659621475862723683080666883732598988838319974799902022359525729260402228944934418005637006605378911967128870708735568783076889639394443427881456902380674220454952289403330289293127441690030806116582504279712084296218726059495147844524228841768725364581516907476524919732914025851344044843071837503366025784092173591713619910344769669577565638398495695119310484573490164319787644344512776133266555935283221325644299055963788253267507194446123958718062735646237024817184639835040574734443037504690277410975243370553165053863358279342313196351340579468782565864057375318676806498495374747279992132062560036118025080478745978059442522680508144431172684095559462433687627590734965919346537143363521852035923689475342073695564548592971508344219721595802573337603536931433272165090629983193100654521108162677828099003505013525440104993451663788602802344434258852043680150647603329715857874437926290141980858350879568861731646808797790229611040347489483754380641884107553539034089914727535358878931513903654792313106762261455555216565554603108447536818178297937994148836752558786297733405556621609488232641563963299428109157316003379801351872316950362885135788155805704666449449977435383133124566877119405855212663920433163939332516975255815018278465486938248990070384991720835636395884293364326709978575786381457989570289857928774975339918359700943723873390503669937705528119346634351221755953442448936287011716056382351326513773700084919446989831596344995642873687503094931411942099557909499693671135461806499949381298572386940714421453094545764623792621195538901355064248151191189095879308708129773713897027886342976531050038781222019309075103027147102436229746468854997277970533246180128159293472770006194405918419255735710114554986148214495119671849856065849989232085291218640548683627132934605180882940288220868227815666516314430124277730936743029196994168455416446999083039813773965362458424439118927085262709966207184245095200321495906777357281729050569376352702691268105175056950636437398888649718384978618493064954563846288875871184463400147339350886703635915101921975243310234689269468974168728835580754297676820124438323342451880939908964080588804097366858233116805969579039231284601465413181992770838033598467098216025901575382906447097032509974513847821021352951674761700708045201725341652296207952451441655593152096729179843184471637744677022576136795513284247649678897167628328698662355175759096164946282291957848013716987978332061946302764651171010427100882103876679976448500407344875393753290229192595079959959900614164297721144320542636481156518971474725076636009291827910644787602171017311873778294574319633490386329743517275764583323954323884097564352959238038069712681114293883793410345173263904277463712019028844286739447750173324359996422008386687872599422631420866299750863163366101651737602913418435070762781302313215893126139449743780426536262115882064514357317817022527745828381817027733589370831551036067874710708324101340423608564992133830269305048418775904856461031533916318554258194157049335781170871960748749087282394376280705106716861969857004218346280711215902346827872117338598813917556200328313107336243687710124311957143792730093741056459696318732684085138939902430592451498010441153236527419259866456609687423125767322870796030966890594181464896037086050883922085519023345337164075553259301333514066714050961168825151011702882546551873158088560804923870033167610288352168391227270280979694266154972321760679633964798199754758283899814611307987581985309778041117824800389187706674264048092269153485732984170834392401639181785668732266031238864005533309244885840004325333189396562376129427509819622906970536377034857795569655131785891903412674386588157443664998238918281123641458965890886345350641798956759307068083186466242564398593177712091228736148692117364099691723073516351541321611448760928339003035389760361866272634176984398157721349487087126344830056931269869540824494532882890533374349658336120141873643531284234106597642606246550570155336841862034649568277926967806508456540075605757561251858551710062953382590846150652899480244407591193402942445625883604545470511858094330835118555437988707223799487245590992037251394256827348613607132045049786109860971226274115835126253505079667839261829237601110064236232709715883128321839427187693726977322417226145914340037579980560382175664649936270444854790653500498421025853582101735335029044203500106661480118957629720680171478854478313713154579084793189448819262067172110568493805464140916199289846499946789884980354035539675742141745707393292634019603228531389278346391575936622996201455151000917031105190055647333449322458979188571268288545416996278020037216809595384879679521993607043790714118035771505664810993894407512006749283414524699784635110086936474580578475205064688436129605933590246215931142898479555506270009567567292418694863456146739033853355028787729197470765675375354499516603071332610554343608146732273345550369868887844403216247742705645919530953711002026176721684290310382028533304846169391574494723454269094852638704842367029003470673782397657872300373494970352084192818525941019447792243144760456147426774662099552632683124260309821374026191240824970352305372683918557941970091497557630308990239109924199859697854764985913586247453560803144708563438830355019362419540351386895843196536865481296451707096556575871797017907152224323376359631630654520477471038266377882825158577903756906337397726394228989590125561167303119477688141232228749426031456922631664582774772248891881591856329955564774210320583967848795067333278683157714347257484330597660330975368035350969428820910519183077623479907711237159286822129544518882829935519687775869643107309768440726143699327589201943422351400813127800779735976330752209747731535938382884686451205367763612404060137823955960620827358084529957707475729071953300031517510696791224223309983811737193214579031409321912941455168870045625595641961107023513333380564729682392940590403215610017333940715076092991471312832647891097581462111278889926695409017729460509776960238924437028098812003828244415839001410458849173862239532814536913996791640444954216774939732356854389534464841590693443732729971116226751147403805443300537107853450612519332461610210490095389942191044985042850477146194937361585471082868759758126097575388446499655253282666092099901842164354653277096817460818615281786475791841966214900626760663469173826687980482692985097760960396936108604344348294391997916511924400012029794517900039337651731406395563448482194541417288386603611131764178943849592090522449329747976136089932155196141750141000401319658353819692338290362407271506913235815890149628956846933970815479549231829212381262022344560847719913097650295206216967710763034247089576542631580125747940137753343392729821980236329731868933913324961736980650388034487199422035265295002499654869806604008907013228609369877707094141454909134159738171597753767108208480869933907762851778706579765384907830862362149568377220230165014681473037345763071556920574143818628895269537486155967987990511489731224402073032187401800613669920191834052917635916321548575077361857448561185028439916737482006318084309431073529113190735330605679340511667202292023799097341883294466354547036011170075190956858079829688865610276669513247207960088884669994574711582463678104337496656056946923043449172852517460309667265140922843937762247783524459350443061992178626624958533474147651186673876539001145534894060544340024190489070288005914243341761196087955579008180063930133012974501135496162108688828461700259921074893092935868720723263683382494949904894444687312522079622711935955407863821268383591336263010749340344796933913787626198988349002489922563496388750556915089203783790727422230135755847498128875997988627545488836377471037088007121599390633292216432121012978780207004458692438937063033751430618556231586470636580065333814395986589572098170325351558084828175770706587016938782129041168615591867297062618031513866634659276834524276601273362521041239344611226570216361465516800004482754272593832069911509004666971958985503022578472540994777641384968837437422301305295033319367585408167351878137576410037130267032155985552879098423733857863316786025680964638087506649088994221558108331373868741985351108282025390250994006003115085702901492931534683560628141170300694632584125841861671910919390210064805515817594060852819933336255653379165149200466453665681345423286424467294082223127791202409372486451566094710377891543451407759060973541934284114212925183066089551299122945326124250533366233113033538230788518478581040171689884069621068280818430182404457142549022433526100865806273431887731789499065783262061287037833958507131454966129655603315645537512078185710241824811021191627043812131043869726193273057957693189713999904170592811131019124030793965760440659271452190204709537278805878299012957082388025025494311679549818307079670353631012020599906024083415297783688978985296060267847894665257603473752745788772558590674816204383338768220889255563724941491863254594760796047948899303868170808853525980181863751601581302427313685902003332355577790998061510543651744470017634024695843601313209863738671978388387802118511266392045712582258527926216697472997700103555490534195921760915811391471560177787415516290151656236387982770825819278453005710257326807903433144664606886058759021467815280886743192913377657433035796849004019523348263597337321697450073958948297670249584185904213745330435583962049087837558495022252970181244427476874716909706964992076785221873957731133078434534472890672665823243013911890793942839872019737276789337611510677401482510487763846582459307226187170485420467687866531150415699409102637415474146758011690373441265271201415695387423204138806408319526332130274941017953993997177396499529349017050422294255812406686836809506090017424126169185236069961997453472458535358518649303874646825083696882342576641011396277778106633802109034131723438403705118335628159270169228766936600358628642159663685014625773529726706487925951223735697781225123631532197344663575426835677853258053515529133036696285039721418770756555358943868601311272871287040190450388593897861162889184955860373688474561432941025857516984873374485267468179363814904126548175853169903197155792144480186240323741698285190571089970513787686089468965682094929681091319968997206897016331691110703379198175705918675058200514297867007995413606511160538409706283436884195571353914881700903145360274782392192777469213673621282862155030693071834766630916100553571261641181494242034306795093397773811401784205499588403249660852929573602969781897198501732528089561043131272061915653111489672174012874262833370458111157849314963964603792870375195699027894613223002386733650501437437197241373409425097503479664211156293534314838530882997153665405149896665134964356133394490888287367260158427480155632772341406741328065177845886076074108327109438315568849450610592781305840850333235515840252301965291526813569556644578006092236868120808882614354688019868821644933111221985042533100701555793591226630150101470018678766523858570127233320348735105602756007531181400135286056490658646182396413277915860391189988391862003744226277807306153014821702808854584739597647104161132441834964175659253558383980237523656288963171176234931062465351050590937444033405846556488105551683822928148104275959772172427400903944821773318248941959731292436209311483634966897274020761057001424116897943556271776237000531175919372351465728514028282123294966561381200902244271169453218322060575904213956717005433051222449414196041398057769726195430383372655872059396324379581457218052193911959132194783340407115193597204917339347986409519403960502826395681691183648246546974977648890801393730009780369668417805513709483831253415932354391616190433202470059466086907178953753566182285687749721928011984643649706127887405550366155226746220202777774302972203223904869702513820750384460081865460784878575091629875035063199851027550453806483757420492216140422447316461997464756290084884223286186677139655346303622564257069820378042393776593783987554131454574849386863034889127151021619209650557621003169787222752893350815789071952532084614138263570240810162812311013361162697067957469575844982947627614850573798617484088595775899505533123146017997911856525091465059672456874366499592489965352519516291563162116004975168538140094205257388879281968162366912101195826902615813712085355309576953914834142586042682502818129004609671354384730464908346689369211171842810727540156927790849281302725900078182402878912878767908146879979841588799262180789933515200765910202019591138814528406724905935769127133788870523624230264848516736200263877541829553192311208508610206775626060900537072689508441738633376995855876008314975106743643275681151673323913719163515965670293170607773254419504082765377128046049754901291462644694188280908495410369672795075904835422333471839756673562150935019468866936310369178798251988047307161281693376283057051921570562866774554817036221707678072369396811761602947122734778586109766304560170917690088677716937305479170644465077652192286425564171939547278725565479567567272075086375333844034637570219974512068658571474426877726952820130597151666673496503141271736572991282178206935836457356158766103398639241908341392465158752424831324086537959869220009982583585690369542664069630590297825563207769676116773711460468008386164068639995415618279519999763608112569396979735158014580977072683812371591348966030647905363268218596163654621933901816249482649934163118333722325277544714737513712429800245183918747145085217878060984563346678810143388210165436631527925336542646591137340012623010014496239835210010537916154971935588373855549519105521759067809560348437332505373283137698806088698893664526372635695073639949386971202852405945732345233891363593300220832165389754914969017342944544008724287189353324446897863125353749704891264737390758988861631558459427143961002283734958759016597023840704768100438622821082144710598620262405438644343254036802077511544424964378846547486629337154052885194410387605765184992471914044484692253092847653213619588645721294390425441912906824297519474648748176960278578657988902543943465368684131441030339045259863997249844628564472432381423686560616159709656610890718272299997960063814392917062673564103231965642122054786293042014293488991518559074347596219069558370090125616701063360915982393067842797297098636780415642376310223790605661715713388446348794210835941236487005410782907212032885903832264855109589014068087955636597519542846918481721517333087637288011687119118583779525749088910305734538317217754971030202776949264812387380693824993339570984225332528264913846411361498960306365771208437275588042031404072043933498759792430851794516608954275420398715771684015897584037117399715873315476969384351667789338410522631185395999342046906674738227744600105966004979144187910998764389858968140695571934985622133174912626944688006960505054085241034870596623112552531841014503906242931791772794141028990081157829267116848103960408474837288581875662549768876479321257277263076409250048507117075574766664414274946435280363445607445991145239381096671042163637593262025618121629725946115034040257200245483787584008643458306533385677537628382927545792435335763280589754165215524187106189074368159721483301450034020340337338541803270444413784592144905010022999821427343685859725590111767735174768128781610113787953105141013738403702008018125187088765808017388915342449664202826730123715380499360958331864815167679973056832202291614743459977137392645224989583904759922243941518950007350117720227199812125090485238504667774031296382998961772621261192160096849398070847289564061646266967040239814912360413778438378804710759267446168411583163043273663084424920539846366753086421087385342640516304039906498576481893354632931448718863921325783670280250870427085421548853813643554435037532863256861915709957669778031566948974571796636835174568593041735921339788880807901797182532827242867589933820367903187531464292289332356551556331106334621950039043254029453225434129632508171034082722739624773267538715577620056147675619377260818115624856333040334772390982640685240643735408100889163804953447289056438701980474810809314478979578197698131897419640241488840052198007367116105670467837342396409019127306442274983478855900858834783570081028427442389421123766239674294279347627519425130091476211734551494659588166425645919282419185730980326829771167187137975862538955788155623854014176944655649623865128124931053414175488961669602802539368819228960014783764373807375293633964234137877771796730103947469079229658112253598262425278725098857878410489284200185064424286144556593654103240636908613752459832251498553378880971214493527259516535183061702534786699656793043310022152900358225929774440374446045040574694787379170697916105628997762215565552086434955271493407161346560389143869478497977714533730029463058231496660528581996663606038798368401354926148548548845046831055624861407188330723882493845332873819807066005990766143924385524498030015298964288458968806679909281200350211873006022500701875478131218828902258880047772508135160783451323730764917231463212055260625671595776960416813188434359587278140736309173068147223428881162592539400563120609739706994811312283682285725970786549569817201705903533779997673936734662022132848005493520127385369784634526802807691377732002541673035411853567612759850748728067748031225095952522776727745957709109476025986962944825187983724062391109948877037715381137572260369001035638720022835943096341489761950545799700209089401188921893331090153224437254783813832576762689253641691092285717511188910188272690649458028391543604759652252037071272588914541631571456290099408317646728988888362048090770183910331174345676427884333186374003892150939499958102135609246740477760003532510567463559877767584755417788404160254681789262337204492675742858898088455083641395132212881911177935687332768524095093933872056852550645836409583992969170815237817973944792347943378319211676467964767045579998339143001043036436859669252473812628544610292363011457695641806938249213461332701016209616041154656017476376425035739812406990805340484710325230184853801774240708455853238809585084191763255266130930749453302992105522676796037908836604578192984060388452777342092936103543975035145036037859952527600987238476933110289015039563971879753962069780919790768051621351252950526390615964511122327466576518864053941511488163027551847658489107680900244895115132219558355437419673973563399716140070645100891197695605237499455178057281876477664955177288564811479052268580977152235395823632231827209366106192292466328211154223364814504976516363255159402250373723568471128000039194756948015862476064282417845813140695645880631111442539362033891457438892643726460308931561481921373746364647577915289457801892882654063024527434211448572544423346373178467744485613523036161664888964628883634556638454523397937345634555659366678312176241059493226363263962037042887575782206615215468630166406945066980536538374994463996847653427008310700730715374636636100194824835780662539291681443308825903077698058216492999029258464458627760438072642876560627684985651381563079053672283550998853545980421433422575654680818865015087922457865823855186131000776071152300052806808474851870062677173559668854637537785639553372652618946325794467660042351077647149221526629587886012179695613211611584841057588386152388531866334604362083931108611587594272695570577289174087170510952770305515521254498247875496633239156323105792942682964722160238711593767046455740531689195189279244776755285105537814257939595184158730185021710269955401616905721735369277107628167525140252480542974714689781554910835779962589387413294326283482417661845949438372896120511831045177083020398100862321448200445253786969359030740248351994845352791278671998601231608836579107566557862005300512995309616680535574655988565257579041845562263775503725725864008091684415364574924361974142433102184623722695143125096537623396532264491273923673380060487004435762457766801120658958140598415167247082310964337526849345823126456882345821638687020045035462603011797426990869739330598530035348593048184508330119073300110635397932771829351389935021395291603382874481375350830535188947753596919869642027284123686020180426747536514650020115460226556479893944766888578397833150026833038432018848755000419833334575636883978291162483943682021645925841421540904128003971372435121110419478019924606529562873824000242776341277070628643886989246655590054450050044789480634008995250375840131750706580775994279000561711096564749289430636250811976711424399101364819838998926421441266087784077662161463338584010190043961340789910871814734241920628581962232904780706745976355621598475331184227453634838106453284402952705336672305094001216710687153065159929839880857669560748674846821905933922360138639051472564476655821575943115754593925734220285851583228618585969290520265631238389683172701905327011827753636415210504865363372309189486080386926197629624031213385255886950921350080897413051111732788655352041995798490919102118605038930666488035200711949208095790353934297831299781514108268904899052915404330657742831507646463971869262044613117754922289159318352137359697707503558516186623307206111277110826582082134274913626388892072087149934847862028529393605119157663112770046903496000208672753884563919814466141262931101899206688889110684858434322386334789317698937040887818194893300876707439544166290293015040053640593732932539426779375101910870587603287939157601249041601956078317080547481534056796542877853129079907538792508759673019960211234238585739962816057669952667326118226141899007518894605272446242003796718555611268888122195459557363767709947334670456006706200394957484353934583374411968842385579180487856693911956481572284485233710117834653400149763787529702140984643585865534602884664937496148019590309393415565817575890357085807141498353538383820404725052361507185149989316195073733652068058299522217899117434500258381141609769000174309589528283481200367676724247986136882547303798185250102831180388910282776558544604178295938494557733147843933465677282915070373707040593122631283356869696503027781202565212895592630722325358166438708422456295246702467742397956759120033501629429655119903165675586830161121542735473591744755902585725406750700202143796582978291019571916871535142986803903756172671850000021190068496116056198057223244090428998855527008488856508571485046259694166796388648687108755014265246009921480933850372836973554878302711611215439182651104377710170508820641365286676251053742652690542395102297471471544209237435377922725067130770735815604235059543356221600647579834834391743329890217049707457637432990979886213851513522595558275038958055678542881829641029952158740195096296917662205771114535500527476596680382702317471879345989295111752859141968089302194715003660959235564170096875896336375388787840993435403430201526785368040437964851715685525543253080952724335199639414244195888588726465930690991522200056321099156186418114867750850818780552018421301423129123447036117527873499520244643105593491534222623965955640570754131496169118310071968937887983356903243718059625439337171162052604381123856341520321972169912736286652128212075330240352047025944608011569795889697751430116690244720246691891429291841586010393349524318041509967777327866200536289728959829688930677672328531610185704107892535934211963100339298406567844474330670310976236562879768235665555207258346157027901258894099586200639718083710576827833217188489244133515563689309221556332023018474902699308200692681620915987070494387856741042344878162482524996740878157833987841722355755228686729819798655109735254197717822232427722200703168855912604463150799710217287331166187589849428435406718296651290118433640664795668799189757818449005681088289138315988104502101911230320242077194278372102612434174224445687525686885015294953690638066840669818274363392644569663223603682378642359377783719878151348629035613490616796430976041381214899199840243008675212074027444435197057053261296997665438369900757754475433903817596790307666570566173848574353581815086572040761510066747129856972145722280413279903214725403443000092310986725971847293004742316341541396380309463819121324259583310034069616676295092450616075903047575598006977580651256997079446422658157737530813601429049425281075983301392203362496575554734005922547765893499892049716969906723376644394243416997258463574106062362107351198004004434289920920646697491776337688161876250282830363625778775942173834065282879838907561799653777121569207792209046332199043663474087232406776858308969564995006058096949715436881045126154577745657386812829372056025976144517213977649965243873730941353542793240444484057982016258324110821547449532905017752196346978655796040288342670520610980995380606649854266436705216838907096644078090362547735426183344584032481555829176639084616035035277936618073127199786322717654730140111070277729245994582880853045929021345555477349070209807544810393941378167209800642543725563909766221543308367163229158510764519746488993569340875090513095282238510491063004505674703619702747621790744666695185821106726387701857276232942552529390928785409288167040622029380184061102622078666170420658173709184800672522600310137991138804994660642400715557016187688529912129811589055597523132130816970513578735711553068132012910325711898876147496938178563242958877328050192111471108274059885101332929320901884830844715165612942671297890646127613977383256290859650423394790833159693363516838624867659869763603362749381564689931056865475324259739566407337356653351589247488734955277207763763146642001653167999156436549608384316643513412714556325401677374186089154345841083081845001492813368735515182633987065779471529565581554465132620033078542167979136807939684482633908659541437279445299076853152996783672689057312247331831916797305258933244008588793734010796065790991517872825628838677181321012307115958097944206256274918952692637630964099656678382979306036580892235702178082462004136448435110130718891733388831520411277195814307762410876913825033684721803458701449586961705040467837874827022785351770941460315918235494863591783815365061753661656595369008846972266682584238521099101705425691167962708953551927998075954587780599911363235433922380115232154056885919899967362371126860710527357577044913421708995342245485231420555308636266938162351137976057654556423913847390710377700065662024717825115739752907757809009619635763474547435842688173859296555468484835805385171926491482289876079064090285078345864243749241003949295597885307820283568075390762986587781826542186288037414815551764070845209438667235264627747764068055512350741050694952549910348829365035869309749441914560324491757634529214867365064809721676844902745912512590424251532652595748958561012736683017999501679889868248386879570072479596041113678009449062024849123438702186492348385270725811574492399167171130281967284606975167451272366601044904450170677079854404466037017761442733573548773481446660821304924932884015461312104627517680647819365834016069445346623610424232177884238641890306844417912536545152282123819871213152306469289936523044630680009373817874038076301757104512641601594007394850731983420871770011976451037235479359651516777066383301762658413217079985447073580696242533710172262006449278999554002885418297886914802467091515533703232197791590880264218865069059168612005977682619357541393903434848772560899134327522531314329474079972135791880505193999611707107416744484340971049147404425952586373165992775684322818332296734559595605592143490769112094072949542334502094495192322417588628801012747505518655384889326664063534373678883705505018098993960447267342869395559259127097485940160884460977187877010357043916930607109804207081564359994683290708848470047833332794443976862167137392880330375469824417639052038056787770784562024392704926702415798863729515113583329277206212710358841414811599532106265514537769121183672547427184165204362084608846823153209695614271775469723572739790208505561924305310115439030278067542048104303777549655379481262638351154669561874175948751021073739879908738454374348635616641922316248791093131418935858881793745804173835882175426175245887395724582567208174527519926536211131627405823568949257507543272481538472578016301926450939064331157842015155978513454689447531400103011758791773494279430687710578808506208471321485431541602258278407896636989896746969019189503036790314743870012108675814976499219084215599837260519855502835657421932387081098626518224948350088063106745221864624945431137181716106529619041107071147747038405607198921289390416802516852279554664530314159957013006058678303663794944040121631601113087226072046153403734482182644976966925659467289542865577151870164068531753145198705611145220382652359888440354424579244143675285586255784676644366362900254121288311559829122776525028756917696009825285917974244004661042027695767461897247095276424874020198193792257229411835797278701130966644490289227751519698417583693711453938113617689690768028533687381839620789498318825035088163315453384220458847958777564696987405478999464451867407037895185736190215590788763750870880098363702933550821872699685350506730722034769920296734875185935112330628420945484664161128340888752154958261275374086269212252380698896867579105700615268785394212474182747424193108177800710868012304340102617458817000524781830570687954088413956330874801791982275934633060453039690266175721122633989072159990742252611376800746265865588071091495087897251981831998435853635858073874967282423440066740586476927600176148147221844991225906008598257012394438495738145970817283493940012054047607165610976424454346158901558171826148455194065339430001310239113941756087463428484389639658083853527721752947008110424523155150388824129606771275453532328294853633675309043324266992295424674193412656518828821121359997735972114238176701972767624669418044816142746682459037466685243100934751765143377052829502904656518870490247033867968332543900505688875308757017921510327678258381093778705034335251956593070519335964043612170824666710072841990679017921788841482745174451337443748997194896727156356502565010203938261897855747914462385353711992515315574957854634429920450975037629732500940809844559779550084814863134883392542471270267353958378510064345291694425465130385657379958152828902455553278003987296503916470302897323226902144343700728171159604686596112366339848547278333318288481157298895607154361062420409557383910427787958040189688545391619704452867358644118515116786546655988083170880345146533514335882527831464558924086702887545011434997343962714080902196369870227481303645955231215412434968553337008702062361293381310556403668560951354905404435114108138943000111107536933273802892927591013416617821384560922567658872942360227178392424022470767247715689947287280434463443568181888860580121126665029881830078633851362671212225825747703044198027501624524082166107166958640459757064861082863305692480373268788795158445946061293682557419446654437424459154050036843251176106278378787556931321434533824093225928927496391587200479695214099870014772187470404935963269258389121469543120311710946842261944220530023461759188421532185161164474049367930358062807615897105187192628673995407225279697521665156583263544605493315153393766501910686759114331774430838219886527077274483652837726694937785365442837097690001066676515756293467971639760027874465104442155716703566130839968643924413112905718434287908102227723064915619614264181246678898001309320717043856663889180576549954771784120443026261330776745157853624568784617330930253902091472343630970304913316694962456177981526805807265583201324392633965418370911624430169943253923365408072198958045636104130501770216210290953250871273841495771558576017561182357060280493859857024707417098671311270049438163181636534503268185106384382414409404976171661556368357722050230516068102990964954973343195923304649910746814171020943350578661050611109317463377734090290614777479665516433903615169713370915874543128250914789358825271368918303621436663526666277584701048178731390916069657751009324568459957962876814196626945619298737181616262659031756753152865175260115919450883113479989307886080202487473354617724924769146002809590536631691351566910336974993524118167781461038960593412464694910428152618249823169845950516099839223054418773534197073128768203155603817827580093682074795059300347248136392065112276483254614327854444056733683285088921807745363087884853769640525116119761686407349529209285273324811028372597710550773006837326531338160304896642018529610349255741212118640380593933836056501404594056903708795805214641782965446580210291439122829963412541763897609673381752755167974733421079261187687089916019930965454521404336341930843566050975668112170185629682582934004000696669094307086940223142954516071074935411194861316424553019795392956738773296472111511154689764943487438461751580101877624424385899907681735980571430484109136020425115246852343530678935146320638917285657052880900570579404084976396130901206691174853315381954708596469528948919038652791953287078098033186799134761931444599073438411692731317787234763614876293862574474587407309482559828494830004204961867697613958847791546940675706191674474506098655244420964655287425731671177317627131840635342552576382279346388848671701368737226978020156807306565110218935000834602114242836496779604556052500186409974139756494927948782624602590246683752108260100406423516791702231210774452054509566546801175534651935999712836722238877460796624594790384299496769373343928472503687192246750135306993904985156793946270553672432561478882362963586612020036186128181384105951884098750299496757278341706750053588468586599363241193683820938204878823327514806727435049438450629931893505582598627331437761766842877246671191122418977652093192887720645579469928998909304753017330394195076141085658928402647548443516040885526587604618009087877558680105582256229378028852171701623024299701434317672619117316455513233363170985422275728750780026452310040229736213380514567183293671111119002750144235471875111861818838063634235563902290797161699542451462081382031338457274261514609283376918911455663120666081289739213253824726997442296606819711357373717854655684220936767704430825323773925034670139055718413745425599384489032233078378381811040588868327140501291995592325826146300382087513295515385523602055872415883430863173758414239071689458386240417735390771666776538534502258392038725532089864969214386704720588881677280801257069454454798084048498870312828542444789978489690992897983387328124589686280162370504788277293938875118472716125103585675846990666280957433863889927923556659744367234797493006279168197481435401037032102231540931722310495248634573132527591272510604198986431573426909423087905031532481238530239676625706635372337997946132494361008094512379234805571138531174906538560301738067531754376940577796292814054221043848904332281046336804020539108542921738081146864547885656514295596535343858391485388445969374430222304082605008018033638057041377549908791815110506256332925408925221610006195127445974549486438857058546857405120334334098780076809505010528959256991550008314371969538543801301246154936032551742038102235126708021330789800160645693480372823506569621078238213485146802410756788299577689487298621427765210626989432747824357763401024223736624232380434120124144160866537136383842550739145856075336267447234859285234774439034026079435317740253950341634358188088631584858735900715186006080921530198986750116729664593527143547432424676137270078779538021576138947780215694173059796788094408564165956231317793661320209794219593949926628536645230289028061640550987178753735084481609499204379668053306449187743550971773714036950812789718244667061055780242884602705368961377332053573949308454269525946379907839855374766642142373424609513374810476705153424453292586448453022353767476171900298245945295014269070347175245173001885836519597699955659209623927906314080924018455305804043931003650632772600026208924099306177458494746704126005142806153549319665929257180860278391657415194786739707920450469742344782261675011293507911825425892434074540864911052082216058256479028860922791152342953909495831189693008058508533143436859509838163105357420056470733642148190124878646094574603849299047251504614523979694982707370380970778671702703301795498426116861926574589359825293481721186181684339489021298951253782698409923825447036341085156616971775672765839852683802224975864686129656788452889653198554212238825521071812626793711833224052631124406219219331486670342072806686069043294277933398003017798199225175630050431614659400624169406235812502528005258221484838099922870766062836714232655985290291549024720454792075752552058221008012142295009431244446290323797692638021340340108723783238214575789417180486093442322603139551036677658929344854178685828996078227840487028371903244484044729571113343028169238583097265790911909614723004125724602453980795446120586280700074004876582165326865668913169857793776909690676164432653643247364391107971350459385017354052781101091273689752915928001752920296639835536598315580380336217672791144959167396003830283007483980759318216902008733715157177682123324757924525740072511122738070111411120091362025361867892192112169716407275976279355849076484696622372664809143439456212694857454857209221926076916228658895544596980088659963195193954927898892695641307057192647841045204374519214054546394578458360383308243775442811239284450771991571684178566918578771018246192089222867144464177876281745537595839533359690337726955505050602194534547466816178514989483556496835167176636783793124636899191148838256730868636929741527529503722452580894434338441775483083014367218300777079662640341386822742615009597150039065243970656769332329023983544246886169422056777269959858789767273121406386795215805566223688108583518297031337028259504568334274262919528961210257811742527801360947331295121924023647127133343961627832000583057925544199328460110404095109712614611520883921290762172604624461624276109612374704036795427784096128504368430311703937968153953361713141783734062477674718970709312150946827168705156502286221267373129717974439953348687638434437208156069064594002143050421349143999495830635967694826170555188901378667634049101531484566967098309818391874677548160120448208808568390969135826053699784896376411465289819356877991913631803293386142024590904668820818192111094125971967932714172240334581384458187162825129084883140722439040900814787876067263455049915602090971433849483737596053050508184747041447739783138894725286244960641282700934733213701834953187240918156178732778720259516197472368993947507130676634730365767633088781915467218395301522002199810152891324437248995526781402231940778762380749967503795997796404078794491603535237399268390032403928315698539517419772752207602889029180646734339625967135210300128891940786619956222844317053262659882300666742970774336132465231773854618174247896190294687271795035780843027749194979673040692172554196063105863358977774658466439053201140362107095044154733227683366201237811988900207361565921847607188307504855552933862033989119994955302159209336459504104294028906138745369090721502273201832399201658858359036678918881108246248193513998827096925414679202453151956177699579787187167013588111167837042683765110885723968668395477599470771568827341845973826632934006846679610127530876983366453006307113685023382012180983089718593170744893192301758275377575936145027237764468787394742001220636761948680482237796533177364409193460037805007628106476489716203587261399242706180558593106431183242846094788576426390079437975667084069270022459724964417898417619510972134115911114872705053303089704864760566566756044909344323809897732893151062469350938886303598202617477278987928464329545465149278497404101197197662962580312370497835640117004249247938378207683157324927110829980478593562786692725718601046665845225714540428033936589149850973283477781543368956111070528527289331467484629569423835486105622060140361271621930955425434482253465268519946159025332967757363595028544186915267763206558489673239448623927440480477852265853588256910136478230849487423376786204109404280568897673478054141538402985348178015353382918975474473070223757014455135527453174056339640587906045781625856990135334937772839306127574504669745213230034655299526015951578734913560519232765982643980373931108792978562504036599772083588897615263784461166389471879169075412438720411664756633513329580577178256737075724797462212811186944236220637808492289825549398968888226154477367333161746417909445329834880041947095608454521329656951276639209139952161059761664822553885941784978728063536788325503426030326852383008512504120443092447385868600537137776781281451246594043001281448510873818917897930053527250264281644238982489296275811357956027536931726850939909613921316465713318743656085912720359526032083001249908824696143761837457459450792246331007330126802773535071260359299961781946866688017115257110293224192216381325372552404651820841307518107388521901770696230800683831839225165044571965303120620581325612231046604074958198373330095002062134684502672526326506327764970745035663759301662109656416817415847630884782756411115455054634398612204656360855933191972123219811097823617910330306473118675040529207736906695124919233593562936334564414328751330393553266061525697979562223691775783729660630917335259991915022637769080111089813510217921748725189320006544290729325174433479147949920283503716358473497953998386614418417286243791101419364328570778989227689544846194528935222481603679998611913540930183407066176298796782909004828115405230945125004134619539100743640392575659709826369692697862506903339570507188384345342048324738443714891927502153015751688795502898207802322658107692318026460110927461918677564107451642934105360643817731901608052100411509537062898137109636872369864853510705510009344112652644600347649397677015901111203432582541514976972165578312901156286609238287069596465333734144124099680525563998573406069646400761406092761029228401897778652136220770818931203190435427209731607525248112296712621882022422621545685219615823857689713652690554876663994529610588112815738644337686799572545998250259879725327918176191249684855477237466875547260649266241668199922408254154521644831206263128796025791391902887091286279532253829713893197172008997490533165955012475335740901138103397141290419039708072055847836690832353671404663328797629845148196681079318159833672514778941208172236496990199670254806724663119613098554646427937853618627718806177793658467666424903509860650855882900062427272727650022391970200258524012741042796909054033308014190929168103523605532583485024066016856470813121185483992785467506843982778372099896766103763191397304341654600959706287213989703095961940874871684381849994334869632550680429013065108132511118189379608660281195611986383853975237118999116093174578779585752377025840784914144559171427906945148060798634747751608503584820440620597919972825794564455471316283947604050162733603321272798256884840662818699291588629670610682049209944876505294153914537812682185847037802343394452568461320770989598727608870844538218612794322671329467820372125992590285190247806728134911910325362693128462705179364750337289098965884679270464194446825234902491462687046625592080737389903709303258719674437217342623961114780899178839583617596930581079876538658142403718165471980932139223729985764893031421269980983444018308908262967613767810867158218362385753283050435256564601221147657715882696116908887609674812806276959550489435161016165060016786613160671908458216435876663911460316806128078521257581047653353957366207017866660183461506037308390976077665118505047347085322374258527636042799597821841202506919398453303557908078543954650361700595145664935030673965856351307317910717103919166478674565672402872470476754292176091392418885967674827549764899345084488510491661590757021501651090439244919418601489236250849540035269941817861241848372677237521603389727808576728590650512087119343884265453057288798202979582096818417264079997432037802728508315115437614501051177619373539424464073342037904676584308406108710380767543349208706968611985563300342323091794471207879577573788195540039092468030250528650886608627654596611068660326463290173885105708546050226979508948075384267126225977223464385010747004445025353607019888217101632400052071219751127007745051979985047558352593184671737984274545456090337255405926771835449572688855017153598445447511475732576468690194480158860293736839315965534040686848861963859460791994728506578181766573057674998074948219227235126843779826521120051280418869923814387190186140392729945039997855771761894226624953391612496360126715584018724444713451899409357310025105209585536217424187402795502827551943210622776686709923370727785759937488771285747102324294408706884104212655503554400220271751497749156727659223602253743513333772330279356317016000896363734901076429898218978670966359586827895123388253244757609514564733425525630003891425116011123824399961350131500970905196144560063737795452189202571168204285593796039530543123842427906895102129323387914472996876976279665965218617205380136026110704057234471927375862671378985973100752053904796789895985871720389599778108715623396163728585434859023691757634087415848637941786498396934915160444865581997386777470545702890241267657979894851689290994673892536770864324627033354358023919450216465119085318647411976596654141238505633173456350875011452895875231275440399349732685177912692946189783955672006620579232697342446276281437042710608430376888846585239833766974482475218956636015576110728251323836905617931919269375320173636706223930003823485993640500780855387442062255264033071802790994103199560146380745960870753578664664069995716010930306859074657701386947832481037635217891936640320819832338086240008993331363779516477102486398907534297715468964827826497117737270082096980223120358638966062844076173293994006169049467457252294656399735140054848972392486951780265259264873630387045583335015573035304904165996402078373337524451530134972489024295211370747558152904087017863639539443441227769035910051647519651504753772772172745294555082506868082435763918359121075830057850051003837203792773458892469977213073477592186726302342604146254463890116410319231770253363021802477383207629166577711476040626419256335431888095801501531033483656358647168067280114531612013118318901953243807743528632914461520036099874427847563318303134206685045819679878071105655328996771769792555126426959454794253880853516551418928259081582845983059314993819233398270880330825239715157598716232268283565848823412062144170749460031414088920416855012305982986771538908458439201845513944154582173590468567036231206906798700696985121703610371334428846460760219741298483844063823956690341844201201354672125554049439627308943701926023127947922437701648230458490233535084461464088043931526100331533370862574873906180550644748396187404061385004877735937000606130573149461876866333693265198647126827061216821189972323761440626554030032083059708503269459766315632229004468966177474094625414652241274898900831707543238975040282822050834769490214036576175771702561551931945363615250582951918592887999254059837439328542098665143385880482218897829395493051126620037230241126476308664717223697396487356447084145378306408067032910787478774166779203552916429651594746933344986040288250843808222465747378234714245918502378888227035621511159591654947540992578501523653185524236939795758133633145966007418711374947028317776043743038236250951771635053823490639290966966867422210940624399902613567352338397632852254744898041562483881319549511075535451410998442487799739546972839670168610993539225285844107828049064428927067103043355084527063779784631614736291969792551181399079566879848187607463754186511299990323838522653938666338168672651536410246112715905042994697462384764222785164363088938297427706789649383368843914890437851217212145155359801483685250492252497635249565610291943829498878350194317662754668140981849313975734151504831786918502703683467009437950270725744782847179087965510160658223249744281735819697274528254288294777221813800118010598620439710750111959471004461253416536957266233476529956928960801606597914770571993609805942337770805702502874472786486465768203889678382373691204303605131558539781615064184993018464449834743526052678316853998417241615397927537208417069099260444926681744363330865918114944585105912280255563133992580062516940966691386301843805852515287384839917400954558305665568404724399455741150246588263290216298905655551122116191194112864406333457783032908831058231333676789355968474272550863069069432808503996377808212752496253869484755040453090591158043372040477936322238432737903679635835686467793305579602709223162194933968543687200516065114726202806297816038807414167485164558626723081681726798992301762318273196561354957925520352125916555376437524800460982007232500188199202669784244970410511806866539649663705783865249413939591787895999986564574908238203855706172066661639499433406398589843798993403363689178409753166174970878820088111982679093835717133890883625643502910019048928851837203491264890587082177861626212301404442670883465769540774846846570194172019379821896632005837273429311896176303138762563101612519027036090030657305862249780322523872731091508391874467189843547895354784706235507404354543344447023805467145769529589772312592328254817425685060988474149233696090713179769304971181710340278517864681176096799380782948865473947596644330480996714133317099162466714919394844024829357073986556372501645519145577945212677358287819910904302952389837525802127598176860312215293128187249406360200723574727523455020990497308234436703905093046581581808551288529710926071899962261422429037638033550430710367104344151385391628045391779228956161062428439746803829039169122910820366833050581547864387449322103979358866763689996528675548169646667455588965352331911833142589992988588977697000180103516699584131113955475340161577567628733754198973148255832297736458982904860028834762948718385359707158353831626394885915454087979916952293488691469833623995026066660376559653777715401019476995071746024052392773187973043204205183342020126657973439496152038218469185190487071058951790668052005765803428899675362615261728368843853182423682679580763978225590293449417495952476521374534671596216863697700689523324223742077088003333354923949703752712964538692119511208062253095724023620699180734533049498433495963445437918428032408397456433334832770460964102605473175214412545954912469501185317013442647798767457954595546810050121336742508944096021701677141930621266109891597351703009059214331928400381886701514127459116165390399611987678215085775343310420008270516114138638491730376089641537176534702466137304480507285016848053560882870668714918389967912469191715291267963430500009970999652584289494137826818388803463565444331221173025831573388987816393336324774757645769276719557958555281668373865797514797972049322049360016268391163042009971317265352969095192343560743728089675683350967931080239746428830964021435751077078171641902546178055203318000190545153537187171412055766183744620726207894644851313835411702513758819022225372270627946310975152606416605931893590446614177436653835741207788994292373059596120075972671040061242597232934882394070643106281278233178774249895928219322016900627663250389787253506203591821768938477090133285595774574137541079036152041890834051550489615007610632864754461402748891334152104315259853097248538277326670082798108053739377076316968509410780185656920521599894542994456883028526957873424306532196910854813286973729436671159047233488685543013294546257108240428297565477887460018402022614270993380955923108906575755661084756515212006631995463562525962274235176073444247348578399401738446553550451664886147722099327842081459954336697175793936643401693076949598585675786896720773533722958747105966930552960680427227774175529322863399366142269187156226749934521692320492143832269799167861589615597669859876058318956758579492712644354103028520664967700642731649758322905954234123333399398104744189518015743467734064279341056099780374028763770443860213294554020673365240084246267443901320688128854636855034361370541887803880669794004636721908619030664682458044013069635047097868522674316308211281227957744024134433148520317045502137908168706325425786801330705664960014897700230997475990022351913629916060291624227477684169851223207039268061398799314353048950435444377176472248261984898054837526967863374880475183818763794908801326218106691471929423043975124012447494843380438349784057656540063781356381439438160249054502386674277461630463405423904697565570740153409945182057688507696646817361548010796568675287126735452401999660879386660917631814039584291905786713273930040343004551942631445495771419587045722296932552145264845206518145134041444154342429084368908406198183838528603031343691309581078342733275052655518873906571731809393633938003241284709201552160265894253569999059725020587688067934772505949317178288374999832888175095743699762451399819702199505763128096789351608656353490168248689088444573199876347086067230850795778454430934229406045008778906990241391865997744941894600940289710964852350248930660917182464284576744479821126084648032964451144044101670401454070286345031757777986438243250387698351916140900862405236115971794915207720106549031019039139503708582654079108980460322484238412511912864183901129872045547828685971707624967466965201438883251506457946657415244047104384816591796541488032063336467660215738426050705778018070586488222751320917907668341237929335397374961706956811953454853582159442619014898787796762056956137005044117671855761064708750149132278187288455067588632169115202535059104517945104639112109132291762604200685422672573364826005242967100847445560861028076722898944348096770360616001281488069270863328945637343900714423250393726661059156881217327193005197800939463224384338034386776301326728223423218190229536524405696699692445609139539462004617482080791403406678499775759882108985727850499763621148796715852464535356918636020718830554281175497829669922284250080719009283108441334785217882036454675359110830358108712500048401167626163496448740255336356026212895037391442130945149576551005272832520314230962422696291892626174392166524299970256756519365721251130412221608026801329363430921864511570214402359932973403937854115238433602941464644806075210534464675399890224419867660949100743383032288298997160644557550979738951981997939213961742849864029442042402528459175399493879378351206607601218476971450884979091463853689921807074138966296946189680915526705302970903876968961132377200930238946837362422155774645975240262519038524249780196853739529580185226884573803240214088918438544488107416139662386824897391493525974042667486165493479458115880938176455289212348281171179800376224652205602992983761012503323645095204609625167831200580949847663447280809782693267818419204814276408320786296402316654799396074234960469285743404742274810143682734978858801929329615832238680566409851524438728521956736739986234751698412562973906999968155978140240894521555739239840703698231065102704882288477520334855660654262515714582508310834948823898589698887894220637201705243144545029019645488278166456927610200850220864332757558189950980048435581663607834794438524722149688951416971924203684624953265161054892725759386024314669104603369111354480573554868599714679957962299284351095218219100390134383097939850676482852174447084759897087959651789325261151353531077997864220561456006580628440113861466286565378674146306122668484653103546560438755460792989711903714730686596471818965257658506862724093388418795736861254440046166709374811191759832162568906743769712930546677524728511946668424889595789377570585716964355311264903075121109219794688688151388068243588414830984308702116971798238015419192978816637018262464522744390964819895077155252933387998256593798751172805215547913895706902821744436186485370553549915261385293784548076715120714913917861314306728807708198247443780560976420529532155822429827102455779688865226240178065468717568043213792220699835007273184622113813914628811195986965475452409486940253506515643373502620174444044954867665494581078877674084737270735532367641926041723017250914111096588147937263295264917526565027027195453390240492290125841027160457309775250998306930919969279223700020724790195891697391802507721188197588205395782062882060347989343270531064180618266141018511001933012225626126885470307904056941574013514804305405021394364767217707028975989617916181595478844606520689452089134059877035746412792815792581598604205622150329270935593667231082085240807992293839212348583808774274279927247229001320764776834756389279721448250526386663969155870423157729303833664432034522266744052894160722473653602126735558145926584530903973582581122265847072718751007776224530665874436681360627746901858406416257453400464353677539177581586972438867395199498805584547343642028020294388813664362588089054242151744503428605116633886672593469058565055077260408467995202163940554131790541000800919208964826301388860998174044746226445672038682829129455377382974740814941886232409586750681917405555541118660014919499357257590500288480516875211671106924838525810256482923409847339189847621437181853407685887796826632142974966869769527479848521325397453345729532747044990238990473605230597837385143200021013718246728661189863939966143496725062024615077863470554273911228007864867227643396683779415418907946026644992726022359561467967315252535966885800157228446995718931872961692130864275422472329874830614579829647218522096838326979816780789437327995859531096508265513713640518413493087525528507530524814020050399015866888636886901631832662116101474452908390152771831499027005113899961615228885897113933851978266151332915035940176374142592973466501220874164074725977420332607359012544883890520705704683042418872736256074708770027886445680536614663642280040308358320077371240309778383806931095933003180427501657910615359499242520262533454991283988595411961243653744139266589582083809596032008305426191185628325010598750356613176316489577406320261317194612686998664786664740850646730576995887821573662213431289842785842163062308114239276036192834034810276727080474879632850077028649712436130174240649081561858238000012208149683040121107203102490784776822121724215976655577859191148603623952578710836238093267392969593472157672658693196609387046791450007824571403474111577938378620311570494518569897232786031356210367390989044879132013649942345931718412425303035608169509088303578546636303672920660193330198305280427706034532558634820587449598157040722824003483600809234446878813989644864544215401460707468431325216872896973127089226215246754246344542789646723405213343360204748213732315727841771630880959060761361540843220316292055064513992852510392380535058570726147677271108550672554565796468766382775311680759815386368894391044814850486607815336389944248992899363382235889595190620711433589751501352312612250323846316593750429856157805094136382412050326119741468525135342496501384522820368888254416430577698396050697424759921832262072040155559459811073924286365306568998927334275323891057135463821126541479551620048097947800487004949257863496104987233104760254228884580848814165163271084934142019234048676669614801777323386765180190468175646991561864778835392888024947143022428082702434232141056566019021679957233131876303216604622650716280962487669230995508403643000947862289091303646994010541851351803804484099799686714460577631861921216702219483284366212391139706441827181415938635444724611672211838713880063461182948475558412306300296496195384166904130169154133952128132754008712749085268358548548133856956219479894727636244314829106241399412209719099648304977398749955313600885457049885820279471732427768874628403066205854181211944900288964092729620842893045168004190832437312317823733217734194932005519141200725538085366031489761467720185085842870402842511347744568788819786533457357214372612679264877053822968187126226559920106830700192677194360143173602908361320402303412969592814725561933666064082473862067918115476153316715773667686454938885448801070032520013557734346912426934162322990881449886434429348890445799182776783864795157804577251648617901478765633099299324293340139491824803777908204797960593170584582254442110415676596100578127890403451651699393684054987527622746799434591420247797341318359762857023906312464536359242361687339197386498244926991076508937717749973990777518034543851887875577811358527189877438426460859227983595357270489411621096688142833827633547317812474338990909048024208747470503838433994751441674709221518876797489292367870057135249476749316109430259569961576905892063983400562891716105076125902751839715530036786326248457646470533391874525811688605136911665741675967705591229361139703942511568318877385296992311537718484483337502861093332096360673766782596028400368460449794476875054053799895649108148134384395629789867205711998857899875154092021630607736685357264693878822617687242068315366807068915438126639178430750673686275529626359165663328557546024766003450105347932986696777139992641907837212930127358506675031883166615578112340129376105950131170560277684381275092057652336725089197058985374950467448943645788974133585488133301172389629714170373000608386113958642976172547148487345712169001438741800200368746510337705162112131750443016515847207176994523755629402205394606065781282239053541023165604139500125461157339509899350279500792092007541200134736456415833568041818101504446360934265127021752842430092173195581309806110911480577043961959617595323318307928083425454935054237627023296158208157577592644400182881745623461802739617616958064290739342467512561968030512316057798474111637991036395528910977292851611436138223008122637022224320181754537892628420202965755110226468335152137809868716177420654246171628841297730792622731911921484129247103442569116987058218134203169902118978952823218620651951990479705556050101066147909916662057963554921182323688753693221358066604361518400292126214162956994363314706785075921735801904292953982870105167645839089336629064983906586360020018238423630846782734764982417885390794887202442605638291626492896546316120809778466617246112059673728757232449903068153599914460131357698631599764407557396371000487784619187280246962542300969855722461802398822619533881515271388754891464947365157796194536780764374294088238223795246114091899674341380691762120451181555033524107287650964129696272945154203454824328617397492884018320376103477108061862236885275137229990910030841678174088368175088762758954950619356855835348298094631549048192280125179518533341893787012916425964027546258759515456938236717150557490645772570010683050828104939701058409905994320958072146770612693281186404956554834879417856523692467375941682350295283782476385771111495167274577978080855501149781490737930711785996274304772582561404881632165635949769049726593726646705090622329142467560603122808110980138619957858643489983323211484356555944211643958471978802444455498681196876837558478104430234602837120264721723111890083536789298324211974811118246950587484345378682726270949207685752478103359246511021452812828116752570939405557008725691555706215069871599208658221350358816512906183939496407051370556225898883547402014653741866792785622084865065033628459545520768736192332693966793994812921661148575363409939386727354312057324993698676314891861415822293302953502761460886117592872292011482449237419374190686408149634508218375189714392869586932164340162796517582913771507165631721913976396811011772833874189252916371357049926665870548684331322996940781014036828593036558219449404606927443996397664860851059130486195904851949602178621263844225752913851624450671514237481856792833621093979996763970440468933380230459785960872052879525410528227701094058699647015039542310459864318404305090412142433102433924938053643344188201884560541937073095137522012986867171243591998619024279541957878406483962109817688474725326668391228934891663210831173544150255497535532593423553359506727931407144028821326073428550671196713218412813446195361941270940491225487260621112795341756027178034246223857065901063936279181495223059677922466054080348472497877055730544493300784900538714570199516802793635854280916718510622654304488419639370804830028753329204188722060644437074408149271931392294514756215089076553322238223655168126306031652291533221069554119883088227596412352890765617416474755664144899577043094464362755009387205563732153486746247547237533800884644358833419976028189573350016669820589496647789245432572917951997798166984489207799119370122323318891792698004295941996757869302317632605278553566111776717259162435401750812070899007184704087697192113611718321256634189944496341826546902396970270729567363882959377821700071423896124588256506886774339941327068217005557664133935262254086748046791089100931907047559708870594161257049362303632382381734611240696190946614712182220985470289621171984805134266103708735438379255621810717117180242694747442790374005697261695033011915521678416705032302018888451091390886788938940225977851993730443424061082085877344143928694704929136926346827557693459137983054217703804629420143944349310962136875482983703063594891904068290659065200673211276776959227494052240413518715881786355997471911416851070823185097792525894184575518239476419691096855534791544994524368836115414869070642396905340226868038103040171092526221438277798289152152336524316125693174493465173219098621471495465439973921671683316356245270680376174997419369719165827304117997362555294690763782315526793434335458925696330432013586956868460543376332843014879644717493446526391142973697039323432616921221570621418775358529130776812051688774600221021921953138452762201050359381102802231421487031574224408740136724955222960470972043115665985450075706218802388029785082603293131869929316986186156245141368116835836604509337544765737456255695344791592962680233718420603034459841913868408346044280711550319679963016014410423654716301866568833248847574801622350930055404364363105839583916937235304325567936568272469390282163955805134186650031944386522387293151952066805097891618743300454114783141195318865850897443099918701530125248709524016998074273894350783702848564539624588697028726877933363973918842957860262283405487141324072251690626918067664708192150987829510427363886725161631589685360487847388581142930408719969339664000074950505059182672083097820913573393479748190045384218616667642652188987669434033674132194929084861654469077330507238773971001307408860732180126056888271500816187472570386546370145740964286439977795580588012817316452437064168455284304775868455285904700332941294773272953542549174421165578938858917215626594294741995345194369824189929118666333936435405752591841255483178005236342407940709968460047214285612440349392726736741512245208131152367072339891623762527294003771019489419773659660196421475370034271377765260453086290883135940025161362623133904362627470886525225081987502690481771257893548172094948072182628154448562082207442954673697386821049432529632405930653464876059172696558108790849099314229522590710033028909226394986969606887828567756441439898816329266356798679933095038336976680423699570099099883902553328605363043346688120906354960000090981311375595662290275790007477578851816587482963360237766339370424233665168238309836313096855874936472432132063950854636543825797039183930260320495916671469293407343365846923787815310336416430821919617700819816891257535008595392099241118164351024718348421991487203621812431646379939777860786826567932411106554242057682392163173053283682738202311414316692064057393158553235001071364405556261815175336529187332953132323047965383841418755214115508726773664304038712744215241347648168035757099850094060367320059302717130979694606921456631161928150872415479748699022249175582031102271565761058172573569057644961224619905339942160181175842507810717040429971457660119536456814452802300993787897679446850239583544956910685851701255950792755114858738707489757784269871048364910843670999610570592739271089503155196031342747648903521488402246528626868468025394935430240941761646822266290904862251799269366482749767926722314032934459190494819150940838499138224505919243196840861253554293750141888001517340238830740578288422106618163138970812160897417477984431204095735198568282858514928515211473747353301898281976200183697460316218637191261231872696790523766535030441009522218023204167130922853034896368338983321453564334622860454772320633113458105806496068241904676230352443130267240789255714324335405377812718997654698724388283870468928046646934489250930546829872846839995105535699883743899683196606657878590754139679177799080489109623344963088213966738619344982950287289228094248808440252084710211154558616640141545261990509871661909470030123025277173162501363203877433322754620582441649116285731936284603706163057064386268972593638183954360149395729559824805763787235478105727788515752016842447061737738912192200929429727569135571445832396807603982202178957523037002249358107531765742137727520085939609544785079082225400950416289833088242697398420215597657770330404986775223577286589448045903541881550094092833321119152898998949783245928895485049376635540859595801739315691684495842963373725748964188841525895950139637815097165912155457233099110906252876458426261746593696214159867044588764946978184561373037285083570835213289651271449637702104842232423254385391222904996273256198081643203043408000672835380731870118820312881066455441898172789347625731278618979136007543089285436935875291610416665175247331221332805901570483961950062829594182388453940655749973127938077830900878042279930450123784109383473688670679737980624244693185275047421139837311364028541809310222009131108639270274737850235019779251983099772803535942365743929338804396797890923906507967331875722628701071534333786696320276796891832931571462973483735575389002774745707832748275926405076701604764957120495881319841040184321472427724082185489211890411889277399429871942641742794916070263686257852632791000125125487268470426644138163453177826296472542491686259843699201209453688806582050585765817604574122528144079807475537952758471467926508921374339072604500476635160815378339809387733205547373432933199291844198513172448652881818921875335083993081234124958169814612322473538416900249163404791091487921204046179254917025596019877785945836500245251174477273161018882619935470418771815650589333557784752352536472996380223045355701323256006028308029771337995905259383370476129915177936457388137907520568156315451588460336936311233144262069821926540252297351593751843485473255246945372806615442859251063813378702485207852102117696663308064748768108351203773268452421996081197541331913902589072041341610750198775656034083811829199674077175544105963814446998179112021057964812574205618558101681560847907132565308476128061859739476972527397763130739790702024223008173358850531419281482621821591144195195009280019502585976488952771047702876213155844969509559394698003314922863370932379589284770654135253230949347531444641346470604836460852799251046625569408536525359612250203034262162148567287909569214699623732568031944554234701033692715312256976862818589001566326780066002645714509370362389652664144903082617974776721060807485680775094696597732614428087256997382980089849271077491769419952002337510614392552379776343925635993699612486103482719039624064241796205056756847230799383969584293555864610190432238639960040845547539977242273847137241457808059126970002898038016604095393653100030908523643060968630501840722308622971532102972643273762211896074534080796737003564203682868736701727849508441227871061649089367059844408644763745536839905997656547956527938127627300191442024170231844417723063315649153372055836976287351432663425473832650546661710015293405442233152282477934004306719207674347016166102123006715821623436965067386087674083425198599464695058063397150669034824273842225640977229989045632395446060788794472906500515637857393989596691337397745578086478419668273518990803614396860594368512392422266190509522230959706229537101430832525673056776542456599129804796670480451190647410823668562535108123648920569879829060689113411917899687166788338253831168541582823024374985308684843666525744762408005611863712306401278718107939842875866026047282555916643886554677972555186387839015029780794332781898157181052083923115936270258309030368582388975461854660290166881504551583397900069342795383723199014587654877488053073061364063965397673190403834737120358482680749714032946494925612809717306255307569455017200596970006642064134153252326513923938312470726495738969628973649229679167399162050974855933915946170875529542331607570739004830208915474678592705090788716435936468590587762182194886719333847093278789277222362595125025842059713259217009662001503872001935357714364242193046474352059691479865332138551291343819575126882480927258612330166100411531368111702414872174115888889789722292067918421755067807688741523183420964591303414259467207116259198256010164276459391804780858191502394437232062264781668920160765103537902029799491151909797971278004112236297440808138407342833865330084048124984057847976281012166314718444287597351074612190752445245069355971591319339508241565048736208858602583056105213179179138181404643491979082111324830528422305413877012718787058170510557907561976684592951023046660848165972796688718176670353233693885058869904625482073471497074068867514418728372271778767628994276666699758062529459873632266819415769467569568540576048478353004618235659895793191359839280471608700984487324711539127034595766907074033613075802356197207284150169986060829756459570095691949880932535231850760285662802611995978166535353106427094675008208776280805789101862619136044280145630577389080187033846121449964011966134145976007082194267897174771518377266352899328296770845216768263274183021114841682976180577022473299421142030719464163134254181042742094590156362647758960204998802874602012725613102320236928269737225062366644740611343954247114826634828826794271727742406248720000382524879171644298707105335198103524342670050821249981167203317662343522391200808345192948788973181497086457143962310338516839021223097038320874775589917708214357081120646884977605932199818416731709359323744219304916737093750539781368516353107023426212154356819141790092579455607505689083084929949543649644132942217706331458811749649045129897611484170899079696759271066654269333555553079575964652911157830249010178018902062373196730753137457418192756202640613570437601739424112018849700651969343420387754339799666359714909950796841419834358360797005442851480070822358128253563722551241703409190198718571467248808537783993440828084430292683846409115364239193897296411157012891098827839613453775190058260399871922879705649099079774615194240828685199746481886372929215021770537869937861242530910740496158922621299146462892848511340831548300418283610173146755493346138704847496938196562398744337985331312875111144527343942822567603948368249312174176455800638124472499472341220419468644420635978756041043738166090551629653029676890242054659707570439913172241862377418494481501995992967400897548916881492403989444712179220547065754492454108357332410012468735923350545501022338976897442202622782499493965486524201460176570290327551454799348403269042518556014065868951579868549380790640246647277035751432547386381791088425581048163761857101661216869952095552417100020534843780642312022372140301666863240994729609371844653597047647147965209171074537293945116907193629330999650253489487039183632341326144875386743498243183670763679449364163850649436000665653806621863537374000685033814450067652435457019169200366886665636327456336042275057664218341223582014158852180467396568796079541079013271461119953273922967394756244975970484231887850772030502648524398684926904917651601774191980501740912920378758036430690335022658174979388551116960447751557704328021674336063799346338478980903492193955007925523864992023846963824657432422228072145570126209851680944848908231965207946086093296101362753574530890368059393047524322818831425906884419890472178346976542480648282587958679908355712134514935161609613901342818882863706566628308699859818707692124342949979138931036715659169310589713836617664795814532419175607365328945203432570101368487883853577485623130329738445208258469967917364147929800697771768470164906591921237411957121827583238921643344979740881344876396336751721279296679215721953127497890213943674023132981598662299128521952340644787789359154040524447424055176941634956111077323925006842619796498416594015984960694872678550822526607770838536378347677405411534356832629215909091715539476683150870783669620592046273744854464499392449788846125326141546130830144617137583413888712381580188772114651914822131935888437607902645803655446084692222549835308135327348972576854692856146747536413119442665072435993717542340743891536253442221384070783307445883841129125471424980357945377939868247572261951049130565301080746083653398555430129481408256647222922371698524543657560586730708611006476036275212002637534132705499629498872391210384515497853798353501196279701667160429122377385285290530649918208468479327090168033925808587504283880249097845992278325221479295868984444737802868074830739359948435937233851761280451059987674079259564011475925987156297998718684025733451808851214310103565176165803069118717240851143825203302981441916331862971795062050177071735153155100407819518690147092872522391436219688533431152369274971868179274795984805409140519239470466746532758552509215565217490669284064671445754506325759126961576460161088569734386259248095779983189956086942304843986599085601914828945462135805401817062734448888863460600727471579096129370607785763477595515618607321475445155868017844843374405127790724067328328098620593559030075077076624881125866966036546694269488837467903727634821860107689407566214687135027210443894621771225542805435734683017461581271773154295446710042592399254200665951217623446375136734716757524457740600835376375906163571171975272145772681200428677847704759625443367413302996270173316431505665957193392195996697276727371091381196140857289750994731576586432667020219063923179085049903600498412310969756264860307007728992707165045920364344720846421656013504164049520262287340363291845862049825691225646517041760178433058255783879395261124860158500205463029218345977266235429114973097575716124532679942566774884770946514487051211878798720775478341419886975767733370608412795967010374893276506679843078864830902663061790235100165197693722952755922262680967573852831898975155037029064550739720739000968109097546279979270278180162675921393667606429129782710032282879896865378456945342224477873662223874419043545609705504378106305637374405304721062147241985116011757593919482552419474584723272858819264292820777289576569234026598222936517360945128478013194719973893386746527519850987768662012117819074639476511238710543698907037301142107874666052244770913657771862087404032468703543011651087897844093465217534386034905213830685006605700690385937713287560786015001483942896976568843244770537114939966953785917630068393696125923862092030967195259843953453184961788018364324724531837301702460572686664543136460497102876272881340424398515333321788348275511564620724401380368360750761928479897729181776694162146937221482428735673420291525006385953798305518158747864978464330309151590341060306348573347163067101626631369188052825622273525519103519558907804879335738219055591574768109079166954328015042849265913751327771778677218318224783943698229048322047806660757389512907191141363754037216570599577859241826432226992181920473932055473607009887712709034438518439736185242586501505121964203356930200948894821986110514494758914699182829673915166427591295069672926809246473825879568911350160196973191210434474954238780681273369182949123515814591740636218225664572060147088166818548137248627711962261475266236071122281688469604055678281960877503580137300236901744587164445542338142767814819034140776726514588198876958374788032057833088721490245468018259427820521644122602167194303847192101533542017459799137611754343142778926940211762637848322005607602498549120464913323457388168530295808643862537364081903890224647582464907278444145797537032851519329961795611891475527380901772878458280401697971222054585437374970859776517975072934202160933785416608565713428612532681159282138203331736891937909641329459505655891277354776157097118457009903890684932832784077719859587378342685464185862811821434747527582505758731101050828037195437532976403342770139380318352337548948283918606936055053295563551432606043475680273585363265358373013986334428851400538237439780927509611350947243335764472364392778400302153304768307881436055377644892472282021177379394442594994919572087955308329410688422728253266339678134617175610354388884325616877988044513933693413784560085195392660546961811874365257952419255295176385718962814208761231985671844608834518124693679486703874254009489120917520411353216714572856929218120255818096846196737707680149413168085468295329292317987179497679377544342634073776205240846308533229951319231568149403162246352354696082658307908170510845098567018227527913036756707992672197809500531719775859383519603492255600577618891557942833180577864578931863230774064462322338875167098033275921531129094981425733257000713617903570678887776659033317828455130711719881891971412754554386131676741825410024409050600712737917176938551882364243070666063775978464110508057099447741825362206031231505865381417907380629455418788495754208708526212726042330155747824624788735982311437130041876700537473349869961644162980075306941833653188975933814248863436334614743048069433631758768037954644200088834641449389653098071904534634341257091041996213515212540137171224448130125530589777976337512746053320915093272300704828808009302432185243722378016360991962922146988833862222054334365098725051778541567925447018088991024338375951521974849234858264620007423850286400865803902065084727418774138771481870595869479913174813104752974199801116115950742387850548619422927935832084656763056023795585738025187034105331130451589512174493120302135267720389170851702492959443139739112111154204657403543024454727602947093241800471150713199051180520813402235993552451689313407555469246543367679700011436232280173800078206377046684609252452726040697537603772606614928727376138039833523054713257736516104311687463196346202085368660091340634453033800132758473477506975548171802322446942928522269170432117438195841909117962364011271250129464105379496263853218106180459632668319605969271282262451753666956264120272827734326398601433848593296004765705691908224768952133374967276226235936111538065267302124781184891277266252141629290847707927165924322752024188899387500807537404991183313257396865829777928698045367545587315233717166974981319567917374759935294235813863758444614505202131465043359248520557085357989965962959925684970020510222110606086823667454499588602083565626336076399284951699354788353162850337129383894122714282234035829711318973021052624736649742675455157561831971563408573644786727945715018566675668843235002914349173930507063144621830494319303951880686125491178227320898010871431361216892796628086561140606488759091752226974744276226222384009050181647065893947841376024850033730315150961741873125237949067788118283795821818818284345986904068423164018692693412188222736126347827297373033509528228997720164762376170092132378143885675371430358645237688918683914575399694598318287826346909211513862982501697522710762889903525561115870737347579202071277085770564416353192395359155312071523385635687682631785226752284974221076424932334506987874323731546392184022244681196334042798350875272936838556076215880853150060643885546898218822404302028454164957104562743887617783511644762852393521423722052566328975870351237772339657329093199017830954597730180982646702630403521945605837132281342612953241990392763609549936011493506884010440321022953896074251234555381114088459107526819039622979600001165747575642637161230549810103194150525087183307052030065325714211925909243826423302267212377431558162681676621534021148210002074204672060855130866593614165877853395378853661132359514614408983566086299524807754521064124320866958134994963366963417393259381511808464339269011863367500478914875902751044155966534528927806693355064209596586458991561762801596538521381768634433217396235664110911777000262347030895002863798224071092111087672935594736224453630618699785327817618364009885448519692351824516361726307001848079399067151519768005173506343146149477434212743019926145892340876866977735813811275753081171014913295595463463160754439745520850682099829867739852469345929975753553437593808124238109867973443467298539103498310979923071255116405165592721669062126916267063764524825053942410109657474974445299735950474093911919079100237550538391988145563541621770146366629731561678981645522089274273772688385326055717937330664892876954583294654756008094768172586774233256903656927811608038545936804370551174612115766308159632782673460464556300997967583120830009021372922256798010608285942469251856031623054893393448614418523253586378650400012617806474025232884619251370236419928345524171763530732728566907635718132960968888082578171851273588189562768387133284329571304084026039122689067389067473503281792810301937581132792418505460748529711096630100370885639638792529062571020459749142225838352850005881053557257899870358950162276300690921659371418958090528426251743982203220204536345625458852613431118653613282287907395975794946713387085722470228409182281830237251705739537885047196893840498830808696863554480833560013671679380350032544296602121080491764752808891354932074747695489728618926002838032236736720648389786313080152796366653525887676803204173865942217385095720529502227647234887310346581170149247930059846621582840513374841138005776320145894012280841206862309458360654542801856364094221991521266303295731939169097345075460381410942280249342832242841745796384628241027977637493533727062724271719788753480905653117352976199243383501840227687593389501346645942516731038599135277653735212461113201272640299451091948156030356279432786457978842741604423412470479504494013951762588663741580991508269039331195316752164427662153653125121695637784120620913253895557240003428078243845897454786654191987302988967498320609098408837484706774387941514767856914343846732516331887452006927230029656350696059398411639176762855788745193301309547880627429729214395966383669958274916031682162096297426303572518944465908809097177073187050195963986888755983534294409225557546234840029900600114090806612138569778545775273243058010198066492114567981942927845845326769441546361103028886736828239217983023078876721992328576977791299862620006553664518339464155331997180574968094888516589018897356295286501919007897521482158837844572367122569553066185961405212959989163636347087907837790261454912006800460288055812912121799513216040954613342208974239754771284970432368624989188322923012253534805324510879537652982655708883231378219361439251995499372311228581517670493682715869543420360420180076225540705290274986411256498214347877996382856092689318400354989463594757583061126420736880878453717286832332496113967732276287273005501987179451628554375955009994110462490210351403686409989799860276298942363427199591512429198510995499133125896891074724337322605236385351921988452602962360046282846732259376532541229500646028717622151110519547714768431398032003592468369880697661578459369008036919700249520374026069159978845562611460993929970943826658201143897732386206857928461906150849601882503253382526548216690843096137624360266843191773768977891447577633334423961965406336696608001846952722558999127805700271158051915205039915103459880264786580736106935271724279892933266562646893509315291091915813798819411584135695334639299227305179071712957228648107457435828767172741815662524884006869975613831572520613473492909403615189211322734606505742204643168689951241754517898911173736692740541072529977117202998691805532539019841751543638216958490968433357852503092793470430694077275704466020166634329357464068520552134549717533743758396931008686959285526778839976700028383770076951127765203257092037543395302078115499531196908391079934136481078026074331511514594210549136333346920892128210801585680266353258349598145655623138409768137292997722433787389968841274252056207021605579390601245061748642379759587966109316253699715850768897827979459337591322343170515240759412692665957959292284987519722358102939150537616655088993064385610822797335055711025923100929960300414050471030639180468190018207643275520504722203334092391556169379302196564552594221413639485917311962208050556812904111717168661208766901487925411858866508166861863879083042374559167343743609097728080559431381405899858543575500642081963745825502342857080394055514216311114284057140985743138513766744852847619994316167576721831374733660758811206785960186920874228883829877759280125609041267552805613811713105188563202554014912799281329499309038024886229892071176583513397647936004062128812024552010989060034418573337885791806531975395275906948155271614368414557457759259608417230041778825993692919984441294153265143692278676285527707226108733581530190301900627508442234679828650448496617317600060590072752652950670212461048830536790827841613604276513193299488478317999523310043734823889418762157012038071911353221359398868486732643537912131798672437184912108682831699409350171967004672478380591742843597037737505874400755327528937313986708146914672901731681314187326668265693637164879405940610060525860968918277685905303276912873727828142449224182554619145630505890632766746826203077862901298034499638497938378589585200672176065304239256114151125784693651445080348396198455959521429140505905624326003770767481132490410907767319406630397595087735851791564859666067645273063456540390261658013128555612234718373168562593795577736753610218869445008050268014533667567271585629847559392580179689518167118597136895349229492213796985980749738350746706524069241476100432489523158628149161687783566264662445812448316633532252507404353938968308196228454725730355102270493657471104668429694268641825788930569655188135606200724948926000146995006222308619044713905573987078301636892773510783826296672749456186659916905542315177796056979001425174560675426570059529951547291858848652797764706686066984867968822514932562222685607379911127209691229129917364282195026621177116315823469404272264080473971231505722163401309733864955753799671696955884689198017067658801191047276411585590079470794904739845963149948502999483021877861206173779564762269607033427554395509097933260586814114171457866661065475981460420812525776466074242939754161356236832607191470104827538126981607394097372523193010919959788605480643400490512743276317845493970848368350592370901523251597111725200279656960361827795859237692145587735920019587104500124696050177284827366126407618280587437020500798018793408873798840505124801691542673202995733687369409440187563143954461138704152131278701976922350456479056307446938383128922487283114922316246140442722949393853802278229624685324699537248333114692445528584557883816105626835011415623464826497344695010919207687576269688258383409404503733021347608402480596848118534349097244526897738102610083456282163099446214988400730282883739422412581042331229800113923093217972341152348739500457774783157639607778155634038598789402618691395253312444150791344023224692654869291395902599040542825388105573264426630106206236208556109033488259778364946682329049987433878640487854995214271965635307371187331256045683381320459135264380883585596334358749730757834054640822788232897521742515179069893352369798245203077286588542702013089998534855165366888410763614686298725869166300875799818314218420582739921465714013852345910880097542929870849641673019920898867643676802003132538214313482307725179773199369864059333690821025699127353132103259539858502676949118154723397894167775208803582948783448151002843805276318251499398495854910670187273406842054543414709698011718775483422178052942949115703645411107298096254238749160505901535765238200362430955076925662001157608016387449397877151884805928011616091052715041789825207190203996154577117285567442301561656693935090844972316991948821112029772870752302762789197720380284107713037748811819063768678160598596471373006307077354201404712413508662039265998392219714156044226544745449174237272042002163084382612314296437536945165830069674672285063380887425063884371514170946838469357006818948892356486942181313331292130276023373477813840311727900813978422503291848413913591531382890894674744150293213919439362340716952286166327782935821832963422968653696970529854072869707167597645333596950614694721237811990838125617170442665470415071562034629894047875858506375256608763320810880696344284327698271628119711120320437696367017748620725140154881128522261173126238682609303551146778747815465449641168794615285723982604578573658737448871849615895666915677771123396782309419258530679764969648324913958783409809002783307296308012329169253340850218165990951574774105852939703726867027378446157226683076131474158137012583876916582658942449489480148242108529700878144543829700339842076578296552805850667692756465499878101851269947784991967943795779137764719018409340062030742742932709213160553710358120656520056554001879330381121172493620328895869246227044686548216003778126237433168839618819266410742309555025278616482114988870842268189164294207288193265050927501124833704311551493628592083872162855252917973171327243180634410288984536892271623583933469310745139766894705664892052055606504303123709277688813558989154397745533535938688968702591868749641148401907666497561112909325920809670781604023995140842368364591755181791109280912933571087887230329146476541223467001500673521354677246097805678219937510467324700929893483743234147283415352663169773469795264909707896855928120069250807970021729034536506884047581487669381088709862551557866066875819346902850837880634208086499114215147913141873042209453632169135383305786626139748433296945776580667668547149374606935696606602469423803914880565382894075561681193254480663842871877236038552825759532698745200986258018039620277355345904088649682224485731063381047305180110174803022787388563789954235178441367135182099544840605573079255669177397245005180738258096508452682313917564702042226334216321110145481690715795995013379204829285733000403173564474370452196216147157288027067293481011505234565589945541644849285737823324992313717063554000246644854931513345285266146423836610684125187754322643603834649435213281509305936761121896519482461244376931258029958329426890534191814889841265381806933362113848163173196834160271543036267944789630694983082034999615911955917411550869215211049134332148825290380288986757751605014922631755551312696638241415353906270666840976135555017197362974080971529007876311552914218072283635948419393077271595854288647651405308119663542744506989266713117520671804972246504932305875900180414816374722906838368232105472810490487941386468802986952850021818653037979025696113729291334807510328761791844508284174457848061911813123114264931115710284421475443441927383646380336728104334078618262788268540941708257108171354483106387808768021959212020175017629529726228453552068614967837032176339862545082494929349924548132969842182537088592493370480603110267284886847794739867310516416203358555186565220698861770970959894255293080594058902475625739725630812940577467953512826366205208385645534690511388243156312954480356782108260222280370203693914801141627246484322175244291443543698698121479794521422071971553370261476748366133495452818661410521335120986194841602621754232989082970811255531772619344608340253178849919272236842373105839619179125904765270696337180869238815177990605049730865530843836354626981169283999904202921964555985485362213310187095221805789769814096837361148848576067122757990918334888674172389997741960036018708790314273701414944055123830116823715036732638090267286822147969853611109628595231301539097997706362430980210243760530049598799728857635094873035359473924221996641148780082541407163150499096071876331572950390595145278912800452115372642888106874858222315828932124211207562574244933435920847348954992038802369128083046223112473964510015996359339310135502650632354057639093549000205253546689816933611117786378779354745886664079883587740797643509319190898272002029611475632261433182972027330773000417852302511768775955752680573264048623268266294732976690915419760382562050220584263971056754490969442212405425088288181511369299798659163873903819365653712136670290773699406812487929943794563208985637727716372873458516016709892115532199174460509941183989247033855825088829496917409486890163873962003968526789219210646299040706189427567033754000663554997278710552330705577349672626597138518551520600054867936385281045457231835091418948518594511358171452004499831110967232450894362353361654802645060615845560340236004538024660439540146125668529835802600127449508431314905405668283436176421288970470951196236706682608294886099769368305474787742873066506194080708482998580853016828633950906875903984860137103833807998200025888502057702065955997280987231006935998879642444746572341698863246312719373314074121363422656059790753402265974073171736945527726280842758004095633310765908235143684019029473093300017485622592854788665124774258170563170118648699598504142437403342827056798018384285732411306677823972049173380113017433687251802297412502210064142005573296511897273136340804136181677611854291822121719475013231964513522389414115647500756690213253257584084816768014754343333141443427147541305441332423886518136424328706206595863379769629066276246670812028019367309732426548691565005638729142167192522838835268684042864416770800142405254612541786164276235492578629153924197437543150739176878497082392894511537105275277564041114278312626817424738306219000498293969992493063785642457300725110915144994127583673742391682263339970935717818803937833976814323397544193303103300302398878543695261352196637634267897714078973959625409594842899185389797999332702233914607614152693080891623801005727673342966450601735575860647801775194167385071182952223414789570720976251707899808956264952211697970466906506946487604534603065529775703307956803867599807481917901404010116887572804680449561223541209270233771553839914299969109124991278947205821244170193726598428025125366844519705945109647904144761673874039710764802449206998915057604483181753813369186744762192963356858928409867818292755084305382691603838931055012205683452953578446314594010512691416709989592879667939609397239669145401916967600194375672484344420841145309590022559075865695086418608357187129091474870162562926911234877243060877027992223179915944416031041545521002861134067927488463829069070390321371967247806135828195055089423446420057431425632885316083336249471303415802966282569449303907150847272852204937409612846141018505693663876885118501395007509612175143601346797357962068837076361434501994671017884019297386568470285820277814127151194531642778630523262777691948667156642802731729108195556203379427856096548853739682373945981696857039555504068918649591242150507003105286607777582373439343433465876904992605845795007020998163608322963063706764252567913453672422838190242528193653626185925282509330232342181467594255554204429750183854603526523180949552117200399156022495905022771939360606744003377278698692841641866070911813810718032427203816850089796737938432881975795693003178791530464833108102834242375296480140981876678730283713206156017380013858710781434254876297057665803617496359840750069680201313407285171208156765280265474228210871911155289701091436388384749496508575901369947216016371055504151723203012597998010662621025678768202677248226908467795577750402464695766387983476968207088832478937594860063075554112988433123317962397777734231367580097647953413624120897897375810892218871423708968803443736225546004788688760827019723033015403088138683259161927315744743570957781285721681710949923337222750123983934748818317825389849879442818938031243575399114852177344862552490029124736896663996246709306050786544554152094131680235494010249243929841182848753460884740627983458228878752743349494278583381679049037922377046613263427703248558403386639422965577436038425289936146488610112435647449972156581723418586663704869307321861510774879178678493422284847807967236760539408604735593784975807094341283386200537467839085164059044102633753543268774225821291955645135775850556482732298210147502848409910728524246623197307701917588340888178673534379733921645026596674881836051923415500384476807882434820886968949449049510806267694842512603179999425922955033615771428638595233284157877697066804191378981059561233142523779254841451952429146649880445458252417669616091399697279259083185587336869961032585760709687834940796179093066788318743416672656747054361691830798886071320741195895603725077303753803268546035132077689749923407542090904955905722555036630069943565820784554959505147097267990156588609118781275527277235459707988680432011464538416690520420039033123966969388917699867301050502848279209153639345996916733817639814557415540824627687770631410888674900651939556562528518699885988103911355774881289960699719560099670790623225066904851923826899940418880004514776125443242836361916131795859973011949265515929043480055285010633201457941182234838577370185423416524959395087000513844228828455754658582709030384136514289778214970334830813073560626543996439245744124056667431934877050236825944690778272923011965505130730027015910544716747973705290992635914684482448221445397335950973844817146026861359184674553371068039909089867912440717904258376058757116286360870103314812169407847401635202644543687599339684385258225002485266363376967519844464615804134559695207218932378468363349362695688656039869434417515885517067273198183205490698278029748570890331566945457777270154524306631529520833779096205558586651375077858203109724667142959452007642870318214930719041203580787942777213066265663747446618915238907898867724459775137127867825336741607736195445752476775512443110391005114605396386376782790724738338466757601889708407419198054193146522307174242355364248240407817492402030700660157969996421806075975044802002585159810338907583719037047923577150383453890924942716844627551629297706007743281728792042419917662694927392268284435257132725965224644267641065838018604992318548958940514715710948618579909044967453210167386624107326074356376981011342153172094825905591059577385178609824797805328050813929565428323548163283617857867347314404301061045509343519723355500691919863723183484850013348200867202965516440450571511597577462540063437342891136598530492572218370067101897811500258391014599042515488984626952314659765002820301225307145021557532668168027295192322766987377786010635494362875810663031872813073960320584022464590939593716323252172477741962162881906567630245506910814238166375674283493299338779045502450229794510724375097035097176039267626485099849019291939076236728975403829700300609462251197886943832626245074635120242873844437143519897753657875755468974725513974536553903626915505201081215188134058433528603286668893888571410136306448573436535446684544283123293056693751995611308492798135888209052199450045176929884196883554957909092218407464089990773841574210037473164415847440865181009076978662290711406060300894746159449970093129389532145516724128112869070757420235317483716386293595749758396726027618529938399990589155138380837582128562950494592535349416206010610794480658162142322906245529071034068356684252226712540412505648465511817605527158453425177188017139114629259317111908838741251439374809728765947368862247957171913844139893806709110325727373023787418815387696422613924678315428332855187349067647846182573153954276598166933908858921652344100344857440140306162412540471961516312669471212354003338016029242315295793488138267440617374118845636407406915253538833150202528246794717666679333792724608391413729655970276998268389658588704652409323560021177754376323256108895602331731999789955137783562607308197817287082650938114883746176703568139571798559932224563311480303705491837025636650235602878044366934378925808647854433698135886119956112851886054950893563802748561324424236439801854333552529699332774013281746466008758354545305641350065756039714493757597620958172984120352683034005921961800399429680937999352095034730867548239820191601365506094693934947843675684741625406437387328490032994645539200458196659037103031550672203443152821029040983132577083438454317763163751783138772783202020205647441214596535592360033061948125654472303594395579101772625355637329877298420448733216303716026555736578390036224289079026621935697640757486949487213152905339957606738892192347710192696172240867441034368797782241120698603288797515731455283885470579085322242646587488554275283984778752923726990007146442437231503136087804910928137695784758168113901704585505130058287452369892274720045014722689074337785491549408847189449351256464384638240376098693133929516912695243762930429556108825018447927513391833166349613183055828456084156668017562194135967863554885750934630568290522676221186441926914651117999910909642766588426168018899001708265903268194932597920175134378020331552782598120904876766807153790714093964417265066798787986851394878793308558101677316706436760468410533691181976947489416508129949686074211959793297331746117703493769195143438841958777464968163343699581579319840027179954169891410252894207843967215726584024105271883807092306072378004697204468999246908404050123426304306780459407598396112061452789689810792253848160970568126130384433118655680148259019938034457293774744096542487319673035590805562663203414844876490594691084406027651430315863120361255565823098699831430790609293215615176229520826953476013138470913695066547368928025814922245485295883992437567955881878616450556790626226073022255382033717474101041576670723960261532414802496888730694535199406675417321155698176929043033743151269200994413841440587701685449110859410280434626632152030898853801117431372990228833170377367921907596038249598553932665300962857568585355797113824159740327653956899274109388538469674939147916539410381755094559917989029409403818752096748628245322436446276952582889983909978513457164013709733697198321664735233139030199641541271059712630118057806371234601825369539690037106523929362236959813406615801926643768062110148925613621854677765418678717022754040123004945873295803329433854597657716074331708175978599450831327121872779038899273259910419803030784203702638334342147408535414447735517470995487219043163873034665260662901433031499842823134339054994262695440064506166903702449294653545383000108440105093008980492377321096161493388635699306305281914876748786081106262024026887498350126567045460520768577854839805104707212315725862827972750777215973736813307076564079733978045352619397787235049623377276118192782385292542025608273787845720812377518036627987214013774161349543773136568218060319413564552998442945436683558715578546645872117424853017705261754423556324152079001279353132739198024568512644334090090435484565839552235246558618709774724213300528336134950565625282744264856280888478514622557257710156558569862021664432556550903079870526945338308400578004326663220215333389909866227965995253646026735427633021013817996621693291105008042904976677954132744854680302274539809932681636821782373849535725296526381242929584569515409131295048569206305334111186360905375813070324098730914864909483817015534260808833600270308898369478081935575606192204132628600670655589149165868102984408924390570213106153761079030480881302511226889568369287076266232884295074772736260552068511342912069383444884077367147874915157438415234194777220453675557577729657237925302753458682654995164037372691279715920769305389000143916660207373270051680802102605964268909624526163586425378228199672581595468290838806206813505378275868513269329488674104794473700186092661754560207042181579911311992792598134527797226568050456941618399331771996759022947552631793963723227977819152002436182180093907941661785381144977122212735881714140835029857116475674739659102366034871968440715265783687966923836379047718816304621909717666889448694583751227538683058659438889606931597701904130573727871070145183785508937320156787291666321576444391481072133123131299750805170667281400932571111431224963762812720899332687835099156062759412187417238437403039291317526938501837004399003746640688786761829155204244242523596686182856022278188419834445261638449520823128925243113133468581800893094707934504946258733565100923463487681644765541321045803132357010981274915288245662973438993177260968986621788876442773410539616706728152836219630400468253939417517162957094614038528616627359448976390706182000431230339110432078811718124715494068327110861387153025489546804534163411182594855856193708007289496807303793514596499711337886037593866629514150863899448157051066169875449626843016011860124848263917473384046854402077600819154191811032066569106585505942211476564204341474864551626843612270513222911773796786852223869199479740501393324708102515386677232774208947320069600658225793352273786806826264283456967251723280752734299327196181960422020364542148728008412435060572592188572356516549594543262707107514142583450293948160242085332756730149181830635229429816906674089045786523183666371781297457515366536200720753956584929423760696977499377792205690046252703719397082470540903301824136117560252252598606726259182907192271787026448932145932211279836103785854138114099773939269331509562827165154065407880797157323257171833664118568214237003283402182743236143390839341069569110712448755023224482441462492455293362204676635760710796076426135876241011625516180832306180741165803058458281369853709990201723288656495725628009964125646558346320708034695789718220636262190902044525290672293432611190490857786056479084816374102669740522307081347724184348568444872537666391161814889163923919494582674759493589576487747688147519897978505131891176661671743830177896626320641270508691736496440135452787960959486368311840017592205990390090156623185863632585521221058253527309949727566184710862625273522197428426174385085695125324724551806721735802951693594642277937492772917408880684556459082446071169044219086979525606416347966539593951214769524876316016773081740802072742361725433467068615843192449065861767419181488937357637941326195608153607252060636163416613705484407265235077801473344540557387739386506905887614456925299006861802103251839800121461882080632012740886943914667674549868274172239356870995803384396419742617431545910551461359819599846671151756329183873457573424171387250135828657795421284878603070603274351211917395332419266219307573505332748878948491990550267399827025061192666814851530380755995486711424297423080203351910065716182267974762831791769800715403579686274864427367758633861483452549216468346008933963888350917592775914507180651575550308979828516617946085450815893693967445078687642625983980341629366253546213602757661453619643218028282394319763066127396791336460407662244335412078917415368106512722551730053606188816086314305817944610613831373040356910484090316883012594448751954912828966535838446331742667733900850950033996513519970444468547853894320665867336348593792529985879037450478069664896394316193362032912117072323535091465078656579283359660645181685730102930356404666321841006115545703897101031074618530886709152500879092574224776183934309489171301310225071846494093187909703060323918950834700635237365865366038954141032920764370025795214477855444958598092083831875352010943364244715932113316494654733408985882390978709212099648050150633033223525102784362601602391876376037686726656877421937820332479243165683248097064527758445957741892393861822297429369461799849617442764459770348148270886792136281957491662949840795979412922087331598588288254412454475577798675343351536819120852500311493090332693527653533295210262719928946199126914490290252919926566749806785780628548308479369829430420300073922773452715078219729365178260109793963708759524102551423626053123106939397951072528176409989241474704815404822804709649136142046613728361597131361577670538344793863361941026881312221491820357398712961195239664447353224143410848413040865096018614435276489328227577825455968793575696650275814611801944037230116249975446201943919973638495731250217227183994607588431725141185752743468549751728294282909010460804944465602389218384676659398350361809099075316343606793624131413280881640219935328862019141870679206966788371036953506534301060555742616337228014482439959151050266740859998980381112913692039684949553351537207284878554571465937600180410163766825471241169421260428872004456069435423231683013999252812287156035177045994914077420648583545383413724007567263422626167076473172668384163418215708748743644703563589398828353736983491100317964371551706653714705645900643966511915447890344780843901402275010836794713163473039469809726672587550558886592454668471850956520129753303959772470933420385809737069074703913887730839854998916559205965444331222601929814499171940057421730548601877826186045216841540716905089462665249827469952812296139765776816442362686403889565287795620742383434779367398580834207696568551939330715751243505040828670266866856309139276278385953283357592373435340055404571459964275955195052078001931187366088611149993051309725178153122946267946384826162744499233556669061206252874539399394766988694375785219708802637144334220299715554076667790621098909015968776583735136875674313332304962433778784065537681226293298213363599762523847504667268242066496560384505725926900132112665590588220572003404849779844457027917339501246006534752736571924850870921312012897247062413618371659176601488451650549574473499896042663691313045323035405786899051926511090077532112213947392972262869909848988943763147293735415552711241030285365210741923837964771069251976736456404466040919146250122896741546798718396197999333547941712583802210906711525416144246126679537110762986299445793709257313449308156952631967456757123830700921980970934217257318407049620590205590275757809872849541756401886761420915671576304666721466516297097633410619158492095293716432660743530555357361941665436899256663354156404020615055298348686223631850578973945281410856289189507911409643184049407899217375987694997571482864992957892088236790992616953362326812753231563481781614065307176429095402278995778809315994616028270836778546683748928563940315839337540775811026589413687285871922529407332194143826696767751690552413670904243566265085411411870535194457221684994068492935917943776090099722969401936540713488676456548114677184575495339912527653479060131555876201853318354101251045067705278553752235165155055302135529871445727525673636441394720246010533359590796182870665192004737651292475155943457204656188115086248839774172481094106250124908703978915150630845573524375123001676212437175570896845666908583234744985599934485092278787537350858122515557725984413011746748481464663076730420668317278832485527484063845951952131928510141817734230494423037972128817156479611818012104159822828308618344640519218795494321302733778997545918188473313586316826962566508375467627893826524678154688647896574748051333292916679759586868849430228648093738573223419647597917370801214110709586377109869882579071318362124661586150823064022520460492492433698376250263258222428170568034241540157518613041057982093701274982577058468367607379495282365489667287881010315877879168389072520748735602900975999443453220047882447881450677893002584712791296596311380602712539105483900896288646668383492471510219296510418497985127577498283980093634358303023252346602684279736399008005448302056549684167841398840187122175234486363018650398893899341043188678732279338554311482426417555789589952066933981925461000740954145906109731898455969745043354568972543838775128142586089152600524864897023686023512180047312671984583421947090954918889605023267110894043522770682117273366222099228365178600022561613126363685183437745759929401911309349040242919962729358718172130716548272531694361634425609460476323140683354535843940361413171939098680423126239161404713248154084786028512383903736789957170638946631291538699869868377048088745748322035951104168377258146921024751892510251796046045327474630003711875196934244838237224031006696338698442196585787255665259611901982286052596185971478942073932215886022208979179511373931336070189801367704170668628031839510861937339418278038760578694284051827511933772692175802958475303568757856872087076166481010919390525738179764232702198394641302468988928389121711045201950326787249446755904179703662748971700244170647339800188594369178941460983484418756576303123495256178971827861344679863383381920539631098959661772583802547180512122345967915915899969109826852247095374913865935690653792379244871006923477724253962591691483282777688242766957638020940311230395572613802133106569899561470842309750166798209760885942898406450921257741371549029372352151859134876645860263517390633996519342101960925609308714596294082635123289624171239508960540561683647788895445828413479836717582238082910473632676075703354406709605687565568673122107658264630648430418867284398787006296329883607325190154290990140011456263857070096825326038739466678925494822353712435782294044004326979019055957528503812763736619170369017518805610081841831524420669358379661132242654408917906879121242275710555844596755908430874737620976241382610794196195407679818403478918314164107848369062174161670729748788739747656274926303113461244990924317382992710116774161008696329940069468323689339308890667201174761597008485147326380009955597587527869188775292821348261764018762826823845261226633966838282119803280862490797056417817440264216311398877901408949164763463865767985071220715140798645223326696344967179982784693811451441642797477455466394317919205868870246930710197847340502967294474379369332181238401241272213959425434484589678974410531069601907701943292074520187659373923851227541634336566418398773863378777748704719369524792809141930330616567104388319008702044292336127645068282401119603978159564607885948424714676400085231333241740587853291718880818186669932651589200479910006755214808026663746606434766653790001140157148976335841235563524761865309856119159657372583270638884500170153574199623211539912043252296149238642114763761946975047000475321990180315779044050555466386434246471862893892161361792588724855615440981254157506244695164011580043101858678926907623924087110151972525479668166537371260363789803672414047041769648641347805838364851028245654694724447580504644304878057702999140332657047038251018893731808228238564848043616511528148089641078087566905480427844327442793740905686649114848810831115893035880386431213548616028318748881137445568778101944744369438685814822932251108791277037808420889224636287706707469018103438234996443370681561848216331767561786584310972327440957052879539106366679842088040075438673745044205079007097885213203746298108191041413364513377744771802639438040013230798086419230591646495474992524847640198435465433459383954485031230372678606859570983013993150198773905395730752353298673580971087582612372062825365202511065152047073500004406513717565509788662162485651891386526273887857914517626330450274747320417945941868593839945493125904683364765195658784071560332195112633618111360253091076586206972631904761349019005234426328869099534449180425326308911053982485808458435050173315371623442494601125356126282183342264965466299582118998447739455389022287034103508823579309715509649522343210085699587847888552274635818482721409494185497540475119536396568202871081729766547761161358668963362198673249837475144020214561191320412285262431281839835827319021802782929781431495769885924497620998904569174304762145670933490314686352386718803616066392286809320147964376110568786118535592710920263214762261717721107546048022313977796508386177688275705455376334830892975943561256628751603535679320880336619988356158151429975828416809695314571816671522873955021508352133546435011217395315119922768228143386908228580787880806143707249109050794278424778767589877627044438352600163571617679051317076920294478551168425232551907761759998430561505898042139665150411825630215960145047346630141811866404079797887930982990788485524205389442302811925876005143522981179630614193792757168098519528583332071894819364186208636789536310717045980000855458711812960209543149446864132414389961004298481364228548362396863733868118145314256778677739924450408564408131525640632950770688112186982240108224346174721681681164598521304570564551217061756967618814594478460817676669573964237345337451509444330871114812649005382202426366291036696429009500790039906464983487935646635574117412401515170401888888147927171740778624609109828798531036453456702857881793094698363379712285608074680756936469569844040085172580101930282567773035178888712097521981540654231580134126023840872841833300049360261522165949462297083366187553947360144176042479185813819967311703498483992341487899235927536182933542262502025526429067879587928658216990670871769201884837487457701904565107728180644426391880992402113736272768269707429927632373191676540296574114356625707974159569845296179346439573897495475472448148202044724994981232781617093000599243030054162845826659503284204453311414459030070533294319992686763464003275926588931452490874295666102862063099170080032097171266831117803192476177203772805203835354713555182927740480284137856778734588137857089006503815558460798257384833773496528509543105305587720709836232201146973890353011251900194635570622933051479280588596262560821125053006663338729908657379652221844858554387987878151873668122232276683670563017413362716599424399217863418695278971548456920936626676901898784570984029178320515311617702069758658765786484603946550552124215236588566712188626882663404108454323631501781314248706301764621669592247648122633736889367992559702225672543044048913326096923605841150928129746910691324077282973130589645209553432455271323147224252835934344298006094917722517212854516529049057350024617501994231927429600319692790878569339450820167011511893283505165583529209167440105949061913099842756717105394383088554259951575202730331704088399018627159355944251528961432078819477525095824354017421458835073132046113443962965431070714759134042854306138430630232810727407365510443433820328055514206516834243986289352721433161229073922841302821481280531125295569875791922220827144110604469697430520256585213704515406997033953208962929187266927748573723109491078248483341856700996984984737314474892235829266479407780659960690098865764781545715984377193191097325077426243307367823928174260066884996775048559807341439673276923130463170924728402489530233094943983060704603844597985121916830014413976175245287716122068695919245882536407168224505108241219382980682751259823521227352392871980831189417247605359264736322278506701271960938859114369638836635641550954556389579263351281363653561306920612625525915052547002153436257257579659805911547897172792696623472261562709597873909499975650374678040134323944773713545637088755125731446140699753910510448855313681198210079769823889693481458160172793958953148062121167187895612110370028318365773596530719225237068686623808639230294790565405102997462268493399083043408107332081885016871290983819286438688038218578902190940803686879870179258264991332617283647799757241634307499586022884702609248549814453566000026184637548901411139334082385198487638683685595203602747250168393831497289938293309559306280778209821219548454888016600507669778719846405158289012457558456156729935805328105688841426602781585598545588618209325746392187728224711246280705251417187366478930509674974666659802144026479416599982983227648381697138480010071379757960347576448042686419859632485401238086767411349503994412770016077641518221471995077333237734206706730524412512403562260380410292444223716192386562124632428404579577776477546650937658802516058713720593171420478274320561051310562776260117185787166168429441797879774516478053634905351304085954420671318588971731829536500218710517993602217586994071311985617536715887420662756657298175463370037260807789131586827259450631028732145202932890470445294950046731133995543343414924085679811946061326685007426939720783568509620737436078470599766372654342060296996427963322990502068444118893602162525412457025664726496231407455556404932569385551854829332216444934925735393157181471014251441647094366141344902406839640927382500700996591860380336864279451573130648371308174614899370633784193231307159947510971844641073409539496881364819810438268358531900294243447558943160677164287717376310661630520590714516304423637511237730487447507672808675966551754271163086756256485270980485498912961503223553044625297712058645331306153846285429623249994941078054694103906396370548493267092334707479190084049715685642197145766619070794513807482206343210305039482454932670193927246904353598696875988812417016921472803072596555131688510640780854367118519175149539144480235944591668760535196943401187255160193814188576103030569884735264656036354941442408440763862231301379688658824658803906394925340355807169812616974354825378495944722105276565595690866840626857451596512585446767867779914231500616067630714684737719337413142716788432085377381374348905731095603447049250052774903267045620218396755185301674311498412173693557416982484790662021964332192352827307132577375808300948142212493566323351221022922151365301636309209888657462071331522665476610887095533075314286337933800842753375597858017569708871958088156148228414743605911741980109347076113930955354925796064611604193907129573537669544733595870649531748551423623201404586986438456760665717717200692343631273421445523290646397166447045355863374380584514799730466760011561671444847922404606037041294181624809479858789345039346850312552659182245106904004498833731793100109740255061615855687161244029023334014319621439079334198919749191605731395765101975734590472339224195396040969629248940097059900914692980553963794985358037843994146597292847220933877990954781902626903601124333014599013329776705641265286644315217547042266109539730395448486723473692737954205842321805866278605295649187703897210772676241916021018118888500624337664533856694166849535724836447523242940097074518597991019657299703721070293386447734378428705209484588806830988109832164339406592575759115379511135430142606112202643960605291202492405800910313349256306151588682364186427325901711102709231155618000451625277673112125800090142505851042178658177984492337805554518040117635268480415695446772573641572098595757397783446213578851583750411806062482905630814457218015472843800733330224735671631832907611798901504665140531776674218172758917121681721999444861440340931390455935303109593981238912008279471191439515307203624053081925085136051383397242626070646054486856947574870556354715281877005666737889389165063265818142599095388629726759640392189536332619515396709344445236171669114966921803412116392544367266078580405024367949922123002377353766107663636969503640312526354349849343032222164777544444543525933397966117701496260929609583807750996716490745344180431104356111558854006851081049818134552575585593979931241778806448529251478489778369441563720652288953173813817996839614210265351601735024651723634133554997845606068835750018155260325697051522471244898503649372121117557515090185854243811654180328939106615684966591655305442615151526451403800774234781140033672403890773609907578285515021649017378891946582123013583221802879106020388054679644427942396189403821139600997138315693624146137953611042343604108951042325754541370793276925337963326345658239423654781473189748568353167994196958334620635706445248975794728325022415355457275535321712387703851939439346502116142744845264043999653172389065157535451569946861636398062136873214522526181587718584098419678517611139783296237347101592606307210014191146742171961088772221684647958898189117375828171581217448970254428136870758176458384783644976726572950214896313365982187237349769375386620971450444073233081098561870333215488680802623501985290644294882062746578783564098323444439664590404378443571532433831444316431833275199947833801868833046874790892211040634746277690116831868289370297115015865990970735229235388075493381705597063753804310937572973446682175787079518207015411889729705913758284328516242180817520867673367579019417043013988836201920726563911316467822084558149084104612709861742234593961815486734589190759820407597311805898727701956838436546719673305625964326229150723618888081527556592665679433385682774553937294111514769343163921770838543890730015518765024453344198039238153226839250618914728965210675762586521420172792640810051155280241823316265120557599016091252183459923669255600279144817332704579025604887518374213217897463410562347037775494250356650841738945823174621040808550334115715446345488363829599820083939086133120124253294066064383495824596131525175411183406283320522138192563713188373395292681646707825813471648358988103283647262049243823002977512681585547083111268691455015554116506038224850057604593475841906564094435497498072424168099311491082182555384142036443741471578336082893361934546992080882313531210079477492801854610489722168846851195510585168225452845846668031556135909435181251238379094746351520484174290420549856146360987788340938450465136092801298084224031051554675994755623837165166235804391054702740557227523521022025725805000564076655889735325871335235078481960253450099426179747558494060610795124538002978037316087033368364752124719080140002409067488183391096065086361145394811913898072980588865680765288636270819315115944602329729376568582989763354346122248812532891100213845944517544070014532920719735279351202095029660616694999013656717059819390901476685754894011960672140511266925784431223161577265197676231492263373789350449202996959716998007289558133438922402643469178523269715861428737020652209183804394320513865150142832864089954905841742295345181941533866529978736272592432881989785142566919261783277626585190953147881195600856487159052054061485389466746914593022842473513682257358187637326513727090224199522663681239034122237671593591982936982490015099835853570081953214334364066509615321686497373817772974573097387421366586671201370036574437437959098325308096708599629004791653816645136057837264977763495114225512623454037919529730371740826016914931362894348812720502235576647687699235684491193016420523581960740806201223092591192250393346801180563851475206816830359176568970783856332731658741145413254731132362562321630965764283425133879296711920739356860625762872730084757643907290625039758084285272941654059338588331467952044444481244138812405863718934302461609575009213354592177982220942945290175992425462538015059541455105950539735754646467885326556517108508771794488950150787073184832454581127172761654883156915941274148804351406770510470336059757178258883116842055764180635497520754577576392468064574498255392886339352832693541790050703864926294637549726557719737642260890144384398120419818056465901376019105943602964770222094412055162635565390861919643725607619555713809489849187733159850035762569885869440338771711425138599719226417403084967965558297104608248043474038530341221008602239134763151550381873417208914804574428028430892390613706765260646539213218443025965427519608372935708639417128330197616840945630525416326420474218971703883926513741906792386602341219875172960522295911974175480606011456883278229628773500561773307424935961351543974293859243874918601519229453585352228803226186329741003699834514652229337097678585505964083001988655280748306032653294938168056742231376626785340697866275846927766734101748928324566103356235009796671408517752186086719964596196190109200862923413834744750179460445755323312769781289984159563983075420372968297167052511899799711320945126227999060985567674104255474161947696752036703137868349843242646823851044774571587221309753725886366420221093423511691449024218367830943918310651663112211898814084445875521870632775351621988570944716560507793102218702738010956682073894343257183528412057701565493438965078278601533772129185379193158578287106378095651026595887018099099224745470721474255034360871525714561898340035855545508237623318407151197018871211577124161392936785135916892915600391523045873210658891586666407577589392750880621478562861277303878678384721662696359684825845730246331049262576462541036049826254523121473844672857503430274975126814433055857571555084864445868382654475168644451225700182873054026713729963929256936055143735647938701005348186644365203153468321832271940628911351884542608921173927990791976563778638586212395441231319091732325645741656346285658682668810073672156020175541521934497115169784591636122006945289179038523570821694141634339573142143220278027705731560720885761752678453121386302622009465254801116269734349527061509663912557605674948942983187809035840989844711840281459687054721217640046799388180699802819066090213645063725033379513765423938565365931049430082352735637311483601723390491862798960201902199178272066707583625280691804689273317085462146896557095944599514585500474348848645015651704429594393722608279805695560745351571139120326009652846626654035169349070249528734860021513850367508034012077823985688983399714851170494479880838398689032881653568450201069225372003132132198786034442367977446124106210293016907738331339691913801510390115715137557879237217363063387689137133595250376838356869010077411546396204234429006311129316058883202232392925669724658344840040552111015551075127838434091269597340797685913453606693387501864933333980157800044209250854884340439721602237831986756925698480066760147917441377263656833667908775985736212358601654556897050812389582062744237730109783652364363172819824095741129886642535512893321545777086982855273416047315983762313424408296995289316685476270719344385364553197913093733977067059795263678548314155977130231425109083426130663994868693558656585851656531702727977920287714137260955242537606116892207747243417998585768375241438450484587557770568885255518219871235515039929439149440403026506124920465414121638583045967400346621707936612589688934968369897690519756743411019444000672825437880918861816416084626061346980598456584989939550667181978243755845181052789307029285136248540123790947422295722337496868044818517535075460405885135291893359964984408085517135300739199613553757200563668994767664919014066486170541283035319293418827358432715543573780890298096545362485357630568727217407989678457163710396725219239382019061475967176378968887633318387228061313532142611445976766181316466888420298779500342747856260501533432539936222227918548769410531735848772904757244455582841117864356517379037528297631683163020000277505710622108616992181737895996863835252136068227386752476168526205590000192801338146248800627614719434796681704365900564373103737006282286748314543210330686443615704622308269920286786947290148562057989549288030667067696849388632261793842425126226576359561525978791772687120087492810213288735330676860359487238445551733179503779070556822113118592684018515010272732102094132424392926523848991094073196185932677520669389272684675439316639553807086219389601839807976841802927204247037674253072740862615781742194594369330393802954070044753644910489494990931344123467331272653274454848457933749309738310609981493029769786286988757306236416580196264813780285515765554813363196166037643488455065050310998450201573832352073750723189087729669742176403272017159023259506284084388948307967044440082550252113166992662451329416969185857885218998395550887785388227843358034306830106826529617146539714028531997805477666958169346108296887853751590353662841293183778453399645486980173192257722569421657214202489842810125597293148057044948220354088499173156767036587261861653601469669758903007972056263257433282340793453705963823209124506518045749865494398287004866078274358497548781093525981279265726943405253503671733786145229572826070571425553934894637771864336663010286810439420410848824904156680021761420062249336444102712042198259674992463742194728055907840722726169948902307248445671191066643117864688955143943940061815632138530183466988785740481405782365826421623362818099245580005019791402545680304956765745019445364573185881249037566238433967799166619282020717276885916582870473576412414848365849129902203417998652851094120403602641862315589201651730122209331427049175380861528864231376257112097208987606542122018584956334501244314201916745094833043742559341597447763423420992494948350672880218191394321321754332649168118024144236117144218876886064279413178637720910924391996309968172457667511776842766818044875989233082595753200905512298647310821661161455672214987612647140243500777366652792224673515653083419195321844943980449567771511776427670007527199052079782238176440913686480516576206425876450178454252461105942787747858819807712105660496107071044896878148038209539546828016709671424807010428731637154745683522014857318350350020305008374273398874629083068508224698413233633740953100926541748224222162061478744358956431199199287992640659409924333265072462749040567362942997305872931711110161598610491617239537346866554592311745445214908680469897790767787714424913092336893283587121572361760017088164354434682487690036033310846356941739121930436242196587734899302862439125475892715335247502783122520183672226313758549728971866350700432664142026017923150058376751665432176617711436169279653780336098580620567394895364124816629756178726878581260252882679466820048213333545324958468177993750796762870247671397859498248878579732551998656498747138370760753185083228055586915248413499364830416414099201140026839460351833661544788802914673621793753607338780294943599386402123001006328405563720012151924204184442928203975939114944115331842518300444656706443355558793280316084389461711448534020981393040265759527117341232205734990697425382371338986284528892975933708818131641504291016423034714227224402657494332474991406875667642855347035323716086440461704135601733872135575244111142713082315477088909495755123519750871669658245358121620843385992331449702094664826352158869132060789472684907541803383635681950987049790634557037930398984839537426195541256859328861423545788773825308428675694056338016603507165666729867270533428406245637862355447055812460481805092585446283253891030530720166601840284538891656463465282268165220654021916772974543667113825298633044220099251110423682970681476933275474235859953418785226684253599094191458792335129667175978127627952014959599781182583098273579177753579647699186287157801809669106474095359908005844684538826786505728651581795550195411307846847445741132096446260254962025543569907796689445975034109245564149765737802807453326197235836890357721287500350225075080397481409049087692123062858147063398611435390908778021018182248134159778677075896829060122099533329629289705740942630688590999060569297561644569498283134592034833103787551661741390431948046887462373880689442144301747126603717241186028781633654839058817175845341200499521858153082184117682379592399080940216712596573556445425832455574961598190633968866394583713385497716972252646355721042324985298472852150013426269670987930930643105678194661645091825535638656430012924070319644678326648775571097627710819723932529433014096793592745857743742757559646521585010147731258476862642898692563959296266249717732965170301680591311839499200339984506993672113478726690563346813917632578111663061566749843752763967125484579623378617112799444448335579512753573732400557636255750166758188934729579400640650247337255829086721865320162647524325393032877288964297196537876348136588354757658732259991894869026897271497663140515946700348054153351112334202200855681988442594678978478720787032781295974095436274015978063284047150159021979734107206169142045140294879689037657503807935541867434227113187037975287515960467102108982544810877038796420967446441456581665985331979713513892362450434575370330919887692347148975912425680593518625020357365111480801123364476797396596838767708644294175280803261164685189719070857204790680337179340892091886715972156014753884371474420772294541967985611701557332334543780333609289878189215046996472029194831702473713503226790535006388326712503793022751342017714977132362531066394852422742079052545339418879418607510775418353815846880649686729731124379196660135135726058184921903401825473279318477724903037711061200895862761065909898855545982179808788144382562476584621494641295628786420426741143225727178169769844649632508203372198861846097189978862091915553829425408726906338452612815542530786250125971749556670335068848463431723805456359074288739554316624251322775502357373234161019370943666077649598833840079154459654560794770648074754304943975319017031794740161018804497359961794587684323693243489014972947962026513628633290235073347078947538487009334597494944741096877073553731976204282244903076484749171012041496858712711160273778976239876976708817665804716575715528908254945725692619475584914987658051075908430995635426107733372772484472066268388184828765097968034695130928998176028866729484650835516590132399544479448646346984736636635564792213398462483036048644396017888469103341372539776368771744580936545364358765304432629533347497165299225920205531038605348293161152403092994270085729569254990229350235645224431466159661851554078900618080242418822225086355887782670753969458030299343153260121662945242526711705647822326320792046928752106950884719606430632689859450599804924703899615766194366051670867984430569355255728847521808241154077711794326487500348318548890384748124702676582478621887281738744015322964197779334539858026604526522050865015347793763726122413709004423866375119180449709415120050147166512400484745693227608963242893288389897803822638426844118675565081453609591570583252701328930814462128533703423062900412716811117786432713781528900672948563661626525210462363726402638806826695097186588831298425696950222997392964660153275001958623744222805865178437523914063836682082518294623844215414185915853149060704286069563003164411197360790933312793951552090138525405282521946197242577408226821750399234451521032648699136328213255863570681725258118441819433800510023272462644316242751575747662452065897790164218852033047583601761640988138048210693135716460277239202622796560727768795505294114625817128906485571843547870764440042099775325582116964379504646048940131831715441215853613535129493924832458629833276400682585297104546636967053029828807890149121982204545350121732746666745600012434903774823482335781246605830520283208265872588951234931661128570741985611767723339474152321842339765632418611122394620695865896016961006031314108227818377548311948041902013293878400465931504437167350656885558361913421636160143115901245745213911938143728860547992563453534421543603926091190993765149125727668687341903045775891817212858295052373526527672695368132623583049668037915613929756750062552480874682052655504045494358744845098580857846659024227959349107203990124802622639924835619157755393524138879025363581688030583064165113519924174698022109174173515624003459316224852202964725814730250433296598177850353714074302254446029591687217079479504159632439396826252206778224934927659510001682081824492689489841606066351373218904848501388924246700957345216170294499536926247836211179560936511002724029696201081678507325624586342533816448323217132838018075681992487331600979708746962964697329308102683493615561855538184039662507725583029048663454561047399692539912518940813368057410449912825007013923905145149776281983978893916241879521149269353454612295521557722288944513009655735056890158938030042899529009733671905634591894543486956752102477673866835262030869608576526205034773567513167534899335439497187951237329619422383617153566872020552467072645780887783437374743833483187157351752132636878670302693472512213986230230602609583214846770902251453687571039548909616889877324046325232547135638348295798654522513125225701229364744240037443101125246510849240532947584791198134858977403912735441422469566935311490480133731761693893230285608147308731064296063865980650624368895264214203430409089724685458543252578272159798993184362162570276334860755420965269810922793105557939255943654485567619639351720130375534917397525244011296305183709404478760077118918650364538781050727043169226598931926429586622693008276060439951443199830435300238330986349924851852698990625387970571387092723332976746383444439589657499878901852069171702162278039795211286469758736923317515140618744862807818761642809896466143297564100228805501023572100109174665029393288863504103195634476471729325685227033957495610069989348045014873524286784253683688066617731112227121411770525084660687527164742063989636532872295603456948852068116241807662654825593293472211058040530139356049779098523411485786597921088721498576483282037879001720286438324614093086266496797525512495647897781860194532463058111533662748533219304683857214448929986513608622021637397594751066703102592867068233089268476290979606222577771815631720837576815304315750308516483925063402277149670995141821861023261947109208290646464249392328755035972016132883154434540059566870623573797069919430493561366084801383752761415775215774476091895762390937445332448621236337730399063164391925219435963908049937514157085754661135473639023148430254470970110790573083141103044591812178744015334968525766582785805136706239695903626030472655529289533207603294925912341193094137545606972002259568043340316942270326153033059617973920169879513279914862287235726608630247560646054728744920455416420409736295134355882859599845415589812897459492133654431296694041593374905879508229170727065550188352393837460537221106175756461219153846257049426994824716596200996579123997816311179253093205832068736350578876005252543067792529936858739007816089950617906565526504217934345983136315113243997295232462114842982380481338512811424295054741279941602537984540962301639692863264055258146431010624261043779470283200350851805725826254190109228967506273681352724304964238958402671112608428803661039967316727136946655358408546355684028059897681192317093974559705993622932156138862266741838250888672104639430962542124207778764806486084589956267893484894693051114089949789752362316242526512492872231276749369763087623931095545252077325617360450140585437950482205358888465195158511891261666394510849919894746179287116515159976973626756134602189898024443931337280071653274537434188832255487794830006671852625006522075421750551186478986252032341838471808064290700069478995413700751570813478968009312014817931147429663387000260217914648906318883012476909632647651493541370211933876681218762042084768169141125377180058343197215470217572768378675699841512287314133801634389547863952230239407539492352557388478961561022064738549624613626140571029988180595422920728222871175270583553988112299047573160243434054811244328138244167253131123703731548100908637781973178568134621762320156049001343871033906393725276344970617889607436745015115387980628439898472654925826211068275723406916226133040162087993972639903114712725429307612628781683178807753756974059568468188932171353658374023043301822828416818967843649228328718796121799621924430743315546647190152962479946804257740728278880182736437422450730333564671184301314078207011330994985347650781191327843426979592475772847866637638583908469662903023953486049522270936488290391490919894904465943750312711748135085944968251289646873187744416915609087925375953908334511990485460801900710759608482287237783713483250208036269420194761870743984475960817149275683237560585487248971547226705000465378756615453163504024636679464281443263054888473442761620895298610993585885697818681338473978997107525137773452921454063701090600995861554480493759563927348870714381135385142410296494579969081228005880283611715057194291108828618632310567691587058560458725580901475126861160619506972638599120626654289556103962553015417516359705754773046610170305039444225113423498170024001015475068134794654490888094653541829217640870487342413056166876522464439808590534595046821608076996983017632021798396257936610661942325471562664507454315197236735226586539502392451297336363310352582853071214464297219313476388035069344831568770424432201136177224222315910854214849708124349377838264708505570316841692459583290495040756258565043557794365199449334565917481479746282132774104726266516733333794353897984035166078087052271410106357765354356854674211290732765295478927100436570409476183312810108049091926189465049560745055569272835698877112010634258054048167728102393000200996785763085029271584041527809411687104574873160863715347382464725303100857744768459757510859961812025842845172306065645347556324386361963683352208218866427705259813042281526905258805344129363016082580258931935920230748150569072510741472244793155914423336152933506367328218994327935415533386697581183575947178941395132489542985663369351557661831079427174670606002393972284058744942690418167438610892472892447844690699660345537892430390242732160882079606016505045765331166038114711052138392565422654907927963661823382832873116407588793653506152058838953225817141976346760734330519436333344232315368235498663865374931590433732423301628765262233870306360483703056469683708720467051951337550610770610418119063495114485214348702313435033150422349345312808351199386149869369150284621858399487649940627075796119587258379770326246466366188330727416325477884038016241994028759990445664096782166530598371619290309251133433453239984115261301489903141520121780541591763754089139373551978568217134500006118602458643129400415088915590104628419511051765917755990212425628717704906341561279380603286090665137840229275054097391982815627033587890405541220332200763539517936869142820538072502393733215207968723364218025503112146864467105370268260535655043514233479306534605229104977575742905477015400312802343453567473896800367895972543838958582673271018955669893743390512966926233591552733856106912436639122345568937166101903858757724304638353440031414646785045362328139717624160657823724414001110981289974636255764689908692201974871086038067711974571290443587424807860684386442702949790009053836969628020020681194488489953513594877609564944071169403366500889753071573327619326840075722053047633875692331819682026430100927594585265792010936378626343160262421179555865626936224605907977920472732070508828928529380018313364785511781501300801986959331512163031677032209953564244911217568402383503326381568282698709863200551965453293650900937463534911152730574322435828018064453193646448759303642760996731092114020784746838440108487479774623370217296224615603813853479100062639334977878498554281941637679704260965288980438919814064786014435246774873338509793635371643674156098176642088529879640650600195730958217913454706961720151418753452357410265945225565190583207950579247168018230286625500092841180245145481217626870017849347277938561820737962797120018246053096201303655176053705269910984410082466942896674042705241165571871582956559451046659328882676552058471266996672927697765029860939143524801818146559477040153803833433192231623902390096592131676768258268277594902055476456593423675159839676353147822364319930801899055388374392171586534777347331114986328788279982135202433941740232253683308464763216038085275616654234817684721672795816842087114119819109369878422291544063980358838660041559900749871578770345630597610921148055916689323235063983755625010300512671232203989451937662774966697625957683246617998477864197611753422634022033546681735567043619857158282786256572773188749253654377309617971887278054693458786935089039644416333193270843258365388360341032266038780190634262885423623183016411834108547606585761674532458381589603849926198865830786519113834078395176288859699866605844018084222078272329912586668644596648087355159486871728269856141511412639443669799227163290346415074558775040455162881406376117035724627845826119198614737144485138782643639178400352641276389473590835128300183183642527944105660587651686723859145582910874045279726551492010340866491694236948362237798178482536570964074061975725089124609075331571304270307516562919910690185950472161032120885422995522898414203359017793536370843822575619308027867646899995970149681705129628428875857129254793029626151753391008642459661667662169692441690412278934102632670520497574186317638901108091425620350020800556854172447761242241874949241957819265530601744767404022991423064588914226224876568250106605950229215927776621960533076319297131653299900423774373942307591894599364545463501324204452239813658343949236161908790306935650385897488634046239119399238737796448894974998680524750320109242405625953459654324138179264491755164172295331577322542630123351058076569958079739598158911257220967655736404527170655729104285821035858750093191962859875826572713160339869606943500854020408677718590690084269421495558997399462099968506536403625846609529421063720817184527736193983926327825083150315916785413423705728322818994805111628079137756928343050643244196910261840621037407898759098441065931863524880584778718799297111510266848235676587263216899922456586242428230971397983190166873761607715724260764375422287123791767842693963202382780900095778395326780111629629678174180220695650782746906025700510519472454940945279904684107721290815646715491711249224612775290832285127396647857002304848384846570235109604496514685647917384205880409974193959837279696512874817472315497241490998746447483415321786890512972283471044459475217967903543238783922726998289049544677253085037585229451131095397692823861013225702361614766508194690857899994970410387225351725742151976768183935404017014739370662577949792564645420351872746841107529024498019417578106974602738469367292450681303968664137907098600101988592665237953695044625084311723752211673541681907789977112193184443874468703381999939287437712008760594197571588745823013234362046103932609970682180353758190679436137053742450837648882423381066770756576608575351861523901545123640732984028217511722262614391955943917851308816833013690573432028810730812318561063650311621889251583227874584349185200079061529767608879601117277922420053977703388142970196228369480939797177484384673569552889976521598345275466039116692493689114176526858773350207330060183553585856538315255075601299848239518171759885359568250021954673951565919471927206550640206374217942490934282641558293885640288010713362421771975154152000755434072389669093468406651305689812095447592508300620280713759196595453406645961955351342356042090498449273676090113027551713387957217083751025335883983982333434788532403520135060407520480014337927055254217717564292757749278984567909015160767291826805863410990099649249739288666784295689835528303255856454852537914346534458138715260323869649693702543241648975277416422820219655937972037479489746341837770713865879927881886424716736549928546982732473876672426106019480047636623941505072388685183799182009795809035116178607291478783166693150242613681675194436616091784692027554875172796032100628069913830795906055443230614031930668341146284964908359225469286111906191350968509547586535441340068518551323315069481049941996904861094570572356044108303998820434450458705095019834312310956338296892092913292881383686787123025853585860836558045590710366357556585505221509867781077292864957600669338332503124079557614989551369148057123671204326088827567248580768402624464067184212767606732253076836275720033921107493372573038062398114898783267483824492586565165114062708217360274351179243092931729379319400546788613143645518307589395422387174933327164760925549366914273045648934434139172149710646390215999707669682380892572284878434517937018864938894820375457547738766277719265150141600356637784487303344842200951939360018188371723820267970807918467513609539255033351600256507614261402145068322838650877012982405713190208484870657622230736593499267311517537008300969884348071748308187585940834997184318911105644050339976850137324285976389179214223344574969000023757198692575413095091433592964342972450390003152665847857121661888453711576815768337792970771973256015058150721066037993287246513067226889642645514732885871554852643657711473868603486848237927396337476556992923372629190560067660683061144676930659319651305850155728877793045541158907741801313399708828104846203244248018929180407018574123414575536761962324688736611503547584948329393730449361723502147585875707856218359429504290102504668512030947945306772637818090132778438439289708122851061734647876612874098096320650504414854489053939842255000987472185110019915939287803992326429843680067096906301671117035036981221321660761292630612223768836745029880291717420424022933477544146539837362004227027334788303756803204008378924478014969146725873003840295239738377221606830903397560221445185895623896803521108547950764926215053724571481418598987769239973692943806062880746107893020833443166636333772793395052705230765374226644706695658228344497528043228457162661311010870101683330674746771644225064730627271981357642264694095710783757252048850901635113049545174616777770644931884096645300038714902258207663227597954037727423753345083352738606549935082362747329184645132213057934224034389637684817635048794821437640626829955243267985042749191892459652500032593124618944894021658407617619868583324557553528334521191406634555084260279706086812983027359972105179765286875599882255803291923793387574855484898850720002694540959147515550565627702096005250033695639089191863328803533112167113183844237720733567250848101711410832105055948363202016439520740777871812435441904384126666856690737694530898880623210718275927464441152781186531803719688639143465982210736154432843754648484600774175102495259906294516121926624271548463604202543262898954030291795947576403991005708155216748567054563729901343292301895428439113359543111228662268554538171621270836185598933786939618922050055759363446580718653144140780620961799700893854114626688150995605314539213880996106386956334665811612211618492361308552131134675707712521323568704567487660316520050575173746573672569079185572756065162359149012479369837833605563603784447641937847072158646165653792197076791931793079526850441651789937052999461314858741766624104006907089817686282090193958344195296550052871431980890627848377722444455008289900733208104939650361255095311294232328984052492356964421973624514557064593696215140742464246989099736500298058877779223906976664542122802290833081341664897933620640838061148980374791026312385477257665527637480756017219154502553027246398059070838127701355920982686719295001180919943438618538248231240729334294073593607258390950374128056042217199620429568313229026659350792264551712702403046631693781202559148461223881238422122391944422538091762952497195377909132112803303438473442389693377780925936331558210300692824054479645847511393706419945252075954830933742666952235039597174947149774175328721905665028942472805008490867424995556003506368342420472938462147041599843334021632496372055942941450423226963780478567576228655465289723378419800812693802347088571751433984548864373385967056366457521704700862268182961564314524956628999726381688663278977741182444208047033192628692475956571741633747921616388128907692888097315988237849656738043426643291622451420311398382627725806252864078827126598978796823044344191470520980004442511440323643943237101757477138869869172921730852093988661040381712500192355515728266227016020363423493782159486955035899391058577264788576155174214769653755621723891133248548728602044507128322761484679854635776219158635981232997568175858861443633024865360390359476382664676122080965507154066979554749376355837832989037409668287697085842689416345388793033434240628593218166216276380106808032544208352871335319620512983345648550803146935643849022051268107321679559331992243219364382565453338955844395543429047229232465012492628919474789065145783020165723946671745013320909514207688974913502580318844049046344398536517835442776099203996479505414925425377104269985576785003968713180796977663375712258090140324992647464513281294732330836576101174814481486507081864373736676403079568544458418409758641555682198489323474721915189769084855061792400734376921717677614058596830081175253000023018904934986848949972484648910353668241685799154607239941623620805961695305005418148526961627792271021595863696742260623354901029995757343151073251560634707169180831034394636143958578004475867036065305815130242857571038424401082209697631459224905289621022434920168459480033503800881161808246130048354902459297726548564986280191446450716601685500862345922260033748423233136385209951019604018009743957338951804192515458000145206091978112178992480253156895123019832142149309787538831594264942225567031494101036961201514561576551917199353134949103899454132269452053847250835792674211601904258547260048136144243356719815673859507395002749962511851078849182611310009828574348135295374922060682875201553079635768429554769374545188912652082881978635334632293680109991085344624134320320139552497941703594525712739231440822070946669086214932498878553623748903128004260431180963378392898750496658430062596420790809716590556498104064465109406914950747167016274915826792575365923534084485590807680201918750052276348508515483809212759380891549150847609184486495660432413775474187231204076412279379743744842896306739826714227559999321025630084113751756596801258412430623721607042923771111725455402110904304323817882081444682382650715873272692437921545064716729050884065534301933117308593531180036622975791513689196528045904764429658503348443066345956200392227801968486823892163710782947587264208184931048044875760121233786587844956670943418705052778813497686935524994814606585730782515861710772571357920965909501906142726694165258078726670879426872612739870616257403926795072985157207536679593410387866999235708136251109311899243157776026561899558942991535770396489026394637269904829176301430137302095519199695947787545588268727725512381826424491987834693891681583486692919192163748822410502443352878996170831278695387029907369252824843480777249551790108318943304533302082802691087035413150066504274466584889776025237592351893754946509461680375747405517815463795294009523166638032787755031893001767361859256351733672081687490166782057312583963437996809731081634499059832928285642289098886369076492095315688834679277132594213879955661935165078113564974542550224858350399887932859320725737599132990277835119075822329763170670734081488056130334956969169249797445771166311227105096596357839798944541500008653352877762163274807409137968747346100173900311351291174757698903207528948496330546795893845835269513249731326865607486064738776089470454482788561299462890916886747658531858125928788858817581158859050946362377856146121118902453009132466887264739978695735011808823836306159940129271370714843297848361399431052277115681893959612825885463070261893765883746635488447695155702977138340391600077852275105995690988687145669764531624260091314904368298511787261944802296295039892023716040269431160502109607569017225775263168749187161648952576460038088157124438556917120890573752662661498874119879550222770679409422933345538563374984830867608465832191469343223330311616753165014811504829347324338964635139196181316768335483862102590405237228808119955473483674528770579509243627594772931721680609423608051587676632974119964597965417757579435679549868717929518090408441120505913046076481877884998359181120657255130338117770284701527274254661787046310987491682771511903903916856963335409190599090402632661805382748461267154478104125322285832404543061114628892793791125822786869160616575234919337892512264095360370341330278912765155628842939042979528374947484448340143351367629447338339410638181273122686758699052537157137002699066852910706304391498626870825044082058922237317158613940841433179609594282245673148151912230364566411460176803007387112089076508274437316077493877894364164088678234616806440355180546324338110652196572075718561062490098338194032165807237174083023591759630833362850575651298765173579420960454618571569228419921219360992261549669422011245439448264341052621942496259367166367049598903305861263544252962745441151694608980148659815552908097747034429712768048256177961397496539398037203359961859054269256816407800210531608354508295704834931991164653740011929996946394068193598732398227009822955447403434260224668980551984809164917345321102032774922208989186684127197161271683999152889703446778784635879338893210947801113489044428806255686027681004176831481548311140755783947029104694847307945714339506414271666402421910347513314460700288279759965240563965255280999628328286655941887328616655624948402442563644653460845821686584734010265726120640297755243216679173270408986195696973715259950579079128822917607868742390038361632825066824891569536888414357504423221075486229291491755636215742278703913434215382096468139883779400254483170030081931046086938936218236961342498614775731405670555038711039664123718619335002911065404547599994814079125736232290796048753049081570816258758734356291522427632945226406604571321312670343738808163165793458989541901121569100934529029863486568310663523477712703532061001585815606954257193461286279175943848701822783679989181303372301370056660814443132283450358998571716261260415261976394547438331729347430426349994795069938196517510157084592526280994446214837414455957721477203385232492362352583228805616414152760896939567840740766782817228225609933737334855325260526962995734816324425997980465148120588490254067743503337418743823653168463776034706330479230911897315513721453954303011926058441537852233863156647707114030104423922850500209320855440861186398768339544709092701952288835431348398949673022817828152456209595406523570752903058295510865612611656807588803638233861661826530689364186270230440435092156209182042742263663552955915042343642783571426647883052739320856957383329835195642019706033828579350358547768177210353563821275595808255076447747470654722658770049644184881563915074868346165294591194330821317434744441101230708319327693111330992021172775135366067972687434206636215752717813489318075426420874651753155330875577113186939210424018254049913502895603398735156353551831289440470188112594044846218540450797033393350132494556550518456899927683867142135456449588238245357331941082435590758312806452512505316025680632893649114579098517803640255071221777028592890885416718634823063562388107035349043873627542478401544901590145909739894280979994453498203029170425659387267327229754325435643651109883831820679666519689272048022218417602728256392395107166305646070926897958410974826576495140206165296083654152661861773641351431725992125377384951731358987347727813749399766201187469018272410204323871322139732523804826366342483560387506388668547784322398110989230150654754464726386972360791726423558936054483656593334013508786998736966033911125760022670862931477510150354531392263848912218764299097560108204622039060809371757743580373979050265885825137496957363061425682690594181309547438836318045430964888012247752942485340789151629062015001548624673379817669892981017164899296001978917003995352951269009298390769106056419377448455825172762021676858994814530722898798895449652010108722651533686277775591190770772379416652302668658167243845873430950824896764458171580251476978986435662210631970817854360685527979875828675902211669665979734406899320720697624757041219127182210915076284569121215912605703517370411875749771144905364030531588508227897436535522797794045592101374632648997814335992656291260216635795447321889555455162239975293856218178020821016930694734263276340599283629413249342795541074983720755510903024442940185908024734338028722561940656003627842967195901962395891835375367013700791961209565488701509004405203881391577048349744751200306640621467965907488803776395328058252913774165188425738459814392926489081026655972714513410972409607520823180521980311168928105888702198228620629112837224332210850397621528413873890781318950779696962742126321171867372131295678543378658312399436443026949046437297660784551713608489042231143371186374365353854017105791055870150560855096642184649621149305536349806157025281512806923049222334836328409522505792098447968723980913658737773970133438723603336009040541299849645812851809251089313772083655098343492923755208354467076836612628465093151715562862211077844252575847796451126528584248210050450477974904050843217468195306772463333069125711896637569251332340831071692418485773270262755157707045266181039579390548628377125699147706902482700893039503056089911847575520476735495535818509349986208987470974610851710335138467745339939208488840564083100460236966743437432481625011448700757002286999209869916866019121435156973922977744970693737629020180608754574302607323800903794873829210112122035283608388905916454124202430517089663323946340600464044064406568839207145145367341906643927787120176280505562509112004672834553269405406300649634309390832325865005793073825385724172650100226982004438713192796471672708871037179636856442150813215060873300963190095950654261805465888036601821942579574954669084966754215958662625432335544924139656254284941380373343963464868327008522849128862212056233844845585872309112460634414135882663501165175337062206916604238305916456101994227830925851304149656282841101683963728436200035705528864487466215067640245179908085462009520404839278557176171388769742090238764228712513814150285620848641577633502671481859117374040172829604377274888190969891814375155880065221340172969601344501640690041138342884295574507460408610457387866545092857032928059965148706341869096699222462994201627631000035979440179824282204692711393844110845696772397467046602223907569972844434556809971931240245799367245600452476261866200947276687984422422328302100487136879214151772993328164055361533434588200839331628194566974408323784247957758948154515512038458048481488616926633453305837559512408824253317495704456389109408966056156627883291114361773335301298378685482891417563567806421111121992750510890099578332605926273639013759093392762473896052838571596447045178392506244292673443122730551621443104546579221578832684844709587435541570980849718677091998131154728486402068239021313505150828675195646717667627959202648974983468423202151286570746178031589679444495498383202559897952274534399137296932333305016607942964963324139409350629733010067223426601034361496683412504539555835835291573917926970864703008678527193751527069433544886137122997059460716421101030984594365368347522470285111010378459737489956630012220391005470409512568730491732280293176045756883387590179866528653461422001833484480101676756253467690852769483237480623994477993036453583137205623044888795097267903639818985079992920658438733844921150573230860725874966602977321722222801092981322138357182612584129130624844203481374193377168310209743972050951309760106109397206417908405222073722534745076353751545153368716017291913446226048165814716357245827369413797187839868304641428025052470825927826818004521640771607774119858622777692097002565195969297894957275165886653320489785483720180432261587475045570437231259326815447575739771533883284631270424846472083199718142570661796556168857101437710250223068650901059293667329655720209464821949910732923702687621158055500336095196397995181009578973142120379366379477643406110234605067399216773153603769396409297983608586260456904929576083661021556400935629734859291694794097554818514323750404771323381612537792754995278413263261501048494052383507772632194314343536563141419550292988355594412316628956129924608014732906389704926063783205805641860092651791714470363695754251014061541172968740846856464539388032041731112805365572691756181423910457970150574907634006843084186094547038375716983441997025396020390421554226224885849195563165075548564783181773246819645318777760951064122355715728334836813008625132988809556782923738880865356760055625402811621054578659601171854486331449010538935317057732289145984503729656135033558830440313761684519046299259642392340139329614412716707995827975864024811338222916901697659804597353717560142522764183290475803413854277239614153498551527526037368672379426724238131052297535773745179438972359945999273310434033810028994435024277365439284905206543231872650074542617097745279451520237282295150868959103814051094084188414660110871778034170756871037232512047866094849134783369284580852577605270399066623804599466576106616937134148664649289960901749299527345979301228410285280093436869970102963630444105449253225194840873664136661545222316862731667643796284198451840995986293728208049470439558654975304664089785953057255924324307674969450070788452874333869409232082361401567929682491127920759654645363576963553523936000910914462541645675754121264932019113442184528817072940884498292005389847530267992110541341053302228585586743065153645025631309646382859442340689737171330723862197297208495388180731884022325851798210470022695329904304678559624174689211211247070259504620074886035193375557808464165415873610992166290148315686853645490544343556806069907978990905905957497424311235022407381598911534021706812902580980184414959180718252492898979261654937352960565645131398856811587210690134092468425701588639658146985452535111533257431016341824633981202347222524791103383452062359234393587384863085631242557647122977931259124078696129272637185658798062684084361391253563700748117668598937518773549167459287617899217226417391452232631946949084668625748246629390532171350656446572707147666913264715634654759435710065671952864124616429836669731237086945241696873636907966642763280842265195728466023857566448228879869506595185555522598058366801513506696080450912891612658902351831739754566873593953920517832239055525874806639019389321756637763798718695573625697162633286464005890062298120699628244653575423688684410509387481365931500434164506372712719118105155064655027532778542458647788891134100775167073650381214556059164895617018462690256626828083617842673596595781558487195763236727289489854656465030772120511982657918092623754016278592007915890372242269288329621048096111154365951031449277407276547785399018836548472215921101806587791784310279598185077829639059925698141734268919841042686004259294679796727533779615702727236485408095418369195096742684931838148990887792146573719744645710977896124400502105093064940219658138379464646944290143463824490322215172967567054783829538029297802118843705450524050021866747945416769741747785425235752773311573871204209845763673948405866366728087825635432262428894677790925094661513847464788613981548355926954937387877896918139528264231150522752586909547664821958498931183276928333438378743505820512026367135715993553024077487149221625210984033724405579502172318808252562147572594785502661680982973619943857508494095497722887061256660353973367269384534689361091094990504137556823875138219423894691159584097867395375121061942098375116980430014541113598156593956867959666536351715754079612698382667742233706339769974730794507228954517503721633204965934695866331540777373234423343102507879796983927223260812616760657157236741862712756379658353966847177656355435881430426872894970116751980474293663572791517093591737897663792419430357538842179797995162963483326910600375777546397427124445821512252681582174156108719043993669511385056738277441175410138331367145093048649996010786091623337332893308199551268720049029782359638246337817798475943214400017986966566633618021464671508428860565963665429407914008043716714194325460246805254572913647020369378361504105584346471008589106145316012059982985197898269018553258623118899963176821516150540643314778919576432283073990066736730747751476675193596047552279953114463518736313560744232295071481070661023200857601088398804374036358868266992800888578570698989254362262160698594113160016046955763727234070313698504413445432655356067657164810485670715454078594164298749939804628772278118458465541112964435057580343569762486137678146396570945173963977600936139207122008253641414980715248509726634621109375846919910516746596591243776530876005514484270209144421904097572084523343954144573069847402654750869644019877149833284186118879743752063101874804190940425930678357404798141471118999289451203237525335561017926213445592471618282242121201275049798116764447468110467434048508200920873093915665929590124640454054869350704041027994799320652738512185769079994506505878316670300176431605029158320765750485278524969048031961417863038365759900446676640861426026989274548138775204061331714248750449958632049501807930969421329031673120935003726501337126056269185815880682114903290412689734595998390039846248072170162578144629979013896375998079358528439551085077719537439821905654747225986151258387833982573109437421936450190323975430977687423648355499361469995203108957452163166755341505349353061246117796050392886183071633750570148869811995268901259981256571884747395298144420318787994013977277114169915183714753235348971284235154548482682433444625248971414153953261352846038887683024212555287916232198087281605913319285876531940316384469893612317851113812620179818631019551339895042913522554552702315704383330646308224758573470712735499327530324622335700057663520057068201339822186007638834712649846093739292790894601571801677182964482499169970836106135340059982572595773850382952189792875369741355592999935876167845493195602311369589106981911085395331597826808312946009137724599928641538167458390358501561033172260742989309038076521195879118545873483097460578991487641373424454745284366782873270834822462533430138214604287163528892947150225820199539509791134655222278236093640030385299751973399384702147761685596963906200736119795149017001818109251780038719977048388732510008395619940734570096762354353735682654233731480913679887262482326246692821030001305008507475073843847315692033914642462520495327924377257102875482625223602789740463924763217819978024937623713650563825235151311073919725107981969913953970222808455421651885961695936186339393269103081201972340589303020011495841967435109154097559424811530954649635662110923868323248417509715780911914285332042974497929900994100418284965626795526364229425543059068496302711998635192001230462435040609256540844925560110845154651679726746518953039397290370221776042051692047554508747197000383987686555474581351915265454884898444773278377450779787518805188548976985673223265436103779766442559402495590634454196194371410903826908057242128536746281136901050122193435430777297634627273880376493858420929819499447674306648151222609300236602672528491749227118708022626291971108106911048881312262255572494184382738367980165063059206546709225726861789800607592138375601211591716955056354619001751760352458304747538102683283393190425884780602312255774686803261575162885964594494829845887275130814545639916945299097190159124815273314899623011826561677331197895107926901144947332270216934181031675658201712020861538482997377933642471620608907359973685329007655332419890508351142084336379023448070721444169605657071249146768540265267013814399528593853331330050196869725001694606867312328182666665307652490242860637919553336314898562092782945326419193018895114597437585437309310223208568001037148337728696704646290973451961569202721932699494654357952596088764869722527590770291323458481301068956830344106986305210446354334679397877849445978144352019502025700826889802040264730655478831007333613894827039077298594671356112184123709242502640267403020613546925963995965229184703994945873081671964680788027217965905273621112833288682903682966739214160787172169570287268185018857133912469954072681773790445165407503259969295857323935063303597783753475910936359445408073037260805608744336711512528455893228434036456967764377510656991889511869582751066116509711713004805065958793510828654989721066888614558979764600456506248738351968353260690597554227547471488369499889187270148814070496264858688838946025458761523340964704473327197397003015507215082223241912726690214136992394405744466690303010278034020352944623074984934728107042124955470262724388995593666624920628504522095631490466791372302635038381750656124024998192447025785641872729836894905742053477247965074210171294547189513025111824715382253003807033546839984621702771627456654950753767680023801782675080754231104953179704974385229307918531480560798219117612870096510936818534487778640588091171846939429752356646455692991296541346253769703049396339595418746319922631911175701766075854866813310096903884325398912027548518627700271772935101033751161703849405534586470964961351478773952294204300766433158225622977003774361160677447682485978927807999088392068016071388105313326526115630527923296507711187601927369736217980909617361066240645518493010235950529004355648455590311884644517236705667862153504989507372785362357636337627595223221313239126418753325650909236770513501364292257313326387874012254015900017395633632089583860687958995557732635964900823349730478325372119199831496643374798865909001817721727286344697271615740409052414322480887557625154257016468490481196526491731906579113251696885194065692124545662622894892813092326885912438243680694659561835783236978144533533517953631426024700561252834849404001191042164587127165678613204207381795905722104432285901985675532599357201418130209566974956558286817680280469958015893966361244289309672464833412195300486178122312163167074579851528083722662590526472477164344871403977323913862411511254616561598655655233251664747860581401541470654264412186868047754343396150532184669680700582496086894042577776208627327189316588730412215838143194060840588608757814019529801303613969087857558969079277282413040773164316528413500788510647331158515947782101996064963587360692375090178441593676545613630822244534416888687610331870914010587995853626423797320468918559282217418122772318955919987147271105733454105502180546704204277617200882764251717290304578220945335717037003698323375931206931874187001025351473634864996029114724043295632216149380683690160014490415767772239620943483127900287815254834185715798185613781802564576535284166796565682680175100796722498084050583757728277892064450038805441123264831384748483741568683611105636389130115536466751235820491106819256847913499216170692880517043939486314389432222517260988256300689569011158437666081684507809536198968935608299155144061995055136608134887579220571206150265145031680925704862778235249328674802730436056658815935567833299924835589889521654683479765420200257965680888617226746115593606330592225197883007456260561467913328336348416841437337941316675281289437631093022320569722939012530477464053801894637240902902064749111920071620244348806400295428126254882764174205356825215257424624067901235922171632302841377079172455663408487687843231112536949086947633817105854844466281556385677258186402006221922017796685912756089631684544155836208318471610122340226997189176136418751049470036684185987149911591470714968631786519337770039462466350070956664872489650736881672447836557030325783398169535694942498413291212184279166431120238540066266290212858186066569843727300229667175852949459325228437657219508696002252211746246740012206984367516146693559611038946759074256792709427908026569467023756674497218118369325523780052086348967433131340375417971682666838990814703732583122318169513804557062263701328844162965199474475197956678975791463985175079030207962727695769712593841774617648359302720306048379499792537051218241496647307107754462339633709572536125945705601589566117369708300208134124816108257447459682427471302280297501693051887519810786719776728261228091056981392371775176224945398810981982518073875853020013010947023174261514535943942828062937328857204415479981276963189243401391612331510770966617855484285686449288982360411912973206859137388186018492307558930007493209451349606578183842426200287280332321671752857844771204436698561743812058972673654849899619929066654737741974640157494817109682783914593218908181279801055637783201406450170432141184234741393571064902092060241699657689509132106686302870562295459164019804065595880477464739994714273474426392037090086467718128145274490737573972981464280299925867744060043851837496415707567517518374795406179595984162776178283027045705000908728801519435127189891390928085317998832213514839056892204237872989714831148167089101104335796722227365296524130444238286080748118286708970688389704559218585538158967231633730003311460244128932061355525082269807483144208882611364793218001740821326716834069399258611118768915537874142921564313616627566191049167168669975670357849476450190632141859173926287503417722935271391622363803410283600339930049731851771963089393923274994583387133176193466030820486984936778265670622986905171318073609017355171723420519502468703985612226738409515603626596530739582310068644227261395979981131500176149080326506846266660914169728327115935336871353003811593413585207457147123525362092267106316220679907354261498260386706028873926383263621392813963233416618756238489010748095302543529251405296544959922100721278237818269137081098704896440935609089996189783064510345014794977870026152559055439356971594218174843191202228547333466938644983797510476649470881217290799262638950164766237286600493125601634982395787495309142503058832412978285187801388409808065262556253276182422297878073207243431700752612669988183876892800401320239683429258559198891050740412015339948523146244108359439072328481378923912163956326119943397390658057491006318409712889080392412249062761538650943985705546864228250438277764401755821460100575407407437656336685679753723726925975605427113309952313259652430518650676998730844538488607845034964020835814275646026963154065835975908719325684506783791088137882925502761509243906295516719605174102013801323009662503229196394297211967679810613576858396980657189471081139766114233848390289151904168776977686866417511000063326964899927418261958290774675846447182122597623158631581037701760863744943046821083548221982468868664790037722321508042725958206131093592883482400657846433222306694229071115623922666519217232671912830962853669960079441648921600568504186234261606519285823334524061718964678676237893647060086224045160667158460268855300106622841096058380715598415237250675287537509697758901061406658344965078317305152706601544194874218125601356941289860010894703798578437144875327086407167388113340861261930180174909510045879855926893665044170434086087455009602803484389271006233234453716814750401507975410211464704979625878108610380073996177671206838948317108484925384186493538975031801258461739843496285557648364067521154529632281300892841329018583627847731157078064816841656088806061277757580953179503603975564828180449258983718588336094786042326826263220268726786977142363828854887435328696706111426461634312275053999461727200026387836192240465872351341649139350078981650995740877338384527736029456298759915057283122925568972521991845878435591383931216528635498077897541096931887271190634310306622048759201470425180002442560595894469766070658263284228692418842381034698839701317033901156767740584012281187573138303502841841571954144680492081148441363343506461365016794964565975089543783096641675176347592591537542392326376756960860152536382903278532670398434736254311089401787505668244592296714543700756879403650552466346177808561949880242035686629333874889170887302573136436976178429548487010343840105273943257589035598023663074946591242806520757129083327885090755592403231279576781587052630055572293973387859989271294813127138584122960625879165167810712148019778808374814083082387773173722719851458766941762104345038446387760190264911637068718513888871298137523963618610070154771927591166743950568772535709884380755424960117967446766424193627998985115740338553312351626411739420400021956989825053777339975857454466373394982351769613569146728704057066572839105021766183876380134630007311820749768587112083657708554717037258015561882889951010373553334744713336706126410896750625238911836558643713068635099189368668305568079164000404395102894043336197707075238221969949403109841276622706626319143571682429155306779330436838111976579944470119528909611220564358486563557924999912764448402083305470714815453295341564046314122622850500844403133713826288909879992234770732355775242769780484104365255087392694794651956365279041978286126779627968280065433280218075049332853656811725767994931349107372821013303546426144598353776494896761257716449157651948749935243314813415115505842412068505917988972756679962853383532205555474902590139232448302872932720085494106686851115713559018126917610952319702306448536540414245929326951342102471456447024561731297635472799145323164669348647507049932090070083818125305768753010353368071735974608288273904186307220165081741982677000786009639461361345309265225147064899180812002933583589704171241443466756670298858512133068600917221538053608437469911581989636871131921827497139511196643049170635835847147193073274428437467984895140767868792840878465816859500572635234450043947573168245119283821006400461692991718205208243879006873829108997522721213315217682769598226111608824878405781466401576289848513109228826199064419407575115358952747174161037024533203154385619422433060386173467137240181473061593165207736587449342715085967857725573390778824920922020081853961330845812404086800799565563046337270975595884604473115546621854557208505372465040784304088738124177062506678202564355984442868131262568073868990734638469249026983478086359916809476392579412985058207275726221867294818449002128305087201527733697242726133983817236331622080404837542203750364708317021151672461024111166710501104147987242697499332644985908811203249815472684441131660684993274373804360867545185300329017297333661099819660297212180644658763852943337491148741634123289964244903130851889526187343414933899687564257078783454742941551621527292647761226221371637862214120760199287197533128003960479872408244297243541077839397247526960279830616899012524816445985587095072899207083189735543436477930096267139756433600448049212634849662812933229312737981644018185127293333884265007501911816591962801915188926044639962097723724017128356131657077002418756574521332936055193179746056908869903140994258229310911836408680789244278298758147528563796582696369081483379243607684356371248510278144535831328179190459382720327105753326261951582869215924891150723449758669534378837232568929230491173376136701144569643144911385525472609065274584471985799565633956006569351225522869545882762130165286160031808112134323265572639609625379482136727147330205741329797213149670343505377713539889965355793886787955999119389680423427074013883890277446526068893366049074279371355857982331242365469685283205157501758785190376651665029784934823407440647966718997133026444681882550295328911040510615760210461293648723031910115284984176127196119917587061509547653611475990213460883269397700160720330713317792998542427092440584743287298669405534373838961747634228328160136312851211906339559335875843814651514958689376582377504888999067097065611231396329330721921979818158592047417074011703743209630295274011915286977670015753800243670642056652401637403114516052395529529580279711845398124248447828466144922926843994827287408104747257581002079910109943515323513061982370021401304963555486574268420028731677357923275458100879047691259563624879870383724847704270999124672781252400746205583251044670223396684393286573680008845518879405645089117694911168190003383396597865659754565012333844923189612505446354598670490551019085811676863324672565445869049288300244335517179706611391093609740207918682905761295050942083233880195435650967951533077081673672255732408391598637097591929559961081837425285634892582263366640223574927576701674534015880432606038155377887017245901637612798400364893390957305431623317541223741400767227560307318481636506085052787310961769652202633121845297417616576055074943927650856795997286588101099583668286203350559402592750954336926499546063855251049416934328521906164608916638023854472624205364759118949952163413651127541368768266922571558138698312157701513496723384852125407649631916768672769289308706639249568324395984021608801734533745868248218115247874988685865744696654299875079764550139125088246474139316969891915580558021429283326841280220488656157955484423509967418381441581880340020078074876183491943889797201708665545371659401278100830631686003818724716555923244391057407889392233387687244931439170565425140058892311761582509172442492596282100310492812236932155221743140647091210388337836182895557614356981642493760592969422770165100845262301999485704272122202508240315881147248380762219095778503361183148334170454454156090190375052589504935539693980312357764065073814078994554347718736460571576272852766698353571419649208615079423990117263286622044085126748500832134925647881440796771955186594782368191308660025445643394046122105655442444630072019995114925864909455940225894024190095559859122702865552199878665287642175693893169680403089466653645033453816575714778539617022566456903744096844754681411393894772412057939502311844638567424598614028749924915253393284472495310885000886197002779934707605541332946376813802296895963278571841471803474462852276606288986802821900880514481532719128614128880405723250187851345377570023239812986837301543248279113809649966489542043866157484891779194834052414499054316236185595484218369954756767968707896666874806372475445639944254148056505386645615468183392177839859134082228390045274695719868408044584104287019411916173733267454999750743586663055910003221806045522819404814253203939147054526155905444664355564629054205927290705430473219086132767923945024338585431409631397929734457793949054310252453242003621608018929991356385566991509314952643282007316577679099895441701412624293420847548557465482556566639202674661117742217705398779271811643336376166515414297023115991006457109751162610109096680974734627671790816928778353729687484022206045736983681128741312519388394079681495033787709090172284412829631593697260798915351958423202970872121756222535106491006288820716021448485654749668403181247635409365747275777041161203685130790468277383705384883239717993885269870152527154467193641107351741123780068916999984612803919914493012526104869064835168835281094814156371999308346602291112675132506582408383873794829399305695865679709927285240818958207238368620984577648011113453892278188633981624313731217856708570138939291086296027673381221103516191021814297945717479251480044941990546134040915609042984549723815518539832183268428848490337682184089435254268778864336601147253475957688691621991004653814761294905592724864495175919729377646440921099698707514068307226431620375322464492487817514794645512811280794529398849971458363575827748560229233049652113769593095234238841551517880959873386936392657432183066393399626185756401444742331237051689633153906136274323369456035731736103989308113526081360289715454197792603778549357656925235772593928186640311956947039578404797666350393331075434019654712613417236526741635227113838255719029336790340640315809568604742333759858642448798155434935376485460281947925618383726073388883027635087614085207712920114166958818183023791015537661724980146027745239388899785261069733576455229731051524115176789600264720091541283509273142164409002114759169106418382053113259744612433716844832833703004891158318471645148584130104764133258697312690976034425690899963347651600658310583833163645927878730068012427674019553692885300295604571491897511774204338038389417488293900888996452626340828670136654939876184628121894810365932980136228845015205379855611611145881060080893735364609455474705028610124447132472076222815754788852963395294050598481017555081747541392422480144243039943326362215643446751290899440072929664567610718694683350766703381479190171380085430114548287752092897788763767859586500118683780214512176751772005278432457224021473759946690899763677509715992714903428395574143918738428567282644506959107265748611122034801560169178484058015056940318817695250050323580556014576820151828393709992262519752265901421269394676705784989846719399971467350646812208371736592202466603283997680260735667473673748639013068139813889087576408860586532300259926163684474673152200497038749052074368936645632591222365580537350124563843512517370907749371834519447588409317352756906315830447470745010429979750791027543864088889037480638079747557596181830161178036781468791687649774777630872656047537925117509416422194262182378595016755193000519026645580241213271765239490178443352893726152724523357342351159057661871355779558319491499668906584563649479370544471405017317672487379107872708814807915332712710282769291305109441116734922111686108090146544920146361975755597881131136368848580524212944064285125389722264171239613718121634139850130775722600783434977407767734821343079218074917924991829325879413742845673431654164452103246366936489378930376353390666587535963303481406979085182132836473674853770864218053515159274312564662001784716102305899065043428604140426085899446618786760709653175104896795308214116986186494334741721343641350276790821371176766693691457107019909330390643442147311331785092891275111650037618816539623601168190214072696284274988472807488490083269452082649844445186099674482905709321618952451888621608947164932096507409458266380585976898063494158846974745557076677901929243167358908933794007741490917125609150114071749095418724863208215232775353158464102046092064772574782010020942300000488795407607592619067446464202964205708840208057600585541940465036101524569577118242552159326730643580547992895193058722694291782929531813064045070379558350070917087151526202883004077309639096765235904915353971318341433265346603038247782006402479419800492881566403047837051265888704661009821211882249169361597265762570684025176511460377411656571444937897280289651554650630877575525591860065055050924675496735295631526760327942193829522705929007821085421665430145825840989248983464759430135642060477737289125355558858598777695979938476019226351657298828023700850421693650319344913092664944690575213612105511872512058287369804439518424845244134183658452703608600237911175709875741855437838458764977197852434968950574794379812831397466637557483117504403371985301430425561084147498942902357783114338833166548363021488298270096040536441317008677508240585290723344134024609670421192792815117630229550801351973358958451663899709241541986883799113676265037342874813664565263156500058011733122114448484206606270001623657196478719028734928216258861991531758763612333219073951535310206849972487963927083519474764629702912957426027659890022546423779396065161748604682649014482770685753746462094115351165789212385810263867852634813490049623784610250151919774851863772419465565396562824399288361384153627338516088994840051862303149151384398039554198782110726902837925935907476118870898147709551597418437337879208685323006603865914124518479841260342240024776889966525039725532227702905660932959138351288581006182614221717743950551741449644760684046707028865888492813588333882097390978006990899581650858567027709134231448982961626582085309818307839216067940247773467554377996979943570522681738339003755462235298756511193711059642791685848519610634158427936734045867236567903699997415947679638409985705502530674788952554199450196156677268817909569486976795308519912992926599841737326969200965126068835533745954533303923572483568020439049132589966956111216244461745667690452852591666305903397124946969316536121129258342605564534505991794753879870027907185206110418403897277449126122648396300389598920673578597625183413851937638426099659091561718780566899144741958073351187544296883628159414491905909450321475382258673667019615006329334002632821208364510171331369886652788575323940240257059696674872541985859749677483707075213601466866898615492314130465722178686912278145163968577990607567919364043625709070995732804981534152224219938632770551371064658175978960718900287560725961530798722342950097696519193316758512816032470213663870497809474347088082954230314209165445276648652232936794319405692418896970550629064248039813397085057500844478083487049170161413477042077383191169327752057484193001221885574169475766913882922743973904146272711382745486254955547891442231389913362576834555246848549932983959529064135877886621576517362387249351341309308247345438123787487621766856290968413836278983404436660972073538987400796403125381735897497267118214007990967210780549205546489608311834468493400863837122913325720831030591185309499159987226019193729499149092957825869265563760333249861972966308503165771264639521083936909827278581518212214349580357569790127825314744033500279875648376151437327281296431918274335619524403922937252809765435473623992997994893876934100079301504796980535777878439867143771793383193926137204034533403917578812137949957562288639726919399893927964138628464703521648352789067788170725689011917510102087502655640813875074466183075328730957874069972924058513057973975839093168424134779886073456835231760577561030084532539985208217954600571211870567451299358244924666129992678617223333087204805742502533768547200639535260129208717143877259456030297624966996412692629954216105287087651425537838621741850842425325004294905443667319340569349580512893801554436205697497627636120068847976332638004822573726610410115668431116315808914466670430237617833527092997338999234735828557997565529562207468830236885808773820806570992536620203581033002676036153834816468543507089084042989421544866944532245755792163065072489405657556906257598755841583193950895137255782094179557703272852080216140521737604196833343178753096549077395949430050781485322996815330591585295903321582717370367153680055414530491655904568894403306302749685865647217322617556210677228998334823736801865877456713490289188462485929793017349815876206795767723862262923931739831487436087817375556826811691862759593009367097744437323376858284448947347849048159077136267976155081819598028286579579778451816597506702724223792882901982664517684390831864340951754997328311118462582497951958706698932265688187187481011496629796359613426107343687737393266106049198754333372603131703313411044526786872308428623833492151233797138304297112101896793836649624871016802063600358576072928867000166128290140825499209973862604638412130069766107958630161362094388930467738256189482540268037269420425885811660773923253346345218338029287293232228432657523853298652012629617538096264872997210691631414940142305481874431831679392100425520259953981350853463971262874093179324855455637793500933758139686627840130278839685548708549090992761930881454604494540566355311656455272819672981065453932165556118123239003700028655841032095049342589284144266848171409457564235179553777593245925708396147874088301371634067996635823486279455721917487854635928190124286871926888261194725810496612333441914879259396951981845529924622162470812169495827225851206633752221585498442148596727570869643173599579358968067940281046994946678432728618478936881870241330750123029891263963828349540827856341415852077384502810121952824799701212614157943500828135117010592268692691419014095746305216954606363972737703611796636019378334395738605521405044623944962841892573447050558881311408862560687015720705368644195417462031334107824468454674018292058468044816182055471333252899926665369449009441991399523246718047771001017097653672684111435124784510277850934531971450375403921426051879618313490248851224350261245342924512040971866214492006303655082394824364880437788051502796880750234736838018162797359775921080161563036288952241819542192185897496716970727990929126358023795220215884197069728860442379845044002808056590396837780797102796952631201589977477238477450056965369403700947159750211354477827230617023800142032789696099800571316074769041353197914891590003914307675996237171107133163297357448968339671229314431843555652400768081317363398365589904871300146075490393137241472067789555359842545090443230773501789549079372181579383516436425132610817812432803730003378285675935743959787575678590366581017859465223279900108973132608118759792778568072803881755029570959431921776111492616000869225510712130522336665218864733937142417171205942762900750486007287046371549353878910614032243026601130083319375141359709081437413713590654216797072074620524148325465769438940242242160216601147999850673922573126807296709944896394139046211888793610693629946648156331237236935162891314138462945667489877738494002162361416788929302407972785816715953493762644015174017460183079483933524149240993897709208820376393799307153604052456046670091832235374041675140961673180024445816606410991531016125091318172111444816680200247382981272639535929097698858103918757855658971698092216023429631349543973616962890600934493544950440350351002880866496270904290165243427703693940809826157887410496218015101594526277383295945210505504946854212121492070756491645504424140314936984014089859963880545244347228033687602790285269541588164321767107923139296470793988043511512565782279094708813431476362956561923038075146496309340319961763643025347301750566019008082530450734486428483881069470907873353544413780332025957965379905585320654401009526767785072057559403944266302364716136641681910779246496959329209416374818790680562881742188334949856647467437390305153727558777735967828990249926501102620894954099402584934177276153794816008750138690985779706044390339154273849636030362259508905104140270227596423712461472635337898796901553915117854690051616328969229986619635613226183601554562087640161063601115079941531029053941320599631423381334627364493171398127316128949580003738941065242431113619321909992134162686398281857288261474624578934682760178288805064688678182854802031328638224768261414739107478828034947512942576437050639685140381540516124730656994747803060316313102881127119122169642039519754307401290058322259366788866227113726507974919836499029499637243845710110666510699645764594957934504022685679309690581394875253890672694008041436205586263454618198010909119916192905403422572522971864788931915426268251309849301958338806671183297832700924561880373632911769663134878730709864380573942010572226278273465552285328540818103016070266887128037163300199006483025157417115593723964987534139480090546955277649027108357943746676283597694979808331158302908584694358866982681967647946214995216946503472745966934140487554928696984270115615385087788749146778936072968040240080781451228920759545406271892559289956947571606161258410999930154274605073548175106902944574772115647026437362768161366080960123952001171441000677462216684803051170779714479712565233140630676315413608985176310685065293005292912915155699017911484503263274034041565949607321410361770837256639551099837663391467120775297898843202890964885052100254535686837191700237615549187900351124917950923639796664813943859697674065576907429490033604259347018379927003254141390974400896378903942421139778768228961632832898540526541236321802702934347466599505877892253509244666886049049234297443923226261764097429140844020224807436665245635164196246327721081695984079199102117493009854844191047411679526356857731281752728572066007033777852893524621886686098842432625439763866160924688774950805367026967716234002188375483515732887667338196743628905458114605199419521948428051681182147267991689220960010344632462012999082888704277074114835485364527905421996363601854404013139903543872968925910302590636466395978868607231666301656442019332865700110108317852891115492375006695560361848665353046118329527115238620691663887270597486907575387824764821825159864935120386433550754887840364150080117320774810040564829690470308684615663003350038205219185821577493138562855137406602901984339144206941504870053577035799749366356430080973370612392232087220812877640035209763869106050907905419912528687246292539243965504795831335304398079666868347641675375180123759734579028845856605424708176649321822581222387266117001894687611241062720446931663138985086956889869532151369902326788369888389448883170258444054594898207485171861470331650215424774611038574377621062130828729915192758806868013018580369154574530634377306391665888421477804263872913063094572953351664994781055420977187911895250036765913445774114816188084295977313859979715170387943860754836035281990055527516774086055435868665523174645304337644137771625952275931467451582386185319315559368860359891604315142495272833183912211745851798076905766573583958495388517367351774719658858827027205178101788181235251540284570772646900975668376536906836440637887747598115980163253397061258128768245432489471839618636147925349575238143851378342008082442691841787038712581299067405933467928863605124119688217460695645597852473686988473109232214268995094152839441777967463007991948470844283497737699201979194637426711692119661089199515684193648535606886609203967257355606458461115908541076832447334295486021916335867006710114517722049143368551749424090590889751554424624960106453617267525652177777024793228472538975984764091439288419419557824439818525901820849795394850025343927116335652062494457609738515597071883391773819801180826048608535072403563294529873712792502103238276293571267278161427021201852140113045908614615508558353534751593919689665345851168647200020350182677426037141010997926019243587739116157866506174310185489861913518037168803332748921048903648630130864067376441094583315618931358337015212391444299537168502914634958788646004145811441031101390070215132833475712689684454672207095861599315521802916469048614271110281597533624468191524827478236188367473225966999550527791420854809525662065427720475091319122663352159277251708837105177603199471652735040198610580165773011245769585564671704560112543687440637759359720797333033083245919266705887123824800758514254376264659458352118861559391948893061473222499220110763615319793410861129419962444467665559476539764278862039085721728851337635724419291718425674333075334484232535961364795192554585685014408074012036111442146592871997638944092745880460204386387461469729101486927603548576790338770163230503142812224830740791459664176752523518838552740379649396617853821786699656544990575531557713213580952278512798109373332189647137886955100326035654435616418705466232244789816432950481485907787777670598373802711102627992253266684892990252663996894844467109102077955674101436859653155237728195723760392107907746283260267934641131716926543732046522187893496576633981403351904619121641798228517051149592726863869697136871457621956069323080837418937274263118038020247095932914064470140576100394328055737754492384174327253145552071208406669878765460305963711932440020464665054536911057912644705870447420935437268426393860457202671439124859887616229479627389955119720178357660484929918709563765185994427994372360403354803915848070576816333962074228514482999848287930406934771722818066722202086157453794542142477280391776648794028005190736711028890094791014387214703083412051913651323347773602240598549750382580172392428438678976947909108700611396002230241782226803890767237036906012287135954310760237034963025925064548065840260028802465598728514109391924113138157245185758492399935472690707786754560617135667305406872538743969958101059512186645639678871093199526502981316433132029420234122948773959282518564546223225553034251127527017875570616700800365181823328633393221432926411810751984201998432496512181020711812852850736134290164936726093677109724300735486790811825010282840922997872641001699988504157922484482008977409896945764646835433376378728730514723152906752905172768372368669521419940453574252910895923207558832956206596740644097788469587113682592516762020874509774085794412233563208917858866949419688215347324631723351551470904880216295380023151996713181482560278847568032403768587909449326790555704031476402898907101028370875734057349362907438511866005317124424747734964151271564836310203121097331814929181465257964603008749774910488963792654289762890473617519490259262774730917278143181903400105837801825924239114924233273406220660123623485635327307690748937273623701908356032461400161856161925475193188572669460166537679517598075069988311453810354045008953151335192455747699834357821931968408238626461283739599116788501306066651282094351076627313519641562144888090138594814814007795323379197786964543347451187641869714913424612692279163199518400090492373828259267604794010049657451979480243179118000289352804112227733389129704302573020247193332636290592068238418848237318196999505123510397345471796454980196901241984384282290530236307719676098196130098538466061652545579987902757436510245921267972040251829251947467883652421594900632474958641483839521829925955252113252736339965200719838911821189581160227223734533146706597324400801327609775605720748242700671195702841008344370936510321361595508102359571003954427821029231550016325582973935104175524499318869444697642748932504881441644724727239693473865730972384023393845947718596809713937493469833856550359507031979331764305880613063512735071553511530194583525632351316711348464391490160762213167001400171348867185976180085935471706694150325607592868494766499101465876410053896593104837445882338258975664115748828380813116656985140967929719568455471904478902115756112577892777855130628475309390859050327751684621396288653133767749066908064770847026624628941850425421280258685529628557512448408650645355176125351733631194851108223445943668140051721501857115019599928068867218118252417154936759418352233897974429885113530754996211639808716476982390374345374068918089776957949650148941838038343598678208974660463365936389500344683126505584533735271651242146549428841946854765038122835177438001266595679547439335213055674458304585743526070073443538534326288478778294085019852086648171244644380464487223798411166103212519208775901307534308522274663144346693091516462559014423897796228790056160652748746365539658541972155792831358920397291427626660170969725442877382009183091595539676916160390942368283913663105515803326075463148412018886496635872556771276111608940521336021793721692418398314032353995140199615881707940102804186469286241496199110041325141509526209974890778180853794990987859283551742789372343537673311783830113083927676843540347683803791613078890058336340843244321655617382733554103307394270395655272403557921932192759783563845176755488785866146866112396795280694393572709644262349778315243345918837028792090076321273964247464536759053248404263187301619988648026610079702544570480851080897179842183475978017450775135668245151900888361334504213532350285934813669467633716480851758351668264562567518352737170865657462647542157737218236548493129222941186625359955067271036581601288130225203763174028192999437020950830865346572259907449408059587833370139886462913173264573454754183361197449547869822581805720085198347938343600023737420081623211629223575311095146947706415477763969709647194699585949578956898276472741772431696299612288133380432495141680347636106131844701583661617383087675920321206994862740665727465224485742867322671391543453968945426221677908723617771681119802973554076692696466262361808544925494864635277673268244163971569358169691888109614831296823805337094028876897081597846896540173182772053759175268156648655407147339586880925813751439383196751265248227211572681521079840055560741015155479671463702809010416838972570233041292031135868932577670432712315082133661066517124955727521814755573921684592997665110342734099673675347114365184914266829325253567073503366626434141330511588139763627048499882907239775496513153535367514919154147127146062055692650909157213232728402020622611403150678875418477287483247272716309867515007280006203333929597789831561660235789507403621910076270038394647612564054858341690578469322715414364482460662610113057350897078490346874825991870143650974083967384712577696832726196879252950939727706729966918121352304422525599494732452052161904920920922848298481083602933227901334466654834312648593651920763302658762598301040309624773102013009447150839248241065094146435602999966968678838830367450280960904749917073702651889407019160903876827746829019888106119716143247243845694812723657036295304262345514726709214700421636601319477874309758016665595491270566191784870086853998677289351367807408942874948742974808762436464589493535095945543505816584980986499123087629861310721211610624712068732605519402320980041381102028178586868050848256386430573671722478505445613602535738650550814649918775190913145784257002284779849648148627920434596784968495738860517861173272711155487278735345984223720790087332722270801175722324687376723793634314565652059176327863213305449247020276980891025141053885567301943830235934959473676907707275800994236875686544545648251656252234021327341332057452158184032729573603447911368349170426586122116903891491784616994559055202623810357914776283552522741355515909785490771513711975360547855835914033466703173089729845301505340671656230187664060375356744800188492696698297998279245504365764049078151229276006644540309616698009230373640050674603242872707985719758090777293531786595378638321962981921779082143391719223359300851591777426777378349280623601393187794626779313618508213272226841313825987530735034950437323507479341473135382900176147897616393916543701749389166346426750391403182843484959658184177207315531106656517721065042984731608242353608836448625576072183063666773647581161043734040911866695244095642217078719777236632334034004547576658842880279422046744987857656385298832209339796276526905607683568816398038696776461073421078405893758970203754656788489712996105144012349658319625961324208175473251063025184648425169650115763598378474475841284855605174268916582754233495367826108391962291338997732826266911671506318639055256664937731081069135671939049756375166071538345026058417538898302416577727827213945796765789017831426420545498865080391829101096136694806279530984320229545194945771153220864363744915356133232235860025732298558167361137972358463479844193759896138248461339360312658307881758127616718889811215679383077026724614329219193544673148400988424164820939057452681938258432882943193743562154393778354671330817244796540702961363868878807609717324848342170530140102481834514982257006864607096955351373534248806608163358819782924028002186214075165889354766754522775503946239660602006072623419046078279125623886898473496957711484410766055057093458936299975598951145811856864634521405706070075731345235350758595254690821854319840317627886182654881563685061992910843645799220404225620444164225393926435355753560132938520295042300683518793055282419214851557826612589264974545016181643095256734185527093400001097798402623799451589053231402643402725814048631866810080227562765245807247675312086690711138821705646092297782350920228125478471268669951432428015103302552194148515309330366982011595721793085808297330655682550634069717160540905754384248833897228828590007486728697164527939419445743111424660131022398503849546518978005095573541028625889184199715948116448946810501753034427124994944564976797971898888744604750901700076451955923103326234158288770532521340913024221753686806795197868453088961362018723697537230130024171160264530367218723617990086606986561467405971772523110830970108343406362276131017862391333934418333804875757371502645093648369096906250538888502399842362426200474417961931517775823412022723548635712672565831024133072542489762549294254011935086029965934737140664191732167771933942212669908319467851662185066960977992807204946557227920257270070366203036238041264016032725918150552641582470285810029548452104492542505353618691143155779134991950359822388346656999738665683682869425158367856853819701756487718973108670792350168331627844623459189841701071859487853922157911703553619928274737019614247401291226236801901975465333832026544292950031731574324704824639297132129794961553335194340002730691454628576368405479795770376018045830243067553949442515661258115473031842130923847748657246461999462652731452204018841520082381137350216458308048159212351035888001086483093961983274792468254500421873534407366351382684395514889722432208385648328668273191253123137316399669044123607728340805385329254879801091782162620007625158899958034082421608515529007506471198550399162142076419701113504207007748183374257853323511462849498114601687923067714789629926856429851519073901599892250635458903846017267316804129117890212368781766687059854850090926579556778014481034159908226584397113952920341324916021039087747499019468510145872343665287973707934715792359418297253722724888905203763576920524944475243672335494127558417644770739885658999312485829491527147289958824014879047195430445454346137201759950741111317482466906739549511724007513402468709607945144116358558394445725722702544061790991591266149299311997864184903612410135483797012389306294885610576081779455612912612418888966280873929058586108115992671667622968150566706382355271113912950813740430423576318069637307213327516245847894500831892633213509537039802765804899319411441885386072115252964036358489472146198274889313342784564045177979087063256717305614196744479923136285518194779874323503626862843695840058453553395961303628119391781640197677559556074607035800954015567945604354638986174834939854953461926424826522967060013470132609471313887195959905781498020128916030548602622647171926577851774529601991601810973438005427136805742419349354845923869188647474419456679984260336474174984603830407175176833001226119320126414531101972594924770109048129351372225808751581762101932611568741460132858534932137112482561877701501084510547889020866771883275078164736684978986845483092048582670690154694382475126673911079694002433158524237559247064403421890705532024256468614425774871023074450457763014695762921693368688394972487094190884024828460683523041212464990540076462563975489209384519996180759072282796370039779340767602200134571158874792296832377866060473383678197742641112389775793497690561798935413187255424706446049884199507755530772070863490874109124394055687637436061131725140331402794463327768485949034630222609821474203137507327824162031353763078463784875632555677851968263467407984710348545147073606074649998580201728947882401540269220109475237861886676898585286143940494995177641154277495116145581070035542794113849556506595652444076774613985574763122200455736468344342717695700142248861077740168842861450255572484534794105177738315403901260225985901669871455088107261323566033679876703704877904923580576572815171332979078861318469894675154680039284598085164191790263036616627919316570407991018859441513086370718335688082527270672249919536906243081683746420769102494350770272142645984824642207781969043826563626913903743072589549767709447325513141531934043518454181029689710758707727497579100230481654655526348567523665188156818806356911614784260399180438810348963183660386075323733177833293246796471188096593278511211620372257244116381548373773710352236907125651396056560833994376086614129871037395008356895659453618506080390720035162194557314782513050672584760843110684861792566202342218674313675365680558911205111165380298689044665855327910550244871880415368998894735339399150816087344957993233162569931544798749694566257825477374945828227740734525060573693181135142319407388362792385118384066405225164789869369873466672529767753064376746981234950708499077926275463313965625816063914272663414624668229487504526956167323138966285789402444778106364607767003489372426881676051259643500669770142283261359370944892300327519751893994231647500948814890979332949571831157207030862284616171626827248460762848891461408340476220033469792494380346473264960178043646217136767995344298893410152947989875526928561744240504232639093437505616219650374661169228834956977937010457069993635102249420092697361676403499707234482526600280943947032603520177420654066201383466449988565386756249679846202817278583174077554872897839721400071968735200678102702465743167689539712886720544898600708911915126122676845896685174409127534370043170182679010883226540765678395074204925102486329244300527998278681377854174774914824442520797524411428963799552736933703608758312817172184003723144831006332666001709124806033077704876416793212936856752774418928633195018474334061362503570415019872797456448835034220531178216648036778800655374897878124213499774311140045321375999029715509078781207200788959237280343987217174749309094898727480074383092029737213937340702584498636091902607863212534461648516378599145896860883288776793880090708499842484276650840825064168230367574805010624269539047900670662515752508436552140997578671634692720572629433138276558029766533689471846547314602243195461538059148408206088469006228186362236074345092476810653190660583301806088038192869990434411818356321400862803864825172109059101135547955488842868371825142269395128317103291595788456132167901395668251407896486056608490849750939900739647011502551618141443535341792436637370829121311222596744031123905591967422629065076976920304886645482394572405253001117744849880579574083669568283464083971609251730306106871909380566884533018833728411768964995941599151034995084555754289070413940013587803898256775335159889385370762508101127947295631617987537091360750528970681396994106921019682948364612496683707590581355318428807508639775563806664119119475068189122814067105049536748053007800885830920884856370852696803825102459634409654806007841554528037982858158178998128848223251081120242520402478507887278825085953121185791691203064535405758714369082951285182040737139401911954551187187180154744907478839212621400411906502350615446906207249780363224807666611166332156822714901525484189308379454925479933130004178846518580361982491309212014606018755429134781488463515436730669235236674763796994389995114154518198969334167516724379636833225487588544131380964424773528258166486062544759194596041281203328399438742260300916432267778088792797097303221578364569351545251955608480921193341049322269828954999312439601831365471269244182354623406377984811707035358465315168008226105815556482754844324460988779262727426909404382184731182971437749950314461204741939552010626309370044185694993060492460960803379734391058699619829867893273721525049515373164257596057559682987296739101799971099272728029251652021933661564458746616619106951419053069096671461946736871318816848299106068634970384550403864544496916130236431690967578428711707513500821363752386795517059855072650034845807690295057686813895114828483405317418930692141633844852865467856477053263373708277120721523465663996002461186886016612431834808683742283033324515844030991584657240114695826808792257359797103112168627269368431861701168327267839063449347419709743275625992087578438956233015021744099079277247313615513439984820285363120966496381353061348933443945608155078331591263868355082480636001356689764546376901863856637411187417520420951175397571236814339849908302819505860352007576377927836821457944283014441161975736531952041299455659033235205767335428382646435596034332035047034844867457902182781660356619389513939199240613018558812902141727544695006940927101337809078169029447876316964998947472418609062010186883692649659591949041787100050266488893101784378065002101286361376019059045546564547831549623937600986942372634160634301215306772243201345760089316240810981411545816071278691285052061498502922553185265932625854450117017125817528522858982719015208281361877745596088772774212782682913934368352679292734611019230470294225705887413902955108175682180620030680618816945494996544464980131843619798256694710080646188432055318422666337669641977550507809912044814517450736138398170703051714433212488257802133975234739133916666789910982537656065016141067200466447211884399773064776254188773136178303273587284081988806451088803583433165614685915276464361203164032090263709036502248026639112791658671000339133840986195138970138381040890583690822461150860106897920075484851264672086500223247643529255954132654163871983667735585109814223105655170409846745816216105354870429591815001021112661576015844135068708628049031296961639473922095376520729848211118712335268198535800700431861460270444086249300625802631803836754054327776564812613445911217368537704546541917874061135630590352079841774798229609366327375870754036782964372755050107223611874572435315041133613837017292548799059790397927167690128402217034250841059360697865942077993518124972176246340585739558617632330683414148022779104159853180513185143389521389189934579073748561414767568984825490229469810990242240218422383735159104279841667375176917216998538560438430752773566686910328251009544204573189872872646171633310286106852604252252205742556496177267782275313438282910170040064980884993778819192079158178009928261866662785243223422583869676182097000886430437554370064101013880948991431502983481520632305674400903855636494399193441055164993767541431147559712721309088026377396754342108883835630749007488846597943380866543211463713416739815255769296803310216414076059898314189276060469997420691587653305393345368159113832300257522726327814175283488167087784184227033440057849833262737025390260426979010457689531285161253203039487905891275488752182554308972819733358571015480779057312087840968211868063437747433729784264248857888426494007440235967941255230305004881311473195030238111885010893429545401272068908163576948385946124456530883327915805849957051744134416941013345969366207550502237637902887559616930396633900657285755846428435511499499155891354766831796298248755023525280344666603244852647928930778645270420244905253229774562471764746869498734040306785220263039144156280460468948271682698899809416360057679715073049861092896833948109837197241023388323251358766503614511081386003395178466900803114745902348049999450526016432754051097402721262121929164231901878012425145081910016625991546765117204795583273388609896298192018836643054482980823834504883640551517257635346742285996640670456298499660466544151702201788454207106703481465931437313745071031517935320274895434184453235927527295907271605704463856949032783549605887661267497249633470753708279767000333379144853003845515386816020597535076852766276718219872507352943713213301008184529607180400310573901548424737626452670888702705132248139992310063594186751964163917226591672507692156628271524965005144000307226540314547261499152240319644208019685849145929529756263614486163721185680410339186771738595586060925962833663336641839926949637572612896424743574944342679367809311098110716468030876519455627963018882263040792491830298012562128395263840731306890263244610992610864561503185246190741718332733978678434998474641433331976564183656259907587201595014310425586110226795878832552958381299532717016713832461679625758257367615870846619991257788079416458083162276619867154927932622905454000710322483904236334301385245165196187517735509363868050145863436446954810157170349467814377429145651523883102684380347149729095228379388712903879851894831279266168054098359365373410974563432258039171938046438007915137267617585703883050341245162531555803877744822095829179604546151276198699262461452644433894233307486566416057084754893952847952183231635771673259433950296095726233036044838464816956914944536469480704767169500067047351050404043284581069787597287531631606085649965871548885346737291180590616327123903134893098835324929007605283806480626821590474104324218981959631788532847690699367551387778049869593634329065616491025999323050202513935072756300203311211287241689846871533001412489812318035755336664767608819963415932681848525438249323796053213020154310060392609005771236716956173875079782928005403248652630744621009458375457717107297067393056464700620606486553679176404703151630783153083478971529204851180021318618952631274794901608934555104073343552125460604877013721828698531465371080170047290083125080720177574127849061508925575747777100619083929218891912592678233074625945671359127009996870363065129500461750920081110105898475158927101628523127147176943993650733152059856620359715813555929095824488584373788785480966913362113423245857686161073631290799546438004637598887098903426525359811221940726847046342280577051150470061988884342729352116352156326950451915540926569313830617933645383302578910002305157986465319668148917480425505144663040195676048101332273949017158433205488261429114651977336349307381967850731824233718596981246759624429929485155825256777606359084094071131442929563405156548756694720748541335151190917861649177651086539481941719450333468996051693420213631991096906995720194153922589839151403162829230598496842402575489646288299202822968577597453189868558791323656608653799650360298911865375050478826797906163306944826699963688727767046726774385908883989907699844545448920529880018733476389878113924609442605869107565123805570140478731566763820463363809722677117253789366992456650350274809939147004568842227451167057648262332783660041548051152492034319312193664004514293021067853389057506379017721909109976688651825061847021548046468487798462119921135361776108472179333055400444235926644202129849912384010304098150601048004046567447401600499165298044132723386525304153172817008615263794463043351531628230054752543733978835720814830420487525089833021988560850260989298121905537817088588582667189220971203982899746842717166289405512101928353466920800298795241270873311978739663982399956619038459625347195097845614087818061989665887874774340547941926994717173986753331191102357266326253468272856080323624497590979492290124369282083998889470347261100782834987624245115853035065115280857583197897945846994701724912466054563467537938441129243790276410474909801230773411408279277417889238821595905655408191284494193891261032564723164016489179005802667203596958652554884553844548952289816686831107877112882384840245538639844898703193908971689384759184544753924486977633898097545743797984023396080373817977691813953217253765163747139597512291557252445043459194919540609515096776582041464205680975667189938254721632329699328326008173757790656668069710838097903732093421314569805760161559517871929166678207206465228186869938674307588480190495332728632489392998764576251562163719473236660851254668518976081104063695811200897686934620291775036646395672533691194416310474464267774083187129953507393391337774493816063141502345504962520967518775063314677446396293746522039229217925244920935872703220329802607206784799178328889054055827686513800210521190215388997248290925456900952252932838054807372631867308816483473971455244887642680443365619258424201981472475583713447343526929770055584846170767592384151199392845593013154511836462113120841525948837730960115387812133396849967036238370481144687659170477357163965479539041940042000011905972066257609007459107581972375289408214130714302390811021066510015292125367348278447948285225634678519769957195667642188350598636851764357767810042718385771325398574415439795286785739634948865291182796530312389552621138968645425048163637343639666331940868868890681734686624804037559804846675851692659500556860173181229458988634047894055889347224234868550250090364332131285602235314966032172117584361944543313383163877271915816700640160371680170053815648673793112554042810733904811097542370713620540309042238490132320004503960841253624241816426793569848466295212063850693239414203573118793666922002777487511786489429554165500102276973619326672911059390334960426164972893948773448330466851816570065625619987393847805219811046414961664735422212450400625306673443621830243539788646040871640759067577741642048991402198406384410988571309915629180300141578298547809846310949499519909506152701711571839664022953330559703918312869423349577996840528530189979764007761660942275011978369216137283265432003846357706878499424745168238671246869184374242280706361915981449020652724695210217050771528516796044765708817684726121666216529024814602094542791814153004338803058314738369086776434096440605941818213513526698573049622253163834308143553360611306800498395876412065992030079224082298884361606464699116233840598538585184155965723081769063278101429156962875166212857808078623762287945212316691642712667568418964382805828926674387631879308108639453860869340918084694204305007853725705610549959903137341368567713784934087526824132393456941278494348904305539806582398663377992753009491224187768749970415603026661294076042315635476932400128916987978045367800544498869432628169093490198588420052665535105312005514396564187279527526404928798829606393882075559993106515725400680297762548459356900048606885579492697601173209161822853600542100275510401568645274237293965915154627291946581482055059309556264192636824737682658647979120292093146042622071167177293680742293907480603847256938793394360885766687132683572252640491386401540268042250786054960884481860626364248442730347777870871815715311922734359528071302815651240896732052567046692500103466855317313222261901024152145992153182418128776769442599552223544544053772793219406480165070262416685653380345193964303733981833784288265021057861917641846236335935040068849241587945631599126858993620943705453946989788830953654482829373916696219898854867946281191737268448763069617654043326971773438444223858460700054311458736020510420197668036716850773573781598293450474280324314913207028462495665778838905848434459339356219540695035829814913962588043969635477382541882033730577582819523950034622998740561406597864328291784595298783897223275900703522396246663393449453147288723482663902890511328766777433847126720195298263456186301978234329830225572723714112597510858659840065331424454156002564133494094344185883407502585507009168130927507197933315177755033952264042158541842826742809707482921198485599032730911081507326172836559299487085178961310904592754088471054854449420112639115062708456999900821908622907731863643272785671280687514654828253648686596931014758474319889673568857283481105740303060253455814970520166890476941718675487377659441422454609937075804865164881020254164439477827340803150406735636801732756447826208954136240350288334994580226442076511933085928568432300879117284939485561876050360360988830972235813959386340198599492534142696211522746542230711478686829542493209757272354404667329531420658440301410860043449527228371675217879772992197169406835306660681355465906694292308974122873645469181602950444885437760275955865351260597012449425959203175876549863643668349495298771736804235892881342081408330301522401753038920304161084893158485665602519015282808711062059949419729332816751013767516434204103299337394290897736021075538895544824955207751828256709059513994389564638440506730846513432230159881238617172282513104348598853270882274130812510607359814429919979696918488149962584899384888165376195513723816341416366390104704713375906864676770451577074813523917847816702984557669938256185759936897823720853491606983367032298185812852476755946310318096785164873550495507386090864837116163918118253397671272678627589196042503176122349052849319944601220033402878715049439436443417486167404621842416760807899475082415679143130141512687517426226759071220699946893519717640393652712907293819639959010612106750284642186779695275693530770504737887854384669856483436651969227139688916398869812055380376430251696736200495963141679927998767719898030910859834771056207684618442750462800605096253468653622406548224006486887554250939117453420009461526408906418414165892017173804029197652646056464091035876587983628492985767533970781747253153693786266530446609212376572103869155927008826044297727153872993259241426825895001449762737355199758241479128824117717553444446715612692649210551834691756620450351537596550474635912433028777121874025514498044022589797853555849019911268081089295619153660742680119233276841481454529744464032453015464943061624422082748224016277810707950380223822703522233681619422621421172624696906785613123306893787685513574954745518599069751409677593292500790866611130331256339288140477292718687021730905166325758015034086497198724352788933026216917821746367253120721162501641932781125411489677303484451326295915501077710351012685956629507591356477018476846361364412389479184465239872759465502177198053065805733485531267683987637476703433081790351183018944534195569301336835440662639015114004570201850429788212472194830751188058299505696845633878943081237229387984057885501609074918010471369014909629483437283675284335866219489152949080406912400263701440892845168363960191806843599335960139622264581940952557249190223485675422878894780387256227014088591592563563177675679836872527902556415555800754247653253952732455598142706772225775482515414759970712459167781802554033122670052236002023321765789897764393500251782424573520652524318989386786155426957214700130365560418925514158020958606267460204998870531846547871905005494165172827505510759861865872964088519847854204638002408994426701730706093212088207273598404162044647179401422977330194500132890864512053733493409029402945537480261940761990906319130829275105629435314996175035915580496646232405913393082667414336936982070751055455040861633757593049509893617795061167205428719201408357835482772673732226223944585815134580639988020914662692715458354683773715764889414886550143536882179894936887892137418117233204556782273480109070434654847233879936129684381696219280948182531248993562056223031105455672452499184420637671386973337991704181711084828895428419746029800791658547835321243288478738105136024474051853982070870386175939360046855135478187476445455273468997856941630054756964713455827541947851852188157889112665553322903976930766924978070433656924218065209785598129928717891465707469518690854039371669437029143714485844303071776260915777325380789304155610030824832644898416571200321811240885520393943258707135884198535470377392519836452933404476906115407700329230020272626806990263489847422285422354213281961119384668287290004271839471953355134191325598782683989574155825061553173620365831659702892557193872065176850736118481322623779159315511668890980816485543209061313350224361511520187184162521032836528894628549650226713408145043070988209745542952329636363004303950479807693089750347889463904226456649964736937986440171382589841897772348567629078616518499173328034575749147105167578290714234938755751709736056618220948667762460847317078874381534163336953446786700435418929662854264127111849811350132077461713232064048310065366523524119500014987319860767858887430876109049198130652740897627952486985175094698226854520216104641941996820314634491524877984704343821308842324788777091496739248061718576484132646429271984389869567341259122739690587312033801656494648904720542474155133095554761971801540619333571123945597764789409270881469886017313825883815352133639782804335473998042444257089476746454107341344905064438162535754572278530198829752571102737350177054320156185088969833540843976307833551087789880292753215447670935516846494921247516942344714394426208654649289955295620680576749427253887014305547594848047532702439951804833457565223461392580719112083493488858099893372368940983927683871852067303458834028510195664935635004355772080151096198912047285034310572347771159563518004322048754048882001505829757238986797699287633457645321866814485071798913139648028277457251283433662942856497519645338578643298616869907492621360190618931798718463279494712288110375479091067017822319755645025815267099560051595435947300071700407664688879283262285304616095676779939187485032703458115814842454734047532016972339138670617624249485931790985693063987748567284496771359285907905208276854045089713334400782590098021118342061525792098518128635684022295000557098061969561362094552553670059239740572330271962455933999132931143248874380221311270820537409496918560041870305548616698965490569916160992717737870744773628549808310739302033979402970013361267083837981387163381529811836301148675852821894905360163967699045208986560322096657923975033570701195740971743969299242221923341522324831861358044692230783094566354661112908752475696098022741774473727672718568844741538924496523745957209374778032685066289241910924130179694296204531978448404364169452825509962919269407395553226264961237070358055584223751697391485069017342861779784007474158222635415585007780291928631988251384385182451621837765205273223290246167646511572050194777949926936260533832502292852333558738280659837420017864039659879891043340091610929092270023733288792164887214523966275304690133157469098949096064899512263924885921032240909776279369706014422693912948819401255638991829878014813068720484484718681817358029642920844901110572969236944518801271570025884016258165722423703571996331474027043400911032024497788307870169381267074283502241659850811506848268513017011922698438543989801237069140530373107304151768203015994348120743099102441544788349517052713803018098902109677927528523000116102946140700588216362148896996101259714493777183848083109859903676388764785659024811355084363235324464208991582587548868739685614970905166250525614459131808825536049282441533960348745311337931905928609214490767383980816934546180314456366354816596107554455522858067759772620424791915252395957263063166255993296068070124116840675539938781511818837073610145375151394324450249303607647690798544284205039954723695912817686846944582236100397227951655131814121804060916059527382079317110553415831687990227817381681519699041426255490757478792506579578547146768366827847237562351214631650301531668855421104392729274723266630251385787640645789036251074047004410020405198209164500179137117124988925790702300650074699375636605013188597248107177233300373487114533804081601984456902973251978421380509841195380608147703568391102325729456332050316670797880910717981135197227595743724036110278238592150758425892257944572768024593676459667513603545812032916154578506087719281597070705858808097569404933485635844470125613717410261106284079761537207910084207759705950348175844159425936388702041417761753077773200546398223488260576939926815903633221852954851416531869052312195033423531276667378882237587870625398934045070330734146277457206768565174148344676891786641983950241792204755152085623821522062310115397557847307666297119441485710503608442421117283872649825211053554951216697534531898807650353104581991470877480137010970929804970361710028427796449731738781375177842760480621490725620662885865024728659374685124228071897882825003414888349366691170472096171116147071460791135013399479477484571938885018804741435732387647059163238933009713033349763672656193363704731915552912280539539231587173197925940261342376564729385237611570043087076583049794361953759041587332638632160173245938903030318833224548471878039498820563381534710637102684949241866469258992648527253175775041892522777716251709701863461786709785216960701645483933353161308303702256950071273736855595193400242110179619325931078604095271325696411484599516366646435967256273438619441046704677944273050685513890687787138691812286098711211561003488182005082838858372807189129006241137030558044731257519373449168513937587430238995309232158700691044085546608947874165377373496431319012885072406892355351253384070262062507184805912165327606557300117474198970201380057220803504779664977165832062948580850737899271953456332308879175400794733840271427973972185056826399055188728802539346226871491451275731040271448696854257442960002339017635273324213552367142997970863726050513713804044700092582508835452449009288008943628529666755579855716803359357871490748962055147255491546195966322865081628655243466176093402168709695650290929913471394495848437143910841442875140268361514254692873125358191420179426174194765822924555547397920356591252872018023468221930747237122179941916449235388115874752293186103190222173356925270203871057960409443588323759701541833633732360313664625322412620179661918156200691606554588914011248289573682253217350270619417320329875856562246493849250693424941142590181266150993832169000863335151003419283488347291813495910460921686593435255161426909208635713453533523303832937823720890392986977276609577261093355043514307970674296985812796193881349644778071554832829313978152480689119641479749074836455763508111827784937073931487501265361090421521979951629366037910289782573136053003281686517113804425752988117059305549749085736279703040387155454878156165937717358290103218761335096141982704996517202555852247234590952096276885262176888138444567557892807536426396433910285489180836397434373588917350754914486426075315027551081976398634310312684662369667780379042481775266186778799859213507711769685884669381004769141732355540888582027743385204650559646727675729210700041543185003660722327369423783613643137981478308883677072065922912107469145154595774123067745457107790659913178605919252732144122412293058456112848932071142288125329957856655404845766219767526196507257571455450324763417789540136798464235192396411981503923858300688129607656408365068996941525116392870168826722596384400458835545414211991191998409936903231713699121542293298624903880185812288579990355026926318177001559286223175208007857943224586503984570547319898672578172621678448854225720447743511901646517462062122253433629859671448594892786396181742834850830949019921732292341869863371681794338683997970001690887517750694019097601998738766892769684786989125699324134993894216536520495798831546963166981193540843413968051804443854017929473067772062792173981452310660189307811978241789781779529164094906546274882727458004683243147782494131832850977636316504647815469541710014258070755980072720597463670353936903496587871212422645053333312131890845124308161851393656233898255287956041043110191628069537871139766560378742713331403544773247724868889199669608117431733861043443485040169465710360715326691520969781373783475604202908385736917560046251330595322528365476423687814638781278030303997716540732536322601974664681461230909613093767472539300245216220347924140895868940498521460964455012969902377077924650526530206361930337146113682672759493189934109041266291061521467039701906353013794582588673193803663888326591073181088396695557626411470646043304667526488731293920852150914405072049804283955148292105498687572421340111967943948369031413789788790796226292742744164315901182776146770601527697420239029699105886833036603898842536360574989956001897763276145365234224623831956571818879125925656330217722926765006115443158947543216536043187741313383873151393258536940096529865641346178797843928498482593986207046102913752185441695737572193284551825961021002551536360990189263554639477278735359376336470135981285411510900540414425043731050587976777139558129718258775192269840425102844042218961955319112937964902283500333470546199152597548244883983751477014968575737465538569509140999542479085165897028381257950494511549937040743078248860326050608283537911666056907930693958888245941751147885941669702443008050163123212905251773089211541923395121943192840549245351901224808424243962637905008554792740718417119851176662751065422580907812685028716343318185185176900409359044292649516016850130891038977221433750545442717105670006460664331497731751995776286183372283515043140749341582003643072174906284965153449872534489508071177507605929902216620079633520358811444361516807486726643613604083506695948385764529817597732719556334104581302001179058197888196671192974746721799468088342603051104098365834144005288899353131962389532158453176038407914394628083987819815377726648031306087183625728710301255487372174952910335292868975385477107850121466483040958131788166359780383778785913354706169784766510531899722212057371930665253590266948349796352734273620457038614625738189686810539542123652844099825595786312498706250644136608397356952720207506770901793347296705802415088630777342169678271638245037435749742216281771936463671902174077981115380353141140961713009582343256915191917536360886132301098366267895968246538396030613730525541734465076555527103146480070083628694458777845138783136224236179155921367159923166826743478990687059976084884155723812795761097510229420335289606084896727541858724854702989360671017244645049617844166741309746098120388304036919104232339860239285682758194945074852802465507146824891298793764924088091958421420455447872754532761788779412428203429201977842524787665943262037416042289085119381932993471282339667618939247569839231721813353618600276005725051957947393875746577098328615942664053163882679791909260139060817155040896381092544368855850717516922495607000851015392603948858786646255558881170398904681010051553407218619595068853260597277014381280842891820384599998550938464110201507145728585945588414786757876940046318312531670366804184045132680018962154256465572390291537137832832304173219819729554494663392759146050722861337488438808441540357998122680355731259603712129782357437335955071314187661888037586861049935817996135375724503245127160913809822565432877776231454244069830946090376064590827455573235395752372731308059445763453126434976358120342161322119739910871731249484312724835404562333036712812787507191542590055712100237075721116391583683309701160128006027152646553643149492037213260301151234837671280079702713931845482079290092444201941175955092116322364713286014964088938352977999028573480567919978220478173751934266249881421641628667245805050364190655916645841487403456358147372662516324543764909412943467558343228828706522832680312771666420301363879303441572405797661378203218389348361558183947736099511316698867359816188132473120298617719230945659207814799039068326055558571567231920140905134472035884957253875168536303313144230060097275441453620391006008569248282219483797997915537491434294552711443527023849844685179265068737498657670376867710151112262294184870184186260481115464153575498819311060648784848645624230324524268245240460346693601096557246128876563817771235461220532274343739763979020768185210138115889843779009477918620041185728863574661118014890120087991055379005882326280923424908157695244743606580984445838552658979612835631546618568896587501756193944526284204647827717912201679619281939853338902500503882028990177309544079839483179422920553279270066795417818050601302993623211562297643939732190902380865846486332023456314490013794346892961559394594592622626487415451731288529377117897298059108428429314218414706736785514385938931322946737461430049418716694446837106955504416781313625352112499606833016204069666032579275042392761132772768049797828556859964450139658667611783353280154057807191030002768016959988494090902869127252409696138434413354824550777162344773587376805374689491520638194443861738476884847011633352751191095431692379511857721257241813354321151263102412686745662040564287477044749968941574919410108279712074214291175429671378517343396179703625822760909179670119287321258032797906219183565353564637990222145406868866688201397032306897312352014356818179615598213465594413156978066913604923007631315704229402046075209353955801465416178812926873629477827235850959671839588553040212287176880287797643280773276170545258130848686773902527690559927138321752711257893792085685591557970971311269599970625406351447340603679357150235954283621288390319190082617163917287764815739694540431019536694269611253116794888603872056303671123367293078607395318668309318566994018671147052082910207498838127308368986819263530985149587246034862001445842808649887078740773510484110191017098965266607514195492872451394621993623483318616283577012764519620595630488304720607520792074561502744748785800642091900918845452529757678762356020395156321097899414306304453994781525464661538190226439224845533893311079601040095605644698444453190024612750882431648577461055689975337790986997801438863611406778384713485737729299417778406197282238366072144975836923165219678180747822924445422687987539065343136020549567610129739828667009201393740360179267224080597322095395335687968064380963181164760397969642744834830526287824937341444239754199422492958702803565704643568631069966557362608166763910838745273871411105548564196516441479554054289578811900925324976535385751448559208923453494016125791688135855072808314969625579289496138407301063622205631546279567635253339926873224575262363519136254210607181942488951499303147539885333048420150129576165516499709511858497541713456517298078990896954554485812575648323473408626744994908604524469614017254564358326828437299748023213185912673527922818148766996509723015980406903654636995978320638241992228474541293607169862670427389658861896509979620786574987034356196338422745283892010644823469319743403879083441164079547679719535749048112629263359761781415715266556076943640267389436758697944391483836463470600035424218401611512103322519615469117954813100344709240208359617337756179600699612527806294509776629471989035078201668477906825794977898804431793153719387013366455594598087487873066877799130448282437663900837388114756713138203680704458548432955203115117898824629327719835298151118107080504449945649304968647433911109123770512157835512932050646512166324952287403349625499527978810706789170363843525794020350977815048240246507559224008810631508076226108415335234353130827567619506347545817731745596491267612187261561341378138484382404846236430374121074540420538116357282053451830584004723665842664242652644357768440798208254009383574252602118915707939580427754345567194216573810022431777728648157981483705184626377815520937894270480593389890330576588366528420938904090815591196873475728072567014348107524115290263099451550250187164768479204901092901749592721584931176380483353952145726417373121920596597108932650450874873274648967754976262835564854977733488452801230590102823829704927260232674125807059526289610740709181977250383122555915564622403738908259671296681164136638541519336641825436684198959965891730020765076992435508621124847760715630902032608611786862663111085192727756534878020048989710305336454631977213749061300712883542381574143203241738976431775259669392470664569917703436879820498675202940333883313744574973106115613533570581550693720346105217079411867953193310882592734388952974822315077525061521065839133961600152583457547525528590684357836449885365817483429604221699843399662699817224798559659653731898322769580015980002152087529681128410871243959997557460761238036789651296365530681928486407921042544469805278972757045129514553289331463237262880133743940369869649940584434844994470537359256557165836657576995824105077718416785742777560813741389657071471947881099840477138732955725021271138003619304636567992869052062213579881266175736235638261586943910131888451330094537459162823905600401124282445331649603459888405827591109561982225095640151684872630890568225355868039639973470151376823057443116159611799032928697891971614609400846483137211393962721475253032321822086033697762454622639995919614339702519080111597706412871823132407616114202853756332668365039782451405898174713390688814357762056080004426956139852566720750041933078807279967728629775774560461885376965915699521384266549702023468429136858621503595568976035020106858078283107937606353302100789856140396902019896110627490961755239085120097826349643605268976498763084697413973659673997014904870302523602447322216238473693379980555018750883853210684534584486891315708158549752837963312878945047858193868250524636480087951752749832617394219785973656325281861821959854475313249363563115205652506561506163420787657626830440376897383258989296472123781939596657314601212366734732047301417023130076939459111424359285519476322707866808590026335219725265251553311193039371547235979899142836221698523547752221645885263252943186050723590307221178851035700640645811952010968119312378731003134164588588524112168792465399825756606149587539866467305710144368626259685114632038043983202367010000517947141472707553539903467183720994149997899723253410417834949753127173556844913498443581831525311432100283832664750332068872158464688232302617042618512988988334607339697500327152355857693566102208628703047099951091270940756482249348102726986689672277115322605412961914375944625515406355216277952394804691323389947451578735075290945835391014908578812998258272604265755459823190742926082363744301190666443356979701297376108867471863642332577045536185111065786355561798595073881142243047842020508017538802767171040120791191285153247338657427568027272309341954926461545490722298424487575154180025772336751099628040557791843670427284654515346284265674057870661087334298632621023812543505212018941071138692314362650734114616108369270370119383245380068492737306456849781262887292221891043253238422357009421876255549991672648356183821743680717376060171930887324312190756119833934713573572700562308001500883414898478589622529077118501471498017608671403115124575493894006688720219040355858122722719077329697873230836774026564372752023080978353153524271494560842024777537246700525467769358546993688642498437098948847008785573334281872587463417465877718090320341974409255704944389582454153021690875534873904161441202279275454500667488362221499088803158666560999653285811184778477527134923365882850192708845553967381638086905751469202394335794971703801441580465439200775698004391665693938122767197052462352536957529963195838041236006389470777814566653635327542417300151347097174095447575652160329678646799488747950049451563429192255224337143917686005649273385456670989702401013335367628155292716489935947781399425542522470987081881308113670658301014017555130862064514425547760983663787709278895224088466074408585078450599008005009199048774090464794434403760326641570543099838015273402413449437911522454283449262526641998266883833756849901348189893905923236047283425443905269937477886150041898529888404539029613729925381000423492290868534517254048550052958492243234642923354603417069727330841904544512849270925577123609693255713609443545608065945754698220201517797076874006670061945631934103262211160717789080072024806087864584584916834450764491838989833451410710082477463709405547967122321024697492245744606583687696671606176991877864824025388062744729362792824941933800654572181704902465949009716963948115781476280867061116889294968698664457292676325384453320027743386412696501383369389347264294310092934188397978194905280543463797422581674054887141310475103896602675443756556203460290492093380757023171718683107082802146479073212218546598681472412177100253676292530758400410025914012123282646969267825170304923714613536506970602400260002003189551113829936213824751257867900126457432136316545556515785759024856507897089155759385502103768220771243842389063849455482995363753070032438954976848564542338321330612592503452165747324209834861819879742358344218111461597730198764500600829017231939126205816996261652508881431338315184466006319201148293239426074416607561183580002424011630005611656385232495218884765079767548227862820985825786883472982134458978108745608129395210598119841398629277210756138677451475839607677287987408733047836212604891818506221597166278184450283884406277349534444597944242253045448305144372335440897946891288637410888894261657552561786521461454606406299730273644588658535495495393057211968317973707614272911921436658216664024103516774341852296503944153999145398875814562949799980262921492408107588842186545641059368675095711552495038230748174446037405283306890975906716244894926376596301027255546906872157906683171961984024853613928449374170445691686807096447354046296129805099358552821406850945464947703073292122197057268309571324612546049274973845030229053390876088752351999785335928178901056325804444061944796447176041044446163635773698701910049538634264116739642519473848435902579944933779020579358644000037228731356158975863957618664514491096494815916061350338027192868229832664137484258834210340765220882952592734754974742380970971053315062793220401024516137649893624290927099250940443175868159294291068413928854499888961226078324908034254528658330077017968321675325109564884946405916257686752114372419996377788590399139510679074613327477894766197259527716867392894149806294707988447140218653817521881709589874459702370026086457361962663373531506690940209582824681510908995671431195091296985328700560933115737181753402683533896353584227369221317219726422904361218265315608073336193717668607964671787271742491342858190517190319101183282037348328488406645725649479094704470972267464737686295752398430745914906105392447058566977431227405543364012653266051938928617016407648786420005046601605898618903231624245639139325520265259096939652251290065617424574393518044737609292282539251459283030437976166415066369864055314665374377333419933746470618677010743112966453759592063855490187669557034799047023306456380991384097258514308362685791315426072814425027053561120279182965913602793758521988919265515971851915523822247268461087086391262692420935698517159428682058811628787013543495974441085123278821411175887341068044962718408701090532416318361544421901646713493480063894222707910919221886320334112600837327491279717535763528426246021396120751068299222614866383713407765901126093197554262445734408527691698562588062478205523961371824131011705989503847148469623751863257847978771320294604699179630222031284095754710162857807046179887762383052348207878557154296792911111672200238247604161027590504058422738293968482394691479868303925999958875258561939737575792422156665399528377969730854695737607807931403855760367876276773580721897393104836421104719862992941956302596520717325125068571328054327787383900036061688852448981337458305918448098956626399266962382795371933064660547447124146555335743996831085885260248226172473838034984358880539349850178228493621356565548723131111698938454161828959505941534634614113794392112837361841589361210669308132083280175793785055356180144888888395489481208128723546095574077659334743239558704090525002170931781492415521905517767170735509119475744261918650700427355492809858084884090459921514564198284243177929318674404930485158407950080476937119318090380638342832956271398920618324739368347524357742637020136044296376387015506526030129757210279714940352752199897924073840150195787492680767486569405353463255875724176623618831680453110794933256603802653526961867551590245727576158434108932845996320111167649877030496420203313855041561556913266780685974373364835342815320703283323481032852162649360754604790280135999705080763899395242821654329273276676371349380597301193980338436620941976579482285739209351500315582329143947421889673633237587675401817318854722201311587637457585936838359179123268739220790534790093453857724947329816204756885382141282537521542662192306291936036759164327976202531660433468737498487449866409619039626216023727333825721160522132972699893527665843749270829413062027664385152093067127357134576703844244218861653006691382184689667832964641013332061476417202972703778055681701618758968767434349151348833027430656215147962246284324970823124791447683013967378958084694463089248848455057776715444757311630259373091942325547488135235000486582824631009590094442801791764925753837892684652695994156957350326433624147526275110654541059104772054087849569256124777854044911239536921153555616532169448346216134383095448234323748086861756200069046015563161601286372446582254660806867508343328323373759705413590700648000525564630152025251548652674947705320272818777702078678312927221871377035012790257795216457258405116172984103198855655518234063500329672183122451098212757184594953540507558820794508884668153768455202450982415691682957637576706291261111064293965504792814095695723004999160884744356059465726546481662917785240573842593464918049803741212989599106092908795305165268464199859724017394035921874018151360540994484183701165447427246062631751641011832375116499597075397167524940816744127229287459379218004377821232080636394282069569100930149693660294868778627797426149223112272033582901062127237794003221457254806407110710488982468619482626662336281928785364798330021176913922217108627717843424287715953765097532075716479822253638075447721774646545003290605927643666610605765965810133160454003044025773109564193502844800391032273858801213539148418037962596495579193891158539727056530930461208521289363369216277809134953013667091708548436060805781198381042013401439044900373887439650787212367503960171649459486973479898642265948746568029727262844972642914119090620739797633134661393001196203290625289176022214870153840598997717398695982525582614370769416070294508066472322631556075372919133306071752943231882795939886673069280021901777486800642845378386251087668459168497798477357305457034884991299829500861888464005397112897193045103823050541805791687545400223682023660120994541466664696271943900310888596372140510358371322147574081196315148062407355923234688974589804674404688801888382853785488981593469293694863210369956013531045714455174042973800990023215269277312987698907886581014335901636794835645280076456865888587912742120399595234209571646829884359901345029478682826956042869226844183004079800953658069158450744512822096798934910987500391768815511422389842586315506639026645912929530543023024710444089522316272127858017114166221637443651694902831270884226276328282587266246530447491473744677741871548162528255260369847656549757718645171592962528224197790706038619131687301109476400898363134391366475481947847604397156439284230650464343312045728830751180561773402721426517448108853677985354965260893162409129558456575074192621292056748252990268122780464807244061071688272042301452766389445871663800155497381293629120963723922990348854846149433429692722466657750916994424097747612465673582911795140529914719352185488820472527782926902252374657922116562944013725325846489365768093226651295682501974915149345312455368082240121301697885552267773874439583843002675036455224149093512277617514698807226872242945455820752200138159823609477493620644268232167600162276402053292572590510081789997301358159128424221533430977123073661812207874118127968433209626831415098854521630290435389075181963658198176338335491969169354901973219324968687935644716953176969629445692255097927349863324981560666164988519028236532957051282318693196314955889382007950064550094119301073489624242237096540221228216026131382614984533819201231677882512491702215406506434519434189992777399254694975344951965540326779028635985087004296344481151388263447530985870440438934213928052749139378857251291653603087748810134695179870014511898854778854451817503959232621886207625950062685068658163552981874363904574165670397736287239348320423734496101431409757246835645003110237948902614062249449736268989602110078159028184998653226180245609428956909417772084314776359118405219464610006908700285475512768899462965272779385417778948594913762714347866950492549916679268549712488076700252717084088955518477740211541660392064344284226536849069643863631766782423129867317498556519933992949485454375013180766507846108596880437344555083118383374912682806954108963503807848556578371495050166911401245059089043255318127576465501813191207309987769138831106947052161581755134650826012416311531091305467661228313585619747978552035982303908596123873341371824968057639569001894641939535532001666217131764800492667532189214100611626996755788510033967182519267668880519977609790729099700788990429436599545980328090711845121783863397234392004977802443278359048005679120163912365626546746096164646758711118709302427142394272063876393041892429851808390522039585626313016530800134102841095347027345691227608232629091231518140158903950157102511581996896229972666387004188054624907614632024941817773838494101147459955671255071465262242348516576082383441052767940298867210597919075651467138294022068921286897307169773433424205152258610570314313168013877545124823464349651345389589182173823081912539686233950003628686848532100546766491176894079252537340184769887956139525264050833479682098073763873710240689585966971328347373294424058642863665990213781422485913535351881841601715435869079341126252493259513980071865022680303317817547639634605955109015013117872880573937017475612053679386108293709541111720040783960192201135197502397319143876436932541099707987580657802391914690811813008067354199561228622570213154297496104306879549743652428619163785457801064968618052748537497869853836596162683646592997131678567046392705840412189910926289169476376487674119109254909802068966669493004942485360546208152868851247787343707122120404406742091402093840675701442479110238712772324978320508728533365523175072606404657096972721953947440494939975920130092913008164164020174679224235427237898458821140595764479767105629233575892396123651437119389737888638122489911772108281283223457944026177243613108865310896872115190146829039588504924204345337545263891533203337401258525285778497090025751420807000637808834321090558901961010825171944927255305746662295530429280458738763873864558945976471777223153388308219163673661037037397413875948846428519332800051811236889910850126718331688310820899664489423924124627865827809297100707968737633193527353125699623257784829026834840543276957040080906352488639812019668788931986696123386862335887375792443901846562438315784105732828792201555388516753126495076821631742904763673507961500639309168349257042724790873815703328259561758119707095972282700499806130443364039932034140108501965267485631934765960561462408874227813891571322787196167444298898827104010218962713166772636499979462538948358104609274209309783379773437684958126677815984698122476887156512673558002285670603194579064703438562717686877813798500469011708596362626915096161491295484646273488789080286944342874291790505781074191554153334257663322416529529125680905985291561867978316642526689756723807063204913830299421588822723189038327691818193271796624065461213061904790691612937002860071730361419341107237176160738428954325785978179024393507537609800386635574031651175322677585957139461209824397219823247260466627805069751948541786253107552723195135916804426905156925241901252372864305193455364867715097646028670363862583966944802660853425893584013183068458699842587166775317960702417707418380140277990858196471149001231414186857823171849068874913550445082597606578660108743582330655071090546085826559164284621605874355018660818134263079479009463634721692597216731876856827794558714004565259531935142014499789860854298324704122289280289083830784670084500795534036408093452942115636090642083046104804257209568234629444781954365622226976458772881602265809689099001809819152955946078199898263060265622721666738269660639837635075591212353901254534316047435593537593914768355566860251884582043760663939269676832276925821132792524658613574229315608906261781812718599629288271249659401877874312094719417793215357347090100857293662551495071945630734533781857473249752853405285439410661040209733019969185180159711565752087010220943254484599190430250945718498331080658208218284107061689455774279995270990957888160011913123417296623449093449276324870389856559833846624651790040504915156587952599435911977652432829952319136388166344686735648737617166653199902347054807211192864655709967756998705646186098901675551093858023921851455179066191265014915851669134305347852462857853468641010730045150226418553617309555493020413704437047676597518863014310798059264541974945950623198921563461854421060101859546708691298047718617583808522597716702944555784438825966795348732041107484980078842408017358025539678257261179081235017399515050930050548607885950116873643284810923510013416976842909348126850795129603895910462796121147557221070925875432925393578041858225702004563362366837773360446159124785339270540501580977745935534925666170332082116274541798291823404163250950295106125199219530130377448644695038096891695037317827710152847223119981955994572748529618973958846764955342261029288031718797389861099693233741531375152352942207940099956342329623272873084095741436573774189056689928042902406461668250838779956658387904320683295088304766496353379150261823863212395606805186640058888011025180846220965087808810676066221372907113574958593441716337321285119663863833421815591854741387388264029360918872228850491856184249690482703768879469829072154870014106747874917216543742348688990221422689652555007117914404510929201530519345854122773672990346457471298410949019899191745073395546616435164879913861246979283558509044097755026053226531574566676206376841901833340933012829474952871273397593843018583864566104243368988290650420990699955271114300211603306850947360536042447555165701793744261369014992814282237454733948927603439363478704726469465806747974611799527971517563205748574194196980841519482614731748449432934191346207087006208352215956326397304395630503432021660766150335048112454975189426899995018465861519021519762390679388643331264794263293713240414676895332518560630976585328422938986092344600979217834512897834181444992688020814278444906979076421984051504346751235400531568439531028664064738974143468883011648940302609265813159168044754068303099253728281891943581807320663204423016079956607004982394612789902838844579649755326925050702694605602110163825677376627179858355371111594500317084526884155194819381558812017519232853386645841116803675682049447400578677735727396778692209530093001451321763262992592680680783890316386362939692909429129895452422732524592921336324748301353294583834906724430614516062904172187383352299641894249907226101524625165400399908278758478180452626253116955940344130055548454957047884700622913443537147854738175621907677085352919585289903710672606920974889603840089263002507473469083414981874208331393245234172312281372096018788170641731966961012199338945388593081282919604824459088156455091664169853602281020330733250934253649464180579658719162004774426791088048847088787817030218656212207404747935184070593159196335730914995332356883239851430756228346929363033600371843472605530909929771060821746125457355220717094823166872578623658935162167760786449947468023385030876164121632764261929153981114068121118602950932829312997686659478258900776116105705060850297818323362967928530369157771116946101347895670007449883369240033590793529942205598616632920019529224184892948488530618688495705930350009067303664574288963837980640952021340318039724909878538892321535253711234422087997357629130799270686222712784034862191230862317640966939298929411966068335347751426202870643040119248406421463810270335550759246784158443892764896955976568314578617156704998246379857303960593729958910064757574312763590422754404288623259072301485542928632937079042703843905902514562766274913218625811315508388917369163000292633888826103719544626793523620949993892554985406202278960454589109632457056671980783041797612839621579974701724836037568243625927866128745842129290225089967234205885402027396972220180463200788728727247028207901219321887305432591858982848085972293693666507395806037224188110995914979928299425631231914074782325490695362736461293221855370270116901675045986428144686289794934787203014657452746739670522070430934658353876296327111768355607267524671074129369616522745380055176692916225654086088815908437340621176240128565001066002986927306273456478187671662393878493144157612137694604717114763515063525628081601879692054318440393990073096546471481568809477487981317405700286193897640913638836074840569755954560125815621748233105362518713058863978923290246595810096411037597626712519295242904813472409375257871850368832291432114359823281149560207789858956671299330615481721532211796537116747752064234778481650660405426991406386407295824982225872537771060082515935688231194913255401789338853219924063907397678427402596805038578460550044100023890975370351609139667182715914918727787006025948635382602878581147852516382415397383023446765080261466430756978333097539172555419640031426003097470103048523245824261851662054615640016181408496701225968224253220037665973106272390196147020269714690280666127159219064225519834089644873949235501686987385456443702740347725754101767962828943328435136127599132357706790628503857479736506335030933387415051778964038667397690682951641481378927152915929499146946692155120324190943019198598262486605048879491114876416084709417660532606732012314235711628339894527099317481655788538814338831761782121012383778061315544782542164624607541314825940600568522192881265502045742829369725164790218338558710322331339090539060699932238190376792136507796400363320978039176914158542745436886492459612944991289684465471824987006631871429318022067273641859757258568638236184604989755625263713352510892696080644725202643072543271007397711360083318137139790851721589051362642608231161877515313469466361554428419485546154943593401495687334440956050476842452262173300522155236163749229232119288427751295195746423434467973261018549973379915998499876152461230670320442238828092648543763334422441743697799241266962581402717635418537853773919015737965156211902226767053669053174763706233830502311760781423542204337489961510968101068904507367213064751465002498546283706200181146291798707107454477685609272568189649955835458354089008309344435208773150984609873661711930781898114683708668771893835932222553809883771931907042393474113375180342048934157814886060223101480136099097767741989539403947032815285906326901825573849711426961262048441959186609277725417119640337964673910085990909190269942516930634338487949943040213751497148262536163342548744844465141276286693328899135147676618552614872802188454984629302271728076005723215357514539325329421889177344236333144880879678477278217610006091975596319412495903023918729711360606748764508389331787294654596285583118198105463282251335959389480306720332490526670706536005529564065560012482799742422546880509872042083168827029071226929431786674716783572881403146442404138609834650507307657842540082964990103124339663130678607900062029930156324232340231344512020972360873046675414695577537628700183330351061846805553942879506540733899807246434248518994828175790813937091891040747662311860492230235741705014075801614775473666126795631993157286678576334523666669351031865423838757486588883756338194444583944899655167170730405899125884510151161329245998859208290048879471457474105797057369519343996772955126119355550060853445671430810662399641800963811298338414125212316629474401780705839724749935426301075917638517972057219209273646191536806355954008482940976964747868673846693539291176183981483081439717435551262774544459729171946184809830791016151513303421934425086410446499843062059715279040321240940227932346173473959179978626700822535861617652181238919477669384448430289782716147901851837717754494454876767500072269325222884132412484806937813933303667758610996995934529764741820128532836877817308806014904142401068128255872484118652384397993934836584821905217827157836982535464742547198326199503968313372274034690917280380998650939098648615462447826731791522041614727801486288666242837381750894287597709169811213097801369892338797742874558694979580963462842118946234609369096463938230132524455366753389493179152189372462115471622886109067946370535769725922402500405604339297513065609000709303500564714922891773718099375983784199613648370121945161433445757073619238160895180291218672299067851665082910950138047351521995361637977469843998572226273735726484889576786688910170579095121732789757166440888757747909164339730069077880752419141911449917868209820229644093159953305391887260421384853883828935910541408149694152966354589046144844584279810068890154681297770127011595851671207819645115416997104623524233724621686145857370626490038888604058834304446364849849748150739338810818116523730179527267010840431551912426595869798469191239622462012583173059319667017538019605271189652884310115678618918877341772041035055933086748449959899393482733888811738164446760977659159968499911783071253110495565550553794460721049410527888280846627824211029594001193283576257254872533526390927382436125718779843654523077931252819480859369622492869612026274883231977679427915573776118526683648921883676623190447270854283171845082003793733994579276887561187057661839169184984788982163387961880070988257815012933694200956972524772057012879768591850679990112462316868431816200819220865526322694008270410751713129250331807882708303405196563682804259018615388802146374334401383793953372326020373348047851737840391475514293692150233171309864308181034130564716025784395087126504487205179215325592702850509312666168208382197375421000085046485634322905490643620902313899528488877238294655096070819062071366637285024563278494840873446056515680202593044560177944192328771258193521028559419643015377393749386153856199502231640280824480856509626937794066186234614946737395946668377517250175056016954284027981472527950784161238867789849529172196394305039025463610568599687538929648119476632464251361063301932706046008368055067518088251127162674867515506828895879633612660287938622923498527839454155913470981938226650130310399971196416129165687599734190527921243485195897621654467449316783082020096587830181138434425044860684645294683871849491754075661731921853881314846239150363503341845517745101926842581210391161594951367309351257574285185989434744115436319759206816587190671606043025787225298709677148409530883524097278438197648847536446483504148036450559565979652063418050310501440637621448388101499281478015291021553730103511851875647612303714087007010687700692358945908416914542880953739135834448226462609482195940483328891634766283767941014881245554030386611577336634263892583738894396993264988719935098982549121984281762079218906002043117687893482300103617213028751275363364713503515876095275246329211997579915341389363403654501961531111336558457237441036947276497755917971485351154232269154359682656927394104950694842114295380480706109022732088545489243208345569566136432901366665666431641852545206524173742097937570410352950248796978456017091023971749581102471637010875271345972302404872004541607082345725898488639387139807363230365175861461772937559925753236649220110437274066406537021227662877597489488978137108610720499168162358847968565592481700756347621759625024421836906698163962471053378011665075864717462898326801724175325045645005741708330556846101657864003138002294532455099451476857131143269237808402561262824646637551892636047230245302834149309723126647405650778240564130249196927146771220533268539800598763666036545281769960569790084787256271966430952875925639582685035601598590673767587393711286855139291583348066279653518056577367498379702366690043171603522595627149086735021902996127050531740895854635938582767589406128384459680552484811025492040853170616369726395793406757293654254363141388809215190423554197919137043832081433023350981980950032819184581676301136963434966237750831374646733675875210261929793632061915997464413078701664316835790371705413668111803626375966993627871635751616322786761077846013442919107639944235575730467775081831258476386803203337517720838643751018805126920016920450340937084924364126721807473420354064226851130835701187820857957036868893406415047857154993455936358068052710498201141626279808656786276559344692068390298493666175121337234865522714362222381904638779127254326727790919910252288984287759074592947255002180101999980890427010346467225037754652833586362255743541205995460289135474412673993005668101608116766019970090825903351731592057147273834754935726869587366860978076354030347292909963472643605485710243522817885996503146830358817156152085898316790445636169727329043185185258090822320976482317475809795879268412053961220956984325325307611953925120351330185550205448958819054867779178320200763949909053357773369293066551295902113259725378161669430732099957543508473639419982927680841071916424518722494131255718558846242652677449585922027393912606858539505407723818000201153440284724870507083282316304895323374426053006968447436747952125762858966406013367072015083577564726040586255773108620990185339321518422486773600071421792866396551874530092657219829605133289824357370844164150803419473000079821221563027941268710587253238467404382743801141310331790670143775678386277730619023482366909529135649743781790660909653330838345807755602051890746161637988725916675386918963158813646017123602457017753095496195662660464907692365338584442915866420921888200126511656024986280803503622658560557987625047014553405393739139477805035695837872710644999173107007546613514606837934769253768109732562820644964928735183204464410371840344567438744178551821407416283867342339636763290841745663856878693225395915022951122874668639661349780950824323456783352215277049581510560392086493344675647502690572559463176650919576538723471267857491147168567518807188199097952616868195741425824550595571760937890856080250689011278766010524416775469819765672326888421987213010218180186000781262269398325751230821974102159148754372213501412123761543350091850750610435683991701390308367715000634244939089673231870032671371016602259884966908040218790025734054625230584085931282617339230219011711833424762238254557744995229985632720491285538600947516378983746247007359465792057224612396497717720080360981310980007972163138232858797869681714528693982644469641020367302121974319363182784794094809816569460660197941951744731876005468808237748119143669876748175676246907527346796566118996388441505772434369365720603943473046700844800497554850121655405067649894714901005022603017658156609275967718937627851803306828685137140151194656033607827798624462146005234366524037520291638893586482333414084247595997514851206367763365682251128215222964498555587265003430027507729509621312777738470414314591011723369936122785587987930435582370475836734247888042640138482198755954365545941824895535485703173809187687984809913256329105075535864741093747063188845620084228046134310098292128844627551224180327896468199821103409562598284812088279842165918441945498875335636084776590992155023579074439768514191744670321510467842731099091259647873139867405363822668583730805038332915130584734518976397707816953354056907186058088481504445160504736222259360072726051239930035709223622616913002182005277694134411465471440940211563131583986521871321261280247589138109832808202809033472991942172015938325714235061266427042775952084918754519154846358202583281210843584138523952063047971838669600300958202104306806442964778673651788656522805428165293613493534732217630982995040521499053876892237706196468054104709867319115005951717094792144718400737002811974859981877561067395346219783073188673520315743657199217169446019073944860344497311927844904007107541211083967181198973462168223260170576786255420774785454703448552349248451207965485409598086704660627678905256656560520486860177394322352694632061307146297467210540958564099896555384168631459686442598304618371698810378900260553283493587708130374080762028075918098813279231636660522505707730555222710519431766039945859847074919678028045514340443196694951623583152493504698212314845666029402648843758237357188618983756935300768995384757787772753022305606686621951982423958045647430567428168565937117929419253904305646583402232934132630644839736853488603543901584345379042094433419169556281680564186101821480575534990999482111326551855641986497856614710565013530188866063003538270707261601129654500622955395746301990803459084079653404861012380808808657705809570351627691143307189696857305320953768362656473648058481060984192854311439733016084266484638166648463358471101848354184140404808562789909717224802481706925425453526049597518611449911777848335277870518932455674536290180355365549896367901565174993584471465760661630308892273831307811684318452565090927635078709913882260588370704637041078813222707818965901281043526915807794307955377533255034438222059817837508518695276465428158983012448131911015450152677797338662528578819660210534029303371319352721160033125495894568535723477186573019493852358488324512973122353136471256471265564913275250733011838740984853474458893345356621054878702982277138709291800751988287499684375090848902887657127197529373046123654968302869513209406459711856762979142237424768652166199392131010580561418947438257492768079639965979354149717714811910546245415257342371223475800497679069957214865903053493678328720187179313740214736987484306141060501264002812831669475205492491143301675366373154563246342661923055472053558806421398288225670086457126417450219249524925302995169505736297595068612071740161584369968411924268150714558936408706888141750350010994640898020784369627783453810911397289832044644123838673357583494090525552534321903546303949083941085884153177277632161037522072517218727137868894818303277206510122048033661394077061804052465089468172543923883014089048806667988591854856876291669468324876052667476101132639671113887992983670746045473999968869255437737857809319098100588235999056434881929004443716247669351598169797080479671880150549284181846033738898146987429613738215943306189850850972126544700367570589779754256926715393884441271796425021789717976717474503207876285579565632993603538934617794206156389117375459236282834163626038546467704951502871766468904395534319419821153324782318072214479104931916454754384064887216996490473686842254921610941028918819896753710318945118360719728717471346767564988103699447617561850679729262617173666867292892378610057648536852498555615148161041253839228613037637706520572073982663734121622931821756894673913090163931837452484397270880929715655800659531593572423032716838600922491012472050497863389446041686551136597920558571350414465689386068145300460953184116544720955934824818818770570452420517767278050620653900006990656038951111651897804126369008992539916264163682357321676595718559613020711820030917405099303522015571978184695138766788028789766665939222720912268027004355992868658934499871922687429145355954804305544646243008483382963741204706948913488712446806918679652836557479327812063723478974143272221502624443985603377975044521929289808802081023532726050439329478458294555069167487284903862237468056463333239323826650206792203661830493307900325489029215856923766170130318715951715227680496344613784842267433211806086397399582011655514929314085765950204745674319517039496157186666280776002273738906894647624468249887579688567078569772777577370296476269801814020479894645428251068030609335176564097864485809855593672383669529526168981271080076005013848033183893897201980348966058107078371086321101892841775964104451116105997853354573888374724517484494408436866518640844518443023968652547807900497722114275285845481614779350703971288261943110440038807560823236275933733505563252592820348273795558498591932147392075015335143764935266154851938872095631875109624973990112137012203967185747608902495277898148065556181156741325891188128880610094575671871952539040903886001133814558945794928416749550538756657114736389421266620384209399365243491428995498713953179366886823704002288934126809852988657836048242525636980492862347533166956489816394644714983495560691863175134831667525830685386160393316273411401760060617155922955519281921925922171158561891126485757724713448068502607753634522269776763251672291027087572691190771900443589381118392343416713150153968960812132894720826024066281787694422738023561691515661632351881544229853669059941448547792879319741129568467804620658422828314156409058933875254836972282955846817337854911692823162023826954217954044089551354121774854713768949943228743077341195460294307228388480782255520733153778355785450330055844850313764818246224435026450225729155891734572427062167549371143687334671974665870947584434262375595225074896532314346506552341254017487221448268560234236489928237541585082410953069741879203835776218608508212438245538741093321755333710973111356719729999544780611007316960090091703081214292244029214146687436555876628286215207279924442036458893417227805554570392211029465348446672561994947448865323323772024257915334571636026095178260611873704036962748519499223036835176166198007742088684351507569228992670716878598144967416594729310190001339073585927916843571506600687679058209233821440319525820612751637519192064578255172507210319587112173804387558782808801757222166385476477437423251127620750756983954052040585371734059162382896295872049678762873211756609635098134046866865680210730389756187179235586991033134771401990102551109975976051875827205089287762660684864499154894400844457702990635051980713325102866948970495846848092031156940395071725852451257781599175726952729056570750891425332439660692163747446026834468878307904594125451185157944979047361284583418503969750203552937190517995529253891755774789198695821446814274581594058515788493811739425553449221195883759785224251480295908355493998510908474521290282840421041704070549767368282048314998418331346114389939959850629957210836427929092370093370324417704290549857747855007056664209874158044195443408109309225652963401155508779022343818649779997213799898969219268463671704004570442549022948464772974383704018162689822551175479306254546446447757343224596884348368455868476733927618077166182880507797410512109224618967565906807109864761786852754704104178726847100377980929006590167746700229185091532403067410464957947662340071077133159001271840680602772570773209829471377752874625664642288660296672041968515577397001486195706405096908261658742189320746435697760805948929300945906234893252243259271309475683838814513616698970815348299761634237148744010702829344833768059325287238906183591239369642069445227423459386380215321630315540017759553258057281164286143258370447361392812963633669337914786050511322937967259615517178423112004378936011493534064789431427566092026463213805282119404841262326012281606683541820191869364842103548335121742236877346186675117881393912354629983258110619948839784026448068032108814548761137542005449222898533601354702941995668262408630235704022579380531243072118393135450851266157085093846125064836965097237159011710227832077885907038907842988883842633906661093549071173291183920308339899609298343901542150953885910330683569731898601580793454119833366369442858774657991255203265364387566811838247750203741729790680976472226952849476250865204463322028370638134059726391618897846848186807338822948555073666284430011789765966699975404704030852582577978038810652058430924897909936517996394127428808642341722068629988033811225597018419830156702979791685066694416755011452163039729449756127720363215762468408311844185891420033928865205741331246340182734113163150509087673556967175308915133593758984679748516592012028115560897110409361342610636790350658822579817027419470262939213121211517960893354907805981673651207756862955790004977236433933116677834027823132703329324438862629828654034571335691338092702146720339173832721527843713319833628416579868012314355327891251121994309631634561982744800416599831872919411130132087356458188008828490862062233610334604632144436425824979808329206254106850056436502722494824842489195726562964533437623182915620646225182289662856794217823454713802669730340827092090396580746010562929969622299409003452936862466683149052895449576517526406353856518197559820114513707537414619454377651718166480908038072682007119381491278745082448285892777283996069690951292307936579636225013047861436410391668883011598625150672476242684942993435099001554411567954545360177711258895284578031356943361674937086555210859718558017661105965412843831675809287230162189778873545318556159191242315821536025368348525265751098437418489167195111984634366399398854373961465855514408475298180179010830969040041004302452998096663972227862940249660407662682256392683179997331012032271591658767724167106204203456916836311912439880339947715994108267216074672674028237118171565097435336056254095703443258236216149974161038004056658689203993822774713417902408343153906828939731052082675024924372781431086379268928748072039760768212269305329521666573548928690272569838430848269947399955893375288767238351876311280974151123525222792535696073641309600494822591333152952437067119361332993903784416149087423858128419367690750434196713116405918806005334894100899526913178756934417742409591372200697967381584236078318634265883488650511854029365347465318531944119165976022516891944559961256263574350142063527300787986317242365848488066335699497238536390607028230840874842942363329020627656639500921496155098411648349619533976835605468448993233389493281098097911145589200008050632859345767951886830914209027684547811725180618976744957158540858827301079021960191618382057916951220011273668447971038037850047002499890023099642066044951937715357195129429859443249364353835677015381020938350635570062998297288997871212132295710510972159054457970447490409716372139690646661994496477407331343066195603934037903858757626398291461697199778085207628122589213573529842268254942154234601844959858084571657187254735418268340522427947830098703447575705320764080441124971823079520441598147789120527121569817392017649965309900513305793131609598430931177739845420812681733892079442021882023617335072542751321310850936896655322493186289215443234047910092437362600984035846721669760526737345210156433676888830202731343141603608558081364339943523024004814910591349182531818001412994027382656297099560902976460169349972044191651493308469838471751797865009612402835596558696981586701256781196865949687974349727165864277015464182225342593390793069742709516377939718781221423586281889515173923377947011068717988535931455641997550548162290303775129754580914304281548005651188525709329024500537065765727942775986203330712522009212155242480518900591947498006054695591926291499037853874628923626108484162372860981297816794375035062297130421623092175320205609000986127596058650533726990663767911636909827379254758764561992794907403433010718606102186023514274688166603896294097177578028907189893013963520717927319239056118107859196914423362943607677424229397336490820667217788746857869459179438662478435284845046589203092539312363221586009735297974420659425073371488651512872785978224314890374477141315594465321387080931916799411477967817956610274505062553532445249695330666418564878278843699194686410071010586487601934430778129361631221806041282063544549492632882297408585064639283583755270976620697607292470530098436228666435624945970454678444967016023745626437358663101667851595837426068204883840673926975278144707017108432455538442979202100951477971625698674991681130634414783340189628966285231278452958741947343305932143829917255634757244611574125376953496841267762258677140449256175007550769344852224408611781129471091364204509768867912656111946185949247820316596115350091154875034177687132530015899244210288104508539280670606924376189347154424339567924976253285560324543767163056035842287796670337123594745560613300769811177599053551456159231940427988405262222776015707307501473385204904235547432552271024027326763370567908376805433182044021457182379073659922751753385405505025104374976100513117285305473256724407470979630275305902985875149259777892203585190125839053653308366883197863766264423013028934436076616101141675258396314174519671063599797896816315223358911887764509092945819242500726942383967204585179599674137321820386827190853142224093044410280043753611273465036061198001919227187162430684997465855864840193069320713436209840532893085085251557215037417592496092911353428720431015769347802000351683394637016274792306299689436703697312817240147562546065182018851182705009878881688269463614078685575882795937914780760170721414181995035061516256971197242492750102827635455656583579181041989751114454057313373856946545983557675848724691791914608661622914535155587208463432083656955924148007571422300698102508397184793896366311489175827829277585532671507021681871155410131525012668535987564702681632041947408940535913061911605809474490103325455348189887799955980633211717739351494417445444327962730628896059068405683897769488717467010715357237413203707262821358992720885132845800382060027321189627794379112821217273802148701890103842542260595097190489927752063069467446544897697975800508534022584806870219828148989223944648633765819149716506429574346052605691851754451724679040608457932368843799544873061977806631284298899706774240801270948912013711808321196680947125543199757044757074243081835749205394252759341830639193586564742200007263088957817601259296060146088404533503440849019207886000367855281343074438192813991329360641878971041208459589214705087046730123370417349328214307647867970636460280177957189087868169705044347876019342594014405257027334951283446817823416782000233626959424109419625431142198927738746714677512213425238997931222902171788372422846817187890327539435849069748467794024264050179163526579666776834149694280070693193040465892177040581875184963581224477806954889708388438573309308836676325086774556902286789408184723310377561274923165544861838260725977834881041799883944030995885508946333244195050461090488981816611284880354041986193236692480405963143928740459712756515030700916877627193435659950836177253021140997588737867745625948841648625814713333042161915315515365987907249520774304507631546694931439426873529757243732948712061478991839685789700600381756957427219781936230363093053761220747295378852559534182393078784233975686179929668679735850620669041453983888900101874470838043158640930247604008416956322611294962059996880119148518043222105535445584620447466330340169905536464827625440553210043500478816377500872282141796679959742472436435144681590202759652317884593989606761221721422030679026900005564680352867629624047337632606110397577657756842154149487724365609725795758120779147658737951002371208705028198951551152455788628901260677546284472452280683139610890748962494141837546121664680178668639446467256189266869242317826433759829844227257802107800084231638231948198797415599865761453141590647188185956555988119177470668268135329423202296728776386778609237468393964882596939389846004447128465944267000841249810322593824170640551178329375913990538602276111569143291960426512939594599826613734569884111932338285820585477290276803701891345018335430531267406186208504325798762505398088553990467743477212640136981162172213543171588025674005306746164401565570066636904044429469289470822804600447059641784880780696660590773408594906436578631221674092112971414481041499473831159889256337161606547870928840913314510151081921327203564601174000462628427439362418797340827269132346360359584128392000694109078647863923376667409817117428895035139329369475583696699953983659980176746104178382191190143182738747624623260027489870107938382330712269176064643472054139929627903343106124527425513371756125145738662987054345515540999269986190765379019483213824314431441292712914456210276138984008825093754889958039035788407703562560131429083180850605348853403869432311731994398395323480566720153807861949117824269319580218941912729143712534319265002441898165990650032108686275654153629314508295900115827387215891208425771223490896695492287550204594139285213245965482363589839793422322804551597074492889960231470711218595139875594140299010233187957829716737329002168229961485641837840633470287321929595998597313047860543441875525892473640346667904111590867527893767468251168802868102934434036170778162817681284851880719175109362985352337973447755284274748888916344621343403607286436765844838375194920636363482593556004445871931476057376784603307518898605981569769057857622445347488182400114257043211155271636378169505173962286093749098083887970825172915302653967172386436807249709439633838075549892235110700719506809132743394705272187246457142247221773293472426948781330940502028161730666268068974225912204862960269767393529197168182859372594314518479006223748047441854488862883071269139476573491427730567615742697502772390074122834150011266797611637201710731066459651034832361609163216158979233020133767292375317220468627525642701297938322071597670202274614810262083617931697960066861929635771787586567202199119239747773886411122474764242797701701797651504708914953477487365886907673609718970867169143058726804889687974462602981510260861582649855055316991107099875798246445202993242423295806198302845695056328805674654695574032855377887308507314910633242548778021150725052142152398061882158904790245726544164390861334284311697257725540152950134903176581973663947854487817681672101013510307166302885821862926211190228823450656922824191790839834690061243511801409534017118934937499648052925933397950042993881065159362577835634154560597632654268200515677458812363037754223909920730940965033812719398919043499667880940325593274289626679417824018966874274889950976709635247990351610871236394884152379077160197526714822144484205682803009200009823752271884975241753464226789951558026724613101930178502003717646362531075546603797485861431519565087198446038543131329871046070721423040758339886586758412460338804385877167602572843760002606797527874460490235572659058396292100167324376919692031875836265754367230284141699479123097867376505575874213362517129826961043821308477892211589753769314088916756668982520214546075660539849381576167518877585894576602721743636665197128590786113914605420109887607294941067632208783881903360362408157368852648599919734892698078135324361994532422230683147570426043991538215400163252180906573835689869308608364446433212333045826946655704091383218857093557158903685612193395340056272951122698670177102855664673330999654255453486929784167865973076327108420949033583277182545864549260539548487040656785622615091244183349260026829390447861371177834652907173261560768953313509696801468775987690064970720447480582463802727134828345565753096887465536520047416532472527394874335664615742822492071832609323975315283799046387904879742961722580367363836293852735557892021209806051513940415833303014695080786070339091420990274501078769352897563157591914636057710093532690481393654693086886256921106546133698286734414458271000797601832685290853706087774174223809137836532653806791944072173011498288134917376789521443760090462524276620521242726189350844486754950317687768019100516449540131442571643023445845903441551621036994847918859153740157150537604898287180748407471545468506466738921200523189124460273677992991593051700649580034807207846844263898260891994025150886124973186829970960453450138864452382059663518828003237392424930592664250411681469320321097107140456411019224404569119508833681323779205884569637336789195305852823491806334836760379122958939834542759592888938334594526352849902543374092167489064687803411680768735864982881321685068334543722092405797872810074642506991200433221677499067568129748262155688559851882815318916947828901185893903844483373799434464247639342429063473798671103340372748652639655131017163613790129895072601204480576452595101108555148106377271886057144482389967051673114175032870352220569394490156851549761540997126675251337502602319040756933679790293438259429551959223709784692999091565556836987999721125088735312184799590049660253199410287252143233396198216376008348677060223587180547294889908889649250125749165486655869300306683420650104711397859158426843269219068601656238063800473252911625971882962302591146832678194582461809624744070637030496679081492702586106089869157332964590687512261339913706056036336119392057145037322126098989634833704257658797242236286174510137688243059743101606314387586248018720887453216298599838879351488641789770908243263704173730359638215726414744203682318584823709027255209419014513281071282287567000477291571857317728312792846791189931751736612755306659182682945287627826045518137667800847088715666746775333675561865213567047820441374397299975069626514087052609568540783653766028327858580117175533044543673289663332615471924901928659316101705353538794889581839330254808860583907104663932795494869864976864819528127982902929880981412955694450185547346534924131518695584808768707591086326122279369472075467578280905826391161038361838461223175911728365637621037442361995848982583923555643981761031777725999378115024483415531947831565941405028737460782944684810516866984485840621940482486145845560312986705304707324038910104590744967479636559803101971884836249022792832183085374772396413592777148125545478805351264571289169149023675077085298422123368025538132174599278484269217595652589953403872293863067856788159909497806887461417815658701672565326218657305769553189235415700907088661253076325973403943713482900532247661498218577154885309496829225966088402400791338720503044501654739262493072773814676266558727831766993743092364300429640195089716956806819011231058228757735846660985454324141585313385802467760400895717156759535186479303834493750510997605571790847544115798877669055579594889081772173550102233608111805631856772023649327700627290679915366498356133252511280591784726933604210939189619289941314672399493820037589107808215659194363695831176826546214225847566644317719615730727728295739826495210547275667397159724879712182742260768666694095670823698759441314364735372649705264632159858354938606222822717587944017729691229679557389365242128383068831222757277278827514823281509579088284149782681662319462482665392339718885893221154736384103461067200961532502120835975528706578590754228227113764187291641599076030741913126290269731473073193310493631332246391572275271455567905959124134190327241629273204193329082385304000089486324254045340118075603300302255647608305168128629757322869140731232968360517077951555116336891569427613953383871862987876839163903330508833632492927573434336192306125814993192592708800464738664400717740116912169224419047909158284361829225281580747271941131727561976437391384979359225777498266086671572635099416663041211399692268730869916808459341918252679912043340223936107620892645592063863238046353704567085939250518080480881006594810779913310914871493846941861989012465737446274221735218136614627030645612845067489369977515911326680308807300099369792966730441904487053903440301907559177077774217466215525049017050808836509175402902998703034403889126014762576821489301243135032401484552241900397151049863610299032790071211094673031734559674868226010367342276685747290864167064136768857796164581693368604289887554696774227003849365788164653690639972844041697833142859475451106063723131911926526126014722908434911820911932262236319580673803844782244753786027633315964396045960140938947058755306845918859465624852135854930531241784398490704714810115772505756028988565748476924696217444952980598692931594031183515211899960340293410631961146058782022342394710971639883854774988514985266751249466874942416533009089638362157923246252107977969767169746626011138167058845176806008356511682520003912135951059333993653628703786004307604708073256122055239519914270069345006948030204901189932037615523299202502985878580137760287596262523738646355763607392422818038512668105933264304818034659912163295339615649558396375878253404416928474958137993501368905002628158378311380943848305743562870460307966535783191927437186751243627717442742885097890888867749519072383876519381085107857917475036734027570648495538308446596701867223998525211066182865541553556993111007202125956075443101910785032552625122965819327361328715004551949314166747986679628903326634990153654758705203971733554047843824907006132160099831212557959782891062898032299297422450242788451946025599479623677576917962695082622648390716768131308531303270680701596401013876808873459832991867678267958659286063915382934305674826457799924069850567543965322216652182686710537703708611631113314025756914905134714637336908555739775316496725930901412832366319675836698788836959823451665880989419907229720680502245945383628163961366395947272691650321147546992711143364657161578324776245125461334133317587133444634037724475985428058738707139345655458206019102376474581326517089975185860754575296503224433182021384758979727420428452161285814647590220067789754579615834398182238441483449208330475712101038996151527441735409666895996328103368851227676095292743492360300093786782210731649583601475217475534330701095540335120535669600709312680394027683391682247547597627084144249540700562726349514785969822852678679815004784302209062717075362822871816638895366848279460558482443050466000850405679665090918913846220241833084865613781433982090624465073920019883291399748234444634684234190574773741123955078376725070894028928945090154043921277600048559993802074469734811655208386466162495921189260746934236189636335380473092045321369838090522508284369568877818141092159573429359645158256855571416441712262129879582137225430443897221287027620918524344238834471056675012917936246757639214562580712582329829811822047537212886421382268797359863774470706766420097026245852902814599849195442603499246792744718604717481627335883488277310120573453404101710681325659783994318380274829424008944667176123073235142824085452149034298622324948446050864703000270472268584651240461475341585789373479722827619033746836950869554496890354641833968492422228495877631101857883155354236234800968078518472079668392486547956620487585622773628215801362342740029445017064326343864213463297782928436577885403349354952038911496144902544981725886604622248857652989471241117997875415848432903693819053639913963082706914694119650809106276947497340234987045972436879387910170999689560424690074072869106506323396950174361053665354950955955596857062663403498662454045389057065653912453256571858610417705319648011519108210359303694673601850477292114670528551441166931139395158352450428762688959461864212762942736767058224073432842890519831670014393307973059134137151237800492655527470175602746702810986452010357890957465558450801014980698424833927159631949086868072539722100571332921794801151510289141704342997021640379226954622139991848339422488041012449838629295693221909009862108080648558005839605895944492281739747490985146442841760833428792728549073575063776404024625899303516135819362128209654229127844421594288788428121769657823482967207932121225753535952951140028263345484335253007752582777974037226473699309251673461468588430595752495604312014482715264592413286752696789155679654270561677639181395415243150253186620867007781082000568866265243381590943785819990764257002890514680518416526780679752988045151697365741494778486094688256481632960036594595139590738003071237433614496023319967826528142553884847073789810412384311449483966239932529254274435986032551875412056158909197597285817344847129556382183062442110617956780448786289740860977540444481063927345167967692909676972674154701279907771051992444679000532997265812683107094421816902943906041818325617131207177906532870619985789456788000399044943329545236480707234061994002073058904117799881801498403186889874818334854033027666541707996135965530915956728269595841422260253476036968454589229188444345793159742735068317062305966654180646125403857109803472891369579632024923168801424970670579277262400619361719659139695448922243741377420473572430480924239084448701145048435587461339648517403771173637391317257470652818846478167142587836102102126248956698795659617344633090370887142085159808378900802986912161375433797903553069593069323429624187253057707343747458999150290022872708885575733511731682930622988737971643679964197552507789788039688061742566837906867276192169633867336757579301606551150068162211001948437911484042588807166008079121382002618793757301286564936815399789163461738467214542391764241420155467864178091628455853419431812325421918929775555242694236606127430553810093503853266641829189935519406694952128845227881304158306571019321358969471029410966109854629341085977888733795607459246239695236411690918723840476533030694996474462846904250811291611551406328768644695271663542873383760080430731432279210444120989339097511340273555515355502709098333662556616010918562868718891141124232472562685553324033345793690007225145143062419568374822916412060837156929926274927147603835448655137670945541904130015088927463871192842160428465256069174857184742302402682889486412680350121123887519027507408900262782761266407081791487335929547289194866269012901409126299706233726013748110052978496042919492206020836725851947242377278757116391877776473707922651150946343437046449764431368225610751296775531388477046622119590677786150546113144756083782790121457952436461306294280393302934581205499506736546072678451197546697216067293517045115927631578988184029930142094168804653778767071870851605546650972501620970363426914159959226529092420364215064284139644740070503247418645872145643902808640435788697931087847064387403885318916935472377350998631734864865344605834076045054900074371115178771648550781989143080303393949897146142414820710045069030246391690532456875738921510686008842294965147124468535177329835826967409293208031891392508848886930495677682131611333165559658686982555260065047979102041904347860144794769030870022032804773461465530244652929747629532200179535532607994819150416335310171159060270328198362128780769459669499850677078810730100406614949048120856091952732702004001674910870858277248889468540184423422859660118968422409429481788211894092821288356894792170224676893435757220335358439812545579464115281324583284264918687549956695657112693875703826743524831916827129493516534979180784906117382567014058508837226714777054763931398312834185743010436738083663765369402773583675688867501459990640365574539576408008761639779423093543134820348241303496010989784711686477621134469354717385143049570171471522910689200921538357279946141383996645316195056760095320281205322994338552507892214152122820410099882635121841107056708166636572308908083969668829685505842283416212306414951438927117181832176177789020717644510952178362221304022309667527110531173082246322481746416992094634869632082770819473457333305162563556638257054552702795362609074766199235108854988476809437252547803622930381118981976214038102395543008190163449121816931984040023683599264129276793031959135089341550910410415265125380001420748239881859857450082657256230594733143129281214345881221060730586560449423727260735459567346578653234441376085717955014801440569180795304850896254882608502409174464031974442240091896884684631150405979446260206513528666946012941970685129204681362501534922343746244844974596273362008441156211761319485053855737831279514869834614352246103713169129528450537243297981478007877069512435410064709670553736552500829940443196544552531639887830174603337684736021510912995346273388962337942515515177983126243005637845855216493931318550603606509855614770506446187165735517095086056644357834379285811095095533690037221610081116164022534302645974188318746104856379400675339483501365247004955221409842051866225567445932272524323892805157495166002803267587465448563296767683407208437693655077882063721183708067404069530686450260293409498516481162160463571467200745566004420714082939411368263486609111533823900919393985392791942612182696586773060237785025527574071522951223810576520086179493021478414232472159887029240821605013346329299067090981598009017632362174454802040337931341422411310863720742511445270008639193073289483396694551621877826523328023778899150038354554586278420173888542067562219984250404064645407019607485970887433075727466794415615146216387154820721660309701655289472170501948108947286632429938577255860826123482802835833728401893481925755129289421437936421228918923402735754313911808311557162337449183429617324698162197504786987690733797668890581500871664326656110578037902395790992413183553083392823882898335761797678449854515949361221622875937677252190316228807486331393617009791884999786720987851488644644670029896036784274611635054404480477584628939029079103794356590387835661237113515450839460258101445944120626257043939003154515143698119724970369688451904755927053692526942934375490756118227285223290047306176226330305679795566809607711559578761203580234005811401011735037225856557369543643759855190190437977917889983457343529454190768091270296568883034551664455176205528024826899904422408605129071061508272183266243668029466730883101857625345928883522862895140775594827210762072802874745418363337008472979780903337522689281072736750249002093441299474056544796998261716548170729790410615445656311140289475303420500475363145231514457411970098826304732874519171751934438129680341854828583755741380421603345264975780844887230440158654707315478416741317408176454925654216498196338256361228386407827789561601051653703525865494860651154789572282018249170975464490783697509173665300187363032449169530284708680654377302180778552029281646993026594584988439443562602416326805749137244846481436347839764934335371348192139466513767990877652282415459038536537215001388491019620028487441469102268564680653321791189925950676726384119977604606115826404481601154163312569697166158085280368691756831910960896758063906697808387166090383331032496709637615155886559463630363977116255426864523343368029942494583123130850707834756633546988278074635731947615799314635019936699864899987553715569713233947445009162810323209157941746773282534098953643497641809869734542444923758271136640989753642224609657710875044567292666635506289115704876611721179639550196260969185117045420775162560338677365253939644746121508709874246934709159793084526550650853808463834236450212072905025262149940828125669269027589249234894922300916363750543110609586296522376271837073842855964439288807493633475523937102013234314839606647661831106733887803649737436103659373185264515871103805447246418505370816290702649561773467243593452280456548769942382347661245678211918321146734516103344381295762201325254695390929474852831497156435541591013289886479932841188409755465852059404357003732637142697357978215269669182375310760211802066227864162098433715051905034586184877938555349580013451326653772591441059802329380196295640946071365700526466278779124379622196105880768381170830475527956266610771226480419878178564597132299834906522396247647149224197784053893516049991365164758184352285645221841354085227037157751631114102193136642016525617979803886633836460355478057271307866609591383014965577376239051334647303134043586052152539614074113954971988284698191094446215536854172964613748754781351692976261542879846879354946094401936025691154441514647347714703188731346716095217231269622603036611098698365392587885538756503607456265148506263998419919686064674588327962451815353685417962848465712176282011889270225620787704804616681454358388897294346417034919292698754962659150956800366501674797350993017006497055090054609341485121186119372479972642880492336685207494800290774207349151832878364050231153437017576707305633864606423125629102140155539093292466418848536865179054209835409169752528466818917821906563584737335055338863908912671011322293212073982329009894915411109987391073816250162736581879169868107279732981391239529168396919389685560729316187026959660206178482602322234678321029328354827814810425381566839103965859641627681765047065930367750686087587419542476483507472208983070331819555038984221495733988143619649614145719603661751923164574753682515606429527663578609934432904345804434943565898427087752776078477210288671070291520777437984120751653991869089872700605217142213532641606152249660512315855881746138814292973488035764242929457473407364071954742890857961564297349839066243353105488468087230067637557299018043532013704487690945729749059354542921565812146407917338377283979743985582992972064967940285533398475886447953214475181938700340968988152521374827795752864354060546823640011872012291549516899127317974579554547205145584129752291550447062380243379686231415515871535799888709877899267344154814903357041821931281863621415547891810274104116665263556318317641555129440203880940660187163087099601851910481683058760558462146396528239258846839056373988188856969544546901501804524760368642744196168183721852431135865820303327971631226997461090975112525421634227008426589917829052550291552040410644641732746184908761673101908328054340866208051833736593216361795348127093516209097053607731394924889784009655566212092002658540246910913026900427364172743888055729929793527382162265690319456913221464235072849605967705986896546747318400686794035250888636409420111525803265114147810888283007322856908337182786462489703411580182676682324682158749787882784375429540282950599861848611153320294745864195698585692969633162514195842823515249840789398704736705120980034207308056210366405976347740631409785710100749770131946448412667397186642372616794319256150828540797598410726667610578966058474745240585552050500047939700403172307647705750615792007752404562588329725605190304499926947235165338781375755529408507693882624309770627119669589682342658044923745089089411853125626340159023695383900935468636840314644092926792744411031721257907363628388449160713816991761866881398417470398094920596421850565247639276664800350347839012089001883481194636146053177992820881986213330882093341668473302925254551188679752283188942488705548145210251430210689054122756642400998790079636394438841418393879902383057111556741629491731327014647546485926889691378167477613126540781274865161724703025906530312965289183190781436232144564166603467548108091420253480600344241628893307117242026350890939583972861245072831816506068612677867654833218558914616138459608965512934908517191369661059232662767115357453202533966968358810067160319206107975836661457967363061534591361371380761165739611880405147406131325249570138676839172940637337846258532343222222274413377422399778818095981613195744015501842062537588286042966865742426062784130112321203658275662871726587379124302714854910504328903358943644271658052966040365283365414315381941176655612570814276664014029357019593719501336667312826335527119672564297820046307740108413076550688647480565717306308325564964043539091830078583349767880794085733339217426965685359273245585665835917020784556297587432438077746023247192123329404440108498111166332355202461920676390445542582984358934309337710722269856734902888555566513446225877842330123912054133968580651739987443646961765981057278704835133838774542764772092502108975709983975571323292660760341144717342320334949503208875611922464345283582450035200052687804235527083660421111759366461879352316365652039661236591491946992442777350492592701982598331885192914689625421286919767562703437740936283145786979383541124395395282453458422265041500029460279760748952059629256898369958892814919093666859578524112096950182880314846478532099776647588312390670458058450131146445392456485135973528700272913154336377978039808328008880675701058927286032253904323823523963406509843081544985006519021466985940012545645111511845646289408326887139224622778790774288249754187377181570892391986403961730098616040118740316881051548885485432935848317125450083009512921527066587840708603792464827802998580038296876773057328138990316696040951557928031170424913831440213541579245340346353084157928412868608377463382719897548398306688093691219638761547704147327968250385978104805011860117712685494145556585439798904458704121241996355524693214098419532416353891229275580984984794557162030002218438807874884358502764525353714701514702534016719003074214389707775597429904891525695700632159544298978278068748816573672161684079973053595047259248856556689055584481145689102468397062691541000749179927050919790925795755851827347025221256611086245676416341317249463709488344181376511087914486929815608332378963355583655332374689310432616813775602620883750025115826488237167898763991388063344330731742203264013167622796061854072888907833621679003019956390861099883433292169260385895395383230674856843075899071020390536594396638359443316162433934715769676820004497529727797655550374296079267009137321082947170751521463885158052758511685204314187994011083936735175359256605701152614144110548987903811765993378513474704195232313971056479317643643693074133571664105925871579943790054030152667713340367420288319453187137208201154957295912872207531252778078636448481770363767456462402609790700056485886747452464663088600260681122390145747909716774764304424847844976095146432433036926540426252192297288322828359738897585728662589460083763183150271830164391267919992351763579486252493986857314130701959573857521776495884205873100629118070242479694097878493985711637607181988745894272695017725180542022134738829294154692243953968973714778289478945551588713618940402978987922833035834747107734480608565014782492000980413500373280150774184069021711018510617301646466968858155002467828567533611378273861678551476027010723890039846728596043052460224052679376674972076388578955312232130475260848563681997349383062439929158321685562075316753845546519985216010786321720059152336566794555631552349202605171573818308975597370219291689195502383642283059585853050917756849044567711141244857074316165843351120340115078918971419564418468667415595411470100482590861809130336835274857547580257600213685789561725835654435090018617419774610571568490496130723857355434570563445688186961748933266481702620923288166535973120194070748223473424646265589605212060038656421471870876895674492531570410363888342232883699979835830198486248313178671323118654646771685320736160869002579111613699947764445862317041628706275710951234629525551990838510493070143306011294493165383789686271206223383082182079888985746645417881737416819432387440831798202156486536915166571614488719706202613966731288012084389960366964660016357651486696512828908721983849003366320308332747615081459415958971604857110990365297533619965456785523552691751681838037354982672138965968289240023895527598319239881629567146670806990473167358461131844866442628170691392705588218549360167206349925409689358354420563928253073425679349733716646526601017565193787109760746719200301531483547058131912250089768578062323187695203877962118273070126129900188946911949136155591266778570006072789981181625145362128438566971087727679326985269988576984202575256804589124728967035266898137147262859689220887312948463107784932904720582080841428648853571104754758999106012725556758298867569345518729898426706486754420025564519040063526542395029308522697356046295554567972095375077063498066202116423557055994303544220799043924611841380091797285475336346200684038326690326305499558857348643798337077813079199596226131575032542298898499469449301654901734860350756134019377911417360578445891987282592274601582684688721869221056251308295078024977817190827779198980257731135584342616061589747556850134843494347330581637998650178643184530851653685967169982392945243211464768928968364685771616929563205812180095744159447610176932461300321920432731918861186907817758168275099178684387832056445909395939119228636682449995284782954755256921672969050240539504483224572486364210662596653148214497004889224499204043756169600575184099539181706385233507246222652564704959396684534711672514036038802929277404787801807096469467287770646613834206551657505210310585049971836627544015319782742883872441618627595927128361054437684233769659016638337120938756876433421710039811840634404010329897609981268331777962837536018843829241607318078666834749972397261522872395265269735907938164568797279336226845256913985555805504019921208957658090869158800282887249276947712953717641394834077381276557544979056979171816775585832422323945325918649113721638126324388727786756953109370950348050869761867836905352908308246142201041227905593753504314311720730215626400915681808826996562637187923461297366934962088999929515033430441163083129281675685916189965097197439913997049352078144410479660004554473279479827022100049697350836218039677980380758586657677736986920569284042826630767505617067511383555336096494068387632916026875337552069456799359004102015457099623111217273527313835931556094739197666844421493209956769531099212901101174625330078261884164968026930149583759895295786661843750424620521907470488384304709703172309158943361516988897108122407455620315184413766732177910467439670024152456302293866574533090220210304928115309513002402155912931836602106397326114302643040901154207224293109721478795076158246954919365623638663711275720917578227146962930164427466010741888786038640105471185713685846333630688627428787379667639584653220078944124206676608953780543869043663648249599607744417260240982547671338328187337762038940905088335534788909426161713674917062818430478641079388612237769189277345158616281984347365758726649413935443031567319898214247450403566005703693335812259592252532069818382279049468756189155370106787927254631067295510720648937252368016549766460647474696969409604167021336951650463232896057426523210640581469729089335554988586607956712729845045031618261676828473219871914217324636139948743125395727581951305024318822795099438392697791007017223018071059214801017515116872055276277223303092875838102669468364692780417029951815988294880872559743915260510393887688493239366423448477040759775589333236918858746966148261926511046454155447811308311517410678498982808686152228026589451619149359259170885868270528218247615514790312213733672031327035301311679605562085024810609646747124028639195132088788878373193110972307696460390911900441437588209562231371986530539732190711882876418033050668188789459476033374987576161113380947389849263014121481070960088470102900462808619865328152288825944698528663910192681326164360048439348400611649754364790037412036586768949391196094384486488033847219057214086146357872568480239478866741504912963594739102454371514289765374152554036609748020687606698971777222230899039757617841902046576456601699657394879048390246705224890173100444326172555493088320654105606287424296440571225533334932292386661866586400279900769177211206086655853676351487393962862762915963720436378768056700971196075930033467040616675222597815593942104483314912993726546119765798206405686018221727985606611463572273271117184178372604717219526378704315435314042521084267866728547548161083595867842861035316391365975042812367748684904620485739980178940325376614943667557517532139191116841934869289065233812818871022619560569569095998832002392971264945800158807796828658914868646304463438422419279986994509190425849501263719597324227875742010887752988682054986209156190759509117128070617867559135508318033430188966056015986750560715657562680560044770450922030753633058863173711916028651811706708316384074351824827813749824629254562154973633938889359910050055199028444855441181473928917993611610365867159518433172057622667608234686710820925253001375417262783765898964352557845541833389627124667065640735739079925819407575082382506186550312741918024196001348063458551165239367362630648771743774744068628971671955451552093730592760761699463029483474183281036582480009414967920477201154190990668196525103803141776789068007206966693875181787245630595637580077804292812229729337855754636054417317525328952732131025448711498715702912973423769827480523663496233326759227376634902077724452367857488936009141193386203595923106802322453588861142684566887425193032803542553317225952505553404993888719111485289492182599651340445901683120929009918593042259919735796928628724883103968517063141116378592776606517962443118130471639244505684112380414968274202781530062854608412056169138022933623046247839331994163596591262898162859465649081147073262437628020397956567172418852495702870277945321819723085796660007419617256878825637474312377498105812750115866318959392567886637675827039679118948580474069683389706791967054745993660401895603755945862434593698572263002084002374765616370040721241145078350308360707147865915582413379568005137464614746216792486055080680578536191715421037426478685695335634268303592686517432626344110927311759857549830770163948211131449434823726977828114357150442639145876113870237736174630334789309833071384159884043298908844229498799272680290804724012033493677970636606087532760131371108676326574367069654258650677629800672951819803588951071315919549657159519188888929231082345932490467436399536603255854817129377882750908489397199595428638290273854754262983067988017457893558908814438359709303721857326337377124966357981625560036104445488136769690207627523959590266793629294215049856172811870105533271888109844417924519697440797760207788677225399120527887922400095089798060856373173632249675100419682638434437238552804205241592786773669251742802147134758838142789057582788258117521027403865035988381464768779391003277920734863423613028721603004144843121406403287799833166252178847462866788140244900449441248933751283619334491801490121576792952924935030109560051425375448815264727934260337932756872115946720973902508398760257585897614667516257218210346912225904034794347512789007171363129123087105644076970339698049938411420455606686192231246441971714457817417012524126977680955723034360516238764555236145643815010514352615899301522624446668480897947776293241115026074431091395699761893622507871487372781910342357114298792032435257428268881165128915899453909752337569786876110322222420788653785581613484410223643108983671416597666193169004768190634583986887760054712848484010562162293772899656503507661767735612551825802128966229055851794119084548346139697889146440462073297651609239209486154615110382720594202694485136451012674385327927420656795345103626857358588091753690610185186595155307487246189254126589910868807479448300837382161926201226028697295786519064935504573959151984730287924870903275707495925117091068966716586708630032549928512900858882900738680377453616248294893114543395098955878123417514550703714073785372362983017699067240292264087371473383772123117387783827200016734912937820997817413059991814646252924125840285604823362734937002399259617156333896529796335119536940484092282856714119242150374005280949335440665722041194373229242199253734538166134954979688113661537766060135866185199507013627509286899272969920086808281914263155044540340856535593377322787131802868725941212292670712485348976131616866657269849098570558628837248258784823546865860426938801342607828920769869856876045512418440392377147463098819850330246946351391913726156292446540342412437853181947782330299827837629560852294546472998204665039725325097015728598963383911068235972029119176785380766738618913156086345378431718972620561818129868396143728823771514786456988940043789068052378002216425214263807142271372200740009986183939626590360271534008286989238536465721246406055966797761811860116120686614704361411705309781242989609430441083237449142591341038952387667587976351762153963325875383436854795537640756653513049821723299325717511789113722321097268920455430529098350024178059230842975624891268835724654551013546515074323021915259691210785614291314146179890084133768233378161779250623520876170748024848923394476820258285865917273021699627805896750966349896880699445552492124927809929946223192467448308307919807374607032578385958768159531947379406958343442863854736214620668078944392800322981619996304897424997479664316685866575563954649202988197573798927970896796332385085267060390932703898882379987008805994533971966029907953784830280704663464149581008386590555555519948973369204692110082738155342560164246971713393860434331798635661872416191963184242413948515246872080771991759453472244226280647250847690864834818374474621117118889638877863998988949963275437130759904496741713233936673370633927527269486829489559824434079670377989565414318091238998619357024621561578141188333971840398040204440096685950920338251747318794992386992212103854006226870731478583096640488023408335657751509702622518552903656680930993647151735514607472511108476561627527427913815097738029000346469832076950879276283060953107622209480180934190203912958683777022499764175867694025741082589684380678944235122515927807144050905128107358126346499198637722266806998849861402197160025996326927425105806897565099275993654013990934631566575554898271945805495956554469547513278490308454037101410521602920741313236847822246263431104851161907533843130606769912909750566345950213186043486009696560010139296654864403859078160572002036296556388642305280356586961676020831534660619016780497615646465008306780033387921668032539864212130650074230371434631589764336867695975361350922813838727765077836407517890836211224167325415622106542393806240883962985695780168790190155732300224929109880118011652352668989214624543257769755676525018848529596562007977466464954293331444572506828634973969122741483748593780527673649092223016603323990355329587127679324939827571801176909957712790749367101507063432909873501762673889281715516980735295943099247294942221686018396979227286646360344023307239364344110672833816136415831768838168187979207082575464613611986385781307408280704680516819879843386998402696549791203261457766807247808055267192198454430718402145761892224109728991624754450546781698499354494250642460118451109433949527131006958434784831089216890697292403528471089054747469240756449364396042950081142394683321563351647935180221190001056450572620592670176705681289850936161955843444248156660104753543739984636768151652962452460866667303329570557956563413536909482131435768100964596057168042827481320757824666267820977438723155150231810481228512138587776047353771405451908742052136638396686380036079205623091868365278688890856522393708153264629979284132454322604010234641911753118020380002967782291064106314762939907692915199332724776606996670918603239541873355003691534601396558426883560784950055039229714315262362383073831418180465892974741128448891106635093196499887182887162350770090270597063631379778549089719230380947755615094596634479721866291263916350446967191983552975994433968546954365863369476864085158339973210958784761578225693098168405292521764939648006390071579632874928499924526604186743638273315433957718908232927764786357532135690765729233501945535921387715367721597993710796236230178169482045779179396296047725997937538214017281390597714602124455475421867874483321429226799747021677804017567811588344253347044900020162162951285937291122275640569775343845940415586894775262327315723987214254475147714371605791341331338070207369564151095237402059875581852438573724353548767230707733016252077197302326046911047886053386725414951594596100852610167589201570610245563796145050707406680179585493321599235393740606491479775238046989020989439813152241858313226659112295592769051008404568833687659610863708476634564098625196470799955769462646044658882043590740755753658546131325337520000851729926140888469249138209899263181018230617595495410886839644163583145436742668846411643176402411759632187715800773840490156398204562977170276735226360496810491749489254920559441849848467629636056619604054543720532575247135003155702367424157485265806340363690941874205910316209881119324776428875389416035959831146932617499388126224824815368260172059539740281010376220040483626516381813990254513036424815851791423124373327792140306412307658992977553572097587892168883243610354452096828854409767355135407877073990507596215029952403090085320462468374078645322368468206249373791641232879187311806185559782619353083732464230234782727033916534375824722398058347724685089171180606402010909568985194590310322757708140046348641809095404889222386203970998055323239940203125598903364868669870549370509638884267246713623849000020633153133338750568050652645103155533299570914166939724906423043185506658419049639322509878099366816486891847092957389827356922863813345661609951222512455107087518117495285995609734680672781471058186538035769903512517328473874564557233567824121802855089427636018953466412728357833531778213280304995590844181634802403135306909032831090469731699136289284437422881979088856584012618722330939055631930484736875791539795626226910515272452065708323184348372586813305202613930269604514864001762893534530918790769878797625962891385794980973822142821397653108873589526685925014521415192702027859638040515399313371403572887216585073882949285646426076400494548342983970893847473422364350860863246622203212473019250908706899623026138282463299364600644035995806897490498990545364769293423182423070237221935579817147105809439065467903416211696505311974101631272217556718473832120264485657820079485470160451731103909788557405738398224926558442498551386641338790374355214799468190799254759682818323976158955630752101635916170348366183902465925091022878255048459603439356229651332389631639639791245212337025668987334391543029983628989537673212100067352723490537623265884132445436857015943448454796884943743235313259513409931504904594718256301558842422193859847605443335087297604904158417441985506117404218813449530312722296540853531803296976270544809629955436065842510893790218056319816904927230749157380216883504901735599478647930347586827061844475109845554595190836938601719153104881873968851887422712908415388044747874655002230916164633976015936843201744614027365760294378173180729994791708101880350416574635374265446484895106792571882080604119563220169757356968593929478042246332827920737090252270677223527792425759583555433877377180140977263076427932167965603391728909862205374725852294535701414087189568446312966447985913024517774231928816546879893293973602932353585831589794107696000564308490197762457536226689214275552874715834633979601255849171039489621601074279073749887883806661179603951751750408749700533253809752484806103515924050309379092358834884504957748458943699083455917217085594354102302195680243839746816280713071276800892047876604133146006639661069441434166023547499149012627875527268958872946450419366281744396384101533280046916565354853772383381326303111431926239992445269244163070093586228017767389978518908028661539407866904588601273502347061661950941143457537282159251066350322926394408676340689200326264515096594542087408902829591672136752041056310132119770031118319590615923337905484234261274136877794997285367924863302782816964854921267024863009559435780828259217217049315225294383428622055815054091963875189751273306992741711288803706283347812548816681939450008817375316801484598900407787699893211259423083272631731323260613727225584574480075397541410279802012740378426113184021843862953260710415397870945928419420852110570840909370550375365915477304990777470167545906550018591575283916723049991577323850086104176870079546998496425921158984213584869807405185946063339646432382144657268998165841328775587873871302687428254537397834660718881287591304962571529674787770554006818791011255607257844190237544324919019900304615204537149288057044955347265693014554546607759735284762141933724257547652291074846922780480925923725880322332852852723694628523864241543276899894999384159145671845483356623856811885643442245849865227223234988885895306421755933674534430210970722859968857026845920091650488444206772047918875961347821638254222758861578028721255716617499483737561182870774818268830406658519308213324521392232403101034754721724385353770484727679943365780823470292487849876598564631814067999822168860924559064366700154671905915706662511895029176478423130710418847294779476295712852703546922355266084748433493083147514367124574765946075684764665686116509507507977313820466807438675935593266238036054185666891563654317773993802146939618772141602216170789115393824111638022927398357254638993814534437458907884157829922611986872098475293299062439063833515122840058138941347592159836256508083203039970289154281830046604590143121956186899472660534688941921010145358428912345239906804187538030553785087752919079172163901675683262081634010532875942073569161659634362039446343004099381910004255695660893146228255203078700364838434853375349116861963937473002518545549419928034942381795873738640464295651883513381495519209296336256305181577008035831747705087606068456343124267406920923846374961960395390871832118637439966979635201271940642252154822433623954571648276462478097886229037947118435279966658934519991793375401069681990603306072144070385641755693398661243620060635302114542361698083216775434580709901726422394889311235759022011360100572508877697815873948981407814777258285726838741462423868756833355031856867059345838981149704221862107198256476947333887679339305775574409249545578729810259900928120889668702717033625219590240986255749043605511526829175093636387416580092661538576292999802649016150088565268287690827040959550922361048739731598378256111134869882861997125896538626500010291549421096137324595781994160935131976692649715004491509543700871336605481798393662545688806888459534550066773699727407674674547167267808353039183366445604567151998439448325806477059366797115206685807278717651703412569970530307339905630093805883596908726487414597978295408946815563320799890138693674773154303862067005830037047118457136515118243570204449637867776219989089924076899940442373513596236141284813150437395843508776524588821141392832936216156584421970712276470763194730061333199159169747443624577613297667543254520268952167315902926180463783194944028646018611822271402817844755632352264382747484574315236335064294016130628869508382463159835853198508288991881416280088072952927383228765079572335443239214760748816379796492105060670892717617661745783034796530798085881180909873463491064065407322642700363252699551939859610764376633004688989188098911038750085943875397302952789553665611066033331678152956575282242104146368075656199616414268093481277842048423335417901018192452078963041438449765484402662050083636101899761894615016921746439989778798853528146350897362513624899419915296931008777933012419807342103805079854347537551710800394084563930854269831524103474815560120260686133727007393277461791508777918219437472489671754531931667576061687865603203778912001268756867422864220167352261437902174390022129206767865142210988136408085677640790363376216626965104182057458440213271196744898437272400069327375725169717337703613378711161019403811553788253858237476441130323563837639369138494876719425162707673574255411921714930679401139334341194764096971360173499629183903675284809023840520744711112233540130279712344541798057828063042082219442959876863152445730321953966898500778799036161751880096789952571041909113465760932727789916183788559396988328630340164143619723649737744713635910375029687870095173599920607305752403090873310789701880711978345663584144659946853888896893833314478430971889677896130350393692347318831873339020352972856502733636356784873367173327937788869875439965251384302488075930655795868326797919956201452931921050313451559044095037610590791624072635357901214850124105012514172894918997895883906941532630028151075122210594383898828194862214258789238322920553900774451557706248374261205301424193390619111619824692107330207348533343349986180404687536205261039572640545007230809532536716298393480988196907805022527126107642304601703609731223249369934806215352214611820708050527971208647086706429578267701211728129288635470519590703478804288283457477790397365786495833368804538443486336719475770139187084709827976194717824466440701397732445199183032457828692667897892461940134915975794305108135305837568933759346167009979449564998729241256868645235952801216913556493429631656865689366810415695104910040498026009276354972620001832256915012248374984805683011812549580230502371448824582415837749191374603492254463493295802282895490257198963388469749244557786034037244998486518088889902014611260335393804483820548321946937071913196455933952510959639069044558686862189021130413490532013144652698496054458493661945045053890604175715884669523853138195290775018570236434005311750046364714843587315914868384501986106201889581911103811851368137187495398100487467156182216856753726490923165263448886719244697144492002173167292168069947360983923837322818581666752287094780133833332410265136016584399267958056745811748891115532830845622938496936051659040756522931949950142615117811895614432255784089043176818619107302967427284049146564501748368860240883187006232755661569237303186100659730920377634927304209787354807528030570835002532977040354262218195045737186201191884853827359976300630218658105609060286640508793554031673123622003886759658171116859845871206527123737224820411431478167086921834441723686479709870282247818903255291128624538019243668244636525569008484108057944371762466853844011801159004490767180920276511064169887306896236656629818327787354527547321531223359969987189626824920252921169469587559265883940410633995982033928947958926920513810028152983408956000921663330706067036068954889680101870980328651319084229101911760848318358237201904816961094904645423831477700564060304597013358827580211425668431655945970828989336690560478578064147536342081902352263852224542177587982738357193576611523035671190992314560767590839534633282036606922797512603316151054457891609987214797607043126078465102072751755805087876073520511656444371136079332140644434653502545126338989062824486419250842831972981030117723979571499855585361989540281406004191588022186284364804093088351678246626582658827431154210114869249737610123537319354634599966223337194615131182417607729784270341914425136519476148548931617597869974085354193823910347052740069602908597177641136987085649411142330913490002127374161018821445094060897072205863430849175731143887887200222415734157956445840651253733760016302496118692700829932725683354899782995784614461290321691617411355461532876587451692577671402409774485044975405405359814475982116415006789666927015698587513136370509546621126855057779420251467862539888282176052621361906332782471252434949641736172850108528974355198498022430967622674576165187796282528751704716550723713290502915013170623183464531055790191599313818908327282116579986489726153673028926785616290886358181334017553056793193606703608402865806628759640457492559982217899709183043856247522215689337672909877502549722727798361799052955169237240924357510842233874180360857723355721759339296351818394347898092255462058710593282211315335954747513919757843607498823150444320035552393347325897307502100394052570244441480455059505492407736672263049855413484200538287175676884544953880554717788613569917143920860603814845487178118461423489432261783605340792057735220811880027104353753165060154576446129654003035208779463851522352541015281335644096315068153884445904271623718134133943934991035535250189703487243227591044210930490492050566227942317818746980345328585023548895571284179103807806753138371291379332141035049852639572743696030898269537198907872591159084769877753441059251128332411150133187082095970402106280860340278475057417007838784947708535007065311820948288936957424884580762660384719711628727096592047047374179068900660610192171168687887372775808381362339915001266019472752327975712747411274599282893411016103593804908652397589058967434378902078672695839997457370425678312784586189711219457449968484973796518906158928052557103755955829593250670786778450509287340855673022825199820144814820600365674257930921404400398394182898703489288238498252786481865230626779840737933991253293960699391445988933627465846687568148573336937391294690730996890926430513699570770995910967430660069685589125178657926727646008621844228749398966360377393553713154783588868754010514959810333962587385204086028480084458225568801185689483966686804518545693968453942407881972517345841164645185785207922461713314397377052324523107240397925990855092500656677369816500732003727165242404619449489124832084186671439447316737809889084932367639219227227165602339883088913519861277600000714163897407196472064163330278201867473697719637856045485552938477578855614066696380378493658940559709857562582019528855629681312384925385893748369025552667300839211054342732409179194150751722967534870223382075788202651950892313765197678134892111284004202274343848484823894586401566771494977989625135364766605826386013619567978870261365943485580364109985953126261674428036247952092795810480268238665383463168374948099505716384116318993011085606010334286775039628671870842878793672106036324081598382584274986874931878752760333895084019919722151106401439538968255957986245917804787961739206907276426614964074891254022226295505518883234273483527464283090636872811677531942383416908828356231372007760220289759691244681157832755610845349635482705937292503999493392738479917239900292310636594167932669565373705064732773627636126563455087489563708090491508421326307077197401675294073034491457017286307710127515378860988640916969863416084633265104312997813175370251349786609438878321223825851185149173540033005423809549211880974238872645772593953896769531153975522395124127682856989216144967625338959629468746998844455817952545759692413486662806218065435871015389181438432047635631614982203023471521900523885267221300005415355071461774140579353365112431690313915246220392471148809563701956058979750538346790843768290968251412914187558484008570190439369093780695831992266265759101401823225148234380597145499693825509094671264589780717601384893214379731237045825796500825019265156414370149347651120382797109714332933906516938787515018347507433416120497493446697821798552095071404691461379682442951676701291574366722813726193066097234168206425244129068934244049209450103161373089017452583573332042180388779634908698896762900167309682560514968507934971323629949812519206312755356450588896365967158545310451793526402207261065645094081971067292781683149149192983288921445018491622604462481929542253057044183017467951804683322025997707377933446085934493810532442028039793164621487891693831410625274949757458267272858813247032051535575312611285480177598032952028017655258441316961491349972094042725407961997104102629036840033917659913637383205938597001616955445871415053992749706391407829839139402193689738029166108253782822777217405473943433680145076973199313077590988700477529198311718311311711729019789922895908105197973910980602088580818768567446118963725955844258155217978119788377424836456730070970686780039566312562702602583605307699102967789259052245304629588086056169402144045534536377911908612928818197272371744269832167337863793037890696945743263761589197788887833334686995011982629518181522622546623479627335260182267141747653202489039100853007506195153094657438166283401083022766648423960831095873492837094579583066383953808131350248640319723925186658948757298917449479527394837403247664472113158554928649385647950615378288932179424244144872352187500613909196088345892443611229671775466197312711195551667813081508825615639312568479308388685069442175806121742127219889083919049836952045807483402919957741393056425183485301723350441749651620389126701591881570442142845655478897976644191203526713767468077614734753304027739823984678541713546442210166978233142070639980715464016861126666281083326105321785606487665194261630181136561150327638475325574378689749519564466070374445704746413237790664515957013012248781177709721766581061863595341855012308454422918356982375858734316674009050143469457926591498276563859974466550902919333854311583498286198924554308799682462148652052191362204138356833287696139246804501950428610959428970283782460888173533321615833173644790400755041767090016272698518371762925546414902245793587347751742478296237628251968955680179274721392928568377684317742148821331964423378649379893246560153294764999942220409552128390343121704704256797796891987297659643357688549774816798745745850900256895932334718654767901263401832942377997238345779280824220907974820105950387686071294388300052659042154640466796169463049589783433653558310566334365430540468550016922308701045617169122499650424083825325543031470237721360927269790121934280735295596382849728566461652574807356491080079915277821085227074821306718158837878043169890930908663854710516336691673889149803949988915893923082072166057416664741897829545370637431167182330651765998502528919048797125784529846101866264143980738997158556231501343955817634601193331618112555979931219621861359316064751263673023443036086460710930727990925494058534463984145875242045756256453915163668591467723123405837846504180598950844977283739967830929733331549353215144967510815331981109681116021210861154547324956817193878394595778941970686739655752811742604082425278786329946700056050700632346295590844242418007115504301668418897143668893456349425158817407447577445999545166291087223016665434600679866482318649653166713889750675484907356798451167861863121247758295443006318764253537840366310693113087698730245531792409972319598526007206662312443666564462426558595625488635161820427241255460624533037085934395224151559381895980950914570505946296115365384040923964719094699861688832449964958050376219789186393604784721434327030733099344472638615480796454682372945041526079592235867760374334955915421035129696368746310754086800040340464822875459664794955567815606003976670459267550430064180943416956326973572446955501837240131096411571342600412161541489193212788701293085931690966489488275360123827625706776133090149610579622619919565730236525684937440909905184048911026510639396395281671665406911580696137436342116336174275533503999018530585533511168429268574837893198247717622064949922246634926863360998398230973945997754735107220876960975867832622413190434665029449449098809249190121825664616469104283773505696229453147086611036090665383468388329801578919657506003949094553480484789210561064562183585358005384773660568020087936152433689597373106234241918199166483241079616222580552659332169352423429610506648464866009086389836995355326009447402730470411000009382998237483557103419397682866039211932456179109339018085048795071669763278409967455098340746515546239596733309389037022375996667932646589687232757221415296320778495300129894071301974711063740867407928126448025028483727360827770769255867544331303553156755092951890699652466563621636705425722006870381549321274024015133763509660916576132650188098605677347660740384778613485980364572038630386799717892689190707076831878742970851214588057784392898815572829281120781029589084392614904169603789181497790333503968292837492172385183315067061486495474273082360319671771596049215395812155837536672614123642163317617753658917288189516753432543035416624804041105627021720013632718327089450182209044855580726607701917324242444437997502176592364935163115125874231521508067799883787380509319479711276329836042844143142075906037935064310036240317371565746765374745466526347588644817314146207365680542959820593733792910212056767852532992456826159233900681339212467753042820416539147290300204404094400364917212486896554840756698607316940498854994231660142206017338589605070738611721393076422373364941892890537218177057505208614039804531832434179369196112097661719809038550829576593151093449659660567275065553070143536989100961369846624062876791122061815947634617619319314480444416990240071197276505661108942210814534086033156309081307763205519972973947441688178695440484719556009113154828270035364065821658002165505405844311539285551154298101814026304419865597518624187587834449703755787506546191065552535730737888709096510866515095441452123413126520183957642395157994443412644790562678074570356476884618968094032137954458332328254598083250117783362095502926289742959228243132223464826327112551573563368721906646312622081276371626869136898913812341969565679054008172676250363980671447486104360854758247067323528735813068880389694450488712786341460896016086376209481414705701615591351508934426379944455071090141196160929877365652085631539043499920730504806099165913142774303093154067379359087831006298957439350785292663699901396924352093756790833156479630366873019688449346185320290047336356823097448580670342899978598495964921098440261795191239835186270249487776848071055927835237038855673267370826223917910089518575759887120275491265645129680673389174886682664281457900068014055803501991855590252013412244606861786634140818714283962703967091803968832899113673031515407210883733878024855322729161461575229505982128266912505656330172851667313341347187023879345789002824455050648706619120810541262561808489784774808289859463646134539038842087773754143727640562831528979821665374521761421806611444278249668674074419879136772101685521187862665456962898046708819905737970307348692710075317631761315890907865601007625503620049606863684260750629169279734399306383840691555183658016902522995841961459889713523670011834785771827463839187799890929323924231924947368411695473359390485706183168442005179853886347644180741013948284790601906229407688704447422318896111528324950796906671400465266377574030331884846781393124165316038341445730923143877973600781996825868358839371746684897816473326165327453944332558553045563270095902201694948717355059528270063160499213006756646130460565015932744632558111548769052480296373853638641784929202561291354533500947917358955350965883542293013346795683606947120347665470675133483549708927191342940031290491629257299470384015250509746532000468623443325113045891811463137343160219014610138769521921147461571104993714637132335133100826826847408084225535997927758945471653702087709723308165549439939151744212776976068014806266563222996996079613314407618774197542786468265070784918138914552268822052304173003566042436474719895386209777659974596822529780976689497760948274765514459164932201302955568421439030080115238723121588292058070703151442466549639393699194230526063366019227806073124827256068277157838145254666258300059713228834802041848125145454335873526010550162946964649838894874884210549639877722005462492120849359388406111905120783655768968356201230542450649440520916417501741677354777738269378019278845999194663078735256684657430633525943617811677969891190895305798051420410091866461707796321982044712615341067998675968315533756195009273418297357849365575668065473092679407931094815435302941735478402527022736777891979555012921401228004104567733568348372503034487319551285576407394942691721885444411975021339339737992793372653149303301684762663331689778211704180286513835984027276243645765024443099306669566653884306859954326850443757958629293606420617304864077345160634110255476633866007619375843000062189900938395982964950139318291352775977278942187947388822036475802134016623896587287242484382154222234139204332963336773924972222595696584163288813987333843195996705043331017570298085082442860642052541902454932485895123549327123273965774948856007306703758839629128664171288972025994624925509236784391373224347984913870385570049770842422731671594676943558431684751185675501449324659077907027950607103210094426419892450752810200031996175691184075136271912282808583235225730242514768473274245111890092938975908152978823797314324378720189418226895825671220184512081423254097790984792899111587889729063510707054297687337992466725476685572054974153402595445163192970314241614767956029908156371985492455992872174862830889527104733423274686807004483911914364014006809576520474651856845350478308779100056424471385413002846978901133639218972519687893448452544596387422730755500303077891822421024296227341422627380881215698793924193026548755499107531121189587371092085761632369272028134075842146801830736422583300919061112108179930557936842826362187692711144393504640184367950835189921139524217805623760326400198651074815715251323802534411132256506065024675207060638266545301866465821769607884585474411289444461930636351387464726282197343751860861272327250222058062791978926832453812079004084420131137450182427597118888845324772503092909428952756999360463887111480822788120881302100600465113669638027879445884772338851478171433113685201569539178255329930768167196158003795375103380885321753778255016826346792300897906865252339659809689758704461693506273939512211068664049406536632285863172433425012137677421340607902990003707998007104530370769139036309357156548752846301478380253093257393882445587059678274163654048758983320862172328507481266196042133777491580442283950955769672463379781731931703238215863169207618753927260002660702155247664701778602893021580500991912977878206602079777954799855406356450689943534983463442563099964286614077310112968151655458319765366214935306922548540901970659323109847138420780598252227211423289787205322989515097840011658079224624228232016471747807842653989464834667349794241825408853133613492056498683348291947397959200211414968650789805880876906904063716736581523063883286138943110677784777722563185962613772860444028264488683473431429724301462921910435836091085291252287760458907771384394292789832187008557378079947851814833726801766888212388094927984602334862236336026126968979629832466919878532179464636924097370695231681779167399424716405115935275500864942272423320034554868422957660810733586534079707931990813081810501663494869660322541209470114724688172681508459741432194115240337747081552775672807009277016949263131773657682903336723063065361801075163849384014639532894455624851650105548722661630109515409547491811797848410878927219575967094847755242508653167787865704291059946864439117995151364402702203322475309859172297558496464155001378803875837529943307322165416535098285134086827273485786190107681220222576190300444858784734321841798260101807354330815490360791899469874731651172176552657483418054210780318313547445608691845287233303545907868630364639779504991747525684636029051130815518334200153630409330341210874997785711774408269683937517171173962413877904125193240700664834589103350156657421929200418762000474407580019714032726047229246303538454125712726407137753587713331462717580444409577576136524758539101667267006320930337350541010419071852438927386901748082310358820749634255723795075526950448016504854539134154475278396508968069625069331370295782240256324655683343644676022326382017421915388902918780829791427698702486724447280477991122638991510989459576045573187698259316236334927439288773781529706897375373934661741617334777827835683965883780639331329859675789778531221445024790614939291032393983921913099656549952174373806490869735077814780788298757105269516498363553888142361250157573972812167734231827511840689032952314803994243820778901219881941199634004053623641598176059096842127465532144444681683195378925980672445588376420852289076804998488639229652517878610493396759986700295038969855945005194078863464070140554211288165780183485390609828512488524785153198955840169370039018988030675378564677146399427093409547531940846670028635674780758889929825245623375419036709040708707755495833817511462065711077770402717644167380149271424407082856753205117909616673564028412861296483849536183844156698427927567626769809534783839661421660323079506874874433820016292095301423541505846196154845740276438672533405987368102784133259652120978079947713700441761224631380179589401026753765180198015972841063596148488143068172559717439186277453155922414033020855556549090786168584355137764793762521305381454545263801636056393116430508888611854426908203697084723993718383477558415025370668701110182965278287914429428520957474547210816157335106191259663213729978375976454298260642808259379046777565451097970076790217405609298603751397946756952406186691126304612593002167045357285064271257494142145043876962062793496737351934821007697724769743712651511763005460758896666595290033685286602011979712971231944576284190197648985311227149916856672778169120830402477200170708200008534532262113753418897710365685049242533673094258488814620906291129845317118845321935878082971798295442008003734398504968126366739942203893726059739669680402965763545642672596038134424991441969893472163039889645761405761953216108891993107287903196532000805089469872654713405491922372313502615444549415304799378034801548473537383589054041722915661047418906390368819188927433821270647746536578198332430316903663149935712293794719579014623977038763129026362327248565028718357109891550528350157856152363575131185806500696123856212716595533214949835970946754217317442319281870100281525802101763785626958883907351120105812984451192692681252794648200081384995763091644144070099907088237977543667718799223458441136887727025845257706745197934239873547786939264557022339358943025921448267240596209383736330711303285485142360627104764058058375049589278688014431228790383021413260704008802088831160619415494329668513079170148692281792153489268305526677087454408756625752542555005358023643240660725241871018941820189590236000528592502030796991722763010798424622751275881702291705302696918399983997037648620680790718743789961308819648455813773877721988442948590272975786720829039890518409854156563549633630640193404525491639746371112698545589589757363770082640845564466195512938952958392595286480985705475954560678451218895206071118655517954983561395490975638937995824653468470157804396871746076234411902935761195692188997755258514149689553644125577314648646626717667609747434982503736864350069810105916304284618175000366828887504155112057114705290264268518236120969335192056516287222660328479184306679662626128863226824358705322322823485148066816303130550589973837393499383164565314102086964392715201952269526224145728304129107680512206202135651313023765003983204064198688803107096860737355275683489892011330897204418407795832770132783243602033996704914066614921185038310251394111910846317159743243812540736406594773656568223928341304280102494806810192322923286837886786048245740472721284475628529660810374072237176069084097233060523300881602990092806517753209188457260528435191033359038392709241430868508948431287065571505442022296408822763154434024794885613758955760157879101353180360988149076854806371217091776092360426262219482177611243512377933265884538727698113945632457061183232743286301257752137492726789612621094166719538684389676487943914782849248043001167810426870885604967839261942780629382019913211798990042367802152173161309509499559821795439913957651327359752872934497637358943878450422290027669266118087822743349762617963234025665088720141615000465052397882090336703929794725588126304597184385064043417431787840391513970799006816337300018922887191923933352714365655513079500281758900677180248674079242046687540770199672611380660131712830718360689221129659145870170988216195934016966239012168791564072166264241199193552066548671016923688763645720696308827145964430066646532590550119842226582359165296781377913434175934082539526043196145237432888815231492775608760724416266679446822056451580044334630435736288745852977441510130923043320028509468673046352025300641066028984438916548560916122225341302788034259300681292634530463831255166411598005646500512507064454713507478071383933770370869313364480846066841750218373249923952753655065158376893927792209782151516570058357497174936163716801912608179437815801851314788087982537666140869039658487733998510309727539867672457673161052424175762220193115056562878521418620482688208525183097332600263470721502187677613038499648917623493721283197593440152329940764570162461310352019117291739389751120364253857532999912693833710388270884730543992163909268079865924123304578317956650363294309045387142118438401386925478419584875112538832404519580144345176431620771008860045546555397191238124598512329187710355503519472010976788347067295925326424299355667746764297728530163925989268304678165637539395464760836342225678299901433646542938680104884671280531247653834550794162337573340500318517554774338541333534415355790061049004394271657866379480417891022856374407714325383772188348137067091634965305931807638416435568699981963675237893050473975503010663282417301245069094841439164157345728520367875036675455233054324310187174046296053980278318850013163220911891527386013390103969899099057170519085996008092627269242223642799838546491078274442263107817388140381076619612149768643598958139497546428571431970874019389595032117310628207124492650519804016487477273576711471185484924432744745358455188841872869325592279435382898822679111080598997379593709609238811975398071995665461676059904172071798877881950126804871188676114654644318744337003545642387622609917968987786779545528319663616545274646154534128255162126672375776314402504845062456525089874792574132406609741118254538923667169486249907662332185916297110538712742539100072208939864475571463887080872158227912844120465950710908978329775796003639394977324666578241338632563106745623738667679750657432578282593067228153817502594864588902048809926702579333589093387444172402897624388063561373236108868841189824798619839011316458718153206851815694018260913409196818869632618811381945968332315955954319905901589951253999534108700488821564494751630989950962920914145581983091640742315387716120591879734220196717870662190739944218446492434730571317212595120146935340628059801745732634832767738117104076143802902551348180759336309058670881675700778381291899865211262054518757821865163164832575523266305521670059127205902802937172358224972957194159031111408359118215948417065980601323304861170397818134918603153063278072769300401579953482335438494154264174931804956435940106650018098147287312432001337611808533816630786536350957749085930049374836905367802568656927617470508699228145237530275183111568319440138269687878954716637379084790161887981001726383298789905091923920876991950296457628102679225094595975458534439664582390074886452757086431263499884164632194643845815622843414583263235247870534099292762021534231923189876756553644342179005350687113834745534812851231822346853535616911221729852936409695636951334052123573943045092067462470073456703035992971347434753503981498812892464958204872588402552624737253350453133102409826999959146929688320112829400245023154374279784264382166589271611151438012475788892744314122652999760754957674140491727029797330504413731570762434817233091212655233503964643911415356339141274579481170700695881778266562924738159729914492574771804699747681194515757799890717642170849502420633832204102682903870097670066716729962189848790572244806729653694929247555215575216063059148100777381394324987701954724949885124308103695705480135769269755865843316555720544292626572559566297827610564933089678409664928994482108716518865826173381240039022912318049446357355218503564569548400179549385658558432543026144001380674267490797350320464198423860994642786902018017139805132954754837619304902739380053525602256621608563046122394017244850189106193397318353017414309785265469535580742796094182242103567760622218532687987765118709636229889031120642233025185098119922401782481276195935977167500509092922810790555093215816108309121667031982666614899524851879133395122168838126906432529902672674294081863193735379676542532834475643922656922321467038199965781048851925603719375485120434068377992353079613880214321546444879197625849530370063104192358998599951404708528491441057358727047609713952780047083105168624595450582152241650177423896413258759753523353989008878665875619223849409816155904986904517206461329134684085251039910800732101457006304507084068779233635699291334660424331612896772418824136836991984533816876391781819525646264141455856019982426167575880654367188524305214421309947022214676486003859790186392515320029389988868227140505047357320349648639094064601940039869758168859759283154140515014396041590114685973026751287471357491143041368162607899275111258765758556103724343640688438603324010443650590790154180872540530059472073636123862290592068961200618552608500216399670989487997717138259803822524842187514349226626679686274136164181404275494867344920632919083179480816705057517785975600636915990346136863646862504398091618235842832943345702951430029102185606943617799864891188574929863235422976341259439529325913643414092295387418834611827306541124627897841586121439043905310169211383114982818424787593720808259977665709322388064404855770812646754333283695889336470367722167808012719265579093715434186944422249526443461269334903388143246437559639158300510092968547531972588007893563179341333629483535597737995085478864198067488560722709174036770887649365195605959193072558135520845105698389426187515642196196945902680419909587699840128754220997153736884939305872719772925348761926084363493501856205129155722422321920149084735707520867664586523095741366439023458831647231451442301350084629735504535408088012988473732595505421244863982500306855007437321698390136777424409436662274781077026644667224591139230564186289467756034465180321951581070495403118295277955704763460123599566714960673221495695777413363882938814452005296055877741580488623190646741718217574355318213443769383135717338633259798146800607144395781663941683076022438824229510102856289301433322955887375479860326720339021909610814107398518395127860915686794415706014963953333108075730782423028310192267041461738490999142352091307109501170194490281755821963801907865918465134010648545135120643801866031328380664109451370574621397560910666066598127432206130047632101118129084121514434344369647851617376789544125317866029830571802026276719769235776052414511804443090232823594038422679826906198943972668028134785975630851727772088682311336801355984891052911367667762833434262840303004637735623150280584372874684125417637301831430781128799027600249604323439625470771287704849610835621786671866209136884399129963211385227296055680604680536659968697001370236427081167426054061376111062285355910445295715406266546662930378445973255678117864105573684905094749725399419722660821984778761990397313706924839555316980418373447004036470617458060330791341593264401342060660833879177251768564637169848066174238982422175223216801166802251709586959386545277422444205960558923471484216999402810475673302464203564927715674409398946927775450729476580781257927579324471246023816227855008387709326111747222303801139201238696730858259665100242317478111831018500763253411749999781319126755137876535999372061784115637141310997256260957082858746535229576844842648654118548567468103622216696661848093289959169329260863640829226644198258673306750277502669996498929726109687002401477968864135491198083727707753484711379740577066891194966357663825055935687409305103829600310113143949958662639090257473113724739556035253500489976077875669187388862990680739947161400943469422060654040577612757965804534665247371463014915941859265147954018888393170290835432980637114638508210683193519407171774248414716139555490978766989598775044023800421521216611640464289333586080877273928797448317961750626670455088197856826477039973606215081357222447414375695088210522348695172304584822279673373246300714578658111847275439021622441229252690517182044098650500476350609803013235797317808446681047011586386983916031936272518640624842834534815880012101622238474602741399893367357357926142946423707438031387881075884780636342145558695454626899413457288859472361882946860808069829375620250423013190732162051383923035914590332383295548228115987383180609392881970212450623873954400814733831642384763350721370234004535956576290504849882508797607397632155492997019932837358356729829635307899664913350504481404365075637215252160781741507336648918829280976439568559994426996024217970085044438797188282722247766616199247308535010779714399638951250190556228458236128511203607202361871547461968393998230590144108384696029209650610276952278716885430239536506916354415899421203260099282292644650330442223463762665929764812385351177632909477266725824999858297595338427480860254845315524174538887646652923498662542895678424914301046988524760301788209400661483925682460556195817105357719005624383772469340138369613326010258476402660936895626550505503509024021348976343512268420692462022195286502862126226738212221416134966586624772546221789700749125177476767321676322508669176490920567434117736113733783689457364336625452548921875878674685755232059314973229474174226319055158438538924057446656621413191838463068553708207897178078921230432466042770346037054694287218066073484276414094356936092476849067246871722362135235160464333285208454667037807915143424924467789537537244786612914900040830938684801362126564336774094951966462984425398956216302740246928986394054706613645493354632877681362897370032581670007505502806785908825419299961931962201574709630790460235453532461196165275823671790845369747055416900927101006825262152132388015075478158625904409311699904515807931690863175727275071857285330573096001050425450375089568150196104812595791240509520162218350974927084542591087306207315104749312700527986648090950483774597718115073687385868269232657124541216116837884663500415362061460953262599300522070811518908141003097980277605794788157010523167200677697707188762921997760621400453744614240972862165502034224694488193615578823462451737981827070592307064585832259680084525460785458523455048291442089518996822957307805423773088700837694040958775424742431583254115736613312043445524574765312750364409171312940907813761338213021918985712620282857055574184377015508772029563419082966826912364274556779025647396096848241584495919263788527635676941788488577577791280054593802581908081438296135219854518563394050602460947103958291912499740327983238501753742574254768833684836897787161350551955602403621551336909649726208544322953587792212743629181815063700824166842601890292708840933471937388993538239272051680035067304958218909165371035834511366439430499728210348946327611699872879011026406266193852095817185002686166677186075717643989905347511949250557926892169069616787609237954462513531011599541395532309289626628074664934641154249388074975151294847297159673397316327629134801058255670062594552154939079801726526273240674265155773648071473929147507403729055131254905235072464362879957538240027315437850633298069523489896593207734796590242019865671183772040740169901586572937484669249232190912737188154693134544569343656666673746665919106043763424241328790802084591499012719219535275652406153209192009798012495384336602666089729699044580358152545289732622091818628789243799641395191524290486144440750529455196559466446188635131521691125350354860808406850561988816093866903694726893277392771757507418108524641600855942984461083017603240625541916056892530239876134370430899210735866610603392310305389718628171117996334980120465004086265095329507804279580496503913545595540932348599759118021488543065814179647206169013557592187520099358853373828588693861571664187484636432524617918361950996608849628009804554251532463524897196908882776551987346965473135174099324058926549186969705262606772509827614459846239145806578948970581679960983285134459803143966339697182088683393421671542528690999989410448054328818068803834106397649488662125837543380828006799242886984471739115926352961352608083107101556649325437096266973582311747198993478256948540794568060475366945675454754659803950412431829735722475510002528148006581438677683666096321891030934214819073314542214555338504156918159605220184982092717435886634365294211841159307157583796620208274874698995865097216176974872516413340222360750883085655081190838559143611010984528882875211614111074187005818066194575235982991811031347386620035984891535739885428294511291722457233513926573565486871156312672403356660592140753473241894158604147716795969230081438198659840300873431012924118253075931708716362400308420273284972595766950946857631199211476773649943674627832268025674016784887607033155592412817724035861732831830890511902006319860384266418863352705866336385996163436394825495829639234626178283539661078932587098904220070927625350432749186224102333598080903869722986275984360407150110098052139237683569639438565930945261206596905608449282114983464245978160477291600278847077671525893452578856605262530669298409741712701992100132616211917314634754124455953007147823901140266179221993419351508621539310759884263865546290675185674126079598641796095437111977063847516364798768349747123123455763175843004946025857668121437537874241529297468167834529954622734478375660513326807933501383944538716283473410163746225544600545407684880267098804203564261773486121647627213748256641647241192882067065829923991134726429365891256637499253654922597904508721840884744694718084442724301533726252025772909344889598712722868888055505801743101510815943375773745686693815631108215688896105936190194716598156777578378984829221899100821648824907611561555287141201769527830764308030382609113480418411122901197029010935021226229021257158173447604146265491611786416843828318886023569622616676826169401776881995232711833672858964806147556538098188452150768070389327272898087287705476917594513095964359478899760968514073959453184177107888717271234206469747596652454187424134075517287963779142196262239018033638594605245815030236601256205067594392496926210418471463007940474645377021730469062974227163554012486463796624495928779540508418853909013934839768361540733626328597881559587120798875768246394562248901661052797791234962824799081146692357811407852891463617363914719640098196066299432042534142217634940908837541368907736582404213226795618597742148656761086672257531024938973913275555667582789265106494031698842206490192070070328661368356869537374768213509287986153201086213874848197306119509449775505570609701141381158572013242895612043907475840713226172643404954410223119528758808047022222539942281206980988072496870576391353916990392705226296705692250284276671324841649271799685092259859542249204963745143034243868894231701161670547859128752031368643057782054291390380089626386397758942391105734282600267378984512844541423040279975480905950458444490727447172773216408577114835540911699051919413361218577165055977584690302874092945838408960004525561589344346687524951513721941837951606209865207514536303569387461672070779132820901235700623029516688563525040936164322353539208419727968040728995112082192656734552117792034984610705472516304802264517124973400905522747257780242687024676621522802881384040078646893307424581426932810946864838454171797683001688438908392567576442546977808591531115861756063119062551475969782238526057211692206264898026666935905432880647766308542983516983187302148484759260578965416916936999191443977391057952428377888994434540628034443651506253897540830798087323149865385607117659029624270491763136582997609552610334637908825792078358388142249506077320846910089064085221787900501842081091540904351445375592773953563423284543186837904802141672498544963181343431768125630228675168951710773506987751498644348092674027508283974511742378819805221740306851697266946967821393067935515471681085856885990699466368458775101258235270783294638277910430186766783483285164842336022920884529579969236000372926323242645788722790151344647652791364986622633943950177301146894912286580547623921401506185014556201927275091316512871615839960173857541548527909530181090136069272701391366115802083367718457234508305465394663752042378700221997763923679794447227126159445917074692073647218351720780131945573159214863609382567555590897396174364761805767826771215194767707704162718075223757075916237723392812033026871697491217782456179629904673139157498563465605829494990065846150658302394386826874862997065264054476699774559141214774280882683892718910731672569670546945677225828739047817244336492545478618744665890724814536039097420975083589811451997556865380093047105649790670243699354084143471770919058747995650702877169313767730555876439346882269714227682974981645295642982955544289765452534033777930214883885281661672876900946661903504351067659986771071330495752547989423555904322282526997886541982847224759624341912795062130438421409026635118013415601388415615450814740843044337152745691447695346197408031861786636969661672915794019316649014568816486661982054090989464861267834753379408767785951857456196186038404440520958438464371403928737659004142004277668302440004345409543698695050343383407910554284136712457066080036780745553003482631759069495120861346379137111140424983928323308637368601831178365084104927025128477238125139601791789069037412526690641069985478315507085000092095748862133507383932938201272307910584900064847398894587029694828679656647252042076842450119717791750760426976177195391448248014092837316029447405254963534510096828492051492971623950807297631150157150166011697980987873912057508209133619481835224553709512680620385045783771435725992543315496704955440798876273453121877709933148256096452868227804606385949428332715831203810161406500876395273348827075080744050247614518293978109245088193674662928367391393096848949148555372261440743919431190217425955661330469965185871269908751997293177205511156843048743639853460672645983343337580088595791637409077925405282318723503834492929219071479921025514119303664638474389499060499818848379083948960167171652550776054621931557136388548254917863730038724153756119778315535088780892477327769960108105099903565922323337108953996322790337647403189072527555624678209220062958557499003702894254388178833795042174980262237866823563637772648972341157339492678502183889493819855379841327371494196969524944695273905483522880211635638399252590207656617651422074801004805285989563546237288077453673767232028605346002798284825495051467148656465173892058268197964494364600230077505437004170941073759207549896275024951664986629198793390966459967661754341093438462284034249854237227469337756434116594357976268704161768328392284677498454233671852590921713454336572980006259517921368069352458732045557101711551946343633695648977731789107101498162982509265601720142917755839674212185615969964762623202917797021819803926968415341197869086913467498845647937547369216835749448977817340661018371992578050883530026479594498481888502856417165822244466710186875109007254071483288780477436912361008281038339721500566647889189116326957443352260938432135317852553408185858495960973050872111661903010614055195226302608022262575781101299730551310935977390317202125727742753703951943287730660359361164241442820508442699869764232063425381630553020265628118449323428438373356649825002961719378487869492870527777535780753054348256378552114586229892493905442852684003958989005445049675058967516388200207495372307493249293964998607220144624160130490947114078937753243675263878824835220754894920429721691610696470758741939765670387222430538316355187395066449394482475196001592074002057607336471178627910502866822625369968993055885572936861306381686570947783958377063790274291455449093649191332320505835271228941013546317826130198627249487703129363621451305497671304727902072190265374560370826733427888875438489928192611525321666829116102071839017296752064490792374004282341563613286019059971361332935786892973451547759957652537829812162551628577120028300688273527626433611923071079834075478325115697978275231050418783531053455897737855934055637870902924204351519058675786725344015384032452066299978137049528200060071210110504851301137438674278748694290062891474719690862652984148355492278759652984192877708356585457313156932348092862613435597325363715513128080457357078198167321982224488444222762330905711338222430140444245402543496646572361855956688964764366507398418455020732043144149033070508551136258029015544631410611881939034046044943610623281864838389382722545987448544976853441816539734629154627847683126817315797127848043711186543841281800964748239357206401601755371285980527125997165112711799637367579012319630863353786864165985142255073413492379722349345064835652967985156329934946960519334097691670024049855300949651147356176866139252955654701917269766660962911324185319392585583458139644855972537199995260367680777309142792457549688290807583093647002572674373368216950539381567687097175419479053446674305751932367905400333143293361016895222609617894428602914528719884912478459557330538387977940065905305127863896433143849339919139236169227188567453455459048298368728103496520623109714350476017372918246710378184207243181449827047958492022317159138032051547199483240728614519199013451788903027723741249083981346357588115652167371458996821714178530882566292942262823733589097229420766557222040864924528108389443561481126124468340740313856121250947088394085819880082247476836873180605146422770728109208308443475188452325092717053777233556971000659607703285776975191430242560426877019378243240573897926189429848132923890244356433783966984866631449498817155073319010916303725004065465221076970115028328646855826619575425317537525684715871430110361189893166383753034364261202561528876762236286925375968642985895995442538137920593122494123020208162723083970758144584528115632077728229678436699335006087876726316729770585680186565663391326813318508387240535003150549471045017711867065238831837712411187093592777632822535800065760405491079367918917150339577892477496858443259630140595866964219432957371178422232438143655100921476906801399939260748779205296927153349728707442387062882100493106218530140937729883069022676552852715253126101977908932365155613877966544500950169960082445552474740281056341373202295341011963100743660202289346589372196932717449674386518765140620729421535945104209255785574128171602498870174936346885341346341088355283545459626982566013867475311414502430277148889699088601740837116908863947403131575631953221479394008661250312287344684710331104832385256833293105125048309929584233581007653285098313826975018600571896120994175406444153759037602977310696161256681643848473068300706494888266632537573084853518629578847543795791994479452789115051631119207412648021897332487063280902942194487688645365512744346283326476138977865955303792185459585648462496873551485339111343605404418178587164819574719839887729565775011368010710132573814599300530938641220179990324188255057064763274789549326113486723085380446256527920475740870464662274983646486549964601454831493943755376187055038486992247932319962413003964390967594465639117563924958841140279773032611191802403164254185296509846238906911264757801877421306129459819734146542489564839723720980671710158461879995611224284801072171828472323678996470386662055699663106080852983651756645605313331163101107676415527685273026278289947135223265978604265162040525327066140006832300285992722103058348610123914001679754136380825474862106548390455872871344009128643738771241800868657126542378520808444883414300906042978121198857241778978644347336494382717036480973258369968696349435324742197003239703650995703996122472975507118763705280903891870103189414361593199808554830037485567659154024483364992231686002249328222425124715513631658581572525659334432282197438870044498786231077973814193627775609954236666216600918733038193283358233637122375589900220086461941860171071091607310070342085015588919985564998787002333203143606961421747251607797276507943774908928022852352387944551700248611700195983985054821717255144948032169746429555355504273986222171352269610122949919056851397504405348196283392847744383746083560578979178743827839656882180861299869673205932218675453822337583817299759135232728610660335682878695763417993833991543866265189208276016018190286863596584409310605430974859529343774232064070857564026116774097088014068646346670913473843075049879577495954410582594206423606203817917863991899674036550627657259567824191355645800363255265020313124905232993827126597600535689534795315041191211833759760054027657076007039967748711213671367206459806605960054547515972248171774378963946503797461308192190445460565740052125012884792389394086754537317149242248659914091258006151412782752832561195079762862038129486060178059729801330658241250518417990757199609019979668574355163774082510652626523894155561491923201925854654440779668804032006255182043725652572985699666082491888865375866966147331361150828771261669439997752221527164330323307217701067980167978063041693367306530231598804320822585384527204954780885591579106744275812510900948776794530171729947026551747863900677765686282368649907077315163104166086055982401055440174416037671993712143370711410521641050168043155335969007099157427768976652912558696549747044779118607220284453266687407856371452297339020011353692005308132742834641457733929894510785959423806753395771110529793228965844372686318050227920542643213173460886647352476351007188749166949808040747189463309270617370786732181121687565718457379956687796191789922702876085238762157995010923336206498985094682456947543282956140705767491922749786408057379897598366496555814820175412636095218011832702808060820479351015471817882651933837210217129168340107496172026380577705767064676265131560333533611054619989942824450299864921872714552496907451946531580585727307091113401395553119752725852716607404631464692464411215054053355039171697921222179007669939497353750844350249422917665375080164313599117322952512852558116452537155608701872272377175039324368906201834648343272377869024310411199846227625484656100422347151303963817542027460352881456524515377127149843304279350251102140597121775832645033499355443308853486461696584061812724648559961041187259068287874988990120712378686882156325601321068208944698139372016272386030993792409733288696207059729627776281815846501580270956793859668252439274891130969462031736669467301804850097875377508971616805818133485510965951024803593505550208695894411711645515420665644087080359545125361946511652809472907467679654781614635382709940648845351425246371521142714721047909638818124691699834947861854065476655505896048371170714855787835951428567175374991415050598466401754859260318697520501330095811853012031200911174364903461375189124913917131669362771816567691157746416562225228501225715406171161321150013462562659982824877549592574995831081318433740344980441251259450442097016783609814372345202414254772303946181792484801208786886338713850479428369076407316952061586266224047790084389735477400215075622464944860804538585208855012543768770838849349742146725163232607479217854713496086646030109066035012075482472249214538782807928268630234754360495131511195757579315380885271753218047202595052435504828854803473575911329416178878586699058508386059730184485224468876635826665447430263746692290138896424929602118274662493360434060517663567223379998330545821836870081232620108003247475783267152526013403930210835339382524518205559108264454674162704040953647780137557716483454388283615257928432970798423836763947766231825530030911544094031779152870384571189909923947709985318966207843370023327072457472791860732841372920705611955416242638823407131850537771458156443772423373331642940664048303327452924789294639729210681235528183383199941504917996119649841007463341998333487239334967502046902196309482686297337013553182794462505299511619663806119645499690752073563108646974504260271236130196979114087431845073382057499659046258321680212613988835713121240221359690847000796547266527027496050001525217430347407434033745738137994805519189871051743617899128146581197410174673376568294587745832888626703197498976305403499194025808572707074740271702680252195854647729653929306304198003120807152365773717731117628560084994023651608775326012147720122345739275023877177085838542405366960413073254657718174429371048834327726719491339689113805486314829794619984681474024809020732209547229024690707167186096085861301480966904914225235076192196726075759942765892045056723647472464143344838077406680192248627751818771290710049802975872723226615154637216016212838411432014547314015874838067134912875911859169324473175617910948541972004357817497050317444276740648410014240034867351793053225078147171562904632411237636998988575971677497938501794089217722425461612547438688282971407267853116200581995693647579668735995918843482807765342555935615675976066553918837427136713469283442557934056869183484994441497688513771714516218246253535767740822597080645530500849104829822375029899097867942842315530081275889385253393333971569748281381909454911601212883805916007888000382514700651784995325042881217789177121382928085485861212064224882978726614170543391904645756804011974767832286280949523098781441584607244480369610796050851318599553013545087369380997548646437384977313085658108722320968339975439793956312385620623079079256972776239154891031195580073074826473173164889415870049574345791905647182576406955201570025638430339240121496487665922075675442561168182734786407819720770846528439151817682033257998515753630092956987682128341037069710547326767944863915696873712324819385134697745440536082013681918926594196086788228009655417640153797825501297747188143262174017016442216637880530885568451225810818870382982657942901552413177954153160260296652016001656552482547750379496431863424167424273784646255097009931240130674890740695287111707235265537340983631112065748567873384000920780824176208249557817842581332751647285949502599552961163514343783179689940106716418872356437557865827130670614458798355313612122718847380091148667050065704202906212205092204450222962173015091525694975449329405833719823465417777805040459338876487582099477274303653750054921017984276973489047232640424167493355047450780906864945258990097796752433742552770693011141998228998541080095240315360363357029177954580051147682185800868799270798762413798330820170644102759540872848118401409016632144967925268470513753160896160055631453298393103930576877628900820860203081527371448850523711530002531719967246596284063450226488475400683841850826169957188364079810989654008333492099956703017506071429965184230337485019866167597477675574669659880562984707838554318910064284357060300597807164379518059520473168295447932353759171265459224781877564836258165615616374202755322781041509318772058887736006548161814002216185334039575839931857678987995003359182546116684108220540915043370466146453151219616704206823822662831480071765909824893267547588169346694127617632243131298407453791589807010529543783941232378915277055774810211281003481144826761450848624795143242434927489362992666628311616388213993396156466718487607037223832495835346728352177522555284497423986622106640149296167406411893070314473940052379871434037516828798921945860760197032420317575136595740927069426839746082384431864139563061891514928498426552503475212604229123309840234467326084771677170413367647961157658791485595637577728207144777704231906796211714247044484760252634427186095816448768924011553589832371059037334965976016623110024485676327107153561325512458680312826411575815248795947013646901072219582201319873468193758153407423734387477112845021954810695928159696944928498842175183720691751955809041003106746635723829032606356504864277391193268217173098460959155046869883416779258742740713075519086831805553956515754689060255563742004057256498328092103977680490432023480180686864010292213893109014122622748915148193532286493034932820762628444621781944502966784415380477455690850736295020883009777436877470310824006255264610209352423569919605040989184333639087722791601553788461440603313851747365707592140427813388265565678660246007903336134887701826734014719570505454694115320377086516696923184945336644211514789460076877486068041856591643168549929930925584042987652938512870564896852656884016531497857881003753616953217885597089367144125049033099448398176388657557738974672419566631302314138360800631620892309040884527847611322529836634629150575539085340611843965829872653641940658409493955924565331311144577819452181042579898908518200105356137006008352937558337443980644588655236338151773133598388114231087382637545634292584692059962510614995087177245943942644388435966418315983946394233702557385415992124658305831044665782478923234944747131756441424020041636446357963220052314154746673859233964838567464246083303881673496539296382860325273798164059355812299512680012043745386190114510390228879532942478718075577067791182114666136035372594841999767649794032201556812050587380810297290204684127799887676993353811483357726482791866335026924651809063078996773465904702552294880224616369395933663274740303949010765361430139825804530660411180509331287180199100548350499931684904215293668460970888658701465677862739043696937251893797733902397140378727632225807564856846268387896681138020990023473467692103186289537533630668898138232803334302918328954255529279701851443083875482364265223445426618457552483965348514047196629625575713234781589880851043417457340488894284878082705539749300121080044033217715228798360121832828719269233372330960103357489121915168800133171558619276142308041919015015300219822644542270484509423923951040072843264408165628508623501365112853509963584580919964423179602200683043781101112919223755402214909568756475689650151627451252660732076966468167961445953067806354075646413123088661954215728986691603744429346151985133085736710537722624261247715353447119294678746797308958407218374192228993191504106210472036452242787779878886432769862481028404487372044568044383083834421220746456644215928816977861857398334219535590923119302347504615938213293587854839496625464388288053448332636597454609471912011919703456868054137409430501302983325292121201847392468880092057539123865896833099851690766630196371547971345115456363196622109696230022492496032647116646357956867494679079799771710804276897863958272493277816271108766204720993857313237359629294566345794994648200805477151421186166079161931136009949400574696482925185743735166258552301730716776629236040054546775721079327482691745328690884591147154420591251985247950520595703753012027368102150487737335820120293466537993444077837479279350345633036875924833380394749643769395166209382447380174158032842549962731637147053217244283482767235679875567579168310300288792990738600966960466748874422797774018793951831456614225129346224152558754982542150854919938764912710356896308917285428108299858914147836990117541660422569320302619218021917229385305915826767426422015837153116594326578749325409686865990582020661215929346411633951819633196595618345981502700656513364351735956446755192182573272766744336036302335864904572167883574069600150299536691450804515836237224265953184666659227692606039555563648820961090623549992084867858535980511120639700169086375016541236197662063216679783584099904315765910062174218218195645320141315417213776530900290246138712598125012760015067018522340927438026690192297818790959181061410843638074983052174379711438252553715464540485468000718826105757898158232706419991773097660453945936170305913560557188271734084246717787983266329970721933925712230447319364680420720638659095099914216762599440647181751011795659930281213047218511127952961324506204107220478740613224616543146375936234941028487360830180941581432274323033733296370079394513244295386435477482725327671557032040503099906538205447534807859016239108979872264249538990454072453734452826104424744970555609815007774600519366896152734529355103661427331095350464082691971957007774497898639030345069812357069951248770998023277819003119291861397433693121615912614381383290459397806539724296235474291450819761577344938799400448005277111782267851169520631918937143752385301244932400725041868660823485689287515831898213862184041497847564881452163048282802796912370349126652260664133773023698515655053855740930374616172269271246922498936640983450398098234635462181572807381333911000207244082588417290202954192672310277715188915914614276035564745564016367337526242762979584946728654382575218754158523239766499526663334862513307260952040233296694815466329909979762350722529942587660283995023381889917109299460795381315924179603404617266344730316154797685286894013752945430289217744533780564284966946194820869006665946506589731866994275128363298921942371630553546477933957325278285948451690653749086659443835079714054698488297232203790681689039650588749960202961484923328058540909916567622486382520464221401622504396622585429377947710457694248460217950101544726933951945418963782510840743733434253246437292021973808858634870106193164561370673256142618759276934954446946258272874330362732449352559010948964905845409007644972822186622195496221758275365132589378049844941838708441282971119733833848571526527064300288352667230417340966866587654965358313457650134162132253544520383719109415145125154881119313824318511118715386890323586842569270707240447228684820785689537489029101661299419192185218655931675790335335489453834295770010730254159781670040403902957377564627823192536533046450244036681376218050147916906843973196279535305149839714932573043381334014543978379554382639505214453941476103241556893008160717359948525206885858934519824236715938066699289389332387723135180635392368070986668292139776062565799777170762858514947983157875192127940267678409170751801725984198653433255415862405496919565333095709624506933626791067950974456504436143851727520809268364261722754763929970428269977298669663462879177687241069806592258610786830206880011299918856249132736642414015393211176547215652467759072404346649997328092236331369748380886212340877400109088073168656957035950468561800786518454886584269011217246977081072515812550078789086690905159580699104747855051879204113712577232554514008320395656174660699410800727658738056308908875302474146909969117578437185884107805436476483275464875692339925165594604160619470044330142759154808695957525109195370839579362371566810793486543355000578482868529366199410414070812080961230517212490894612893626540015217982553443750487797236135337489253909204723320371125398201159899295211620621088161557537551078181693257833727635940571236875308102545718319385732183528606379963353885563727275172512294059554003451667963342297436482725895134796677578992563861183690627266698455064722556595697613701580502010502844186304063688485597694203839202073137146665590451476538273090606874504057691518486897985188707012132805660211029318943188230701676359947276795742606379093432672437461031728986253603968420782362325067612916641317181537042515872550450890016012435396060391287425253943254504822187798316554998791894621465868289435005479284914919333857253086438084223245831495725724242881057064689915809075259559141931996633645321756534648617793534661064049653892615668272143412050667056358170218635062556969010284460550768556731191263733144461033053148219712301696213694471091363870022304746150595773039536848426621354784486630564197284999168873305614446528604884213970359685203735478779419768527221134573704812144819812756998622044115539057310974939314300323360461132141835358167235886528630312033795074157066524742251625177118210859922083580421461249330520520556342598173926786971001990847281192834225255163445132250099418266232704884023527500830165824061083657531351274785888725185727059842133034301201415034049342155312186349785593700774094535757033691043845911801009678998547263516932196473481523799315305852645340989432744308682850970179429649162039088004622331527940671576123637712504679232416246046563393967323834271814692880410722879454338270380656285765946508870050379402150288304601213522028434936959099039038128560707710148714793604879302739356060932941901448544008730953572907962628690674645596593721021334995532228359761006427815185193893552381353010713890178386927301559665116675055605147920917777851801115854956399782853031490540032279205880325669004953439634081275595645527407116016841648630072045265093443395359150266527107757197133796817161393262834545798085970527664382549782899073940180129420786155084963789272439957983488116217917019487288116068944219474247335853052813976344834378080803306244814354515313876812393640667845905555942374484684702059273913451932855301959912741791015541832050316219367195699543971354983689062154900233277108971383317912100538916674326970999752191836481587349253014490663597179588615186058861960460433284866540068062686058555907295470471089023812256075202532514338058971451816437752844347708094552326851434561157817790616641932378938647309793415311079834334505832596551345789006939535595573217004829430374425047980607213669776532678520969966742606952535300288627682719970575844077768967463317453591005704922680761353776398324727581626633187735871661243395851112442118509812038380500064679580919313049281311328930848769272938240951791357558350768056875497921599212001908054444499899346267653057317273896972711058247100185549207127816250810593875963297536125164142815596437915719173003479818097857441804165608771507485871266714562849413099665178341424172322722165988335430973783987255493377021730078750522823622976369501957153297751090497751580941929792053473172860751434170031126889096728215675403964600537977309590299784910177549697985926075585258997307807987696503732223215002601930229886888839441669615750788731255391862219073981243566447595262647187806229396643653170547428438375001574128417261672428545536559213446382229129219172494688723822487361709890776922832832589068181726321343431824930918087494610645427323259803570230372350512604511800586218965227816549746297512251070247096099628238497754160726824186010597224479398980282512284224581022372007792824044586725344037492084964929212541466513451197264084429869039087073150580160501933933830834571134417626943615036388094593015363268771449599478143738945356902625247622442725461180760365409269852979559832847338479335462350801966390264441215821369323021250688720943962961846124296634325876614763289796820340017625031981445493587935333580653072010390905070877521880242387413634534787360541768089140801237240437282246245970433516598946951124257089167095292317177113950485095175610703390126878502008195572515482077193032459504129698055645734764369691027674838785264719013466762709651515704953328533386454662642154875982141299725406875053879453479582833978026420305417518627839123756022216597787579394281393499615723434045112362474418972511116792139785533446084106782087366267616418153664109604534155933720499405300523037385702495000548751049433386315234975672678612263063077302061405135856168041409965279958843763195767831595689218613289429695979287528439344042521002921923466269076986053495173011519001696712022456363027629665991788106467866507898753259538317085023988643279697957442137329587256100107361027161629414928705417323178828780785814980759451354272338079823806008547409040180511650744352721236010231174660196802582084193901897593926813302709328993429185440548904779898461023167300647354652782591437079937093129097556201531156276533630416213609967119898558237045584299373302301633617126614164729034148828089304720348680850120603731199810531455908259329086427681772000338436033779769621752737903054783750794392640721337066594286246904396421981972033512466294896888753013395290981665586110883642605172681290679521453492952219433853031144117252139608883936525069015191062197928522987937659198451643110664607257305403008520100207082187788477042299636269073927421681826696686172605335094052777801847522803593371287228735027584334651519633013562787609315807654410370440400225288235546540134593189033913908732089660562529114620361123425374388648128614371849419825182457199763195689672619041612704990340156013097247872117788453177527547866296561738065579115663684649834439724721320335792030832655729846932392528696149148285152879609535094125052702229419504362624183785608110884727146887788456276942719441410443423046052893206026992644974893660639066579242864964891618663724864906382118915183783183608967593420575144827319536651099397951574579632551377019349945335333070950647968120638153168267568741705167513018132013133939698188285340958756681391144054171694713674595890930648252495308502488233615731164601109234892011388363419089473494148427961124929696887116208418154009537789274323068980961436289233228880841198036583992275141176778101000025504982059490195315780098131610060666980425235477917295055557712658466694294221309043854500518224881661603908017681764697190758915352012019807760889201180735592731320082789927187656045977158746405322109138019052849434006836032585506060443370941520779793151789364225925649324588002155130986518188582397463346679971192290737645572065307988285753837149153904036176671652571159990517718254800005058117126165004409989137316471754794758994254819574772157466826704233057968557104445457343200133284890876005821237954718355465455496874308216402006196922295642742923981708676176406736021095158080614755838759665276949620627836610764383921234956215856810766795040258852130959962911985560731865786275986534657027376693131772821269732245582850854905203072464814797151636109985486982018876171332367700847848151492424083801488283771755048657150926613790540448483028743273805909590169190657607909773895608983975557442803227327188224273340428946602203166570437237462277160943885465274673445618564816232847619089528563504816536962108268717486158769807606061456806928252929114941279625766655929095565734841404813010247461514992403959703588560321235848485601583120819869575207643492092618785687392529159572783238182686444418913773777036185681341009350199275077339465395766819267889266919605151612477549373565661391465818076353383193624616154903636155600544805358000923870649116482613886630739067266367582376632913987366992349582203179054739831605184820167127946981539258060079192899229650294384230254593548661270574863860998381820638766417776691666943095000194190357751765937940719587632165464602714501156737814398578993901995346870878473902954748707226983530719563067768923979003789311770215218792087728206037429653807496125298199782005763476350079655414923365896125677771655338970698118475863825449484181647962947160228128253611681105522957942475530204556192406356526147043731515395483106510160685533883813686033210565790488873096867014919214759018985538935614018763226336272054912784564491698065036854260145103857097761277246938963093318787633288875999074268942722011693556335456960832658513509317107038633921801801007505517056683164974201610427265735579851159910807753927947303782810605876558119314646277165641710723750221771277361608548226699525207056436531046772817759323607761268219715878440649482099329370790145673697150334191441757934413343875673806877713686001470548135008754209014559687545681872370342243302309074418298179141385944353761751497990606492929848872803540577285029979506902414387083153974471485065612270075899329638869715489456971052303822763334411444946229541976135683895857950628455022394705596080661495723028117844888060500055402428285863501495815010002740385947980054183970813636072030690659356789936056161472260285909211909025836993267455544437649994788117550891925549050092244351325555663542151826703140188341606800819035723094722962568376202103519050118286450887389996632337423040148579992008729169233337004194138674208489423728004120937585341339324107846480093118705391725144628275184685630421941673190452741083347646538970563908337650619534934364564487313140558117991220098087365389942582645957984577978829065268172922001486109730921349075556378759925405391260249287096985375641482845140712112836141955329554272125488486893833194077673296517316841195229877769352941362759877306869846741118134695947712700005677789302518123456755390932922404301706148953289382278639522908633173332199090802489934775259936195887921733347517726416913318509874219793260657015982401940761244910980505189019847998470231287348941327453678510620769395256257447896910402195100359730716503137510261636339952362758060984984971537620998058620290004583001816045542083601076092441551500815444978016362466711447643253368133160954237835623383748945083123091617148814650331502618679652020828823339883277528029170673405431879196461877307610633401378310994642648895764515140269737086476501971823891792080693187449974552370005789759858080648296677496692582552439522774666649302737537199546487768517718038317438548736521170930856015309545254153047679565852393831995126781287070634488639364373393885127612582354967755110369879935231489498842183486628820012496123089987538730274568419883177352124790876452669122204331691514787351702588426914788314835732739115020525593679837142304111858642279597099755969997466781324582698742235000710034144503382899576766789874559649358578835731292456844366577315355296005450462317315672709374480975393640155047575092661241775791258393100714025091509873103319435857447519453784435021453145044621953516645562564745014270685440751656485306096475330095355902600543702221342129927996447445329460255654369635114867462364609434138488980256232793829896696271030295126347408525891349071069345831099896903841901863643261829146414605566785877062838851197369678740921570696449737777947449736338399680718239751905561119003667459237592099214348029196950514654667685260313545172652030276058088951155246172575751345932681935863370128335012224501822112374010949025969637693758798112403266374739555259303243088728311792828885524077745092218107251055004913913396139224642216412052468066422537562251320314362842642089961954230267888579551170642794224440312444606795090166646060145644553741788311400060356513098625822560647839777047928949006288083699649456455560867611829941808618082902285478682731140271838266788455533398825242294380835055273317689628260596770744476572506773739530519739073811739145741390456999622517092416458832620024659928531735590203946513337623006022330875845982414334955607348375668477664142820546342503713413946022704632771637848045465936622335904893213306827758109520509560383793215493063676889297459935729195964812377501639634050047286053000818509722047065091666789073218028300871029254341159042077629773498418245307384014727144168440995096353205602815745998926087993840321314966534214683658218803058772936070619511102193396395299247902970235557611143153242575839904014131333740794792191883601579404104418327916412753320480639017361170022489461828994891135806018827586178409474586773609255343452432513280818317964682585566340970978145152626084787629213618367993236367136425035006616063471146721351496666006436118091600280040159063935973899083483097161199102227295915131527181622566155160761357653563796416432810140727979469552681952153147274539274760859505232382077345351258060997741673221842688766873074415469827853789778731557502759993968231342147916551472249479008188209210913587308679409003406088328147946565971420866224710092473517329521273317835228707890076635050101391978129326821231725259604858936558736929124956536212396453332597045200731656039368659112937102523381586031636130040968575489554672894464001120855220658274898376287375475386155446839290608099777121844800995269491352268829074905023300068610553132592936372528459888314161188844078894507965977918978337592941540206737829628894940455737015670109242880474757074933656074134896782659089326017629067090560030529593472932559090734730708667210779665003836997175642479062775936354242664342715657306635673062258421782988622221064084797329945342534887226964550249510104963310381161581613688837061073236008242718860585369472457537164733382393351723985375293279587884062383297830925188437422679600899488546267421579679489413495081511376715083831714738798915052710253954246720070302810110168872588018824558721178519580694354032601371065815823534414791845546063257469450167918774985610398039144331002956661123443517886940287271219135455123476818815944699495878888166605425797638365512758688872822023431312663938922198840411354320131069593020770077421458428940285677117826294082795422318467334511706058585013831960921364582892645774722999550365924257861583925769037802645546124937328942157094346123257608264446190587961600495692943048287131427229199972176501297735098348081675713530335084838133107129626433260849685215338287752707521809531004357141151611507330903980944165700023293835081702430347853419720361321179307826274070505580389453906158371541461361963381181572454564141769891258360714139461848576707746852235903367672929672407640412209989986154153737095839224045189911013635358934061749680536604548177298688891364435437612465324576613013714784711992025147848880622957184236463990569279894031438621742695516258168401051327224873139515326057997452848394024611036208507716955274773416822644445138931365583035027614327414836432074499149120391383277423008140509151989564701451969968660158283183439660929224211501524963177966467604357171284696278914488747510129253009513963189438247507756284595413212566036866727528138511513334213817108088089316214644807439069251544040417497178241466043267252457939502463629607409947502774868392350076567120967858715537278287525430352872333400921366436872691932306980905263042591472431547876367186270708710840702958562509447573497103123193922230318872258963214200605542232847775695486202356873311836836041296780919850567039934251639137496488427042437237176580238721078386808792122578296854648180994190276595999195959538327889466349986422720020272197998394903366338810199809761048377961656795195132565247756625852373403667301114274389132477520407112170439255005490473662389770791395922412467792571213197547175305353276179125405218554723727658600847679699272325188956935005510617052496438981476663075697258950150411816778933305688899810981992262699766115651331064029424280811322962198994007692216308171376786780424446766569503240543892284910688912051218029182812971765758235584714090842748057868624262605115296602073797120549268369340972108883946851117415187571898814717981188331900475145109373449996825135986001180872170905666502660803755246098299797125224826466301982700805680184071031720609869358921148749126161464990625941340910529889472520642032100030243096569651680884441376511826917473466759961869799961993596534710021079731023579027243595004881006839054941964834866013538145982993128668189269569358684620508034093806973833169778015142922501466026629679855239931622730162228196710025738251631115565978515072547936759518516761976290815723076617395482555809416078040779129418851065540220473613301405594476963427163546411091162734490147915873994974515010704260864510886627226267063095900369862028860335923783303216507692871706244921295767184343440505305514861175154208898891712550410147013994091108700633429265317499480149151194055803896288977102773110032538367273396958324964754017282359040259762354140562624649358723334641063257251462389902634719145471024356097699291865514055972719185116886585987905742353523337407210920386793383600465086108464754066441874658515060354808776517161136698276432522701047054405834377544445407183086441515543469917715025446278848829485926223106454744417795815590545231530869236721275305457802028178868147094513124008134915859451689052311062719269400216794062931211569366594385470748375999467917135664650288879266588410982476091470222601953024616973938769652250488546156302305293537197566180045952946073475925479821542554653598742770819794714056006208476667249705131104766934004528796936117204646896730376133365962971743509940590840891753059368655886162976384236703470466744703975741245111445123748508796329123882445953795095064589524970802308758603869918645656520838959269970847408297995345181679373203697755674216322206050565892744377405248250449367727926603040492519690939547171199488691561676586432047895117646080385787121769283215085773973444001463515604253259578952125836776649090661979674505748387701529488455063493366603472096929656428543462075915942261084705112780530784832440900579791648281640904122590257812573775241977635886059951379631285935887610465203732590042947770493398918712447221864916481929139869810752568581070421502500802554181713805487611579692691024780307482054870610959362295848985887060853553757413351467706240586776888170878318207100351128276231268977849459723487703148723076567185911290586493705539986291054895568578588436928489913929924166252436466317048814871367077617548149514285550063966385170876467182381386109484668580132650508252376219078112088517565264853650603646781899917176864890909874078731174424080196132639509404456163542569799846770364543559326952751406649214073414421384553583222712995369260232813957498963937073339865180168104131633973990614802620717758001060795148495648641993150731539397408775595245552392858115101029679926967976004088294379758234646030600152406245387082431331751916535509376438512975960859046602845134165617377784462949967099326711975212398602651581933540569006344905569820894283028644074130456988367191078789055737494204689144277957500073174152290528052596271640197850619691316326803412185993336395138164306634378956780101003620067411318549751937769866024096485659739147559368560239636006462264331205483189744762768408116432336038453330617468289174931240146631281262997032159256237428454393641603496568366580655601541010026316693989114904157686213078495935767318793287101588331344666500460146710501554181549318253519837528259508012900456133725620839426522083580385061757998598341439265121517393702753272452446908972640131285301939510482784789043111184654744338604871868595328958373283370493056584169863808922434907732583540613965599663622809037530752975091103196890271692005966158018574493398962850898222913223647464898262448298857236306459234463596449842204329401644412607605680752046358941594064888398528656962625808066900598846502172977968572254798049966610398958703934551953384405146368305728262242612440176085976272864564652535978025564351518172334834595622904866554630385780565826234249933616411992697075888700240891708248833415637586954669023733627338206221866062439093612689444500670394933577716481651735213454828453744231813471158312079068400070107235373185569564156007055410421473342518969076920225498506023208053845455508175538921299648332602268107961259721826954073568035128312399421323138266486705282964060946064247952783222708345356391502663029542772534342019589235322720087569404636971066337322251473626739760699474480091578120262378319202940932207275059077828765802298800176948650109212315162484772536065094090274879711178820110616578554539684192081151329905677366665871903891395349463009247698999002684587314751577776370455076838099798595398193855883537386263301806892783662532161865324113321856365709490889425412060419607397934236572323048360901340720669502049888531580221903503863676269731081339044875643114355186701740830510999330416086002268653173167430445448187187797998070202628217099197709544967878284979339149919650500836342440384462377771446835646198062496544953981609261850047051084166593333221703383020132587159244568900101825706066547085148796180206230549819867096053962457963315264648670093674140052680784730774286597833719679107694577115185595471534856642854549656553261627321850044751693810101566693474897516687292199071207482995641806806518739238253929138841481790692278208478732964870228928130690325668980479754672442630034430058302117403571386688232083616387221960373788685661492683968019544389664878730246624343845033356834738412681543103816332096080651569140451911286147276922323605526475194710366013886067826057420823002431787507264617613460547713658397055743040278119498268549498919210786838815987515191681016785157092530530451091008922746266547267597299171721992429941115180427454172384258843220502514337220006403886681253800076857257469746450946406058006481407868083687160757156410250634077600682358208804093584772692626271524107876234322749741400168821361213670338531627062893761186255804879194295470676644174316573861076126198240983339452277862343992003602947850354657604093768908955346337837954666884225062605777061066427135211924771696231842125031736451225154621278552438757531522141744716312882509807722910521985245392824918987715507902546411308882840535882504847805239252423793918744811893030028560508102120962866382362261985113333021749313923486298105638025360689913911894434414211931758788731172532661442059296093254179153684696170186803934997173597637559876422104253026410983961621392753530951219620220637162411238450967454671110620083436735918327613125556607040616166320852151176608634226157414465840074582877229970369404846250005850531230389725936279458649723814087273318704611974189294001698641277312319225084864138112498402560502720620574825022495577293316556258718991509175930937893516070372622621346183757986523428958878018425348366289649043322923507842267654969178670952341421100812542281433744553994021090542263055834235134286152078119543150568541314506397655534015143839455311658840247116721907976442559997444550733747763024707782845225645263309511932886277222758862723535538252821519619065288524960414291999982198151332234352477440152951862731303821071277479631030338891939854905997260013587245787843640055489009238472231754510799443058417199300316923298419127900627848152593272370363699338138130266663104841160583467420944920723294946918584630234313105472293040330378734439995804540902958568579388880088314735671422274871665989414955222305633186933181131811441803225402369718175114218446328762511885890203560009583688410858597749039340176292630997926375597784358769648768784766315759913528950417751532977179853302592280420911047064797556197462884184108965412755225097918756840044773546456343192478870256555410122814090814272454224897743477460454697339599012810218162705009552894377528175040357803616640793614522225333620963726377945410171062633696001467347036754711649195786875373583184739174059854686717598465104505142591915412029150577660205729760066984347864587759930524000474991727485204929409876595325711840413444950435060785214829640774057618306986186635298011383301728537611954224931246212628473887583276628498326808784043196077966884006400019513124552959510556738388049412444012415691683953116988023295850724881897416526278792469563787879602638974477379962717823573406593582547261908815649855596055341295511090420873508977637320323188150155232872263220531749280947777815727085836668265163471287798984005236605672758590505662026136680115966788276652375925530427044892333326655371236707661909645935406714510635851825831719148584595354275791973135545869864518215359300606407742028654816268890285673288535985357319609043972372664019721644689322771210553769629017208690127938176396835083057309105065597110015829626411117383925671541077920355087483377960589341146165083614367703698444401230361160112128601376882693979617782978613114128094891421876178500605935160068498647682048485221066948045119561031640933730094016763739863270837038379903399891505103466878164255747974657581430630647600228592409676521678388610142292883693279961618385625245307972466444758743879581130725303428637268524106040198619493552469351746097597832294233433855603853299535048760214517404986523574033381980038856472478902322953907871949820211702987803092491575507101409949606629441251169108845264502218568334486437344803743198118992244256079314197393399169277174153748134414884162313897077466773283743626645338186195782530448182483078741243604526203459566636730292269363469690521933399457692909675091578399407512434424971480777019573673992578327989358343494776160293381752449059045266133171348374985344068136798376294892045905664099539406216252069630971103432305358994124860029240046753784561329529771752935872307854428710864651842358663831356023983415172736151478647954297423542853531050152963615256380055603817555872114928296479414084085973668234979945687220268561383997553604696739412179070021450421349920543816112636997116766446697502298718692124209021356759799179274567803906841679017398978519365684215593832244759999309690131149278165364336174561667692617074379357354472352732892799375803744597841922582567546262710750627182998546617024246021926375227626223322931200018877007018778977272673398014368745837137998215545636185138288694845141798481115691672153513868555250514697422803432225665055070710568579412888864978408969914370728889568982749225015774682930117102975101685104023550994499912858248439586781612967972723549767600787425900966640935498458959257517205305735868971179845987808099515090478706355465996107123221509774449263439832310617477041167537010817165718062591722754812409394510713792617326325837667293286141722849082028106650038176206541326695149503107618714989531692033443452938688181476285302573942402858248144581423074878398009014187074732515575724817174686483524181159164138304147858919173645937537363385971437985157471519323547100925887412701575787457796141811084511035882922625818583293215019036720687312647726301160538334266106648525989105756716237380245823292830165567181446227220881902015282280141144243428473085196785654300547433802859163341462005008962036674060415477686655311956781959590883169286338981288369139545338123804632772706040691323168925296467483702153477941822024154268377429783923810565578863925395436864034792200189092373386966687814633133750384180720670892975207744043999022348723341991495557004961986875675521985590473329082121017656728903030130735151515460513954457932536318780875488546981249308984793212071121729295590508601663567159579649989047847468600015407120974517225056011321023843006900016867701952591640311704488069276832458952259567452760502591474621685413404618204088929412344701469613283692130040919282047152277737891208966243958489333404934965380549260044515672222032430130530664330455671575178244585415867434542003814210828666525311892203167457734281066866547861936794981991249463060572564386261127297924745022571475562806166332753473381553589585399115076598538955453157320599922353987056812436216093652411940923869842631551624853430076575542337509415904020611433521846374422830401102896124556765593863141429137883325703733695146090882858140578650077274026078615656622885996406265125661456053837311928360357037918214675903545149115530995695885187959944212390645447687051998643637167631161661291044712568824394467882098733712729329216539438639098696622986091608347013871433831523535402535131301372956119733342385233664323275018140400750579745508450159079361652343709649891596390261635045598503448993753782292693298000302137423823922315173550359641324053175460050656854446892115564383495945563577553173535985274212634079982466456865666281026397473836218093451149516335801332963664713735618779887168542752499969740859569283794931829054339640957804667836920550330249608781446129499177868802547138301402275611441071519001934171117184718917749545962789019930422717915621280980313581425696086386707381227491445583051145535295658528089895940431503264372338303866935643489358291093803744478991612595863897188178374651020304474942388822323712895018851166347766603594142423826343416451378899404086405924823754214934988320872502609738201005161033668490573835922014163334883942352668762075241216856359361344947983629411725817854042780348870610857422021590917790964443619683419887334263667774448773046140985676433607553871897447234466063596930729422712965338564068377409079536808802738071683338350021595041208298360243203760387066750881061170405857034328345039529797430734237441115887510596018090489536495581685019774764981482524518076581082924346907182602187447449623984989995087462181039788147773991061127977959788252320908664399399485028128632365938199710178452134917692656103014758651920359651376593444368850752101144992923084270434205515484490515796497666712264452146590166436958004167111391608037973384739820842433883135520794183282770200853619645471910299187362074950731516391587254171617860611412645875188068970494002474437799260480135551248629954244014959503107033024348335910161500166236488096718207326584012363468587494669331334097743617017040657839540891403326622086484402590690946692675023238798818408883465623732277719226735158517930107402151648218280806912012485649303738080703212207396309156154782296523914804495873695464133030725045613103632891173714319211378565506292948061984267657676493685201803197658106391860246576941747395073504106938110223448496475538705411092388966042184438277241841213487319101038155213303094548468178773666576504097065450491432540363072849920392148856973538278122273866868218263127175914605673043269499306070099277801422710771003167876980984083009155466810148879011512074830155387805498353140014014298763545826779690340665928706542438078953538956634244517664591815923311670953411268629540751867363739801373739927888596845503288062035439258567913351739744759753498835919874705452208986994793156499102509373606381688655637760419592184543573852603038564739953058453533390355579939424496343622605278980947319731108840134770844070839779108748967991225626054986649050866869746887020254693515772198757596711915954441633567881974429707217886992956560915162238042113447943058344247415001688148563713901517888133040035581780478304923538244480599346107968965551681259048279347461544063804057912713593602631543360708385460483607584540240875345600824264111087030040700947825174997811916402693177156535061082908891342675918956905618611266390252874434646123466624082813394447350326890225529547067800834450237142290728411585717402531422001269229203273817277088401248433034484882588410922547583113639339643282955431524552463135745152776515203955320010325737027070124123537408924055310211316250773708401798554152261094332044328755866986306489814984243997142521957353901187402506903689062890849961657386527202400867078299010398966375738792046827055177596569345368400633600606808257187183629510118038659717574523192010426584232014183961804554958817706338963930646380826392892786342275106170492119283954694736978142774000912575761593452588892620968423738712374349802078078154609454144803772734375222997286096534378499796862794159399353627129326626329829103752928079426153174406613810009908482824446131439883530977146873054491621425781820511121178533086626078291037194841734180003774330995093821119322653436855645849472802309837636836239672794429867553101095248931733867914645283792549102414945379821135761823069595858829886708481658515718326071919549508946012058529798414108557420459750781421575636139151472375010410540799526284434056843568703157649535245722942953695690199801153365869237117427593879830194947619905090209503234955689874249810150541458320883713113568554642530106840312215422132539910083722800261335601740958286098925075834977986909290132416917945633837622206217109398204478285333798172715558119768996512807716509034272940619704756598483991459796951976417332837437871036857985714035089793147704529177631617838034805373183049654065801978225476925264328822128289996792891091136902558081789839879727980703274683479673629848811135432884076147916539002639140636673882418322302464510810732735051088308381762210368307109364316367796500096225756132478162401646803250329291414070612275755336194631211781677486591941284464901580655523226591288936132171478653230486979911126664519927624985779274383965994149553176407827726948022487079839676743852664079113743031374350607280973346676573999790949565838430965747248697045095825907351465465365880322359624813832718656625863519048994498024550969756753318320293705415154251184420268796507748871731616824519548546929101159615148964638158896500228501659549148662822739940292924832659919426931786222606768887759607389882886940936157003678149729358439997177081949856771709728543243420514360596230335234021052500680579479927828967276082088185994397816805679403318044290529946255391926874516453486252128734067708385811217452404335472547054393365577251103129643561703659274881951350750468890241861639437264207412996920528208095583703203425445149817556516496021672395255942287202665273131528021305381937032819043988609536778001332557921673984290514047911611105039558774257679802145020965066018528612943201953023703122255165743358997776166503811062159530252373711721021584851755748453126301189204538768981645294478899481549105422054328306735416739883757336454558015859965480397712085997988605705641797182415429443573787178990967658584613807199430016622609083085041639253516508693071109765320167342722051126252429698409537557644977501364818335043490953692294044348588729885255970825429720132716158775470617254643735872227673527490675068717415193823225897816614850355042918411058100917876157438007569656575500744302650664150008539749314127568381914062943585219514595097686108082330571523915669332090878442338280321692273643338235433575436310385544632568914757535455082435778293238175752862440760614799092588224989064309793572198847253828198806195290179446223732023778653104484945869887666229185217860292109173030744139246201679493426288271283372559938648321335936445783663481257929625215790953702334390491483272048871803115238548196901522058248676810666053687207476561287128594250364522208698827178161954663759960043569008036603934584905634939961517964560440390908436468848737284229078661679904339137907205686215829422779565736753404173776606966290625222335972888718991727364525708380366258455283899278517129008024483599825391802461828522373786697806934178729562579531333519501637557191180056993587902946239382331616134773151004391532285469283977047865158692473433244093421744089064397239363053738478738689930249751615708050852421167794511245635270364421185523591898350256810904682620388581234427998363248919345352264270384513825350771654525584607090789910546934141450386325494372126463198168204730182534653024498083560639789950489008106610943304771925518562779824417028431941514660362175910149579670808685455896439528791332889625812133532558858466170506759632248046074563020944174724721080959569790159945996133029456787752998323177260965172261247193986293273344905675322969063322261124914899966387784124462396660925567178704666916613405806093850007207719833912087301603658732234656660877735704479746414034482846966720177387643568043719953504882641367677035575902760003539406988149261989430854533806074984696168520629946039921684251790717590391257545073134184351871682806876801047062232420765036475486935682351514299356614012434332955647436474696729465474669472968389526411931494255271924832259425788528568965799140145067002289095344338270431476193586535611073398768572717401965891108270414926558611102903410538440510273958911545615323016419738678940950381747043665853966012816759310201112370728495457121007329693205239329604165319707457410736693593206894340746797780632998227685489619128002552830208592891376405223103774010001237274878188072366058552061104939407032396474568895643089357732956563046013829343974622875862236780713623860212626828378122632802224518788133324212715688489529809779661323451945480318338639843281108216000326733119615153584810671694708934723704195325294189326100931908877563937821052991891951096237480077340047122172457426405163529696946860427012356197512493791909063305126608285053177494944415560400458398562552911151208013767095531343561056340882922333342178912059048815512597783531766436396665818442404437469937817944684092818527228608419233082152855374113550154753276338795443328866366461785567746125301279226727496970357168546981623248934784365572901883000393047195390639577799304001761266660191631392800201561113795143232478283804133419301313715579684993056903073104670218550695585132229630813218727790039380138917843996337807143713892585922996441833047918762397816111534193232345805905356000576139497041521872974147596391979357559636526684635229398253225142678143426274584692494780904344780684494855512109766766862028150259417378954775717084888605008037568123130305843557895214239899775715169517624002313725301564895096734505213724217435860483905658886226356944721466493559895322268149520446875493972682687249815745269969722078365962782266826090123540434764836564646214100603666606912384017023401074036133689166077313096043941141384182838511370725745705436880286094800884155265328644633860086375853605971177922383718493727484179453002655065845491784588262524059687068393581688783506172809716750251893623600078285110323361878147099032284362429725990378613170932142459921107424290608640017775786127606432989452764147071320802844673880212536972596867001053966650690101642477910956972645179444346258514436452087471836965311662155651322400586976915476651437536314803593774339151997004784192520130839854359814202589085282813327395911145568197128015947642185613291130507690946302303349139304975755649113133342533704525738143132552573533409836038998461316679122391594075368322422767716761589760631977701322968949850468065327602404476600986710909304778791311533980245817140181787426614311129324922936470574311121391998434483717105979180289292184482276852013961371271410873951126240325475950658284812009970049890003456786626111840380911621171734356205313883893113545220428884481376977261521383566949989052640539863499613707405010094121199672550787443261696990173422903517998362121539575559800601465997671191481525943117763143936640966814542020092621166240513862938748897935609657491533517422172441193997539182627333123408928997999053449163624130283912188556632367336223109941588745416366781030667561909407675732346264062133402039840830182648512569568696725194852479442635858150674964503385356696083512232274054494487944785771945843522009389817822534120682369341998284234471115528461785239176993865243457586298645661058418810961879824039431652717977121316546860041088241918467031221144338921547096639667010645891129422389780283738651256118638639792590227456289744156444007535786865976607844306057106591336070577701705606060011537351776940202561592106431485959090975675321837186364664027557988442875209772495268333368524081881628946099262302928176756294838815027640095060987863319742036554758786986963547948709648651368152784561350321042948843755318244883491934990017908005049202398541830293292524409670146366595642587594309390538669213194797630779965233263721453543736935459304092297607683325632484104598497876638563356003083362964747525980262518734718085040915444415982322954233783566506459393752734205696334824503181818419610314157379594610604752203899531910278144352577905136978087009186772166238093593106287481770576416874467416831299752402735856731014051991817530643518035816168298952938149677989631001292445074921836639831591133676370117372199996871078408541615482830055658462544310325872448412978137080279017565071236456007429826642747932464418310421734035530882632956572667242887712720838836692123405191752169028116795586511633699277863041964482490529872068489519274814399941012933483370808438362425190507989905164988094876047235751773606429362276714840798630297168807224594757514895021758265684830314314976180610040620223446329491341228010950546783689722270896546239303625614840235150068530340990002341693521459730191146424083470510526730728405935084874560660061229334682885588382392758160527034431765086210833285509355828692291238204559772668299366591068108601457923778618760183993154032612644826727350781177080846238645843889542126873441209644985163890370912098497749650247958982891652260717406347895662988418140388208062648434926718179849233597903035287801296200193758384722373054820078023704477925957839543260292924080216793917275755137894410667703474441912429925059904721671558011452745893432750871784629227900753767651191269574026097257371522271218923295944926609560338715705749853660983336848881226233454387397628188354422999246147372198580933876443780253897003527647150571698374054389167331770649354085668307847616234291090177941810713692727167337443785339257596676307902785897170905812996126561903183785709167633342949074920498608226764324371932310567287425466235428067103054415754531142886857869630230447591968700869131794027829017829104063576185300819914665685265762409886218656581289093841834489874293891845683633973650801723704637099282618271172622083933584411072139406595890531645736409063684059731908848480708280633881361264731392352192954838356280961684523895646723333708540777658761095630587376577874780848636262708963553010291693670753436007939453851030757924805696254620732100977085584410475909226897244413803592194979977294529848793139606584476989211140890187162905271134651468464374780410018582950201610228954117386488041413135383776375106160960429896199633111987562904295689315770833656052650376269240595718364743323508457376720342952732958050766866418578597719042823646223458835454430799188986688984319951276730096255946941139562998906055737953006433129576446553075465252156941593395083437287227871158355463410659098778460859103205528302342452148702652765754997567336725956175055739259386501582083155418637202698259574190004214849678779002640757151043895900379563538832458399580209346635653154375515480755524149454744490929022634251485929144724539388299595297546228723330960449370372633882122139444580517694047203062078058924616242461735127100423658370156176324594121269050259216973533428164036748309689206456711150750365279749982228024567491421748003757502894889615940129811697078234483822698338828787212447375280081595411436050345306366577968577015933213208186629154272301952644419380782649193113282898568029453309301356938545726224459504872357824555906104767271997647998316502715193559149832063401628708971658024531574520499343711572422910345211159488441323316623474634581980877886122869407404991954299342948802912849247046330792842037943294965261383026455115946694202649270955082310551591916185998255064008942890459173583320999423739881564957765261776095990154517644462681669488830460192997755159497491179995067071947500068452340154053061338071546946227935697409948635910580843145057976277977065557625173176097567119288867130022723835407089943744431553586127446011800943408019084146254309949472429486566043116323287375250582947493992833894332508996704250974199468999343861480162908369591499648286503936184456747144800608206215027505210163104405802260598907590065838790416156802302811445068314516544443592524928518098043868702256695349824455129815338450132016234310607869142348380500780009201312776210371025258702108473413245661747257441284566850364200256443318762541339731280322378870454776649307424977153381855805947255781884312937586239952597597718643722036964624036631349785997257146119152408357603277451391166732957231471792013650629740907744749355191914669457287425474378112540826255177229176895409247347841525699250489443983261255298795163697531501375523886423734616342180413474707033906387823547374235334608984824194535372459684743427883020063482042883340919817830876778514861657007411683801214599949665213619435969683957759549042454685532375742847936590161447371851647430095012921382958255204639316309011846140342126299737052611436551392472180348349632168714430711701693919267811559844311994205606644223120194427899491786886285697850698165339253914932232591037769441278619514243139128382977408548706502757528818331959170575207367015778096026279994721678107893582716250926267814055423735275150635397442153862824882140029202617093679746074557511107575646748341224896052493074202270516679138735646350967153551056317430685050264015259675475794037091556535823907817053949107313373133740699947466064037426588714369408234635299838077925257562675677238136490269216325784558944546993618300702889280672478661246890238879103999317220989735858804169658395546046686182520288924269594420246087591621723837811638153827245633054985184397671482443192145118339755190412644948996550005304218974479248319468944907302133294483061403341829010194850673000883401819182280229154157845098385133602373427469846175101118661376756582520900658800538075866079654230437790444491460078758828611220029328248905317257989323614848040382077787842840700444554252021969602998393144993029525744297308892720458577817022863787641391035991136526946044748409071478403637035558472168356673084777918395961276463077253680547820887043741193952323956362991389232149862474654398851651196527663555656128596135963203551501080798585550349184834095891298749318638561204631096014530294399891177624617148539631628264697859642255320588427516459060711909311238233945976439518323771806192697868768891336048999814498492612722530804376682442858306242347193341553291116658478235730652671170323085224332861246212716548286665381658769541272549659519505135727165425618318884401031218852948717772119642514423141485053425108671976591330254951254892077229709822364953270185322248319019806053301774069387320605730210448697890072751173914219076524189211671943074900187128879071458926714681166603370289067059875063579927952219548967104858244813023409313648171570303035373917899231676520193900650969730417871427391398775341577121040118662675592232795033347812543100115527280274632871623949606087908249280691148476087433614659969910949798997874676162756422484894192874887167029609367940998950400368403820795698518069047531715773466539473054357458617643860352030295986695026673259859864341712720017104203934017208412857089596085649762865325679003063927302237227291582898456989023031211172844331729040595703028003284338267476356618742144847546770802489415536026871303161241519124838364072348667240109384405295127867709944714118671819152676631790507432789463135476514675427932908138576673189315776404908285917501382734578856485302786186519127560639138801273306539572708062331627836987890934297030178490983707208918743906883747194230949618604258284965504535504008849886475697485412105112946418092263813380215164421826949606786610499090495271848314113458739031014079808414522858737858092910584113857385095421124855005546714475756418212685862056514338445829997932854154385555006444764644533153365555296017910753760057303888590498287901387679513546674723133318698579696413495686868795944332886490498999822518879012294157992974417425412041518661922179438389131120230264637534661382647376330112448763261171819307798957692465450112307843280874086980431565505055503565436085508830827344324015680748046721538928814326066582403035929884024052902484332149443048782349337778794606580308665208644834210324753952977784375181782142722157780381299477561148799473050569231617454475030308432776274350984123884811984884184880277840809900545125259805795228937957149449599704230136812859528762266759013860593437993735130959808880451082033952628235554501197841877372248884305603064603519604928990715399290077673054735971078995859324539575932393702835738149566924028755438752110778040932782088232658621464172104129096452974491303896716716825876002127710382291519859319728183970244790739458358548355382610046489365248816825010978548503215157079085729959731187392255610057959946780625637676120640686813727039621210320833950163244489693232387092931663138083098373148270221297547647126370011552745206698561384994308712711793020153874034412954516837964260594198941623448563172075720036135778649191415158192747864559845029224998721132032293071587452664291038685782267198543746599501330410241398287486579424082889527250568317243494198485449760812419604307906116431262197410622913832623124632903589235283888417688723836777674241186593076165738322763987596213192753109786300221262743134045291072723502053731944254734505382986820105831487037835897176167076131709433889321189494572739619469511415589075137025312873319931600529192456390525914675486977053477716614746719406628015014935736121912269826635096151230505316090910054755906678643001960874582328471517324673505315842591504303544353716987992818968689905344468707038014426547161745530059772588199611900814358132159943098644095655812695337355867782539200870797649896114626818006407589524750287228759694711070235206358167762208711409998936800932458440919876850260947656307324975500454059340184231927635045081398340828504377821672904986778832985379642057931869349753689368179187534304050690579772150308048808655256358399326764242390147524431446562386955994141102338417525668318279818356409017656089002623490875978880635649765625367933100613827713132702741619758958166690861997208564329726418720160274602033684470833674634082675587039589761732545828488798600718611339857738666374813487295490714206466032416060033855588520165394024407283518864860431073276311433806863438465900032955314931811258402691162431317474312460205244203409491902866059094882148098082202850856996859029295138725756648928735918089236673086047292637646898504604679829729398304003700987046028581575373573801956998581971617202642868467667274578405416725896304029369399911933015523489555293578946570144131015510670064906004043183813839468567170538592888016013297832385411437549865083578100472738399592656181647921852228901327111878916634586222200079466612603946051339681964096446960917069651169045377327176066134610975154763441285653663291812592370465033305981584055108590692189301116093248625581713202812982151939115494852508358906089917009016786691231713513293955467676846946884029397118774795084572033525837117740485571514472994358217529793692302012203140648974802987848225936622520173572784768617881600806354173692124160127788160330531756011996760140587853524085074846628359577213672138451851827530073468379278402456108471617996837737089641988001942017641563331858757228039627672888561124982682315249066487533069286130069603158625854330480498706028652668035037619897647183989489998149976904215461477955290371107402144483570438572931445645123145707011039157823698273408716086908189485925316342957201105556954784331730608857531516138069973000323007366462605707176636956361414717357896528403327304899313899406090053362677707398571516240506389400841738035314345838522585306158375284184269572128229245779114872524760599016703610962728578944847090829748095216100039541581765404236764831819984814960047991429588557879007444507370238284208876514397282382735726089772867139638138998180674145659836703456121742961498683250938087152557591212018431836117348943752590431645673584717465284810884304463013542048419595506093806689968991568442416987703945596025833849920879032906155245497240436043328145574558671069456235857354585502248798009625408638487726872685982463859690633633366878454706527824375985044479655247243595907003317113081435136777902249572659665903348637175451390545790504149360316884454480355740413710915927080172309827103472300038414259129320183056118777446219802694509938928039089258734923491724432379892993353424692254882047041441230229505966082482650931456378351377703528431166075828032037872986270752569506560752463891120366929510985550935050896024257546981007716564083243353319303513456619580713210593430645678575097592074109490824713031265866822983756848757203111434046158483221981519496567580629574799666415531904961875160046587261045935428656832195610473134884333412547611616261866433122978088378625440468513398908804702007740054639267628708887724398515446047494930300787936989495849909209285023385089204468121564600505100979210075871982787183851343239129321696583993138853575912138526917357137485109882968559775099044102555304253716950473564493395841447602983510766298679752763872444221316085801461192361369832569864976409374100942346026812649161733338673830260164180146511347122076097711698144452692474348085245324873658459326013908115356000286232927729900886212718616541442353177700098002194334101614118997500386713691454797676012989062787991850379522459212034584294568193681379411419597115484459486839432720376452675037111295369612463155662891617757906173581693958619696997293719604442180194652428730497870459953100817794301801881711015405332229523840820684635746208198773766520795057109093253524658631644991704093238062517710559152832754689729471272151884091020760106722386000517127741158760393840059303276131531315748326774294831113899732900006360828051846681940253042743052621214366644318958987734629366099699283301593641642520028197343644892819345448632285152184791327804663184725529861217004372953526714872398594211954750187588954301081132864969650517327516283267512585653228446185483571956110471420234434529333431811992354577725701912114765013387511052614937057517661146996277023005196491640234614882674321139786944686475848509554434491530072485749614246304886708496868099854614899988562736469837556846669468785285555952487430631865072971801983321369331975747847659547152226553419152696467608434841854580724826545428684703389204550551337729723757951508015053747472552540363175554497438153962359410920337245987809574328171006685462663648621290624286502553380758808937833775353444666547668079228669795397005764663816732556624725978236734112625499581930797103481815296884403674440283671676016933124858667322706144739979108672834979333205223716396446099393781703602254523376360994083756642353714104027149928112745310348043996995568037393147828659260449182029434477691277075564248681603911606604406481728460922867376749177094386184506752343647415852277831062134461478070539927441588759522682213775400410052583987340596224211331489427874776536633285274706806672284079890771525942292336876095176873354854656794989999079616121230241818731377368557841724090151544681415444280375140065498831331137917964217549056230998638496956852121532623982938583565497842320999169793835897606696098030554476151211993922706427330369476383068639371661782116645765641315381898676797305508706146104386637642030956547884520228487958031373555278560248591180533488039603375055018523301133757005457306741246589536202470004099337143258252101696446526007402663905239116269762121587912454482732905713809294683921812997574158849580166577289734441265645416415726993409771998567982923499368237680886516285969523309419520291785359125447518152050812535555843090479783377022215055245251351363119976669624024485497069187371196968729366969774601688766673342112733755308105326543106341503664884428801285762290785143002544029391248748650758787634866931263581266824782826711437388299100851777934563153453825123993263831473449195886220674256118390502965131377489725229245255135354996779717271156567134889786069980527485568561682764659645664860836461030900265998276680008505909980323166933036799706255141621764992087450840367189659535227480214317563873444107514507724151313217674335147239342303510872911504450185689641723266739629148070310849379357261103728492068594921767904292280951451539255225544047335212990850335550398178951217661508939066737451633237849641316120610040098913191808550422971975128600370880056735844134427035276381123779192404063863350056175308657003127322681039627320774601446108498162058091368362894950533230151250197243245948893704268914082163617535350548827848657545756690307883602866847128453751272119496139725382530738064884539648702729354572989747593583791638841337728683784587956208185171776090029475915617988071702813604988951720184460478537552267644952289523854309173675100043227457321695568481639814171547491769575179699587485775868131410913282219116417717654275122474100556854782231954410719366216748404698451195551889379673836183483784262475567503357308630567281005507214007410055680317298982681213316204711068463710647645595019044416034548989843142692624493847496180766595148095271026443574967172236016488213486666425954867026004604398164130245585579920885453558728240799822816430087500691035391347571301850377148269957312709104142788721604608361935181768013836595558522140361925008929470699416601418370528139670103294171185643991000361991352048934084940881725834583292717460732662058063576189699092769920660049812024897743749047069343043446932848023285643292949787552254009361878318959228408566004851610587899830746109098289024363065166013012639534947529791676793061812345014175707912349740998069821527488056912339060843155703141536159134629150979966237536668769921461440226611706157667776557233485589251267014619948908387491068235930834106247350735325423946060192321597788056275868047427122797900249356630541743729095946159528176866010213871432336373186300666267020516112270743343198272628801175283248338659405007536989348621362274840502004819594543111240101139097991216397616638519887726110496703657548563770145296119355726498085209596309502485712950739263295239958908176713806918343967073144370603756441176894181412387671755485003125346275155879210052847360735905201256135706544489420427928587456077082700199095243090726762383503703348878671912247417284921793143025012382931425325766553441074342162624756503995340856787842855111694566647234430894283971766592077492358496673271257250425619162669169594451780841221070787753664124075762034653001402897805440978176205906096580845705608643975301357377915917977599234646296395599573252379463191080521409133408176762427544902430642118691725392753376161018279886051679076431610739366676031061502605869439124286070966489690569620180340792012700904285711294314500684865563351111838669003813851072013824505062543918133056692826578818349329540108581480713770985212740073663073254752372449031204905207031958720741312375909163458258992668078680111866872937925677540971007275095420346454273732531040041893035735726029630921564272661713637486447570012914062293873636616215816873306147664995704361075255581481692828689927262772967071241990881753317973730294370932479253857027950499550338981838006518504492633907630062117962845012031867970496644639624262621541470748741342282268495770766484836956343833787193298976404644015247847204182549114814990509203487711783967207545900398672332314820237301273031466700852920612045544825693619431248775312799095316574086074580577604937816879307061906017017660042337588905783597053699747815525600423369869334002875229103346937218181683205298948617843459074872242630005301901493369932535681226803366656739666753449947235395141573393866562067998066557362902323793748401908614691523574476428707260992131103989511717038187052747010574297028946534901672983787056253853141575691142812930921233236609979143618115376189686864427104306325848566149638176495215506978228998428285557660989189538362678688852095033552268347332191386369293098262265036052267604983537391882345071282027540377662483591565435088175146520505959978135114640776424693627218709425435504169788473323161147202616727342212337180588745871862962429961374656383566496846923724570933415020954639619508932354338739169960123222659966172513691859411813472622923031491110416298443718538738431167687113407956037976120611000979936028964632244968317133499128375764720273556534937545568539167989906297501719816933999012202895714432199294907138425850883877961184669305266775732417026779901101802051859509593446500487508314541146479221520563453613965900360643697929807411329373804820842399500985689710315671272450276143245640850314710549562495702737448724687701855141454907029410044517113825077871942962856334398089886100056733278664338836980265944724078886174879411784106976223380658621301345524459527380546813096054933700162626254647506915151415098980100481801810401354340732554075104452320356687354412725388208553883373091155589021864571751848337155570407492611117396676218302023909222210986446208165893475602696043015636879158829024201433764886130075413677667194990961791006551752142689887692726303929194461260069885024264640764558645834332813896488527794906476057462535739342666141492542616642696198160908850337319626765761374530512778217009338012927504993672594607870990435437062197970193553730671158456125316263548114238737621464340042318947885208923920801124563445941968699092397938653033442629346065386308503840167158192696126318282248424104086050407518083413335448416484432763396425699693384427414055211945485676199074536139894621503850071205243726482429978727966132971898585752192862031593802740157022933920190919074507077498738916488892445063458328439045233718088759238515813835390682400837732047876755206806193042322295715567172243748853339618629420044254879992401234052435638895697412974266893179127622788987269057421112407611107054879101946217165828025672348877811211157960035435902184924501977833297573858719593077773365347006939297478284265582622789286099492169892486540978692307664238818934257454863053291152357762312647065434475341709788008105656200460617205686531576586930836612032747323167691980043500478771049181320030075208006744408340721015086853359066555010280010226005136468794941338518747976244605396774149168868390338681988868812306082335822010982390546556344796946420317143113118702745305454119855008730529724812262547230143795819968797481615490470492226268827099617873411746618164082573420655491030764589906664766441035453648085984641729023484603188418372744492643724451482583610970100999619891202179451600787168660896659102445915848222466257904214599215577717411768960169776259534855003399816490126991822050783791980554481447536036060025954856166207227139370730767180265481497717945332182282258354463635218572975875286958972333396269214374790829293352450475016188761107505160764650591807468727138431039612412501303293548746822268574451954653951252206345403039590963499009184316819251808567852521695711170842887305737052328182954565144178257175863373854007567450232052197287278099027570991252117798732887968362943261631831827292856277353293949063134279527964228387222133569011657344677055198400652229807317052547503813723691437493940284360806923444130118949955041759420006111775073411711054358546356421365787908715467210574227949370304173474507962995361318130742715575234721833781617315673646019871839598935849902481488023085852790466100832756199936109787550056599592706568174810387522604239699664813879193918540485886484124523368687120326631388417560322887688917886373870076177751532721938585910723769175200142421684766173047643613787782409505855602643399139962404495943323921506716289864205677789616990719978009343445175368710749575490954621674969941646362598393398466280475711979856580927308135868484865376838236844137252890338336636563994720900250293178284234413580215225871103432816291106469202020749540843177983224948864716874400774896734190277962157186367508799104782729229077228970652311277477814603975558812982219726194451938332721285193595332564605381890872923299274870545247875646143219679440363637701507664058847214209117042636716329092898720951387159385279935035658605406447421700660562487502601939316704088103597492514496107628661176691499645374875455231507397927796562608632983558191860703305558323151254757849048060571520368859577328512305285691293610161112412624297270318256366266214464110550465368413194934142697283947302111174515230117440789057608836536518612262003122715818816213891847124918403561394681052711756412980504733356881544049200541105802153257921580598000430877225402906701046903748213361319050905279233321947510356599836202159939931379536278234787055254017546975201685085047014973669001686114606937296623874306897968380941481938020453624580531987375719147954803161588739484566052303563638183571603202607685074561384952045189911327962884407591238731811871384552265879239984563785571829124232785386988450744757707981674149407803557309628832229314954805046518235502936199504311566720207096976369675916043830937919075835073522659063759276700152213082211466218206244206756873964993589176678058588495371846020180933843116492841657131554337650845442889913569192240334211461016374798066393342816103558530919578351978440683646265437973537525271074077845282573428863216069351353233697418304499252612426439631826977901720157972331512560448901036361873874234915812942813194104361472650851213521415390147107456984982706972796131251162050437652604295221285182482712803173240458848358502679522720794328638903055363924792894326852639889666350778093088765901508995534844926436628630289194565727959289214102879918327003736940032918247738207426651223764182146850290557928743345796981506399848055908423945595094730177821792807534597411911297742186010599262694440426072550533198101318106365585595501695273413922539329342477979882127346798256333144360090123493618184619717178658892196655121132791980061148584872419393913487266142615154486198783101276855792529842313831240484212783232815496738999894280569691315179606778753644324771182061728593483031011638330861145515619020831522314410855311242797651049612120517577935964494400254281460712660380773909809130958621280798175822044119612195802813966186070578596068924256432630724146403777317289576429568109534825995066961945378927982265029568059119309349986354884318668797038244849968055316713431584151569744719429618575169789101633099805885889536992747320221912574836113008367921696623213965551324198347401410566001367237615251625842628886500920207218439126545360620443817900759586724359989517377391241633692749335442840883217533213696135545479580506118582978178593218556274911428487994454038863082407137128793605998731166380331329628458672165319712909516216999750818038914228835882274750627604622458522846480641595169532878288044875199431105744383359290675236357424470453206818172661313137540185326611928996017354893032295327783121332891748463607833557033973415616321529273846925218142889754373008510118168853230369143277275077051353976346991334038779468718328211639949500260388764941524723337151752657598911609918356729152848159349627799637340923494001606340020244595297045029932743825657100283880628359361566060904544980159160097724741402782967089899988843887583775416143273229669016840205549580151067699597721800016725143764313749289234540116920014114019771214784795637110399587762588416398023233405908200848794175947142436094454788131897001740697145376616565544358631988820022582286486479317037605515967749985853307255359497735930583324982066358582319581976779032444887110128613034926693731456318911402197263890940625426708892799701285436188810135187597489273111576489136990602441043054888826022481301963511829492999748740701249665283770628859643720087436979537427571984286653640914611511904015631405910166150678605485045093883382585036053401723065590107020779471851584863027712124545855440572151788698963548808274100471775293535929331489480126120537592055304531670263656232949528177522991164488421791195538516550199960693801494410536918401012831094026421722521386824049156109339224491214221855614267006365259257522699006286244175432422018290454387575732427289845747303114416117496253398230284419341120068382610507577662195927614926412796835936422318573415868994651111155613177063390042528075389762238803159350913618204210779081472488299165958827262768241331573264859406230567702681974211776922856960315674960614212471295657745847167257215758091700539455050263222381962245638235593017857561579308756043064187228711197972965198477512666079044804846818084324414093189800345275250270988014425861441104177422527519788265889632613176659815112340037769001885725891746044991024035681293449852719755820466039233256250234077592389123221635194445569043090074018859771430067723420565493025669387651737813283615287366020320796328389499377154345789663166103917316129127022551651205714408529188367633486971247423349471758156064545112049855508531243617494189545077548101343803992972509064646633655587256405362761242954415608462844938298500170041642478694054212771936321235437026638046838987134006933739595543549976343305272977522815639408280141405422167548120395953086596341204659693516303462851942498507216831781725793753750167297845213435716254806126223136048872241052358242823148967949583536336292609515075131612427767403483715112086585263884723508851099031539659853737095741777968209187935128553487988242815869373191310517312362149361714541482469487268078469779182516063465862019490218797523547590964145912084367498121600123699753017358015482588310766707320611339423966720067241002372867933633149096314357104671610295027910409937555523120643684653188802957168185388759177415543047678393087537279336766755816545689769755863178720263930262861843298156690583387328981544240552261909420286070674462815254160104921601288854735421025885214795777440692447431466712068121839139528203726761135609499734329286067911866633095900974590208207955421948348603300979450121271120529825851720010867968622237709369971662340206038655199867518035266405220825480212117422650052541726861571082896090314147306495994088574614785572487853176978159657751988073547609650615077038591916566743541411337468509723678121051999290661063235514942151883972885985331033000696665705817281711817270758530323860212637702269914677783603825735854465400899444246198165421601800702745990977432403790412213175734947780416411053422853608329126850150241793358313617998122747987922318122915098321885719029599677457850213054243601690244098099411127686822383928433411467988968933525189796541746190992246495740819285831553395614880286611179865723705885035313189703554618046025678972298393053329553037973490714270251586326180103557828467208227592408906982191316375044386240642916300298647969243201766093059241798041764831859761103959257495108267757629507341620258987392110190874039371936764544576743936806820764223662263585826806986992654486646949615495698054927625773078733517278737826885498885474587421196378059115993185291031660122587281981072767629557412465871675176793016676500561710003632234505996343095970958579557444556288876128269975682657251214136733060837161441621455365102075573690163308773128287053220244066430765575182441449721311895224320344966617687612012358857548094809649680191270339483482539653568507788289011182515999520126309293483869469454361261525529029853627749176235447851569550207384773924520201752134993456864013310222419427117166079744535197416789729250677271884679702209776171778368812279555685653165757862515573618757202502728220127348200505661035517004676702587867546311493293026982007449496066902808374875296603421450378576493547582739596939888029903109398407885821957056820970742543203085996600146471279724085821181655627586044192294746774417988127896335504274734032308131032548644508578322935737604033609300478834821174282737215567808861691821445255032336393450052597668878889237492355707274469425786187739359056127338816031090581209636597175655049032197715069537513929699647209456739041549014156709056061959599915583652245676301283582093367450665621983019438207055641221596849403299692570848469344988392050582672903756519395319634281896203734664881265390663329344808623701087297982738328250681484521360395560992287936214871310715033824940585925101365172105044824130083112092327309491694727744345619470891237115597237599921805584176423644763005492940406018950453914523379676103979257900208702477619915305608496586393168088396364851134036829121571136100333808155016045702833099315630373526568398000581801193399639825398781366780643495175310830365720591445906016118796750372513166367506476917460049648508604813749571595791492043864537217322668254748855051481800057919868995073883729628557583236595432905435169326724821468376988457008967488232482539030560370242399434632098222667542875174157847442571261255236431596784402859232090038075068495731094910879885388712580540892593377506452332436406628466248018620021181732706021186018667438723218209995940315935154077562566042015609017062220509837563980409242594995696944650828101109451925555256753606666089224630209104810293120641143642626621559873083127499309630737586792019363004419034538309408418734730138785167665665059163603370199857462716220742691287285510693567519462190363422239214258947241998882467910703349059590215776567435758347530149119210499795183800360003485049507639063895035333848807229387959527048307967603515596169586749021283802196788973070298471792671173379468844869391549320546771054494250876031228102703936174414821538037099293163605944640613108669482166747056368747402745142205436025561137515542804682105377795424004667766092002055045565789985567824356360381964455661427828263060449890582473215100939276591498505227928412013537543178002835337208316856455459588404881573678623647964338203052691940099928305905729305245261944450957009017618130607308232944176492121078193612623573331366394336783265149898211473997542582458658911899035355963506852961602366097406575917877231438237152898460545246237940305273335668964858104615780252722331760167441328639322961495580598291364247608993977158567277013779084407198778484496732686979439281035608005401919209542546373010605456624907978970039683163243724256005334376108379105820337008182561415991169133691613378387423570646926260891779096306093990124466007941546724874630877316899874396228652680567552851316923491828349243841799449797025275271371214862000445731161198253751462590420924460302384563982264687982209860212742256528472181501835232490952145217704145930808353190179233696784778409339040719970965469110443336614692259855449977308131402411468863935052497651296429694171205754943979147100851489971056534641530306688538065088743505387025651440404477149924346001585718047903091478590782154282291193754975688811409201538441145336752825690626446477958999829416733474687112560868239067440310243458526429281206841685482045278752203504156079212998308111489265748494314193184175717852066285282923087588833529280826755265683047819985578468617840920687634670139300488308538470181911454547346840053026753492570126664127673208386273693321692383427034880371541921454572133279174678932968845756746964563059344747150035212825596313738001898888650875901538953106939616347211622997164197991720263612589836587611398820016362071369044250301538600645719137880203674945523739681011884312135676686101283065319285956885908847877379127311811544052220116415579761170616964241999145118452269191738314606712413161517276037075307572631435991948155743696649415015130206865243509049077215061704081656226699236918325585234278923908083764421587855998207764268045603799926542354799665610289791623716221429409034302517702063012268605822682313792169638706436489382453108481936171715585103096140765784226373880452558594427737759011915276026660974982241376946799662579834849188083033971042207057701079131318907788282484286722832275256728033619580911481901296483987541197732995665300592349908669923725909100172743394504143059421290128924362982248208877635800105343438052140548237432139302820824863377256077048834252651973846596647570345546002633433678714106148105081373219885642973734248570421483120655311299265687679578210193541670122714259069179028556986641196229412561028010906725069663832576068482390607161610816042184532582781075034151390741624036358746129517016850973288494269066682252968769055286956367206840193059574881126220255437169144581547378318587253783176474200602622866055050860531950775836700846737524111712490033587953035269972840578417250957733194111684731133338761501191722213164907010442816188281921173794876225960727046558080073478166041569160677451727554279400599011685420335388225471707287077690909228663684536555165592837892086118493892227028042881423923519004202926031542449459305736923143660272733574185480721527816137573476605608155679588179455128390016226659391978132711209735548383526832514479872500657471063424596271549984056404338772111909392221223136680283488711412487134429903358450600920459279709753899500159093988147531440403835757718872658992343328440852498762653616144914545554475986547199475683950538642169346211413715713010655457864895920987243201578374803361860908956553296504976460338827399187474796160867928078921951906526273235110997749175349583525781488260475821863877578893860221509309918453964940636566319168085392562293830736702752075104521479448092633558796475439632376529014593529429794434710579415183590072545972196067067616863509276500531105561370875429349364293336591445457445489124068022604741844069097097249277835445130161002356405256691104901670405160890867304721153313282152252418923933253502912294347968338922678490155343069086999365666423266372125575812549112368524840446050893642075757800888680086527668986256221058981611736835001968037283601977672926014248847146670003930445632371230942661874259109623923241510046893820796443692482799484601729611151471943666923278147876524012504836196944792917316480788396155008405130509451523447022773827033097708937805059280104892873923059675876255392721584995942775357194152180519683520901167850878779937876512048354715103396065210337379882531368458276890718529827934294884149943469072843675305504061441349229215009836862961636496039163685252942217496971759369456046545812145077873301620859256732308374838216056483865138292177154298773551155340568112354901344506971535193980576329134318192351357219487297305617185895409166481152182842983632905107403240100005309025304189867801681466763231310686874997773311225669059361449283790045126737090768951935675260631044568130110151435702491802815679755427277616445529717667924729460209308861235311081684017784205134102092376156029941745482824568573785946689372084387416129059542170934277585247034252707013860546369535457177711865900535177202286724995119010048563754214783034710402564914259271499604487725790942826680040235815507509152392740122590445300229985398783132036871619144301202177294332205229244292890086890722442881959691564022472597477398649106371817890787947526449678600458127632616760132141330840027983165770444722069335809390048575733100765613211768205227940829310554321158181492246608052388736985585626780992872090242496807814194351696665626113977033493456295962747511087240057204554524571313831118510011764328043555988241213383588642659143567938249759176194518230601907777306706230335296778407914042483363875792415415997123216835271492254661679009318629400139523340879357105744764254552438847171311893550392314215416668311594833069054145720882912067090003999032276291200134656734934554725665335113092995540797313058521691477524491666620852493551256915843907605490965997490930290922452869490971814425545635271425710980090943128132262063288306885138967509742238439303152254334375030583177457097125593103961543534677346855542929892774511764709865463753989940676719483795312278491165761797522103151360785920578973707111597949904483203494102700878850513222023575015995004052738675872241192840229451808603165296337888334544739973006031713409225150632484820156204486355260909127269537366617038750498156644530789233959412264370514447954710606125856707355054097942223857981376596049861731416823475058565782822687841460856606274670914757082971814775952595540643840682323724891358751675207696022176519355111243314695993013531348093051759493959039549462078153597087987079269018945455756219377133337689237699868991416353235696685767421421874800181954970759873874038921698161116701458395650916399292756825458579012703551803139133290383353163413855976167650000684504449946009995048344428805996921449887272916597589120909786346093198037976320175221056465263251670209880594862547110980129074230225944362391388609469815612419877799253305872065173301670621162762245769628375268943292613061329629304855120866622796151350661857296143840490578884648086972235973286837591615216324542418064004269356907277520452881264684688911841758846961952060041200581016260493205541722844917197581079800775813689388404431517446999340205114989376867218842830909907382585224052625399016735907403308123438960547303426144566815865646660100216033056798514875225742551784325732745372834662093552810207741544125333153305534631721815416351005375003205967290240986990216951546801649958170273048969669178077534601055055329183623272311935013223030669980651330044265749722670798373044289747003241572261169529787539119928983982614086535818491323301432983251338024554611399554913828085030007246930326420669786868491033198422399570781005927872217089202561058889914777417111720230737160249562103562587075331549781563591568756936563335387660869877904499415278310523245721999718860828339440039700451587003111823138029561198090224854596244922543056086122814805001313586809358938440409118302465640493110767171866651940428509382969423533932646865738761271443687106886276673856245462558429169050082439003699666510706985236451918913742746452219560556203055769854742988195430386225109169582272686357334801709653514590299675708225711698060593231912799498263815893907974143219377547557378479775639279366340716013815966073159839618753893368894312068724404197409736431989301931129750400807667966338917657965346674621133127492494082461931720604901967230661288486877238884108187153261345963750187497675052672245022791107543950863055303198402734416473501210481974104461996732486375522103392078443964886148958646444749375476570774197312427738726227730380608068996461602710413211074209559993022811332548903132567376467311763425000782041436922308270442734234571620410989912670278272639971723908441125633818415765139626281153518640289484741083560178868030453869256099916574693141860548654157938014093801097628537113368750777983516111264107410422621722861979726009009621484217187321951344578796105699516981258904600211691164193917770904700954781168935321518142070061861157990849608570286785850294577617600056486946296257696016964615836159985227844047160740516349783942925430782862231951868204233401694995111945021779535043638243572988453261108260487239010450963322634802805006909840330916956017878360229822158678327149843003115640430124444764745805340445820487207431949957094695574101168576081198941947320038411371425846996405964325934622105739708589752052595323983061699744350608185262338591905827713557327185275292557014137839722910751157705557525459334967259203430989709382968607548862052309030692940096348154305984218926592638420643227555200597483349725744618824293242976143500703309128640322243951708724537318421143100327397305751214697807682208207948007327310165418321151227587609730684911863682306129199667817639458963011728871931721882714125753629735347031966548195680119292235541948888305232616636440835684802596925011342098122761821593810619699385533712259727994526082495807712507569861111964343536505726274340497173662442404315838690821492330551409072285170193223339521069829856119273631739362224316630003089052806988870542416848913955242515304948799509674618964108492156372040620337877860360434423875781093774058432587047273473321424108733387437436088829023814475576534349121393634552517300475588464574855316896522513539713153119913034803356492232527345518978886036738442329450305857036798319311638358231260717629518706609200852185480622697223359389834724558835326463190509315774748701403796756971632325196474459091042809058358973831010715577740521001050345766982873297026938431984265432514500310291044715131488708445380787886303258941852755944017970012133213267048433678116801566369766753669276911428476088021516297711147187102054717946626821455772046422255954004484841509709874735330771615646476226245874790422389145645925574333374378492445145199359384572580221579676742948495295450527685435331111704787836654142220566615149983595925534143303545584476543882462798074386423740055581808145735481014902140534689623157104645535918526799350360218668244902708083317994049981633090368085095891621279494837133016653940918261437146573079143536122438335507653241167176507364419925359105455931124104230776669588893433370018512343939994478345888375938743266718522334697568691049450323083586153844416126123539684174976197812941752904326564577971939415763340445846525083742300057405483456815306604007967376363386936657972329350970556694113558615526888052566161585323916670193362119620667817568296847151656733977361154519875622408736735461397366172631617408238551604444358140675693280328065981170567235867252727973412402213244881540162993147264048933218893268771229033986662959727975009767728687526762711985179151788351037709771764627831292582709211744392557660419234389724624366485393804893804425365531161003090290427784924955753360647907832624213724286059885898086989066427851043050321263729548029186609626625167283125800432603761940939527473693078723217345180121071677949178765854427698410324926023080623334567103895809642966447911319201701424415853067451674365590740615114472521184810569786604107205516715439176215058065876118878233378455943598192395896066512126831706875412044636885718545157696068045656309132518421193666966262521550582974713031285412134247403184377922521501406885124648723932881218307361932385650319491167818245727540196951734030831730856534557861301917944547077824285796770710828678844072168612817826690623842015872413734664268643446735691692445244760690072521761230160274639579289799395166098568665318384708185591986440671238534272120094304131570775636838099019756233434401099973513065087741603783663750693762029702850033633689735892638975281046171448089297210148026956288661952696001545649227371522985262451971761841216874248368362245599750400430838222990139132820709210102376381866876381742637666236796504450463655915820076726061468318525113304305531732739110663263797360557839572192969088184069512869032243817175662196589362342118298176910999936319670408732835057176222340818273289051043070026659608338747100690350133857203900823925314099335534085804699994069918429792068105362774074638481369633913192076790155494380634320801699882881842426438628917578989474653167250046315432935738007976800459398090343277881907503691178434051975423177366967244023295296345331060863759618879385073504469911839979067777382937349472598026214447918938958938761280248720988432241578618808100120946975138703356146473795566813482611956371472425907864124584351581707256324527458958974840306383678162430302098615938719052786051283668918645424023695373485481281568326138337958255436615801608642220212284448661110033432279799389430156149967358959456399997347339764769395034730070462377858409002654406021205278033255018950827727649322799916412055378888286866534750806488506604848707459148785376514947333329660769338584693182088618521156867826618235294270422453220755202625464938442214777643813901629302162202925456140983094262388960347325209064698091643023752586826685124263262433708423507992529939264579332778088150680272442691234545601879676234522098228963084673418959338631671910731211259456855253765846042309585924319327242965845879508667093433811800369454750021392000608609447683931435640621112121891356003039552901514012885215828715254660352287408639434482350599732165819615609677369818303500707931354037202848504509048463818285632384585145450340150333477991371300091658415116441017953863693018656141798815088381913548684344685757434366348945812151626465282016851876466100124104722903079145055619227321273498138391824562652941212194214368101148414546842876656982238544866049071877478569030665259865293373182959167025266221316208432387594817689200942086001032615034546286284883653295289940696408307309952613559470431311339275484523081879840640175668922253858933763238242077580699099102514225351874180423640827065264213358944367347424655780910662145436448422804906504602458276829213393920400021392009112091533035326289853205170330714654766099976339279848302529147400836844933799995264917240490470178422974196862087315489206973116918242873799326059795656251831482628839947211410097767857452743037233605369653369696041573558493938539721709382676828138793658147994248481171864134572009958763429567612273171901119884808300616067617664558221272960098914679714686719186544927355313041125957116988331274087131190887300050474373314036659636991487229802386510284488509663450615842162998325112664920341399116960460508468555523500261875591670519396540989322535485223694799829790376678397095239034581391191718311794270108286574842662251284333437738499615320299741338839458550045776741156788029768089908499950827151063917543523356363335095375907672584950358445214951028919662182370272162740601432175599543024726773228006482338121981201025802173369216597154315107498102117232733154674042090256891570504748379573703682550775772154709136696099923962980652934597520219628092736471886334964962801412589698823085634095530186127970619356738904373127222336744227969295473999524226411221709834706845355090948282510637334533868321468874498493200910312934349581792138522524525080243043713901540959949675438778505107075165977521950640255641778118346585434554163335950271686768279408730626881469006170043656033253031881893784503312251192544574032898147639032828843321484888430012763007757748834998235257536897539474730756145364932018549773313412252790808313455127509213348242032968790040112041531919529560041535025744962025120139368012150233123725268570497221376134633665785246924941291453953669236672887701179472744840077901642536929185809804768661051893489256748261870211332793701070872668218690338804092305013003667638856738825533279333525320260460433698693434411566972898869085401053300861802935307456934550043722018745979942108287655416830517398075664545634790091871310411919789303608766488600208623323758920655429008535953470904548064315374105400095130388829480556506736029742000955200831283696372758831883136994008679807991157225537648921007991432174236383369745821382589135808811134704181137077818361823269510823547355719601737498902579307387091992945231329631810338055794288494759088040896040872766443117129577729988348235167160497341219995080283750611571833448742062962654723593307726836186527965658424482710617649156644875629135888545789174194445132322354686792924108876350195952251708812010883903183274924745261828985109696393713992178208974465735178308846574586676175241320010176998077704130425485230398685618673623327411125776656913815024517374689360817915726286426790132409494542713607158363251455848101863096405878639822974951316479141709121425851384562853192297061843104495694867492067922267048056863920790986186227170579552204300308879291857989252709300038529379886731987003905525587885244483779791024616649220749516437579845409230804649335652863365661816403534267175821974408385190973099814889878782430388463194031707437781785994589457436774806597774715920071984661337328866532110865463406290566342406405238936972599621094092588592708064013319227148441063019240256765948787585774472051886222779835151854161985632703706643264054734060055442341608750946737525463758168337206874462798075413505729224911302507550961070255036228221151046696300296152802532984882712930618844335068588615972368348141361324537782294511221336337545635793798771384286086254331632842729393857537077720120314855228688182377610667573567576499017519014680954839527649873560889131579806542581026938964636289022049781420477644729664756934143079699628821820904792088833929563173908803522608000264414269700675419308418639621045153527620438534806932482996580792611473682808801739624721814194686551214521496641988980231709447064311035538789324624490864237309030947902980311839889579076673343193378653180506745606924807169764046263198482078658435803202526459976122947792106124693188250115663308448638719119264011427234220287949182317836301974230527068426189725655517595491840989288793152501698388833078400846569097153365461447612599895010872154160123589449795075940443419411988586361287530826979290621594311090685374974552744454270057952897885130805165477769065033842601696131144909940732392729363679272926614787425308568996491779211321242861433686863398578593118140123653672250343869131840011773817527401858052869595032165400137844525921040539335082870372571203548612832912672517970967761510794462672989186905192000615167739944116004105569410853638961943178750848095476559831626020109934358849854523454651290653246388124110940288465863614109676880377111529731495446710957984065235333629009821515129951879816580428219783635702366662747629381862423453615428825857616390174716465333847680955235160038785759654836311611120218117240053550464805131250033636973712888406821076568058813628840137890756315971569648230065757951545758248240197248208828908654156971764162470692146640026469026174193950456297222672031667663004296101560711662919985386175429973828432415938474975964239759966994261182985942367724014829433897824728909172604149595677411176401969909196531136391018085138626812616559231999696068425516211796440411831339470527215140606052547965728467482866595190230570089120788211268537323975970121034796905375223861398293616835751515609643011852059477636801611740317770422388162390051415330335667999929262535918744306943016613815731679032641722438755078645922870213939147474733905438618446362995806394442252506488067665684464624380322028026999666281802356843511529354097405570344937987053549689968679748188801283216200159920919043096985009438362725700654805697229133431198579533445399400702377290676016422804354392526071585677816722319249579627068769935475240491473258322335587710530234089900419309668853971417022910656132783975185499371789809594875349706617137436039829300055502527926520359525910477469648274918887484099131691550539561178310928578308732378000687399972059734521808954676625142057792360206692741847373386964244340230750409106900493334585904599924596753824597112400215698839129215776273370436264827467402899899175318906595799821378840246306434715708767173941589939978904480636830249354161781205910070691398015433970919871990085656914696418225918873017076377496473768320818266230139265985302730484540089256867813604873668669646458572638338506037368647885458419694332919212216311959065590085701356655273296249958634062398412623054757785798292987282006434785244396920855068061910648753576212854890797353317472231628218092490964396652557350399800837099697703486454467452565826154867637018141651769421478578841310271374771200583253256761911476762218450821859551973488123359388266356801942192439526734314739575340483612339801177464920101878299119214163545560525678332892519976088504251816749494324493025921005578865647601384096765450494831800955260344646559889543722841277218470661788449285718966724867605897949426861398217145904621105046792762783197856810792655190494631752554260630598591996304786780478929716778542263723644144472261592873058404293478916066777156876913945060563740912499949820209597729159868431185530962805749860264488697972934776532756869654477762796541513021039370665527317003825889994401730654148982361974806379174060009073328766145548329112378568277527128779116590008311829268473361356820622284363144320390811045153451837351271991206078989953233000094725769358312914423325720531588825350152584103047226281075084852351367036484461951320556507226408114763006216797088752683145016867526809393826953517654595879761229604311751973180935435174703105756256328787923551228686369668969850775917636005942284636897111432471322805356422407719921472503079578467571082088668712246410221668167318242369786307368803291621634565181555591297031221916168962875005856134238330895039956220552325587707705153790971340340984287445036258248839851074707560346447218948826215900547210393965414597816723719704668309511877588361456329962035421438255159873737289894909906981547707754015296192697948190568855749137069646041636817304813243044442234136132153012448908782311503032758695536692464953666953933492377229211937822173256512340906183698613521827314206796791342330722583711081058917648818321199849723617522494750899440740273510306528714260241048519569594050722223388333850887325570761114583216331835913282441369574453975478515058576215757181529461246399567574420442824862526610088865786591569606281781478257761967936709989595959740965064766834643362977027901358050314713850248074694921303119285384964241774225118041655267321201894777820805912665026089605368453149213924983512366746186333117865517090704699242448799297264490293638757756643099920519402814112144094696106012149128475775072998287679185692022858229288051071510816007705018754820967561760653972798491595932842230859980056739097698533305687819884403702121062754770063919139359258614925542891181652561846194514824642209302779030232947383586923065304893258452429027995179827266804085662171647395285412960825098261478975768120136041505776105368867094321486699826718824122263127047596404058291048213680660536962477330322612762775844944096556915029659520181916107082693630225685118595291074160441054541879409423461723228600448242503260285877122739719627294812265699156810357093185482525769388331719588060430103991274889089017592277481695161660592471453055093971090497888071995010278961497997943580714434829645340863669305667617888118895879085915489063487787108465600153918067182846742401432855850412424450049667896043777399998625178119261881787368704227273836298279028867336484769784885449165961027566709084115156203389690121608626953939671032599033668256928913358814965040334875997705349972767185548000671589659124644827863519538703036318696503291587872844295131487478323122744349144795723145485520506882530949319016696507703044872374546985823765011636960169131264269449372579206759992337118622120209118395987936969610405743678559482026585812645220778192812693807371661713576626299878763591156645970552880384954021241445269970956084344659821485192037616709466145816293682925651109590398429269755159605470880299737114170471048733024078595731958344474651220379216716276082653918224580229748628557954543387664637718799584830349838371300881995354475326856006913481273852172171908992831912947310390706044171106909676244791321866206321664647045198398834938274946663209154029888126958649579122686547935450206646566193056621864522177620849184377356854353655548388461661148229452309839519746341113276174168684384759303561799793673215061993984246397066107312841421767952636389400052036806008917422310153446904819521052922625441740187334020874650576952226873917509078462459425702556861674380979345451591869675399768568989781343802341221408286575561962723191679881222299040066633625934476776361882526776724980307048368056718527984399454520703593197190755396904086929766555846471771634204681216230895046522591806848565881670371334813903695925437751203090015986875601118276138404837524750201702865910421663831987406829606637663563932516148806671191067830079170165786822774370471223916780262921553968773248155531854540971777013501743514394216873044743847780336774968346812896577241995856109910579065887971966576213066225414580867768832462703840313847987343316334539846513740926055925155304842186573308553047364459996643259473430625942572811943753143408819696980519158331288867534628259066075406188781523002867388305062439756438066827517993605250837906924191591723711975982632506722596488228894333947078959815445262256281721391660053773689691010794604977253618781900996332362911438504939411659997856091561020657489416408046389513887699183417497557496398493152713560623978615105919527253977280353506670931690726074297176912383135027118570133561148615548696432026828865632484886564624473051584735701608151209962656786202953866952564190841225715196510700781276697212078381390923261401543557296058726844498388885458809092551526900836673435827242309450354908733600605027454817576119220811803254578325214244209264003530131825793897294640156688689507606965469701169530671883336755733092439820002524300517801396002244338038675296595333373408239275626623771558556086794738197034503420307102881790512123964073499151422447019589900048169797765338241010571787957038792637925120972289175132498199291194879573209966391808442110222073257795074590645816343133708550141834411946934944007952846793206335806743915722107854879095244068828073033154673225647427417717603977483647649505256424092265326190490004546872464253325621110818169730948507587918337616965096169002367027031732800359048656450356734126377215568132277295503435938944285013104061854074764005630795768160579111255046442211708459958234654080568120639088095916501140108696952598137284357244523504715475096407991088379438049431474814626657579949611596229768362264494431451370631382064669244029080783550733778844637383973388832561318890305179642118270311736803165182448615101343550176642164298826219411375168925653454855169338057720846317161239470054396646673633101476514053586509535962810989471350766558512411885823804662527934622532060123415718400961183515120732323398619138296355470942514276688215556678582500348185865915086504372102431621759792656652916625615806004732490259454674252644173327759206185994075568779366074001655669709095920078562405937560768216459659454213888861839485776092968908146287879132196618891379570278093383051850223748069518548917203387908335101524528131748705153924601216396434099799479313836568591881695482749558490929300039506925896415685487279533364369680948874196226071681708142681598506880307792552660608553499367888445899854681857348214827402535341717233950357552368050931234414419948186751041850524574559028329794379881065283822706694210827073868579165041793938339408294457932847847515759024115179654675318980654734050945735581804160459292081133977447090442752188321709261025459984006205764557359610033336560279520911416721401222775161383476178443086643870815026366480537905094245487141643607702007566305679208411351853377996203845019602537297006382967896670759932805859859638620617726581098972791829394083350134650925903439484517784490779212493052299268906616361728305342926776694869197955808202031997378100890223247850466993178347394349351457303592047159258150532748704753483727022589525827441729329199111305309234628608657182379539187208343698629129304461276554446454371123993843940239686474939627533930289458164392264130777205400486847977316062972329497993676846978729633915050519447359725950108845937628639467512455587220141354884200603204564188211382108031975424654098779488957558875625513453287359633978592111498877933704788225333858608448239529281073651824959615333983804349888213313414552865018761015380775954769916044141274277100597489551134895735799082610831861156841217657532947596591128313071461365228769581823234267660216042658632215250048887044546411814231165320531858944751445587431528043060913208168862165280287099079244267652298457295089308430135033599374353236402389972382203703116362429091357177209336088817281982819507600836062676418920598847009300919703353593940006944975467327969015310390166673217145742471533155704991553400613867528085205792158286129216068627163264775471407047998840557736338257774962498029261926891562478852003949389784918024381968472434858013437055526650627766868950834524724387613438759766218592094587052597638993554481082370991778760374473955364493696398456930164709786009596762319009193842023141558249186721349605989982433882156481934394323756732910244156555329992514131461945240253842525677515263629112808580984378525489014430917824722300237955101079678735578182209204768834936058994296491408539631767235086933152284611400126769124345148111551876017381953614362572970403135677243980482930878988150205580306271417255909490247498889890319972140305110896689742351582661628663550887510109284865063883292181650889333026604266944420754005927134135633377654627182326643047395996130155231776234046339711019327745550420667378378240078312941436576670884947460547987648866789418658811832415731629260927691187406819469308835843786848599793200269506182866202677003146902364867763640722292248455752078346985255409721019118241318914020938487893694143834850620268624238160169002034630727433191551746593250395243829923478747470188391216004762872323127056621194903967912656836237178674011165666868514985866887748591693114026193338782008980375455159610851940835262152994224562017768450277176822768096526949702440510691120142126628855350889641133557412113428111605725115547058401994184021783082851566828498670879535162587208367078117747665841560536954944702649283087320681090644531964840965073488415503529331778332065548353316859661115115063336956066104179225061967634599506931250631437345414838314910391612712277979600658018393460730298085570183156970282669526289464201369151933036082884216000311113177455055467697371848714293471455183701882068211676364778746235370199202718200210463236688606067898582682190380650420804299978221515733473027824458139833094729174994822086349260113729063815532559281376170028010130969889261166593192544367950096013098050504603307749334668552293294156373543933591128849407155842601340845665864366113271709813018747943689549420684140828257075988253312303060687358284865225139151433711127530278086291890982123452432369679033715705900891427408221884438148961385682725466378385068080769925459773181368361899833162188367419273396308170171504899315252331997881354297646583299767088148226764415613251499543195760343831223554975958065173416100460672172699761707452363712344820190981799864285930914235304167294935117321918250563019150576443022078096861992024473292628166294286687428702075223460093410086098373871657431841637775056253210582554269537104606714081287749359880116855420336851619195256823367302528692993859644834742068615944238864611942225274599092917878196957309332250828989501561491011005728788091406210394561478388958425995060111741418502876066175285892949662947159212133167904439710312918031435831035748027857586463412380481315359976191883709458490553429759069588670478382680832098612165263707899889382749295343224845370349718215693906857620690775390435830242813675348201113755550318674990931286681790358100286571314004926185122630971758153595143296498884535205008925425503479600440635866532211476049455127568583026421905176099670049458544358195671663992203228482376489207723849228942662441036925085114642396036053526576605570717896806153230713888194185936615640015285891631603200925644837076730632740584465943618395007723893672438611274765091855379156891841066647303568564586027847336557251855415652588783911461682295867390216281392613692557931823020146163138128261018174056873504327227197562503269220739499727040437056464048229860214513362388257974119602830357925390937721319829065564005726224289597053644767386995915714336951986134593483206971919488709355797951059404697340189633248690710106674496133656886231491547043831062310687845751039010838731376010501020626315173612995279772275411899180296842426913231589469732565541807939035348992675985520946508769838002020144347776553941514832034351331720434932742152176734618882921284356290039633712483298290708052290097714826312745989253193218003315956737387562707035116681794947993979056369408638784914116493619936522221823183626934487016908697633307274260913718233252424691989478910586560285632753492335569611730654310455785391908415119806170924962724675909783262721804347450715066547783290200440867852188846581418540237662982876232452102255842032933281447864666829859197721293232115564468505976502859225556331230722638183543978034080311963570092285267305328434849682447972928315663196218721642821113020987141737550639008533145044470882795679186943195401406463139124901916731054553908019259490520300046160564590078722694583635757169169195991188664724917855965640752118188347453648218924244796076064754418969016635559273322950994000833137974969496259794595378699951688330360487672315237162277279647013498026888571016770418204287522550227444253312422417493752007559901928004036603759245584145617451414929862250489539405949673894295410560818631394954720782105862480791534760382920713660458312836268021169733134094984637147711392689236223388173840182543996534939505801929781873012091122204117113815250561731725158759387698943038632865614540276677111479420244823302116258406059644931988007862678165014729413102340013829340321959718658896939230936861829310315176212733193806146393540443884128132498651878949812049049819339400632570052935107970128433173226728340203137664516972796502865447445579180089428046402289391884462432518058290592483146836192891936220056168157528419985282777473557629902507236830722457492983839874330573448743195884496940159780038219415074856900203663068041772057229231999469339725621181207464398285179361882788276647561026514787703193302993512819827174834805507655177785955814069251150389150008206113619515779035376011911137149443628420713435866788948131926452981454144578317761662439352172618144148129534370499844974419858694824825450191362077691120150696828139099939931809859427768894359017706681994199299412286986649323426745970263569298071896698031147239560906070017048711261668521385348836994679382423888539038758645418541271387534343637622644429741423740880076493741486030972707873866101315502393196063510327214289995104487008064841800095439600463072736498812750832629971644913875496599970621872242759938868688571269835854634092634549771319178874355659634206963936338360746879373467808337648824134185415782709075493329503779021008274562692425273303801405349856941257071455498030519234636790957855933700402640638776144139936266516886322931231124304601813527410094674109470578129486148286297599940391434460533646850347676153919542021197574910957836559323048017354746805019477870457329958971998866277744806835994983418432979177888959092207671277884874876341082293855344439058484493683046319378459065668112215446484865039871341462420837892157297264530880993315433008297004731771963472996490236065134321387650246691938797440910403369418998928408996790285154807504217038505137592064949474897867542087472676039251555460212497865290581337147407034846892012484683192273315209886751106823094049172172936255554120081162657294282899212273956461581354632957886551847469321253857722806566807185405499646827874549470385274977115527100846122504223899704414165087915378164965365852190974420901750840606136120253212087459037446259923796626127745019159560261161985287211721435410309507031502925070578161572706441346978612644002938480703934739836051356734228755437526819012342260869837271943977820853782839175518442263799366146300962856016221713114401269573828077655217817658792405873176995104103109577527480732642218277490570363639752181822780443752141254961915226268176747903030402574940631525438630348415479161016407189477648076336365331967527204437769768401056824913767724599108748300431798020310093523439605477782144978951749571706161435361349527577417214255592280343717162295128217149953510707878760456167449443558507999018850878837426309492859763082298912974185537020249564230786257168551795207413546280001169674271694748678206350653423732918795604442311424130877327281980019695405298842161803950547446218734243176806707339974617976944823898488722652278670222536393470485486024456380133266142072677236566942648324428446186406901692096108980960357481690350884683098838803691631402344977427602026766567385174310915276799511004993513282482309158544844236270732970087043857114772946972019546802237845174247369719096043082659064248806844924219152813193863784114547569214194534058621354896015687039754774679619748214563589620622066227335577751166893672655607529443517710512310960677091641267729846262905760014518706921260192684954381398744813554983263187161810830959433014746729532952860907759358152977891996027574865594968767865402055594778060469066135335841354250147911454169111464653652289866401787900786616447485602891419232621866760762671535146005474203150103098674639012325030248082745820709268147301758131522572873834613255080715628911926930152766809999319842553385227815901872545047077596052708572196657269589276761946407173930546931574793790681896423464407001422056225413130598303840564897508521441851599638691287977166513205408325707397984652701113215584824392712552276379796906964165071411305225182915000257966402530913296063398033341866785903963501248302600449983432718222079419987420152440427500890447271322297916395193288494399785623887686697438172571119999976408778069538769839415603771380482496670649453926508083615090129401831003237261342777672779949721234288097005997973424971627050199407616800142263245564654161298723693049613753309987998488145514660657268707296050393224887065918937267012721630024703232221861590868035781404755677957883427465962436788165111334753897665610577447296475862289880639303375962868766122145438793008330626855879884129245640717547478059342550040372029140184665061435999062637208634592836364668852262720071113196041992423692308878975394834401336998760469101029230928819409910363344479418831889288454824473578835356018002340301765970153122435150104136150021671073482097433125651671382735783344858476358164720534803622730766860661609613564874588558248902561079753491558854960083462423840155439584567098908353787305728101448759761214113314851270551744373413531306182582987428767448450813798322968498954480593082635921253013065032790520445242250110608998867575407939978065816967582790684744596302462233829601558746485204219521820654307795973484805360394378808505252203690175532164870762223663610696545728662527269921039261776839589311839537199063646177008496293926736960602532665969563708922056643471322655807009886169253450986076865103119960252201533052097557213316678613257153606770853357049425476487133676276266973746892565375939386934172917511579252675566855914868700673382760780380475320853923486086376577774964809057640817107513472921367454492989456389723496680144856962100344631698990463240898265428393734485591340393682011615596860009554748911625910621138911389016151194464158581801408130846703570933141544818135827828685853223566391380164871821253261297197401320634915867402419345415798955241544072946604131336867634030262740358315701413315582339434193770111536422804348089089820943325836748569133065912779162617739630812320941719623539747302521231183839862403519444856818979382830590534099678031036960537112363843502341157940450600572712459465475827065771524578099160107493221174879908524274782188441567138052402475334535663059010131653415457661296395835168287002221207342205443254631985362691368085645903184193343935856619677728207794442433549510867223955360880507574191723031733298142249938305881323673529129737158612544875086763792259593002033191591985021958826907352902925399089812774173842124430681077561541691230640760795900920997380591413706380437340919396789193490872738575467118071110276406812365765871989466027096213805049288819586453009966670703722374130506227970720227480597932720760770613859674817595933199547109286975778417101419360524361221299868332951615943989521828154405533978020400801662065314390883417229898467764247426936998642757898289226706677370622226070834823695562059477245946575345663988947548586565433654145892955214811710193307395265850843390935687728363173609601226453205776692133487565133384294419754671658133951864575986086226209812351801689222446394369171557801851037687087289961757534603167759480884073958365799968912624713856508908593806144746007333330199815324372261339758576225299952950212478920142410657151121182198831704557897595000773019106220660502643994959337034335750416284068557485011068670431032626601331869156461057309636549233390599102108169936556001702491818718189356089336513474489828628599702930411797920384108846640466685267058486588613114081162955793400838849973326046402806046094177860503276791472718054349082219598676669722927780282863302587254007182033074105928333029198341899149630868033030783632800351649374555216578207142171631762793034171562744808717066987055088209560564582053066464022909375736702924563159576848704096536286911902943598496023375698848950303253727678724738030475884985968978008788713345522999622259871724053554090407216567609313389933472415020545775933529078645519807269655558301400372729437508851946659220128987812268761105459629255398735582481016260715117871182487597432798118606240369428645423341162556393366497308102577629621640061272177164689727745957029846151157382085475899986456883127244527462279813270230637198921439419399884977232682583358049595446836608416335314700713135701085241515031575286645294878960142315651773060485572110346776846032136414647352381553984877547583025782167124209339368657896573625889422920096014561721952299211616735901654071680505140260833691150072301428971167171420918406665851000975423871943845731807120482234355685112222589679533966456366430808080607161644220401815718692103478569336098497512406499059188463373028277889140803237619807435306031407148377029515396632803979521035296303255657542376653029871250440868475538672456096520468107317214265308640206475179271850077505883914439148811678384935616982000432984490924544706387171980068660267396552814318180067953689448462272168607672774436225889554650146218776637029112882694713672359481217363417152234467167289803215275311424402236401505528710865501374468672191584740459285864537844730522649872964047115738451641917181435614667382648854565229557613167226994938630701226054629101081764256996904838808459694662525549599497582658530486933182471894314560348871123760731830178509088410885569819953245408312702640934155738577995445324580407558865479473845654971390436019539175584619093553256709009877574296529171647436442438460767212268338290178487804976991059189790924036782788818783853539544685304471057527123693816819056496588159165794379531035688934023251106427218358400459229959671601995241578235703386065292243891530528162598060743857401441122519680636035205494782571891189936479171985302504265081053004796553634717313629580600707613936079172461591584262469182707545496078408374237436909390891222093113460149616888794204669607997379569902095075295705746834395197518957481800776474688975270100060801210667362464224890432225672906369696052876532557337164936089042469337707206133949625345387870468048474902209709024724152033570522501721256666085854975643523373665731079671048172567321179367063368800358044629813352655805985132003497917977120716089081020771716203738455783188260094566398957330660294658927277473477766731003904684426187351426586096149233741813576521858303461348758979065451926161551846943603128628436288931438953270491626151474139376851194148736542593894522545276618744286090914389878230735826565479399686992987910668615663805336565476066221673181856081608718887009076047874801531133371149047292523180436187364524682079669332631314836472772279324358495361126072459993948121442529307007266473350422359085301601918743189767731944082960435085003589050639774372070357750281929246016644614810358241861985518590547866596742664156182131506333691548185119979905326834386469749184158466945090894503433778197935219049099954622807503690961848482172166257531125177617277276380329440761074620040149488836070242974304093932860919590271753722018355408823277600953027861316226017097890508357132243293951206419085282028034320214958296047339870747389963232011081201526163744279440995383281104927848480561556734080390972593288692380757760914184588914488049785712422753990436603455348264412756888104748544228852162370926006173517032083658004052901324367335016088146642404075380021751811376255439482677153033642015416982667751674166481297699990961019936760108507698288197145014311663172487346450564935948219154561356641208164865016110996842605080399679901666315279257221332118314269484727687792241449109020107560435768900296672812885588807307525004569048705383057266184695071816015090560364249472602100206882634554621693869496984278349896231760313236188697062816673324184531646455214444503474088486778916923539166189678841902484167553233776680362830387260947946047761353094472682904871806833456193222387897316070930136565534651058186728768623590454469102405739865984955622050886911472570254346986194896959909048041043363885672300720056771588216748848087802949792198927133553643018063213788544386210050004078082299039022244301246680458110172080549715844781488300530611502137768430857182982378176951654799857235695784184660256407209716632876729243080302630773092264669240535511845540911670926467178368850228854450503566688226476518393194933470122045722375274474065425072250882864575023654374820280150885435103684549491646301134081047011339044286364327462813024288854086160203421014312446820194021550494531626061575519081044048613468283755981158253599232090780180440171189773135530987573799204338661573165816553837046373318749169293742512328508121328254141788074763196538357132040415578108080674832257915079192224911093774044402346145264025949455888805696850313622733821861094292642317666138660100597198021365057551121139851451093090910313869098123658473768943015704519344685242484527547109365035961116927974166563412445197720683757677689285162751946439389690859583735015191702069124150699902927849426091230271987866782670178013996853536196615082244094547082916840050525965517019980866193944417947659047679463253661120953424494199809376842761680207855715453650181803494073458948751228163950561754158614221509790386096222922569402372541964447523407858467802406216603753290936468373298009801143836420756389739226893148115645024891664346686777929657301583197878428526873504782254666064383512459108065924436617623104901177903819509572286540164746805236206106748983732950782172818978923777822434094211901724440631234615073974530496772614384069541471603500570916808290426379004570728072648558934809286260003718390612124244720995984496960200931650243289170314769413070567351062404077181838909867458865668232645626165947398288232519786446950646731934575888830931576741061521733533710652325627052167308364303650908451543941056998254329156351297110593198384088507595275064318230569831804542953638447286690234913333257494102271116310420800502663821887403377912060987475830579544320456163810427421465738689675184992845984861929315007213112337980846668071957215039067767884628537682177920036518193494103897849206250641420097606541678611569109549155075610973522301742745135400338334611922150252392109986206733627598556521533196250371644468986876110408926535873089108472291863088949588841443658868431502756127286221160983927515668242585349150200337552089194387178097992183554496922598607682228052421843380953896648704700160294926684713154734474824242000057505629712496831852895462391166203790395611857373890425828148239392323429908962938875221964978202750406794599042998719074684728668867531392361200557552996507478314763417100494012448467253795412497299491734281015139403373369585603636746398707229153772060916492325913552368090214744036941821256501515619768044689700938974040321821234509913733876604956557640726954288102050311744585608190811786172933168600091402703757697989859403085379164188244917601861260088677485360254710115630676524899740890633340597859257300277749880075709507037380176677009927927856926724262421183925150906813171297579357883308958052359852240215072227101728449595709504981953296492093471802612903266053006107518740493009713390259594921733854521576055436581597530135691528232208387458056396116134000831494838248051538903581923058938761656188520503108792523169976089862935517162493239968015048749336319635215276636104131545028670319775946704854296776339448452406366429438977682657388902371910826460874880229115229935216744261328540136576221272709274353437821257718831658824305627885149234014915826191647499127793076845301801171058971201183023186276867527576738307829077140815879013842714296935263024875139897070901574914401820576340048513747227882701622494724442032434845038173341704920785195944594830216126238923055245379561512931064091255473461011588450477229838501773090072979957226137092574276694758097928617999589061688924253230095360833451089454850829537078633778027386216943620705753660465405779703399761218862743084740919725945918087270156799534661018409341443663658925201964706798116783974808588794763188704775199369640085138686887552352465578230893948003557499347419122598365283587371349236419296350837729811620096568248750205374046917681206439338522906314134371804877426374411152070023362935886412514102983452521274022513102492714971843312647929962261820497280756677049167740611380163861855937283980274816545371433709009629401171289251324205474199813891430511180832317647199312888025611844404877456510256294901946618781653169249421013255154696649245926294840071803288798730583390927330336870576141264280312566689577847070384223071605032054770804184224873842947910202239758689025891346111648863931996023168624829210769509293083649638572865037119294886455246928033517410145695710649392166073125480803124614583260699088675343149985830053359772597767888908965342422605246745919893065513428872202541150464144212415998351172742463312842664604729126474251734858360741276925567291234393888475331789667941713781991516935359186272680166588821568978577568849615379907793318267986609404484465619960688928935953862439548618413780354394557893530219387539319711511749891173004394552802445106890476215603712397540303784115497936623762460392368148873551366917636280152377151488055339085992864437894200433436192836392066095969190316634116706600575775014723090132459759272771586402574891480863083883286471361921412968967659520937173685200127911285345712560209919315399911490770662504718313699964906694542628065750176313580386487332260948747071638644242905822070573682641809311406325527334818341861399333972516099445080240597998063098551089708999484733179705804100797309511574948767505543345545954515166490724161567572480300892108670959902789431661636929257190938777344905365936296600982969568598487168708898259816087326347540504639759329692401479027634641856081221284018569951648437781542171291906448313919483233429558922796267548123490380250096686189584800544455949997953256402157007318990139886217104335224805209312211410252082868710900850004874321383872812550128543851312705692107107187963135586965955135374148028008112482598668391025118235612106336022475706648177867732431438242627802183864549231096691622799758066394487523735672807830605041806453669855548017165676283439161866901141941633456196608220435092512483139457108920908454921990509513393553990932945485773040910364090036960793980277371480745996948222128795518703772083617979564428489620139827273737410446020701305482791576154124976038415393152023985788845236327476893828496665107009441998569594361966997437461935255586211013945968004696282960123146704308873332448056548197346304410514347309333918068048898093331047768804518958362715721779132330276515232572985693140843552147360685131107486061103122246018405701393543457174213320325335276524290385208634118544831240685253119151671013685038733797346897788943303562726568443313814035958659353609265043813193338694337546508140979919215220438042867662543828499963117758441783960812489253913881213107752009232115448730343769803684203253490113981612943636117169275805597259538638974940233408230301351592080286296694062152661235236858759938776270411098702096536960195324188223317721641460938423036277588222514436128417587914925251219834185485325705842366306268805305293551608222711940761011799974379637196626525108303887887677898063482594305670983181697130787983749713516080943181299982879572271075783708870728535891904932838942448567226515439544455822410150714352971902099533525148152105816294229400569856965473598277249262110820598701975620556879542106626573803242328923692519494806578007301053082060602776089431241322720180090538115829164005759206237646990294182528324764236201881696771405847800696208764737008571587236254065926435549508854621123358672215130161686756900573207998537595596235868444712717809286363326050703810739411841322166359560712625134155288819863751301479489796395114938961317568867529662089489178003854409323038617232259227782107308413382592273455124476002458230324439234825422956144807833204634569335376275817746260894459772660144673004045528640255852237057553140174042416268443185219942269737181614127386549874657151586235393373857666029181217141511171609285275968147838280495489316983311746580920410014772283711645406851099747036423856928043304009483378146154841491846344825234707792316624253422475919847115996579429715232530537967592580718156947680742003691247544774278170950349675153376053140919966287992801877095015266919359912985042372162179671375493723131084902078326325006749730661068893011325806817394421285805943804616607055543039723986789327679310075953651442279004097056507213396986200606911853426062019001525052939721725989154050233878685973610939591736973025760686929558687579834195468180072164495277445079226578168768191528224719623795175513729491892253165073016950093710262266180281907110609333742630763831727217202310610846806508073553657847386512610920779850219235465325522046777212400033372702785166228873586360916133129537072548621993832965356142220927151630786195779924429999795821339320288575293370702241221018491605782477585043421628147013892016055292764211234262682205522946750029905926442850178759931656763473580179802863272729262641104409306026121144090055126727845175449828049856220793733620529798873885770663912637373695061657118121101763330735148160513589193123919011082256636648784561418964403713033500511564337818074222826332956759481469927832361686160404980021463774218795242216175596206807452720595553014572273545452487470716594421388469993208164653014713154655076362260720078027048177641721820076328563930329106456367789580678423722722318214153246916093959504626613781236564455927194992072977531179403252159435974155835700965992423741435519183711869983068334729903775080944609139386226052418243333676270462873485043412354210316439772262339899558022282728182291976894298090641651889778985000185231141171153681824594919197367170526658790127072083277581015579575279984441166622627747257086640695768521495012119860592047856821367294424384693517877635616388322984733796386262473575596927582794070672856522933887915809089888528078187879749181428126439237409272448672236353320486176626845075087643928024005849265733563531165257793043362443723626928780575974858318007615344038382582589320723096776267668741336390629870697207292570499843996965343472031097883514492007696304024186438797927153956044869268470448082989297776334894374787952816820050495569477410495756067142578958741125133754380661801919501755827872374627009497914220448814738115731102076776502074692029774406621103977437559888904905648241596524933657990598253644630063478010042868457426221144225272713380221918235271417062115210484902611829683609538346940448063295819956936866175958356035006607122486952927710227893856031246146595386618323278129743091618937607743988047053676087965554768480943056938952617126904352941880999979228262971863690995396398282101177987873645669251593735612616407917090712432181234875425850398786498989571795148691144330218900361901282075328231354129337845614712211417529284110635750225800074174157702840534507780457316318446384437332077102391296201233213059277790313771500432543260725948037738017640971088472166826211118091294840003083089395059891391785075925363550932092369846091990934010168304440335918468933882005662284368546481654874548871735733382888742407179917204790343754152789016135072195075156198784531749931231148524154675638494968959935260392898885331982408996346506916359029924420002420882329098196822056243812337265149696004474633517705275368226161133856485007391929529038651398530386887221006944656612508386837486194645897436632321924373954903329513924696076125306832949466511324385813187713309824129141426255334867172719536892950441198910618187418689291523524130819710796072014134331548920384467215954365648166732773923934035852827195693528215021502117340138277306940822448566287903173506082888627220718097168410335801172919987913153363045760414848206495381947070995787558077617553000556836766151659541722413632728821092511695239897872466013920803502301706465830724462544696316028605510008935872077100063348345655714230327818901196459842054389779383075558714394498381056043573024533516242379471974991157832429813300494318570644950209704600904918323064112560183604736367140787839490425748330526304696905017256460326220800236420940424931310600930076407522272718674161549879737488033661969273368273396209286287852993930860620284782338781341174536805354548497456020779374154006123079272597247224805381868938948635680476103537871122507786562261270248382647551051336549490692466095553544804246280475670937498965104927631244754210388203108170692524619063918982343628382405157365146183541503867513146539488774251540967083043989937026489332780156621093798456662585997987914482946338981484873897911477721350267325360681418938643442583919274111729804626714996838714702523022204396830835383721767456382651010981978184425081975346815211755053352757850679992713408800716094988893842740424728170653041895617656502186406009845906941913794620382920380381193438480002756396850266047195938319412124364673898599678171818473376122441481182007493730166552859804372752214147890576281476175651594305449675600993990020916650858089791002508756941884061923317741095051241976656142417580805695931549377281444035065688063190737701035695879736225449490415311791335560639710879578763457422169287655258620927556435383835764544768447420714522323640985262903655414196362775107336739655414881515465903340315002333907078408221888067451770411355330332351023915742344590655172918794453988877226080885117315394262533703235734890766475863415996776369690067720812528071575479494187486011186542948453657098796541010073903786020514992006354785505899499675081449457979978167034567203434939458901321883620364605970178743646974384450270731110652198036526381791670644156866584010884786782890832534012652388901090905948376807754881065431962073301859721715751703379341399724605516754555587469382628050251060314522600078465357546801095715281756015197602475995157872667300772068756078208079778329067323826412265931644844665703196886629406319082692863145198686618897324409627699980160705734476891592181779057894137132022415275238149721554655357986041231222841124299987134009432508506724334232588645026749782489445401554364344414233453852280495406389019028751514634395470636614050809765871776701714373382840408536999935318040911980797131204509349454401674574585927453156435325621617608525429669298132974187404174447427214838381789307634841739938765567833838680689699378230237555333646882480423840149510577639039678677286658769631745269722016052125165049602174351069542648519795875796314006629128571797744574867110424314882997405035353750331649350936029645924573460534050066306068754242884990574177352458725992612872403890174112196446445616969284482602086730057387545492394335916510139569266644361308137329555074570980824501985712006698236476418784517009814445516920246301394373241668551953835823228835537980051876044619475302304799436119562180176850384444298164632906968624189166139754945417479200252107939840929059974329528012355163022122600378390241138715399503152782946099402839383254354401569663147446673398542962353915685155810173793810393018317037681720038074593002842373256187743460171299813034259808557645348676492015685009826320924707612647669547808833868785568632452259176826754824889200944770740156683783642153221345230354191087124174156164243787985400541644492622353759052722905298849563865456873281105305012783825988888186164769944332861160219031918970818895390809474900710202678755926146178694274211980546731877182165988209645532631002246295002281065532782262148543236680827344838658270157755984624966184698659546927685569074922656127953703596429184703036661157532416402508573656778414005364860558016435376872411124929835854796017900724521145043928725761079685255480556065689267273537924086146012839454174553748813011841370459927882309164315565335411191907067116621376191502758918566900551582157874141922096525047173896773493780102176060347079863122800456652385289743621067682971532165044089818335220861757524489938766342576234302863430134453131137827659444094837432985321190546628839705497722528466077152533729037842069193761985972870878822169805815646948121990492061722641501379913390097249363986289388265575612701545048655414283935983087138275943216974012704671641882412992163069677105772925652584248725408057423605566899196024100626211450511073489683001046978102828102432815794087429626485134247304741100373720712757547358518263300546077138308644510780865398649110379128378161493182394978441375702146563294489042083303878223823168051973151730200317635938073013585815130395350185896513712189056486050341103468780476214557586796785724832844437526220239773975691845654790246696442887441883103327749599662308745031437674436021520402654795758527322127603378250433849164503491750580624243219301640746443621638194647135814948651830574775618296024713473451215277688590891616944089840320110978839798513156450242672689648716640842274328633241312501572629743434173912559191460292925999207375005180794056333937152618158368633386918673509990906058637716234551407519579077348358656635581051293789730120098515342703988727197345879717975493473196497439552148787093335106302580785389336475691825160999099245382969457321147130643509918669576773991392286086521126533127920471760657403799379728961008161207291880707418474559454525895105171268765672379093366546967462582871648126795602799928970991415399070684163314519129300687942958246164153969004904968815222740657733903770681194252438518769481780906627379162142368033438766910753219339601931343871103646285602397162646766791315437703206312166210879362653750136290283151507003088635420240642213397784723151217127752809161988996929773509721532248002097583067736315833932698116277950273631253259599354789150365691024701376160352259031168653172855960669331001815879477523684361361637912260564908610267468416268306489891243395086298044214681237491827896903304627028758343217346121919592838506972874586266175503410032762006938586209787720966594159556116352843033694715416878549094248860607869155627638232023010372531573309318789783859425371148037476611243342872636396449558228669604051026784371911090560769079276298451955248292209289823955480428604554927297297065240191153552179691677110509622879662953090415090658749245846909281408653517173491403667658892223157379955319175365102115713657621218184067789490968370674974330561360655699885077410755768677221287428373644912771901737703904992515774969224346567702886513377171384794851801212462757263145272617686736222375369625239757666232948086952207483805343367010174377409692219922383735926157756812395091510736307840413729065766149726751601132776889109136962397910757422117407267943517993018710934767485443059646436522548909493024369756643590276782811231609909580047843051786687357163366609079404018324734375397301030707220362197085882005942484735244334017374920793580020240005179719523966819350530622823064973155532658210358272557233412643908865685347807401377081144871630947588156712003100829588551476985909693435566293426509176174367114582556149836517158191863913299158142806607362443443432546726285546872363580245693854633409333868446808146102409202459840721443744083073421906284071669892300760639454349784570424994215952341507889150289510712056522477746771454022240135913738151207324770895745096966234251751816423256499194393879599641566532966720319527338017549058871583738673356933710935581876251430229229614723609509462153174589468626916074022392013467162631266502007988048387031331544979942782631433390089378898113911990762079441323802031405996359028992459634281727319754209927103729195079947285405329244161681175376472021186620537367752264583399315105795827838006893127191369211509507157717418234825149559496532868312802423988795349551582310771238340920562473190069379907995557111424648371672711196621912409779437723267916539146151019352757898705431993779250678168112713273692563715850631627567795316261778166578336115866378971848430006946156163883426493808026044610969746713708097708734002175646566654267378325996755315571605397208120428283858721733648252148208918695040409769455585270614582101824541528846663466181555464835223289452504932267762182006925152362233759295242053773212187963009984292348707011845546422539664805858497353377637926238680933423904540822564313334975704302546100250910143008059679750437860234410524284552563148088796124362290587627768028810563860032540024152963952050301619312708673013897884994923743831179758075487848178217379841748737390013842006952050861358788487754872251864654398857499670189113089643550409909087176147549679094634065900179158675468679684836330876671682717101779988283695222764583803241720643913620525754760514943724870786683338853558350417871363199182390809579238880137118126929295145866510724001932721630531487318449985109612506826238282150263847996064669241724090503108702408778077194355827213842397677523672555709271695311329112039270114581105795224968780525270007305846172916134348707055652730943561459836789023757231884972073414118891421449115678637625996234827520157638051101456431425130673481651599111091080086908517962721953242642457056537343022263858628942204170203417694852178161532340818168067483396334103513514216235641852060382629443423613901269059609939530052041262429036727955662681251298787495559628715634167770405635913256847307647823968985900583984429245660410761099846132972078381975970159598515274898516700336587954390516882763403658125150531695595195199588307529248899754560851754595002851572677233207325056486124816630323126767919377616096505773288323063183312178339454346171205277614579639475544705422939502389765387136276956429298712159685458161257782225740715167606078695982888389582355278296103913864549647569110571664915683053257798479147152755966281890062791193937332139565283819567783963898657458113534028855209617814926351903848269532867161295665182409393407470562887462990970022269417978229511991725720556225953490934968563936494155915739821477113561668604927059316546409214159079538827293193923006259171574145490637249364389917390782918062149741027395307361827220199760647614561546796742050832689818568503032518712487465064622671384331043578966554518576810851715292007278321645099080453643676013936027420010397399477243466204259592117245258991004188232131122032090653927476094259500958879981433225684260491319203159114252029097810896904959245763008936146216549667800960115616391237847412285140730802012471801878885544477832271327123495659907636997628298057264662737955492351719369823924281865661921063320189935957771249328246514108688534533278550665760002845007517770939447372853275224152758626934302733588713442804249298179796098677748592090560806093388310783479572182354745564037032775731071342192033790268298935671613273303003291700309385155439073166638432455236662647464973618118049976933810763292697640495135757396179025724752636839883281308283592307066805161369520083307715930104253615024124748914673451552168551969071609475289397419724389250057339973845709324557080507242125348298049344104442396437242415295616972474533656413081134111100496357180554331138419794364144069970186880994828833759575321331632303147817416577378124110825297569197461983504494532247992757609229336248571298732052544436088027138756835924200222039635785679008404698071640524408054634713459013241622640979825541581486211047413442260856236661500910563175843725800160357972483886010550815958376414982800807898233096095108989427743471618493410725248174874322849543305348737032014295944945163462070831459148961502326694712821379122283894223419330919439203771876140119318418257855663059991792311875387561517636612649355664178225528373457404923526968742627971493580800604079995324945953944310149445560220067397189965252852480809884764007048864373155069591557446785438481663233327637072556223891375557150041268696064395151161480034640232450925221167083925989086171348969419307778461609986058268839967490074569967907432939277437690022780982066571015009930165910975187682962218065569620166816518388032659888373439398941855455977867020657056147541756788925956491520560934533309085719909321199907173637165393819181467140766892298600694491494219639320866095490287538079665112389699099571220326642129554288573823516069534426891535464497724702906554951745590399949939539381349522969883438959527898890219936593475137235947968020177353696129185464284861972923251836398336334245798376529453193326618356048434415876975058301447765357864441432907254029552171542756805121388016845643187307857711513773338161238372728013214440751371793814995828513572676850324297629282563796671026701879747646589384810012548032403425104693894566051731219085613230870670252441450951935092261895145752537416465250828056908988836613481463768184823513757757814215673112894293508910583366401263769797086711720419144787456997310376402855778304050945640957432748892109267299175481536633948532166761299545311390325245288634393383742487828739030278272658542686192493490139350782396732226806335376554310825652539232304301612107396143111096772874134813916644239422151783012457256350913280569452984036885448164438047042322647163716501923762698257017906367773959974310798497849875417698403067356331494736484866966755482939260555475036930993468582044065409094415227295763427544051174245655758247322059991674817303056490939889601595794768309546535730214325176373010779767265288280274486192179802604780995659766817707019496050396660541708897147160064802762343656538174305056118988155242025269048939861251229265863381737530654105738941615365572786481565556952926175810461135533860534410453648906575456324892235195681813261449475267775035897950943596528922285987285498827495878306552797382415235571835688241362241592543682755805777781974183818672809671426728833555055817868034147739406569069106035102062431230226135059001508984118454142602061605785684424290590100246736757172800876183014595703210861371509011751833660138043857108895483171100221719024724164566371353968901824086020359648934721260722224369405047651610203742932362691200778097677973547515045137533440620066201703320695927355195061218994325295322410548776119194020701090299433982512158190984264664659779033112131996064416366518087892728434077812465465000280961061111352259717986967109427522151148392994804774151810201207105755576851690713816512809858003673833251439716585154820359529826534853508486797336684333168076018340392353783760485187673696142507364983144468688603821062570780422891300449149535482520624097469132445201847778119127184650783290602001053154930020070228717444240203824085690361052355871376650721061598885662681095400230244504170285409453718330336741182635310451794719999344027476045156057515339805392297783739996077929498057951320939670908485351372857411718834616407815907191605207548131611593931147698504412173588253532329519619093398600297359075826328984731178654555086137444053774817182308776163748286347059632347815392927881511109843470228214271484355668781112647570135942396422064628197763513488125686823604352969182393873513258246199985931066402836333939743459407493425624502063743716487838740585387219175671479974302362690251144833639562496015449480054770992895967168616977680429357226554516237993578094214295926279203009607354294955103263269082027476456297101533773177081428760175880929701883726269626617494322455299330515588391974299486057900603893621787824976789970459081500717884662551288969780232525334711056650073351061737751651956178427310813091076102784822062199337339242746790065090557997554043024051671506071393481770013648872798265483659626774180340745110470881564661964859227365234570744999017400750489596301992547764314496191336675080877919680990637645477262873510576504850438666517971216237853536462485792308659833164235751006772617018357428223913970310145093819343948973810053479475159032994460886655555702547228013174262377199045308326469760252004349047012131020287419969295358910723962186431287729420826563073034138891325990447972603046158772498920659365376292704569768324871683226295313216374725364161830119825013143990051075707153771853774930516572672740740764541619460742328975336853530390982403711568609891963435597207582694707745469435523016097748781881168847303758524107225855856322842961008101089378586242307041359326462012777305534585870848611692435436480138638093155879419471793269906409682808684254042000127054725931273801616609063844402932239148655740171768471795802076737609834683640008088790299278397957877667214521876516507171506162739971401833776535928574486201992273139194454410079248762788194373191963562551734074480755197703454735235776168514882132627575922093307174914513706795250700601951167051379397102421110838628710943084050837697339133320658809910764104880223694660901368251545365080655852309747844838340086755486416645502103488145806093809128008825886729588536032643560829843607331847060862198762489279293227048327967069713949922159071356760403212128432929939046198811078270476767793179531206688594955128057891131263149580680283031092505614424662899787082730812470721417554483031041148440023051722806618620524366827392188252601324940521073376989693416051013839118327127357732134924789040740925281849188328117178704140904178528689903990827750316469655127003848445601666076420585154583176453675748813498682863284033643445815141957911691462778943168069743275205490400350362570598990996571970446126442443817651461014660106089477815160894891226731905996395676208975081071021954201855616107948403267633704451633368707390492927517673848444440091114212033637491436936572540320812854499445097938939139143194584307434481036366160955207165552000548834290669723762011532633943497192511251764154145916988474722447551651703694061598027822623849291663070869009271939919503222761834163397104887684532981256785812602288845686570768957268077840295739591778238327590191802756992452813343881134941876240532059621925946182176045134771006964750829497700096911615080481061836513031104396990335317539186915321605221277922542875621620435075590574098682184387244649115324101295476647889624453657612824921484627964895680873190571639703932661519403199074743513259009569245809535009201946167381702989177703681365744264971317517950159201366806138990640969664048085155778740318042678831479856112068279518045394617688168400450410572468234742378070453776572060537501069901392867333996897203600814313612516373379960092796740500697733323701518188469624304453886063049522513348414266163733353524986043876708642191200984614286961630393221243902388710054407726540970688191866228673134938708898021796778718497831305521204290287039971419597181191445658977102731366027441484971806962522833413369400106434173102557111860959098606313396789515383462904718448354139671354529632181929217756345594613714773110282841111749819329656033812999496291538892001872500569232143710880365246586229906338155433226774328582740961307296809635757282127320820589136075880737439781862469556134370353865628609214065659719171004294992034671876996994265131560586898747080183975325009179924137318888009809338306545634677741095501277516744346608914766236146989904239344201301554878111037994512371356445168775844108922329527057359218103864724956475399612876790728453564362423079553530209095192193645972609378545892033539200565825828779712034683543530116874825212043284076818244335333015798764453923217244656390685694466051866917052760674476345825934980945474136415471282735746011633840409269308675944074964040267454543438698463784698718170048940423129388590569353351928237225784447794234564560141791246357945208453726357977162906649820215108545988705607622796440308908193812936537564995207596920513276467368297833685229040459774221008879508113350311327078841450934161660506553812361389322803505342435801511601486619010568965252451419715960410463038749436887061437638580270574227463829880811536710196877053380745725109051458079856057846907515272550652469835302866940119991043996851862647518940049763820645801034407020805413145343716636486906811857001412281061066919461297400493975579290515807813561156655188866386077150128006787353602245840600442391889674605303925896375986260233459481417495850515528115518128984965304085025439174572653079350502185402859472922482553216129919186456653159261976399295701610648546441594621740038916229825584802386976054765174279172385471926699639788046521888782358281011955520855039081942200445145473710819412397703746205755587504843746647496791974204248169117083577036316357603052802409298568728938738783353842780411970065269944787339908636297492454114725012597254955732056161803470151147567000515260265219364220155312327844748819513168777704142833571528406939965795804298963347305462803835865303481939404022922366143068611221303170316460382715100634439038795790323217107256084856480954862908318924293146307304719571179029883083264599974709909038743886051782119432055150829385882048582435932781250646365644872080748678817251597332606888268555332327905741545062648752239501996672056880777407742023891462157136196833705398658593560467511519040547412826375896761518210405929354520586047481193202635365676661862909160600226177591907964866396982356658213493002079733387935827016155082142069698619032498191050003826097796154127014380610482487788274139318077524574222976065045776160202685258981886970610507530560397814003947173626481679604483897958428035421331008399848030616987741837142594493721796505441298490220741985815500485885270426291819687920762968187546606677541501814177196203465581114182263370905952702210771631089918858576000350521633900402426316306142325951669237233090180609700917154214534162018843877509542735147295123499223987814208750236327419179835771107467163053763502378923365444744447637409421994982754594027603714097737452539067587726330714890515281721403620982231548811616689413698085570055051728124601270885210415150155649327909611969652547902690261606524113156829983850760788938098959723638318256847121924714828853371758388532196196092964973512126287377701828661031179339660959971119706227269908108522873702222898788518050238472403388332902408273189018354805934855595432800621235605349062215634323014173277025405580735580768374537987003735623845625401519200207760308962501945268497244228122619523207759986984646690688333688612529536192939312647760839261616301381692601127773123519345241472843477433532265471018033571002642893976278007744268518929118699898281661429757264287967244072756921405011423170375597566471738174154827287176927559216231037383930937889867503294778476428602069238452652159870890584975491617569205352418209096448708556634586670024006859044385057082719843749037425306674866249784827048222082169067843525216814402462964075632044123047347787530267568429573591976344976286961282646969324104405796871653763976038158416105592951097051210419480526380495401528930211348027401697320338178804200467918563117769303231237540909019111608874314597765177787953895466708186968841369900089679478090778885589062210745228985250719715896675436745838316275244763829412400707093635225714767815629038706331755907307508921837733372409099539364965986132104305008412534312656947927910878167521833433175115495234811984015042678812098389360362202572195275880289515143295062770486017597143423421280420303376658304657840428658505517374924424874439570497971893800174642557650489338569653139992511322348880917974887576583071091305850080052583900800441274173671547820215215374739912721402674836789793942711592280632051147160002501552023711855065338721979969395846189486715380446606227432906746533798745049644317082899913097771903260577671994798048265508741187812851520458379752747229853091069429665986673744937944913486930517469213629904027267129617789677207292224956372857469329564008220118915187751774444059443113940270036979838861029690714599185554219119395785115867671705631394335497255659562036556372141871621694334719420735795872159089940146999398182564612740099940157949388507250780880171953868635920037595892555214059716058157306386512116744321610254367701743526545129898446318134503780371793241275575163793309581570389436198576258625122894679532166174855100979201329450909925191323593827785530992415412153609841208567573731325443504787769012886944995509214667731233279533043865708973555948146301876743578517093919512761639201882977628668989543265117238716099110723502334103622540369935180997695783064930853298046289471058838208040140631517058933454565160823479645301361025978885926544782033737819369002728068502828587419860891639003779945365745789044611319541366684105155074068225325068636129546754308013145205985107654093147626834723417154768057715542070014784208403748716243314004946711136968312644323813115814394576462174345220356252422041389800797641885466571174986699006041881485928623269324364938741960298414951991750935009652264107212108882888842668364609041918572088512896174595713417906913840197709204451699393070165282887646541403988440974291312150655184757069055669048087996541341069963822543866328881832943356725516116821768337794264898175753477363651472459701363360123969068366879827770347384703329343285521847222810716673773951790995065915539657782659382876398888679956795988248244635859105123824506653344641587738660790931166310928895640464078073445103832321705694431166149477760407135148988563480337551667150088438494473721612286303661011528064828358519193260378285373571623540958348669930317538907880209104782639641450145063047701801744730654474866294697587886834419918913796342713930176777709312852358225401607929379415593378714525109927285912132313180150927944027771302683916794284446733310972892300011041243842069519752954717170421053586543602659008964558864807208312252026156611783510716605858648179679188414580271556414140989117012428134148259089087702994598876358132559370244248685041277677890259315330512264156734783268241752552610568139974628825290718133607660755947417716914241089087664053724240453886201403092919393056708851529808233936948018779705166780832207542504852250528656453454710720757695626991425829048868214411126007783338442986401083695149958153207189988748423829518070971387026403957809001581913995388358123175905119671491329266699984141017226688308310089412619615599407053498315563445934600270375648190410642431479953872189185849164630220130158530832161996402925157381660941896484543497566183235195683070353041129009188915403694869742688203053988383631445837879186715518096920091946928722613696792962225209157358184313473268045502861585096136520896315038562864148671985999893832299701035182096480211917363006044066339133374478282830034088064636215163065587977192749128819692042004327342646690554109234441484863148647120036895290496212086781835962712511235740893726019994469324734775449406742308737836275293761410118176710581952210380919820307701098278862303073214063390815435274961551787758442521913267564641611140500044389908170245006159562792387047139901027192300615289103709358388050995958423747786943014757629560288725389553002993570906330911848499761438949553606835286958032870946642595494982284496385787187917559418406459585972885781010294392638092793395029493413588243455562461567406428381097914424777149749315191046636808855923746030994727268296575669432396481333975757614860137663966748703660416692770193556682134428763254814041284972306654902382448058792579972129429710531962961642624364359651868614278091488425476002243469595425177218510411811237389283443450988032644984905769533989909251458866539644153901754623708971599964654337777771715065733414622288420438402625450750411861739192550720730684365060335192995970043884778117514741382347883266929170020597965522118629958989006297581803305913062461747654245934704644142019457806927530499927566241684486595519659060308638619018809564555213602960888672777651832872282002290660502930385281785442069443407086102796928196995138093637192526394793766876576792626329130727320120269164286561061061618449241724257779053934714816378778291738048841517309666373266534323457048758240107577572207353776070552579744780602094939384081063495362802046407685119399673188400136481018674949711366785011122609264649456994616797700212459139078884594266445425702785585803254718076070021216408242372036812298590496780524491576634827371626289979801868946594108873389769804851800305271149389660036616111159535903327509735080916489012555622996209980845377801767876456110734958358228848366941422412365541749326750971068770450987617260421130907900019313125892076859568647761691706739755646858957845988984704722426980628691663981750625942260707873681578949283266561766761115904303459755630303959012516604568001683810844891198260509410600035899806272224312486919366580590519676412520769369425446806011596144860731815193337413757394166207742184275583411290714107536442819589994966039898467362741363159618607681019101143040379027957603897890198242444865146651971470574735264384860378826702649361946140833655296354371583624763138023521631250286840489039419690839685677257380465252334386831270372292226086080766131702717056127581647379844479679792848341896921502215800001938293768739469117345412154842869268213751565940727014450869816024953171012631018331057616804513950977367088549862246174650376234980382268413604899680918245960295726644549179095425145938316558433063109734987661010054605598866773439439872932987844621914102948351167006681750561271841219346959257452836959410972883276106168554903809724701474947029003718931122820303913866988587716046599306748881200007093837792468251112189947679692343101953297349105346906954608123176076026807449374539705679854029348853720981384242023607051808939552124122508245347985306934500087250219382050319020459483902751049365250373585365732665336508880942568776833349419054370052272978397240947307398814083426563012766972938499403339033391211847030754664260956102811186881280060094428235771858044302411018975863813115622733674671929022364902627161606903307208643936418786885618768472377425317060749849882459206794351813909431265134086431660150090484278995184395579316192342314929455702054999668599935161812604951240281779236739232800918949762243581254634976234291214680629684293112119188161494555689420210121913220410971842251257325394000664915258120832510624460509681760616727254245755685384621318692104779615785660498175357419684245034796033529916425405946950082311991896593159239523917254812391746534450443667518861379274839373000197443994924918692386018335917706429586744472625954609331951140490689402262809423131743815070736698121775170345162358467755552448343613022145262311616647458381449271692618608930659749000218248326584257536228799449877110435110814454650057562791026251757884722360414459051477411023905221072114750185852476174064433028372774451015863359638906057571470769393403623381874958103647788379029899186483966811575067507403733539223765825518213502822583869993807450907476053690842865257734399136462730489222945506528625751187942411770324388588802129892931863953689677804968441325827260397025090065318530782115752173101264183108112767955241079952787151872778707859313767871438119863369500887929581494029253758490024225648506937805868873423204354351609544763258396647252572432727177859409406768376586938094192751333172597241629486209405905036710421673440982965581776614441649292970563223242157806985746332085999306547747744868286203984229624977344819289844579419306371500111713956598948342186714959664221598687125304872372695390429397923548296155108946906327190817159869851029684462109890366007636607408346564602562806440225904856513768504941933232187211917514060343766010628985625880775999101207595160484390418655898919654695656931958143456438824260750840179257185057035018743129792307749969082440905249616310747254724169216499362262783684761698332566590695640980968692220155102399823799558606724435296774467648945364300568058575359119123012017491250090813776787567668310997734386017848301242336615603774229699844795713079317102556672245192043896986522001518977411637059953579649167215060346033126821623744193603306462238761824902465475232649108343023819997735897265082849072283673481511071435154715795635302308376901542849071469313603579905958570032721981328616793873176267570171672734332375598069072936335269688000664738160591153341563137819699614370812429467047305121771730852686282470273373712988801887905784631615790885519257889240890478382898482432466514965939064494719144356932470885176688656570572020769643353623095702637974775306244055504727150966033273240925089588570564787374318679759138101106861866079662739009443355948634134034457197880555445764896991637412919394351981355021827835366018484977665162748160351535436275398241166260867970015528787017443475299451458942531049951796366516659500595246694864120299585747931199155403551281651597566662335040912413009987536150677254219184550063363368684827765293008953577307589399054492305886431358823845516779225212887884476518955730102031545060626926847441183577163887551145947305143181725721596306254550363268410908051866423730951477593930599477772218260115791428365551159489668226812458011508966923524182266578007861906867528798008187341536585138309617233156483770724642988202248712405336827674040897279006832089851944200433214313922465248013527777152954427216012102332361781588385323555899939679879924142010925821495793209141081112497193850160560996992425291010635781400499085671244033820499334174851032388551842139114942042112580709999183062495113461464020802873044455492793713181030631268147935529888007888657170486455025722971000423180876144907508083174941458522600913734555952234262604240977690143267280457312211815119056280870543231493417250476676604243670741391090221098367075689897150656822991464172865822839938675693832262709809024438532810676044519573644797341069619159271258384652019180993448160042465792765376157814415443870964430569185824044966416233514200497262959490309750205061544175366675984009521402326580118001528329765590593917723876982864477850194302351344823458326955093842199132872465806379062900557993865937623088210502544269288340384182196354599858495002770953131793356970946927171798472583121011936427970746835808977040269572087993280313649583151643409238593783323759505711640420851018156213766579033092170055299324534961776535865154997016869286891465223899117882114776849597896148800663352751736157279932400483892579139424369726167211085848967092186629211213586889145555742404629242115854564841148529864039190056844939464248193417799178518729745562250364580314295507805551291352756291884827181736969735789986755016723600882520540872350080759092686352536802852467596705326647266852834780136834967415199683128766831316041902408490888202616287047985468371465079289010768157218132610180093424729726193213943327192588525479181394878523318420076554086019596806590730319223083703688996853302101623837384943068438364884842305578876043344713041053122237664101047882639246558126920401360404982150313046229901749543521325099505173388795473928792802241023774320703971712124075489481302927256646573234457574963826109513334050217081743115412725415093653893476386745386320943830741363981118079489195722907401597310720294994269902643418857476847514805838248417004152472603727801218696981685450534986515865651417627021136972375747643692075877843175232774394020275109744380543160922630492259729362698226112536337097998685392694945206817639120459455245874900347301645045616008066333946379261363863912980912080879572809862683900427070221903262211243800287556226960371121438716054492192498554879502212488026878190644700718679764064722131158565678395437482667598549080291625533028735010146046799374435804002469024879735806002275897998845544896856002215669217945819831883064530993857501150767064302621086636743397872220347760901742275076018124473483724785917386519068197420934748494249859639991335411735786347887461921796024459692692007939010580420897036572731015675230704749566309754331967039685261185277022766099192066186262468289351865921387633901585436150238431064848705371746432913987435076239511564824424151613862392085177391449159826416788573870887601353841101033149150552632343155376507090842563160532582555508681689631080498332568406269017447377974038336373977113421020125623590713798045552668154329943261712682047749766174262903467961872385338647900619841709359797437580064794607527445982657793228340508348977337028843370395717856974783452973807309711019233055262419428804804394252992898330510761657008433480400849420000103417716155985840813673408081249447615315229924848925849458069767521289155985186825526194539555771237803369580744448309576054437598828317317963968813314541699854060285800293965129341695955758281462397072147899423927540200421833560750486960866046158655781245978881379710872692712586345826095373111152915730192307451979347120257661939370707082918932277266766205004116659163286073846090844237754036868516095315698863219725939556615220972183172618789256947831109642471261172936798313928569241858499369159133063270550447655386083995305563891377971161336058850580741629962541549196886719158795525364640560949219619914545399442076855803565446252398311883434220598919313057358827768219843032933893895809278600006988684966069164028638721172321025255257090562325755126428057619457242560152365225429527367817900686907038851702900430156238213054964219039094330471189266946159236141637651098346955560246987275522210703626572779437127790383945269311905398947350152457852444508815621699577792838052765596946030141989872031090144451464396369764686605512484563173507003080928314203267395094373962072866569009577787947478519447282553074909578127268687466415292618950056210150583695988548792175674062590260282677234701662228156704436412477512941451030458795534576379341984627975074557439075817688583207484593040868898607675855251629931498780757255668388546716602489494448475318816572232813093946510779220976365441073053654874700811627254843760838287179762331256515919629628870299634561349268479919426837308499701543407462836068767090012521808292341633736246475379802785728859513160957778856795506665492143707719919944738177171244917935814369497769073776832926078784858319544769666500898195315899651231100648623216542925454876838149791024260369394239652512805295352472714767956202947300051002776706183367982730525184851042058270611169663418237583081593818174832749921953189312191729597931313817914916577504513860128034289195293965722328049379321149748880114668257520979240800101998000823262235450881825276443494394323173704422353791009184835642190661291904953585908720902447814972854761583903601729636526250984165518669202928400814374740908673126137418949131091445637055934066263469359303026369774528607351548783907519106677949611754065534839448312966026064693274159104814768322214405362269631894900600626378521632697639580951469787367304868965535277838628243418224350082184091068273379785007443838620135009794329305901225229614938773553660456525894487056758165237639059911485731446097458324324375089613613329825534341130217985554855968727183056152612459734557064458915136692166070310792347167503326452964122524459283552918226719841565748530066232606487077544203093161262122400741404563939091965213326824118602923898112239126461567930387879173445113847405999372537525162704199420482175351482761969292400956873441919119646429555496973619268916418948819864055983955638928317049804116539307382097022923563395224692788400402007445713597295130127691149154746217017313713743002576247439188592613260224453562256810334553493675376577046361199511343194376863314412990633877802715490513350598736945660233742872818300915291294585432468538875249324318703349261623171932911288012742734018627126823569508986795960725780607401349634317157204755799689249022614495258963887450199879192878439028857477981668868358208718701318162717850234567742527155509113390070365046915826839255277153095175720847109751392134974915714800905672568687843845646042916862292448787047590239450622567300520707254326918638669173448850018771905872626304762646426439487977651074934527518094615426858400660292988802934621770454588284875248438956414603610556111983304332996256453217842546566416362336912765266198507179912887694662006331859025803159629654068656481290766783956465813848739620891844525054843038835816636677438786395336406337500078514538387021524504319073059104568691841389876921501696369219872054095803339269733575083391501174479717961203914438965564482323452726816923648013951201211971629586283074572972057947677760606936141082961833303285877911497701324549595519632666236011648474896954515025024552037617471678333103303345516803447570872676684439941402485963463995703361770088440661392472710522442677343522089342816695840729222016592496173079790398352112323587786143678775096202599234693538407923082443013505803379971898902153725372861461185785727854872637894400569712424553966333110963072344498054237427295505899957613599681870138304835331542955993091418111070365005234403509311580824341757177242491367997925761450769707297678137651402023631602964057084990023471371901016565381760143669082710187196894227949184106441657193631625001105889265552356664147818802911750330633041020339644698656734359540788433531094669369471745290988574493211486163753791865684140829397595317291980398683952496649634104490469858863440267930248812924406748925828038437929421286711966593796944062711438947341575381263950663299902393180756577437456479214237460822671526925259508730604748756974384310830616802988241901348044123917086514377932793874205636398710509285763970596671355509866829240212656703811255271150609662315446355996222586151388361846978468157224089271304164366908713093179320081017118299929961310630835953172529677296149276144168457188481325975640088386315062202655731276283171150226316572019900951014797139064406546571239419612778731009824322712799499026779822217120973604080308434337973987525188450444998190384808898501451204929893633915343889617936028008526259543243285390418462460137946447063260607134067679394607392150630020118717646344046875073075192058307832415955189053338625788364600604525686867311960986764678961348509793809290732361859346596165119009629737672996345448133295062804891904076686223203983032288703451103737378913475792492032502107925766476497954707590231972334544038270679022993791629417445831681912179261864993018165343371208638275389596593065022895659598392575526017625248881065338156690276969925066973913316105617157225433124924233535161796405698674549133902354550600946731254552858691997616614237092338038312211882692329936994849335348454483641315242052138958676394625544696523834339161251959608860117023643720264844501373591195630479367069321059223838218237425961704199047418542277942917033736856392545930938947067405515811338876378415701368346475869295458662026941182862365338509350084670038645587382063337420622807758443862729909655493526457114575924297394908539667600638871691405563599418659809073597988936113797452344706140316041857988656455623918526709300621584555147325117417770432841385888521572515921465608428123629876061495449346863663125557359099917614578735249216123399114648908522808176620665792261355215249323976250432782395513343826156661413578013361618271769373689144016864235918448056133688851827430624144509993087889849511681194613847392194072979020601150916187929460687370589040382878569426383027164053720067937017978689603851897866513966302941318692401282795551317895394450564054133371676545610311316439067413462551750806916433888628481154959269496510727434546207283901925141875917386531696789347597845641795548644610457928053932588706541309136533060315654178341820254134577387074541332119925467324821467545353774992766318386583491385078262404514210046740564413755525260526555834333010808570055179221520279856371594896637461809429790700604866925378122633705749901662230951545749624822116670202471295374403671545692244921144725727359808954706493121536487946692561731342305246287466991311412408657169834787172374649716370680963693345634230034545060970645712164894825704735711153595094898733404649547772167888134060471292862372462307276401069767663524869520152548605793379284941831129961775218189276826222729750308151036239930104481109167729398000751796537435967249505887417040229269366428128703142129336737051487252423410243087243092827476298026085874414696367352263009960238550979795390549603438944130099929835654010134960819261021358278131723056923785816830519841739628634031367437844689232576614265065785087894935135972838472886695356156261948015897016146258157150390084479763569843468012191740373671721755522440464740189029931931293683473811485693483854584490954783241155128621039063420948662307990130267527784822400201414577215750124572387149947054604867166780667436470490981784536907462134264423779248843233827558401766147107676241215401213460572808478051425390287715582493365602976737516216188897519875669123115523008056110525781078727576725303551679584563736189513549295237998486510471059908152433158541408348869029628952975628858897545186751567958949825119139911080027183240470462741447970549554876638052195566358535106770087260300510644267941886261416602432383724243694297286629581029707063341184319438193094402410219405528985130690134081723840437026498727729633633093083261530753071138487267192747826001103902772227942399901873220604232546883236140739254687932089048316466694202259759358551862659465132577441637627123185110758814491957335672347313651387055579088505650092907520510381744597467471994069819932512802001047956446837835171329348224310416330345273011570752402154307904843480705620140519064692522308152104599686362798955828227370032670820598767745517935083829726295127293683659242004866387783921865910346249203294561617009597233345014592597097393946398671801721477436246383178394085774154161697115284217520772809475960111887764990984500769551502289885134372079759827673679005343766663555530883333099836556345139678793225968194586146595504776819162973998018052597969380435207517715065123669757319456239874177738754388873671507513479367088306712750464534055285373061585357798776345981457224557780442601051870576088982631218338309912816532467878536934512943693653675136181579490094027954289498618479608492897016979280404267200959593450602998421709182776639211448796825829495209399657392397417560173208265163110128808203249898381359107047909185166985680055375410553469720362859892518895671811140390521125245423717370308176809260623441814303380644546251409663119437008969527649045681303838560933616455546251794224335063155776032885130839078368710618677271597145543021483943692798284295082832194565142706610593483001201180589785463101453819175227379145382194433971157918180526145832435573681711200714800375233886247146974147327941720443564536926336189202567491146431659959911089313951802237204688113807579818787280107878823373063908094362318346582748356780501832232189819584214487013251833710246404982547928594812652397083806714730016224866586453750113562810501743888612400356181664344147183059706958147783629523097526139539175099566946315751971624630113310629029956300101251769717526245922399679886937271781306463374880286286801972999707485909676956211143000687336945436369816570366427871104448553530132695763884804423209752262318343890614763006532411096970348229948658130927646817506471988692679316754962916286611664488587934231565767756565771615510850921911358587170028953739572727188644462788682083417614144711498418673741097755780313403403600512427706761167146782853023843793074967555712614066052595050199601401719040288634913895407766140557029315721653340992515823787446568667408341667541020940474366357364570339188127197053611473397028761926844270790709371985372965075150848676754860092803404392851246073199985697767419279925434929496990636321333390848663223558099447897692024259447505870836235725205536254098573308034768738232439439320808701058712022147776656998077329999209751832644687069180751753471667873341215608105990638122266630887960802848565247058003746880739013138871462456604846727910337001823387348017816090040157798330557588303086462800646845053417295876874048952166927885378876805053999132154178961425049087845746421433638257053282506850441047894306742838450368262453721692891964802556194778512608427329299208108448891461890802246955743338582095321750466041984280963936934133335866581393760561542781316755960541302262710640630408468437270537170897260806287843554021322365369854562312100811470415020777685273715343567814012741927021188563983204089092325459073292587290964949657291247332498269375113825130689290651839562799680330250839753812200950299717108243348575337422942471948406505055654918471314078408856482897041997013011602234314466294365776400122531739628476298824433761168946899960029146148075765580958049080473563637436173511326570550850011401907461334180526100483793481103855038904689293594586321365103161005921783929469269203667038442527428063461308293687519672631392848382686148588629905754664263993987757189198535475593174831805966353298133247319405220343703635853834820830166698045450919374180448394759110874113270870069782928587666174049742442958622691688084599289877990313953946134033653503461985682381540196360766518433820094722161783705286539623391811272685014036710141527980380331161404159112168070808087784127666045921854445386109697725482942698336948994647045565548159876159011429050184586037469287953552963870507210147304512121003474649939472006218296896250362065911003242919992778386848008781945956709908239580973281958282838374187907923729363895122849447310764929506438757034871704800890098038332325846181168181964296313200278178337012817160566825222625861906709651190009293252756151072272342169812729499817218286533693526192233252168756424874500992867278818296761653396018064947435619692287704887572046558087249994218144578192322571574518794668608554923186334770296821208917462780756009842932440698894914905576370342267628785073397196577240367739101774052237590511003880957884020731960809833876024652923151373740383802768724791150541633431157076762315078203112368927200202936698930167583020281601549571055256409002696043909733344608285160728935011962766390887046311906489594626453713276025754345281355879541251030158381346443575187196606164107640341864257881986506382942911928488077782259697195175711951853375097322843026155662798317475788835928079285682023218784971844625255620006104444168808781639956878525865101529550776243941351164342502523480961347207278955359785326002678165512613481160562358156666490564735563286478181461379410240945159045453344486611245936132625570332100807308230644573529461046015578631933642546685755820603854760723894426870997658648421872084137377405289010340487494299156779989766952633839848361886811993467045582471026139889004043925700267289035714719033289886796366715824355025606558815695243743230895475831183027892530765472403105563871702459245801127257239463103133359223661158836896681625188559087643505184225472905163228863598126340000571013939823454463941089201440909891295846454240870264877223487997530076060853125429513673784228541522358635611109099619470541814878438528041423717016584943079233914675270438980105410515981644375508316206394374638700281757757886579973693449521257455905718808582924471490119778532989198146074129541147808485194502670657475410924891843331548276182315462281381972128402533843942418280127813540320511252971938548715641611200029062106421343549619811285945244536631933486692625791849887679529607921037592848136513097808627450436337316986119663066817052612184901713060912928616311707425781139897823960022260171580040918326591761037677732340071960231221886461508065775876586772980037203556951540170435175249926225573817819811669986775920104247720031637493688498122987686334539477090087542664537345134938032616363838192859723818793251101300738187292273191508646553117741411492690617428222023480819203521454930380942038018884812964706694520008473257734799240470270853983164169233328638423323853190502697227465170136249902372138837776515338361748488058200841345333921686397945912333205635388787753173936836711328620137750347959519588011293968866863620289310429931599623901852912766013741074203086995824907936992816170052146659996162548772911338017419796520726524442074388428770354720273455462518909716215996854216826289550182303074412633053854560891614938084109962997696456787069792855737248161672557608051158602128798302891330256224369095303247742080033535770838127719368628297463775544512653210116546166427601240070435703587942441433866432837768090402599577164842608639938433494533789806154598353147955619138111814421089469332169839302355538337181882142409062853388629118794669898922195614862666726923051147907127202781003570585977620383281342462971281041350860462471673791536028508432466654467664766469187259258488887995190429722306385319504648969253946861220226745402463815231851232389873591421571446625793992256594226639983605709420194883784651468439427920215642137083868699891806043393808994929994386864458533000261082480800785459654799453637843630499281668833113182785683534241132417374714707949332086831659252078432658598508488508239003645057918675470664585591926672864799346637693343095791821187532835923040897397883417409635300020851933310323853798937382456357894363047038224165250431458387666237221248598281510505011290131635577749013953376346763951366471713460447836728360449235339201370127302762181276565911047609547749535210176056178731140752913399458245768381041359369848833718727634502510892841687909997065337899374715099642983967427680154699464962749376698290496311017344931893938379271426280078222919691930754999055053028493682233435135466715068290874703069395441492932063304381937288903146424060465499591495489319887110871790212058732565623393743526242034268721558946686063595730298407715722171508252305860338058711527720044557379987084080108040105372823939013254186051333412277174284992955711575874057706215406330215462042530954971223444256776788376848934219613371841442462197693283642621307394703535266306653930152163062889258503374456980078820216989506818204678839407251841190275662888176902599206326927857739904334138133360514787302189827307551265409257573542353429916153015948705942520893962966408449579618421740339580465099615925076966659309937094827518953063970509905239728569491968910210512634405348096254986977293509942537998344888853849289698980333504122965153551962216609889215518739300896258412286850527785622874776729291957308747978032135645902171435399342337687980957445734740829952950155446907550419486805281886570358621669450763021109743502671441469057385653267959295174278150271356187660080370340957672570461663830984653223931625565656107513973694386590633176996822028023680358344740142443243750244917725487191866182031638933729024157400189539241750651379078310350886496107516016231151160862314682916017484140080939399846887382543573543848907781894997935708815600747580652032504316520227507201951760716393351943093708340818092659835374824491192582775959665547480325702357140073446294668529615926035201038033603367997641029646179549576349355031669189242110010578222939494346876134994207013830985930151829551921598365851809607902153230989247445168854581753465728462739413952866245319986468101013459726877377333910980341204036503366005809595740178831036451601005499343780332903921203004982613146418877311286883170857944055381010886198285583060158284880549361513307958351506819319451462951722374202572388449451697806857266250422288268017055760207716299270339475022873729532771799583699009926979999713620665894313482068501138309987591396409911878028339535344710310468368748786453056342516755630934407034384827619147629275531246939931327018546709597170973284787966385845899404875177334567355821333554518088500858647679981691327444685692372880730697288906788230857634209695089204704382686274991922688520904757603911809358570945087699622328524633278306524754299549210514802506223649866283824788415153402627970722231410871278683338292781911738437298415393691039439030340769875307869959300107474976791415394015218970170120720762431213849342805922816536074292695475507782522687215086151258437642944173804070217877301951723071516613335949737606708522901029336385019398031347144534357711167616886167819281825656291593473707207535229740915758850878219459492113316921619309925480160143660122302375399828576914351332656162760067074323279611883046210238654662048816396442673122693089213612698745692818437402374175414338999278974524915837128504828500094782134756557326803726292371348318342995711131740034928251392199806937727963974083375644239307760163130045777428936279980106599373496029684637745778916776034881843476143227087527761288718612787287117758616532996350389019887464135683144624168671349570576743701842717441327850424628552145538953099795991838419271465083114363433134295664139115926824441095058849249958895580515713024721659208080243015002744789354696847407570669181931796997142054236368617926189267714484132144352649928955248570471566430256255893884130835490445350782497424005700379925245235761478632595022746629875916608983130262091897881110973526922331645366284637787526470779922995330905090636455885372593703479447135801523211455523099986707531878448744698758976131936184079410752988711431755738744094998642881715829729091268480107868902191393753838698916057551200109156894098266279351324701168800482063255012643642970497496149383432846057036248388095884424913764678968502286775909374468730638701391529445139988550444114158548523659369198245377069558443441782553542270006491772066490408218565903303143837186962437035970295496733566981844382396804640492851064252351909660259584070649725795332403435044941174885323525222646911975091709728645708826091067418416906810848277569502072980169077544025136623556231091945243494329546429760089152394969889198107185850650363034229851159639410645825774861855808479384340924232718396863443724285002301238928000899282363057840154231852677922474479465762169932106399006719135596236679332204601181226686496498429199416813905521431438618188988968811553843152474526814444372043647353727930310977883398016849435736504766955221036123605964028938309261023069813205354737350493477694389271277534664388275162640685964767576009096684201504478552448905613575765736035381059208791225494400902106774867187117353436552185364842886436199645917844271416497890107960154329217198118676827902045066786516314657426842703867265607413452573500943566236002950788665993329099239208845068643746388364699340154400239975919671255343835476166015195235260754854940249872871296585422797534507060914864741142263305595086864528104087522755957428764694533901741688901946469155121522340670956057656712799234202282024574292296743905546959003831847582675576787861502788262312055697488183924583455865282442551902547394066194749879127932406723371918730240340675436464248766880515638480311149088420399177366338936934879467117744208622183246472828403166859427585979318526429363658328966364962046904121935077231022212578686195021504562070490841094040922738778866584939878742124992573576476118955822679042637994677238024037059214816496704216899530299683643835197947540960026035969203153192009094572584368912634628519711292710510603277956240079264048028308271706398868272784115708952074024173302606414377458763160667389478186495300864886792289688074147904264839759899887565490957282041045316606214074707887684123796179968378857259211053652551412165588727997016931305272411303035225398619093977024481820054883336050539059983348997132381018444036098046710873613198054825306872033851649820845756436102960984819287937285476872412753133182626622028469288712769095506489186423917029026504199615900709478084499765975429121540184738049354608301172148764900651748541666283438938503902639026165639060465037206404012196445859584047733116025078681037626186980592475632024324346674722250607284641202551868300294502811153407274037918482700055596843893532288174132161083313456930328822236808454233905319218413450938957941549993659686887573328006532718058801345063619133187601836509474100229825042223225874312301594578979520689601916587194849637089041095422297399572860617244160943771667120543547836339813904385730699726008592013489841502739043902919248278774217771230054604550582109789948955270223031931666684969224163327262522253256023579667634614947316458829426549592695364844306858501997854685692154590049401346605191734269839821477172529118181292741556899468354133976418080396555693258170864943882397231112126471525427718706212948019861306819916246022141985738299137018922945842432619946942174774351365811656015012576428924408574627553669376610869939791267922684798659746754108133723979778081103115771242760016588650468535927412064208042396367969465186974068095845421356766717482496234822047752435993061942559674912739646054074297655280775581786829944427600262071622152432525792564032501338475197189979146178511383501316311644262547749115931136486932931880741651215002196128305830067620391285883781228803509798197415491665091810587552017340505023372799405811982642203015807077128461602032215242739338299269681779547324846224798466530359506587867861803026005675947989023394397575482537468675160852823731297844253688498453850497918977857124725911964086355287641852752422999983902771732796877186069698137485811243630893285298080933894998992544178783514335233415002512292740034247891850388895838132189571919994314708072308996559232004680430464895968396445070656121198220671054056501104611220902507605427743310515314529328568945044245831389175133420138550444275155496209650056345210289648821384753148897992116821726991750368964190318657598978048579461596609496993938825598798632451366675964133112234567346009883826324028074096596337941987648165401083263120710129559442716323267346085830090419939470327390560986457918196214758985278237250295869745157745882241578946707864519354170477642748999868048670219786256295974459334751508281757264661526426804295924640935462622648515565575403535310252803785407848226350578164318048199167030055742360268907535449754421689701667008659121243119027764098952543463679241501138584745256120028597889241451948009353870583244092053188505679718894559074768364489827432855416875676560341961357750857261613445238353403340672896623115734795461884385051864335201555542890763717207442395388768554235523382043259136916149594439702428264626755731772109061010038880873178117383299718824881342377475107816223955894986990149349981863478637638502702105617933711032800555025809834778522813018392471252122463536356877513252306856673903832218852118805889443856086394350357797307949069065363234482405243999047159706393692622641282539219372620544125309366996147594650571387097840852124706457402789412787229261706009719482542268515905532111558812826823524679377700383952282667743193435387283528608828892859856185972182338843491236961076202031129229320255926430091320384789126060612677989271005744241253347328257587464864772970799915383175754796359257874134479236380859614234365838805169713107099710598050813757118525929442566173121889638568227000560867240965068453344529120479236856568208880046089685456080311506641543268521304060937340688656367304119683735815934162605761518027272094732456413366534589169302470291927000745033802018592981396865125094280890236605773627974282261806168287869466563100555139138393383540221914585336496586476803759107098807476480532333300920326411054334320828934551140186908083672718001220036925002808302533665039429215994579704677189743993151741022538098645787217148747074593027256196925791129671797705998668957346591079856599302880983244797927981710366455122018697054370186956393775512023748235840529180977628984820936871078686814755919939219470645782424332675023826746749947868746819120575330214256488008002598602994872311372332687435346731901303890871140101485052458594629322208020329498092828434817749813472878849430245896702667011310973073667951928292591073849868158939814447809106868466610166440773230088543178673668935086213375364162568002769073492410806274009223074127773346669025506567191567454342926897281978513086500567349309315420152837865310551481362023354106665982699470612787270325093336600674167320342180880115342209336672766996647360102854479267992559338727701471371977690090300922055785967419975898098429638836947036696815699521019478058618033535972056824653080647928066774444108607325928892620515279059195126287963207231098190113593362067450003723585552067182704061793590064498964906047847127755698302766551472283608450975102427183296597824589635852839815802960132123650390283118449527543920848284584186500588261574930579423072472896037462974740153024205771081833728517025203313318805016751281504043324120781510829643638528423327608954029647109336159405232503864754881535555732652813018617211287437236697280422514142789312621712567774170512911798920286831008956040292919315257472975495301504692184893491221430942923157706246939268545781051393010292035328875201019941167678995921816385605295330033778418221965114280668012717206931183744484683477263340024663305090319403503847138447814830430005880076711523888968341887736041146883571616779492832925501228707140300454944490130003619083912102614482118571599643556176035248420393913664101840199728022535085196894834258375213545122560396059251988851636352760824691608975254009360564158914412536992632302232577005460300080249866868412835768659748075618543800075290881522604292521564295657939386294416367473556505525564787751034030117209836752356688149843660151625651885519195951822603363316735893879851448358548447145567714358212703709813411269959822845117911410379604649174140294334199276109973327931741490046115764405774273733575579771294470575606933553047776570558680259831092867191031100564324284469101127300457643175312044074172292999213334641265413505239043285233155708577199735371715790868016432264899015049821091703927610179998341654304166607388585516769511616996250039029263665831106269423109634642337743218776035998656968350548117289050833152240216036045825673937726753651342951165543490533023666877654733552175057440608896920832975969451452871832376467028802738807470215745585520153948868452104811109029874762062404083525810149179380387796935800594054291792175496173750175397527948645036561765345899008273480499854813400819087083017106588720957686868735693977734913425759531811450938529036408532435222488614002120763378505157448799893259084815114123787282740993022349688350555437780626719344247057886413571391789722603028981826245760422966460777595198169887435812410140753148177424668992759594651840713489470632415193256540336778721441315070071832344409793356956748067948468298236164036315473806987811411034137058392826398216875382889855836964823378529391974506432209043507957013507876985283564219675320232155324083636461823597709920128478381087348719244661032282258176618648688620771604465009253612130632897559992041004620479764381926855718676677199249724486817609304659762036109899614727282619348291591398669926297994691267957395465801474239042201500221330962197524639594472270152545459075429174656410612621917214793295557943019809911700401740667698066357551981029572528936479649807618208756853160940289043671570589107685312224056183713828604651976667776023478456495767507754263300035869457612752376272583394169905532110054051603159167401138305726614587568062538725929586522720127594292840904090817942575601413483425250023118929691550832349482852082912728655973682009337260558398297628915988329714327186504403416924358362725093570296330944457673045478616991103658450999608406605297704741962698544198618167379723542458650921816597452104353665294946420862700771490347353860491437204898683563490871101104736134394757294943771280217273215130834637041067856724689249860528466815841029548229332323551729731215943188890521286514027435498301031227296204344347480838544725830296833341499474028036830265704510579117983267790979164235961342902867733064337167427515055671750152730728002874207115582501674420019999088551184444935532444236514573958644366394137927876736104405499147955058114103937783871974117647230236121613986621663569016137221944060762679434599073594702411972212353442874529394971513461915594339779739368247852956060155373431244825483575588770682783694640404545255480757946145397752406872518551308020801350991771987916545805208325205215249933082048642000483768008636528400649268343147881573399627003939315126676143220343545428147729208307068148724158537271522721472656029247024236253231410389246965329209703141919775423688397319082538028625396898646534976201446101347066361912758392643724772716281590188755936466104474470713408990438715833390766425570431284740902164639318267324848218514307723887783233606263318216021835242084424908988265880197017960727524649447623813955182302179840765106300697215206906481464132764347244895288469312087059503005573749496415067642292122653244186706764841452452488551522950308176801618620470089423418474495767595345327987768629465342416098259122649513467019016612113522624960314492381892251440920216070500067769110693148574843657928852585023880779626985035718605682857074081682382144285794146555921998997024483650759957663923828771416569661836333962935987583344182171304846389576651007609805773877853884577570315731132257866952798069619117640400175009269107838539784463138380414496845537651489474689613500761466795818846898747073234659696347079564233369948950512167478592624814147112047412171249035370228331744042885449740807568411441066592601982080394561895651373352651553144236787555268015067176903732458455501601725985552123445443228370731437935060981895546110116040563593283089255624489915154304002423510867700538196184250976434275163037127992228615562748350325294202019514732909973349257733103554861931647300137291250918491031108437516888974936860273176305237556276946534171097436959903617737561620898212951207073783604396125992165533031813724905759190302274329291061053112668550246659481097671583039531402958236864201936578380759791920761301742740400039882118972157940015725220699984648727402517137180639142601520931243956999878624118601571091302923449125262098843255709713337882230552815521296775650879026058053992800763138846622939850123690750334164874815821718877051415167323581868621017797093248476559597527612594068908958307678232144810985506554673428274822545342653140409259607091212840590899820052238637474906013577179078115412747217504919433416180543885377593012713761766272722253201551019111414979627548791964560352255711152873666910829464433193638560268526021984104008499470170179585263484190732345914848891572820474288519091410785525609099282309925582496834964197904865043759155263523535191038007950737030223673089535711731090937223058688180109681740067391429754010240715803821620951847542951648054335529115130570187602214489426301769679006466207032669145033889838937569013974908299462255663251709965348597410014639228305365840820308479247976694863452144703166404162948457513470023118926601222175493769310916050908929675416879702826994261500245435367223452811267810160450866892622644224043016759464060339615509491965379172761603281262563401867771299896829351968201875443134903955563535505091747354162184282111361148612673594795970421388572032774062295223846324075220966438207006400114286698336387606576571772778427039775380687249881652258524048565464121000264369270101119246684768397427976655184915905608410292642714485941953715196579247995779867929035031343726311785571497838074249920852211532659440281699423414655432502577949224111154795272381962820286803351146888564616386828689101991391186782796803273099350879547666947144990694549488392260038294919077227985604318619078163577885886987801042697590428027211154482204859846691561690453626885615123284079282599981621855413935188017762426135958871205085070002973635533474467989919709628909635881580489336946435405029083783077361364628401069902429242549920306657346114201096297667953611689683792902868916791458628175641405109013310627757245780704411473266931691430040058029845949211315008071600415942740700301146088929206503770464742128625337469375701525284918317127747903828694375248129759616539396946033847419340595722918470144836192915739021381287133138186791671710967142375825805900717931154665161172753583660198211848013454132931705587286631640008102076777327328541240976135443480797496989275522873848082442354071829522617843797469106448816824814152896059557887157249993552589498505779149505510102985831882192823215691616611212693222304912332739522789445516529585762696349047062389371992660196592559999274966167663868268374291347584361331613492413287511838674963310902394219925110882809565535516273365464459295105173709098789821936261806013997666877771172921503733571352962142642574386481331486879252186070521542415277149154926044510119421700621553730957536961531434707442189640353176103726174841478293430808972505524056968201522283350567879229171023006983220992587457535539117410450700941337187377155363823896557532073582027031773164600276224766885609056067434332835289426793925406445374072863026458940284933896795500525692105660987980122974995688272327558436455318239547481870865677017066185697562326414152579530786145449034386973319161958298642211508652295576850740469184471117133148230318087477462788452046807817483369408983235959516480826084340987979597848315290304699411357026116444911531550922880919615366355355505784462765171464335865231350654600614750355054888798808331592524704579089110651278636950803823032118597270563494652931894641369449463198078302577835981986054002184222140611235793071409805126178837646513041625657371450448013458531135185634490103607783051934515873040482503341488820149933481715413083577005518639913975866829575318073562568945186872215801945972028325286583215815758882842848691607168400387763047454217128389134338195512633665505457617687671034259287285938537528307194622187632849328585683271529685287964990202926374571036439638068646389594638718774617244794988791388633637341469508066339174403486358429304898617745667909908839905395018276955691975502843195168816309176561757209807626737855425482174269205161451859076534687161236327157223616389172409201910816825765337421254860510765941179110346762396990364708050349597251272743549483779626544593091084034301975746994859515188771675627644582957461948613435139120897269291151716153688765281410938247913121200368310779000296162676567330113944396813023625363172868925514284809502013784716822412530200799747921410640001295633635384479306910724007300289029846742377400012725503272271287264961418371533839195632372764978634819722970654566696320034318162981089772552952717515401891588191097719952740345325233764348223806797490395664536505657734046765909025348192404039317838916490798010459895230379510780283504619392774602425761538260880844725523715666792239409548510469618229545007926587363664541579117423985367428388582840236961007170141279436932165730454418798786104662668774537284988655678252006118379804829219006993571535052992004170360990798193836748238046896824907154647690044582285873667712145842631732276451544922828412134216695614677795893424015489571411852507967650493123383022627102944448675778995257637511534535858163628676302963282673255120993405286683802571163639241732237507047470105884910488094703558150956680334697897533727542061100187864073588218452975560922359011209597308220074500446276203632115338761322009439605385108663776533745917115702384776244178492923142299942285338125681213254081979848164940907078617292263295684793441421058410962461272571802206510473920134436832770003594202876644363270192524170556576801335997735660468080923849507250897845617782998513394276232541521593752269408584562481036786532731093042696162855199342337658132717550495271870739523542735518937795720270656362051417959540243084283999803018411966628956856001760400117075407354575389376797559951553972221459197653213008598137313686806263994307392325506502228109336834083794646095293252439814414754204727609264895519946198896708098933861303101344978808235437633859148402971072360920066666933859189226045844705399157704988907831769117841237618848251417785116990894765495989620182296264522900711642951339962149144699584126653571149052441094738875887391222023285136344750104179765051269801048151346880622046130293324560527264664590684374630502860484254519555707443475813617884905263064681595808294466985822548943042783905106820633071224058229484621022452716381930415632386181955335436478600121808832962616472659974917569128009481669833546696605949323868146317659151956836849475361950064598287808432256894601044411968156258497331860633648146734984560690514216687618583773389007763666552277542079662674666261326643241152597520391915559163120691583419075224127876331116530830232516032732018278483853549996482618084360469726528398523989442954673207207411502637227924790607533713787247974406580143242167496016725864158985214737138363380821852632598801544955703271155984994619142268603496358284258207216567615479678080276109283194124810158524560160193419718907699460858003419112693538727204841479096428554783109519212840184543207884074013092526808001781469379122271283460880536895884664807938401915812194838429429013703633591710792843103050893855697826578166532921325029182549973579513613755870400258530939218804085618152793935038851376810725238103682741456104771625276955023904074503441169790449239226038849439186979914243012253770155256222597793206645555371112334754153877174024399330419611540209886323117383537954002155116331718861197905287033707796241222669959734372560329918570912253082838782393899297458137904480307455290598256977451513634743744301164001236649688477145482671640855515686507189651693749730686487919426964480884305748908057352239528855971870303186129861712111015294944545133304532915565111642811526686117809748445898803922680561218131064606571672364147671262204220692862117340620032437970625373039932576953110399922695254550024344923737893529750573335729159828648300501431377095490825688909754057825653376126858443694252562394225333729134570262108934086889235730129433608554860836277181620935114288421041795625753513233096826322624436040962854398348015065234404321798957975207612826669713993993102451291884166684795835885888089579532279016947229976781223411545718528564451217721012627709800204157183563890938103327812530473811594843430967926104467215890146216763738755512354748547933948131647335327852169131238575368045513014215644008158503837948991836078226364637767727755585691958767119916924285294962477384318853324480160020948525910229190002085423636062020640064481600878156094920372056142553313019402945115802844518492621816404880356893680830246119321401390001456062866281689055473052197624230090945030510143009728734496602358927161796618293868498116751969602603105574261925580516448797505554148624557797971992394580403750795434470093070735900982964221340429742284087795969503399248782086810381170124058550394323007943619168738933450529018770504707996225661798763359740896195335760974829498040842817295963989349487900768944833011413687601539625977620518652205671557474706618745095346345736178656996553086458408687170834445719646551305339557798993928814990391179344962285855719419904627378738768955526709413037320472402283640302865184332937256676044578344116766125755337885899516482064420676682344284089515772085881924453246498504890139919561842590800627371658491736364036185731755709978855056421303561735877036162483931437222425412194864789723130333190477987987183211162053326733998853776952872226733987618936524641805867577162168542610439430947696333691279506124302790024243282273211513412525487120485106845342994784036486534274397121296173502761556722692435405427391733373489479762038655953143917345588527281229607691746314036366432120799053525522543960090369783871366650495503608541633038160858964850958470792250688476054316074858822397960268898728838670803291657722818491308145180305139942628540418677969020063265505171923327541891640258266102859014052059841171472765463204179823606201782194171128223673009737497023962819566645139535682415231905266976467957667148638354753391859922679628201700813305560599450314666979987648362033495857419194778948229464089208647924663622010637192363409618820441797019957317468059004769113358952360744595096419282702987551586808509578128402811731434539634450716166497581861569337868027649704350235389167197902546792063563542413306770689079566133741184018085209116553266957691919505678358606610839324251410240634001936636853840670257159173833870983039957816937707497552961421851230575014178893689556208401402059802286089898567302905949770269280631660094610248796720008353865917377969829073475417237000850161267204440583829724171357519509681807466615310842921666304102019665454305168003404423549117051660902029543550215774139004398520193096565287359408660802097062822964570862546346289740463922208994529335163371953804672343697264241105902664181167602813044045417362877804037635586794485431260950181018078491865545186409215017999963280666712138902623231031771165290159584168219139458818724468607795116016808528250790302303301297383640132802167651779355730513752937129183140454758714698616541992952417940887184257715876150295759937194031830993636516708149986763298986738944535057632349725459612008471119345536696822133128699021400005540895264347072638315065614591879384194833129990184792458498823605793466007466448616144322564835509326467569448992965295826651816409212361191297267694794205344506524198760137881471461748890881372124289506388985802557988562207847608683480430143324663955103528784235516987973620306678427096949336636199896815020484210734191086277839739969570994844426829274807303579330535535109524625719049040815563676982224141896984885564853397968492309914561517885029401987474900216322349910167392973368844989743955796286545642153920623161809666804984614419916399564224150715784815320997637685647763090653761327597046617290260914277133391100600876060132416183025436941166084217677680553814695892465133318996859016400688404737405081107259317733834745640637051961470543617173988439824441817517313794885902708247704477696910632672348824115373815769503813353403638289174595572064410429703863610647481275771730538351509956205868522124864687354306553395616315451659875499672569676109449854857361076611358245149379749809704250204239596167678088725875914821102654184213471092543676199580383961215159606037196589326906496887838672444815758834433423194884601255595981940877117224658744287790859804703263727479857875840343190294384149691204106942230542222139389189199559137494373068613394017996102038664956488745874695307217034253202489140194948754013981598699907401746895950653232349949715777389872406871043422941553629731787658704113710385685963510996968592500260306523152859338251178539642121736259449119945906808314852270742556935507090273035321321997119518294829181076599313832223836451248668662720335000021092327086580440224023926059405099663974642727873025296340091860220206276411053902798775467346941271076766270477273488039912095619612736426365502004887558739803996459303792732821298376494739390418947311783043558896351339149381110552425276473197039608234481798057112383531751361846576712023893186754014850245348728748573260264080796792581898219774435940308573663988378393256183382283038124599795438956169747303326392400321718354040654381844742140125202942722518707527207228880403539586891074040186749331603007896084639899349934138847556061061388667752004066888944760847764335629661001677044225189736790964425734287844402153178360470186095996694393836180862203535925806482336088587203877254124564457195057017373076815590956198788673914524519557497986102880253808224487152394852386560866766750816484384223901025901348641430835986239083312639992664098053745218108562382283332758344507609270544389729329383162804573949241933058771431177015552166395922631927098094270070231459088275621252368516980482868581350137755066814878518388185455916683263440039183698658351594477139450811914644327352579028705248143705110404623586882027177283030020975528232714952504994047691048675788451909464674852776604354088837384828130954216179258193188292590474894536393928299866582386809365049582600287416168696040533148764357610869637235723394450378000075680611194322212854260491434543600956155702711860093152188210872820331262997043202812316117323180740734400051266416324400358155459026416832650168248489568469945506168378817043100773942566948753811640276196914762415153197962987842212027594440104998791434123092060873966807045806890072807262151686979311884682273797477169824466089477740990328188215330668551778765059153701799052619337022823484712597702623135277450574627612827673431929153864744244613677705222415606214188504687109667039638778684088757894717730055634573872579056418382738513516545166065708399181000865594527253006412885897565178742761213480090124321457341993672455703603898320672230663565614323371828144727247203199154060129958374230295240113822556165662893602416370370280799837915988762285075041627378904509249696582268046239368121833973329331828190040387796010448123786576641203894214221841180960492188867440199078401633173615337515013205419122844061216264315156079754073557438732913861962685189987931784868028791189220209185554473031682422298413508006678273867933573770142969632356295403760974229139361723425603240358696704297918291921760374030070975320827382997385768716740724822663220421863713556946198915331829337485952846047651219324604247598735416232072604978218597798374970459585988279699999090130429576217676003264279107968312947594542313146819240926629490979197425055830067999614790589828806061667004110006119226172230341500803563103179398703112916968949674649099326100417003580728410188083167213520505360275123327323101161473146881133204471313802958575622194197489831906638954380067701326857471840341856184302993074859016133750001218942977728484969222090460448379198066434595784546229499053254658613393029424232218617208481979112201064140209743553852511919979367904770850621401292072662708478721222795806010161710362625033487999090137698806663564472825966495054111533865557346249510994326646244994258937334561096420098926303014829486860423249878942834127420821669013054924222764565269085723691236933381548088548397762464337269965562476110232742958731298316423010676249403087544864388186260646824775350711573415461148150437177114232766586427131743330598141019770036167580258573117707071984121591266115135394080752150256591853885661390877083943445729300786952171669673484179133830709936733251352347970991321211786205202234994833714941415956776093626354289980445571716916101444173957720141222524876173103848837643886901180511257302040673747135592179651002821379760753462949351348135362128245533618676725295579832885210864670983358656240674003640772523059822103268593297441704133443620536718849927501326519696169661937836705749240927493267329966748164727497677805155911194149282020013075802740281692720704704691097151491223353130721572857381606142244480790222931591076258478004422243060614764213336909164821119027837489472442534685233686768097789775279454016882854090508993376689343364594462416965531925018883617205940943102087409663688928233583694282075180536345974732357917740595405758090535851677764605979426547115377901436261238909727615852870663599621044302123308304101638617360019102565788210617459863127988104818309656579907374338461953561486725919804513487403199357192463039982014963480726800978509827224298167480270278141709663467673992714682629111193035180432989129024967291405334798490505655289315219701782562170988362741271021752279051823018114414125405664697457081369523520800202545589592303460917047708061427031631908402715684717726221710094326587938068104615661889030873029816087032309318514626137914592760083414262395162246217137277392507976580392006106537983416255465556265102748888706163724706327131581106437938244016015271558558141144911591690598326124642764742607627028529519414723182380510950076277376695204701593306272731830511460467796468963289325249812811510748724898772132071760968411614080084688585503381778895266583765680090420103874913504308944264638603278106884975820202171413792161936861369560261943726253199266218195163346431849528532301579361452433903267871052085424250505678497220598254198884312399324131690281929544354669825916133005170378711803234187680726509674396341812484401377037111469192482212322480025679078638673022414499578540055001513302483077360446824526832830729934940549097703032857543280876584351064076777803972703847625949967632797364896527732847664928475930111073678965516841260960493196249653570389071058978540654408092482699421363817084018968843352554334948529436870527388829134467743668171570345070161289632837434256544689108425629704746951078705054335584742097350298784384230417967143484056972066033083983760760094277821375536073862183935235099260089967171774939118819160607349900090295076306029282140037741842662312562006057782209152102281231056302237273749820145041066266805479126713989511160561621778332034729966101319770859903541321232781843892236973025513115853676923972813884427546212382378346389268795782423144616718763289758496573424357887099337498989019142831463015763320867096769164676450241285834081609774012152310021569261196104345230307338792636819649122000075228906481784717031825942822449644293606367926826263977399939463610511963986475658184653937633459799010888891102937817630244706877279037993239643649180268023362883288149294286429001470142544849698453861624692985828756176323044136628098618572133340325070710078524185200361401791846130030287819271091253131447334052695411245655407480639984905890269356551338636115748465278942120297357618026215153849697985780672943467447579526828906805663594513208574951570933405237698607391313628947708380803076553914097457458986006737241212182272749946524836764174689858953237831230415424897891776819385955452427241958946229788339268403691430725896692751019846873366228356214867342320190443400041487805973874114226608552083873310316544680031958134805103350760468573790561127534256967318974074209074729318672236203869019721104269281210672393122228189693515590678242170568607429222681508241538131896100914920556076436519483013029172000966362048838647931624750480631598774681087711930072005051198935605220084485005084591373640636673061085856026815418435311279697962446408977413250987099537271551036024245343605394383312145833663511794770022816044137949374529778926202904212023849605905017169356413478142048571449723502329892986085080601942070612342090564960578513996288463673582507926103774422023087038560273339939948858825174186687405735802525195563032601440343519165659396595964759942918862262944789487138401953997249069252717868226831698480019884436260149527738518697040617690410214301329790014334468701815365766907483061532692948282666064081026973456615669278657370808559557301401339041807153141810482687797451883630795442849733596800692779912577482620454421425288080136825949790773133386546950056292889534790715229593925293743898473531424165684742495236496501670049328579559967915899863087639065757939757365284022250354588651824880662150527655121645280997048637834442439579069297807000274137868770052347355345789495539084237322665642633280299932947998513679825787719569051398837555882621895915198904229343481453519572380255635652802628105888905089024135103955051570236781259093172473291251898230189601338060280206215013494210213226138597857550671387486920523003053084010277520799972437145840586421291071398049046611916341447937983080868501482285846550504433576635383450491698871335138221043538005567911179378689556845397527266734412224473523923364789554342753313648826862789623211780824429084935432447201012425740873611187236472707493637019587517714441300219626787217149769816560707873298657536729448776316652985759478754489663414023782725097619782791328352431668421951524652762400898713290199112657726258501140333361104196615188612886370011617780748571280171953717968467214277636028138824862386450434746871040321726585124872343812132313973919678763486624941755250200701048729200929391848629329067388753946758161010106295769557756819346858588806595027540918246609990968604214260967088288243487314751194754465769114948593917445589243218277738801587914295301186179761167305172449009278857420261061649332564923355907140939321889425915550256873479899029785052981171212615519910521680247985731205181312841705138142849371413291196337548749145115342417477624961785919585679789629322028746532523951057000026913477173673924827451830952829375588188087224036164206422145844001654745545701256335785427940385264027574659941310077696115747142043709983406267208669492396198658702785578075160515595266173158408524128954123428799929677657122232159096131117344630587228896529920706564201855273530930294339836665602052005395784093009634452771342194594421917233290046409385764205759066723638001721415576714465469150364088056240733789667096179809514163396629188906759814874889691499567750938328199260712358848411153696900265878990182279247715791404977667487829487068235019241983814873419657035041672600951016437439320060093483952773194093818958284186987645036680027088597119012287324423158592124390846586898644566993497991380896354812683491019194318349985293160015005840078520552949544827582784023174392301156597109754759318671535765729608160380152865159649100585989021895428219528277665704836070337385905945647737123226720835688421158517530964400418162201819605261757699705201591603175012798665936891827280175179475319276276759123977007066620754337667050961911725447173422709496637370752065332809128418289582986327718179544599351016747902651680052814983461518229436846319797053101623140425018873479223857275504152627602262735260398842233466179993219238592890883580733181373070142354265181923350893458435936134034692859067228251008634195458802108646817079057425366648326394542713942166760425184893057720211782443260568747592274986759252108173363590928866532536015573767998583111501751956389748267986926260753700069731864695375138159436477372424568394270473295998822366114594015226672387550258151845937068074931353311099760959254705916412248865772873691449873897051287247898710959961632608793769765490687601676685501182095614235992045283654830733212559529748762016361952251936651068464031734778320082655045405791232645504622558975302055693120106760590293250339596516284424960231683217441535330737040792417788881503855162377801764270081769220544424820699466627392074051486326776850811890740844133547886051194590760599162758365291369900494823817982320665340965987653113467167248753784513713326739859065395078940542247901642927429958959639443504231344442040311009633518229862144182958440681512753837342567539764607328184657050687797256552002586665394819341946052946354772545606857283815540443030596131479563631673006191009462122529567401503728012834979182654638221734163560655022337931129615484749304898086790184871689134094503510779669727527469730433425812090699290724602278394363351246135957039505866907550136647449463065478460899437401564035093577002983228374616332323884134837698050811393163119927314870446967201765460765606712170636363160935311380813719450750590665140458104809720700001152242081948442542425049496526646958543837308802944624897501299190648684893575046647468004955376703270933989753698211246318275680013912586483887477883186903865115167609416846825254621265572692357109855865912703397902272305311937003845181250868068451530510336717567789678264731418059666043277034002505393815059394689311057181500271376002235021170777023038198590493702034117928148767795906570415646117411240109732752867613615038446525019000425450618003532929663075593930273998633127174261352587808274883822431995970581687521106424405711622229055485365817534854258298354797514480929627592519655960456605674517445404564685157416089713434605219117455225238276099472206826602155531386259294109797835484525403950375762633615479105041618979513397246630852137888198720130390713646649284840682248573023196440745863901637283718726587329251644091193398690041551612543043764519579744709410987475527594649278439662499327443747853519806851780887925983018082368033212337007825353864174876242011984719154901564217615978072032696375757039314420873352313343049042297804665236111404032726098476279185169048302674257028766683105463552962712605239576216995769024194110936745773106624724211370394408884444983597245512809606605035758730186428378049439309291432156663536730212797756123853509563311335729660950426422749134740604097934884107878326302202921952263475231974592570841770424969454668882803548758275177612995287007437653734472807682220786539838863860413772247548965551932052287023804229466670396065558466596619832536386181389633766432918257728588507421515453200194756759775537803752790439640847243507611713521462189168667094319242098384205783533147722042153743899356887925116745285047747540711337725837107302462062586532453098595179406679118301420521052574598641975276575998624000912362969608728799800155131055534607852841448324912290589681520340350275679212336418212845726005396193887136246058542591548967015377324313195669471833645477831934799635603654689622466115857902075784273522426402232809388341075095493486627441906064253298157085022406464195645029478635731016888278763436594655371324314792855905853666040499505796608462924700193981420799059667432845697956861717068354420093981169000109997793738987193828766201769469244801647174988627551071517684845663167586211565019260825508604202200720927808074615236309513728295337559517995961450202527279795593255441884262624752336536858327429771972136545248179545724037992749172389398967664636177633324963427359681889799998775477130059573452008271781451914124717547131606436833126669064029737139629302659652940997555229500261266948715659468802878605611410484707999540156193425656767590410480225239092906064046110187358713688154654310173473884363969049272587917287821213523840460160799755716643990443021735730557391185318542414414286625967014467853429871951574348862804375201355749364079094428882417053837709903093938923208052773750734831316693924239806769507031931258608366940848067594786014865479452102033246097486513999780070835850065039725764740886053653531975021929004124927097727030683471521418394539072970249648025827850763570832475056729462711355956423539402853874762971316520324961790563327294185263997811693485188632271664234275078670620626615829715616418552735001998011638957286180973043094235763120324181449720079530289853453663621323803080381596138631838073690381696828495076735928719142331981715351165601707102730727781992249136125511474495215498347788630910600372159646776914570398615422397015784243773174777665002654545320316099141804335815188379702566535441319160680057933847557659274905343791251870884607728118454483342059031565215120978008441418616237600295970775281685510976549490393130057690465419607452324924459838501690971163387541340615504099636069327711210997943209806675370425304104218115362952328662749792813903424118417762488377482194369925414304792839453641052627110157825663610080120795883982721002703606780531547558882162897778099175649347918465300779885136338740340015065559972434094639671484654758549538640850760335367723091673070602486697736323297091960880450552815772016673337818067306410099309022718178277105264942413877614566522875221166146978953329652121161778119282933827934346616174178314248145300089366649485756371012436832918999944777779865142396401658940336825856752316558953492955877534302800032877524135525813522725495797649030379268627398280267701935059629873057027574188878384521889859173872980135000596313437588984468668147628756376607491244326340899081208454522266546230881458385508929698970864696977785246870055496356241731918153667475359410086537741344005430810382025619944268545748993583777453459935064054553729881028585860960340584093816856411994784015209265883097843331615067828487506686503660887453065210034092374413256445963530359794014319220587870165561740622384927771174406077646839433422439627537422123783974417159582343849322556039664812474919064993291228266624377788532798025298145573357762866165499379675700988567858189680961109340506905730928847637356649938616054535780321715730780520226064383825182020266531436282616503922501444351509736818565754591652296995421584750537514969433069072852125678403128854919357436281774925920458056468639108568797080927385847848354295376185144259600358534833917982216268775088935411453206391490326993407071441484289850759592825077188155198807530741667114318436996267192820449740305284815839676963112336755407317771075680001458736106828036396008908052723076139876067699220678686385086373264310238386006000436314107323019908977423245643786020950339744336638522000098868520634110574854932342452478596482746006235079738125255143780613562698298822868431267717786147734415456599893436714999401561938980795655356025899081293877877203805688662076612606948895971132330543815045998402176473324123846632304644998350951338351463948371887994879525207690281489037439439637476426793918038648075792295264335627350964441140645623614179285537000733629334085912262854115746212449572603149004242320328638514074754905159490420240289994822071748969760513889522172811219995462171630761565496655634648165756784323000716034166781520270228906595289565987309098585000647019675437833529908446853203181880934877552207030804635401354306377949053279360659740003926462483644942356275684240154217071427023146500503833699349156828367794123128031643303710753251874094763535467164605908562599367418604260326201695941220447453576132916048265683712662590658019854432982490712930984333707416488628493424263832343015814698164018203711939522235340465468818767300625792987139963534422831707074194830700365347620797269453323899872376055082029717945670212597989853951612733236709729548253525438408359517521142841116066382572480966869285544985673141849877608581927930615833921423318037075108797974813482018003447158433692096493447870476018942318800249379734900714823335457786554451468101483520109429501235519690104219586858942097890038758104632408567703399807332788253094532100343368756839257029932222992513313809641223986365866091596629139979848438551012456008414904089321815784115846843850750290859441619339831931396312600671105825933226322591200487428355604014392163429357149815636760254459283141934516144333145917429195638342281537363700635729505755584159535716909404698107320663371451770271620986932713336097080287127985054787288427495197004119546954085191520633685955775881621318532412274423846515767400138135802467638298058862478309458656020358931859385435373721846074422588433083927962722129272811087042365104179596998617965061660917923371624605171578763651205359805862457547022712930107900875123359296826139904137282756505402422499841767730798767457474184619448618878878149665668970128699890909344839937253046534505287773379822258091225289306968578188495558848433905390820107543222013660288315718161044129791229011773535280063485699816407727863699790225241999189482039047317046200196043142619790696379520175799341293089630422921876384178406661950016057475197916011916929609953748692491025758772651825295282170695852323987867860100384018632333674733575842153069447380181989876084462666780122534340619863537746465396885421392332020271827126006612868550541608051900235643109556645853868781630542323149585698588062430393697723876837055989248842585817629692850891034248684122335620016067863528490009439061053191363805914202361104663500016001939526651819445114434963190996678599075282512644007813360424771891520339215333186541680911403031785533888200550557483472109822296802048861977191972179155657610522115506519512789122617387678856847700269060360991285976294756437487651228287626648357356947404901409877511104115901530762359629664458669328458365030935472056096822861135745610106227190815745647568432400703230820522015751551339026226291328728905492429033539347673460559751971256611468875215182057173525411063904939471649741593469967969196587679147221247423291521649552404335754823033825197379991387141357695609686910763987904805152196836179373900456919582669639676892613570740971509517440910064287768290570188945065404189440229974434274301077156680231133475406384158447404558833615534273362486606693323611007549134031944168077834961453522615183262783545847583378798891692602282576087499110948187263642034782832201777203382274263504043706646439394091449717958128756464439956462544499830393650491776096104850999021901151500287541750372043816889198711885442313335210198380381059522172320640513662732957419332707954766411395084225708984268379024030755542428435995904839106434483916698262287135101761551459477983571614570305670681998771623093454357523354124474335898951619999903699340850543135343890794046528197923664981758195462652914874992584410394074736091133057214972864702625027609233880413113519844693559505523278690794494601438270647624271188806475231938771898118744021993950502505570225608939261652719490661274821851685873896412242278839227998595494542184241527198911506937967052176459763634836631548178974909646734700770862214662363626804871714435234770678017133008632967320547913477109871980189673801437247958182039689535101838440386611997192503035399273551409555720231446629416782829794981182752131583510796455029412363613103890276356702747609974069142343535822238510599130046951317668250683880334585600224467235514594648758963842340038881226052337722978963225862465331648480762298574476581318789849705966420699028453826494345459918170046280358855120238163400250243444568073697536648958529633482563196586172868108556099273648077212005851380832862951599172143478410192563944759700257057584345274068517676033563751362306796924151271567507355218712877475100530238609111956805896191725397845287203173130070277916717141313596472830099528552104047838804184186387166497230579991954953507696683612840331897721688241622156011935979116139833254645955568041953140624825196667009187301396892219957821279903508399195762676790803601084511998799929239212946573281350152718466860360260489853653899434116822199607077462482943675850208711054430033686620853333771088603937232995158062746281843260495591056692261945793890192812820585774119231660513000141288163292585155044475095898812190739197516363682454710821363735658479964819790225607968306888968923078605218523570844614806692318528029790752710247774598811130544692088486118653244408017516442282991047372326775310517861012871032242996000373837773270331582666327954815466123107371870903033011634442566019061514736753505093358685766748322930469011600991845747920601968570871900396583295487227847331734110282346763239511843392639435572262238466100452423189089235696101878756285407433421918580998990125252758314405384868980253771419411778383321567128837072453943006671341424675113447288704576617873938569264538594055880985336789147091269045310194582403295895057023659654428353675387297587167253550326930648041002213869554393478737190079419008024461310838797848856407257777546214069392582697167690752889620262837725235362840924810401179206740216037093252610019838030775686884415309220323443531451457292582165646983332425558345774190910444325487811059486524129580127560246972990813685759057119498909894388675956934991451075734390344049600909719284062750244929005312468637443214144646156930196264907089129153079033858562614020162659875788184229585959250548610591931016728925084115439771820727430668654570370583354750045982504509602503915214595936601078446285185400372784786099283201946730222900101804414143934438303845154404612977932498578232320164167826893632751515238614534624911370208163022897350463918246083970672272035361705916270534366454298550110333310593650533137044696773964377431930307597286754677966588380377435459039471073968048205806632047073550582268518653035438714627180103697081454050520305283268287326988646416493323360371423479769070725516985099308204224119803760587767860744604601991994360015659827785407305891983580758946663599074558605519324276977589271965110541690758594726784519270116106874343401395708363613942528573184793775110286800389969649585402213138199942754949942718457404058859845589249944298718433643188047537752053428171727077528965120451132217794315939759368564313407633528229559309841035632994907903123591155899656745196401184394121159650833082135529942222849601102882869440960132575702190789713845968214361725403161000462546755699432570007570047669244571034643854423479101543034351311675238192842069102887641891942022859738311412234405517805593173459490672470931020374764230102677346486278233548760613093974025085788421102970880011395339639710048520311977084888496746978958233991459411382121667587392682413248707794413431667975529100431631229912072607895098264727339845079488647657521462826018224473804988170136686103987371427228927174400155345075154505056076409093385503901239100750237564304326104738348488555663479820091674184575923699079030622977438385086487365168414152153329908430058612794254167742362410092093472851245038139663791199717390830377294610333021452135943538388310990420098868308856927655997665408893521809949876304346053322317118219289854728807958296094502099788161727687766862571724160819046027541926335767728106512498235399364183249674422952895730135732195320152082805539333220632490028611861896952817649490906637872186133152952658060734259210097895251328666236376263868272414331530066356517189059970045034661090406715445043262393912456468489194516053003530101097392994539307472492467204078242955710332038305318345401572782718512682544311564555635969009991247216099046015014450728029517232742496238455043545077448966529490937355405802045476307545396773226724203466907240114198370071590287483858853045284312124130130579452718845118808487499349824600922311832774281236840439140700088620481878312447769806749479709930456963477850918147219491267242719627986602410955325164247468243758557775165775739948445123627033545450909868604466390041281575484092439724815178331568156706107373454887208935455814771103199112730783612187061014638229607827185543180549734283581228273803879774921990284568366779939915514931525576934079087623977344784008829296109478677185267323231166498036840921034632023203810094888131572089248637104208685064233978157679136757806238992030482717445141670201239594474350023576551390575784787285503945200659834514540123344339260916857031138407814959570105747888284505323903614233374737158069449712058493087117706038611541936304419671386601817883417263778347468018189592901640414100666258955664852110800303165870923130867635417502435070923983469142417717249983435790191079927606051004148555413263011103951865226508229674133649187365831965266072564015158565412842799449368974232043911213199668863619940746947535437432558916868238955415467573759255449914988602463791765549464815425641376273512872505863383504559698751859522818008103313851661819702924065703797078128224179020636677312913753491377136607416451655555282930256167839739904787715130149264523470597251542103910650650172645250034814850184466081412390922140620730462995727859681798949817034611908444014203206623810681001132206740774418082918055326144209076793262973831009168040829031770611402293576081835299391628086425139243810129071355682148352797440284426476193624734071505746084585468089517899941038765384007901912483450196534338235398179628128592681721148494891156790279521591771616271226887553679833676237843941557799967647595617034426611088974506373118022536080803288306995901345016523892084192916389913831720540633318265767801967390716174244776656081471612194546066388598885571661402973498107777458504110641851703606818824428649345461535028157249825373258063920499621971851098258404918122222462954435005116815026616598577714379509624758172616904736887021633868330900046743963834381138251909879711559428366987576302902890585774672868557261802803998744046747302222285506924732280780142074192941614689408259486964813709383949103851211573943425039598495649148183635877444531325435593393427448862390782246542631687586936184154710283448499146581397483386335240735336512754434910758331500844295243532452015314205041122852447353505819447861697689339660993302906368019343609314454461350264262108872892675704289402403930332605851199415572375573404665993348794686907967476043679955902106958848090774031173892976700807767137535972588898984387273203234848258117259166685058493875410530585683169267062302182995308730507181018178530151917248242443555715260700636445721537287495762947586163688326024933719424338726381678075947827618194993336164834764289895777493313073014126219578371119826470457458600793399025734841786250480504293166018364857185245919642969857465696266143561581417128256434918650427229742715908146097139570773084125862599713973781550692557235152705431830997497372718485103062589953412337586611450332490075231091512549088781090815135542265568938746505156224249507793456323597614492999768344902175972385305223606898961445414780026712042597511501585642381616324586150472508922081691551714686003113367016705580604956314905708927992116798548061722475608697793095783147761863549249033506550247246904490772598974508709538976991613218727812688573081168084792376539743239127651430088618569336129416324603620113358660671739112135505820753578911133529384943218617804983372204060685567495276886623813122724473443512163157466779014226536722885771153969407459420959370361341129326156872749062469050654078601804547799123077355105900039560746670962736058910929891238172268295685519922757828900640725913091912938015017294097616662408248935428048974392119159990464336307902716350152331228642957090085016191101693922299408727474592730489575117669218333799784860891523712199475582426739284292785145522808663760785445125744764059389188342734217370381507446448720049755833510530048710983548290491743771697254189724501562563697458157001462323855175092955916234224383819156130936980660449137934427911583900161453624909885553979346818477724025089994488902681323985422810497125985659766599914164905190008838361731748997458885360726038529202988764518097640269517766893760519164227268530179131825385280026630820717549062579564864325686610245573751012200054952518431689401689635136893578687385951123040255678210215109952590323298341368444265211486911506782828313663288943588666389113114038609151431570369542724056588458292379302010559463921499217574736086222079242645231976142023337788660859516123046289097211211518205575226709884343999972966635448706134868130189460698727378503245217658619560221864672435575546671371479055021500992571038114190357823760906857654416231373455546666109399275118427324787641360577060090975420594431685855380363688111885035872082744378730962035073886723376769174773539457991370245263647860070858804637116803607719335559652449451485795779442168888687405819883577096392971015380844092627154071891142473482795059545450107576093894475629615809011412971418475624611687034653562065412681634288656467234545360115697473159047974606918590323030974759675907520725144634239289504481958827171146534555212131733887437252150594263387573159334987221372337531091310912662738944292492036218375172214522218907813433343556915623968727611786285709507330158636780109029561049550799834241661847322884801185330141951819252589296579862070562254769966705426786192523209660537270481543179120516125662325468205725015763548354601164401244900309238407987095536727020782457713074525797117463603082001626996873629340691946815316545490666692779328968133531187724893343860436655287362794464519267810434106983702100803877532551804684477331885579169027273927478515938708145686709254044969661195222807639836106037718608483463160517495160924859121543655011989741221561706275403372459477944056026459605562507254433710943050243985487573262475949434899031697834935339273131801347584774871106771162617510732889390731927081377592372844913010235213283229195534308962013335253433241253120144065513826873123938430912784733545920630735290241735205942457325680991676111907411455792389776007906413181355477698711871021061522278019618626769118567754842408971444827332104937956174809590698279162628651156986090597018518161845771554326974684881763080807361818550125566856245766993550313640686630618591943282385339976993545162641612940331007517566934364041989968992927489767448956836223813006703231868158590907742884010483721268356156952462843104365273162149453879826657982776284994134979716345317012615469294830521200802295282240169766829330094103380874146598579867744312396201345651608556017802020828976278631220136266423166777666319750124776104295873943673734661813438884639601744448278243779105334582683997936509738150220071730341508998863291603449259533256513120079657848160942543246950790241206299037445718597449117318828125526229982131600448109532873121756671890360682700267047548937735470397092384571012704250059381311649599255623624648269615583027133997664434802675330189802378989723625963868445783905381724148435153122035111863900532715022997516721681467966255263587837336206358330069385818227708542927663519979767687816831323797399336585579089875516110831071012018010515276903541999098102112578795701126314978054186763918442772994716207251514037231493782191523754187934802496590019719355863640866154148890280693459660687735057189255319156073218552167145821097400068059700730584574570724078987607438476191909169826126875157796611122043262995999471482519125116716054993743612178839042511055901434910309605021172244381724713651331520898611626810248505356553748546405775987324888656118484060369494542954658235064133002640001619735413733571255840799122003299702895602380136534576818820206322673110282677931959179026150097907131452895517342614480749947804903243964618331570478142782323596545796977642943880496244711785138234543609929785354871722699746165396894249675203973203310815981214765644774226830960533500909203427347638757591206296538098854334805853475241395751665883789683617706741087304177255362940861471875761570691424314024209246608604769914657381750648578930715282299531687135526134730749364429613381132197147379319478276513424532663641435672073045529059116933150033794411629372640418539109511774878383976661767053451219084529558377817999622114731233023484337883232981576486117362320034005619380115772402681769271225037266829604848524954443783446554472450210563716265651451678230329697239971820722826184115804492864249044249038784245578332548616616116226611415718930693260213284996626250391231141945110714624296485835717512721405422207270140399573306127786633453078179269659991264209756045112117498127396229411209629154074781343957330141339917376601386466474393528866640550547572920827580104019950953308998617583533883290770938949228082212393301297082155772888462448452618610781914080747273626499146853348267398416346196358242390073463339660764891264142059251706165662473710481809256422353835947022134028810105947293359352166473544585865707855264300100420218613949758181792428014179570234548689151644930086139115183463735408614346737776242336314214669555478530703356016092326041234970984422101283134704737861182895434966931277604379309170074574359556703396204219744285999431070366514328116338717626656756503134450235656206820642415918328504656318952923509550261836999179744309988141703384358481205829815022352327082525211876978397615136973369315810769447075296802538952157739063339699626162433574236920155104817551473050042982956796127943696750901777308501923655237569190723944979618108513712599355527811153679518968789117674191520185026094788994721866525315974910228013716616191445593273593653404106939189942364726200421764064515321317975835242176861254791704793302191838409384500744540733997715063592955913732263007698227367255889568846493885053472791259085056019583074688956962799617726204012442359114385252886064581699377267606643441406245840044226271177103858758386406277468821475808066718170566207018388837621136543876401973542263591678976137739048291200295676063189985630287312911032666898670636140059888325628073939180007413798152114316147911947192897869412073606333819210702514563434519631045972332982022560601474421962859313487464860351497874884609456819350535966407759108606521513828190328559158684182560195264666059175407141066637421798537741635076260186735908862317218180727601523702290514631229512022460274971327587167717195362533377780098522316572559811063267645469958939617085450487690578316242103468204157862303440309186956253280060919478437959858029560580068218620743851368102671408398425617445017926780680827095258668243059976129774969258834289892977035557672273866918774387835324398410772609328311808027065755434537782542714675842386070606766871206005682640537832095280916241687916926472798995436529782484187157735003245236317363840225433398539653047590065527454511018905643632195179523070657915716672235660843873312545792933579840590719960545122683173971758527254777891679091771852882986242363313962823116861164908906806484032082977307587007959425237780439814257577817159759540471687205004327084259058403094468041510033118454675948368230285287665161321629664596416315166516346490045641615397797674229197681368094686431928549737813424755621136388130549249160215517978808653760211816817671979870778247567670242805950902268045053538637220132398022229106351337706460950251175694495781900481284737838523015453101820195654045070539978547552210399345183318374918533457290512903078565455983370741285153825021270317501790577477788603896577131451462272143855411532064414279462040782792305677543101911758924214459341472415298699383694690081828247331118935619681299060678914028991230288172675323179402955483708074706863388324064218511416531204994302123463841362515743191862581839475240480469182446067616974915732440964515083178061462604995744257446992123592389696982510469312398344132295050816465497322850133124469057627369797666676682211167386362295423720543914559801495404311920040461986163941351100963289803358977379169147041980991563464260986879914884086298814956939484219090344542648664169396114542221210709317015145460292099936847494169077527847682716078950497242948351852171416594504715589892140558961837363634759577665700617126603038437435123968951447263808310425731642781028985745808747363758649236713756164567067924570869506890659267974478483926115882929062059021611132852348617120386912111618582172675407510543857928548789571847365340522750758967372094068554231291553564225404770161905649848031419842900425354730370118470868392696358406238424229201274585726213996283170835577105805590479468539200129446160644190948486071414277837152963025428701098701008540478649518353676865734572180947402047643264283180217202559514772241592985485281608082392712572482867248472627221253726453969856702122799797131154347154011583502057798210968429705179176808939454762003743952429379265250978508368059645308760843254315694662537025327516485834063288162515299866054631543928871125242431932209668267086345241419212484700223790532937453759675600950923869078202889163738025997487790315226800291257284936996509452744254912941939221611328026728721252653839238589369927061885790771582170100905380652106963987682260184458303981017300930598200915414340456010892410125519608115876667060598368747309465614058296070991282135092456344463963498123842931536768052206417147844253548248080261688090027679970708982737172821730658831144439312407669188570997180093595039986887422138606296887173811900960477744715181154167597723578261967865692311385256009270028893324894757967379583012407225302227958909423048247302870809435456873176175011674149666971953217540180562726490203999294687003392888092144960418923207892596608924665239686620228324453209421710618007956533272863788745157310060722128606644893045691215657233529722707787799312016085389708575680093473250082625155202823009494407361064473228743026700110941608835314225992976841260072275789697627913152902709139706934360174025836816557609171849980601820810747994628259134101912648200504037682574809314263461746579933437854214639360823173048048532799466897989941595423000051653831589041041887150364141057098084327754464283646142519214046684300176535027655859092932040174039244140385842206962571668616283239910316185545983872701574361523905599576202328706357800468260841403308417084878139659447160676673725306960809925605263112540601941300975036231459163754339372602164822238212890472408203517886099180723878202653238418849563032955956221847616213330000408969950504922945508715005358474095304081186406333163011935483814839649934809778762815504627356795750509548339047054330382292284575663910498057707447695478764088917898584061953540360691900792980256471847623986594796506870524799228648868782758916480608250155651578329510921461588804346019633921890023987261124994471877760233068611657457181865598682289086094184236673510592516680714244040389536817583093830336210702678381636338484129880049647048349725024850563795367466528083411910095482045173574248211688590838783757085298874659739058225344942140209573432168443228764474333090928301168638722678091428489417380806368965893194420867218400630640187600878491791788063739450868494580911858516658585831920207632705349044089531604294413214460628090370071277666742564043091016491891268893349964564424623608491704402941524099692155900348869298935811530180515009543816029841220244084798586688036052208767627170991289828286946468803307548675177448896293937617672545441190324253996211216581331778001033864915186128557112549320311277113028534928317217055439737467598971966324030291655266462826116796765829455426231144423204581564761182538179249324697491990105962305900165479304197909039430063197269444747052115904846807741596800623931508067847460675081537914939004022430278105272344734526502026694664085352523032417650292100745447255462685717827394464082704430209711747941948063653220374255393632137638072003401204300665990733923194468165421416074419294495362078200219021319000456840219858129627982973517144663698266075700935668586029809821937263861366151376855545721499228288092804340930975582190777610556468594941680558784912891876042783573239390720234073819813744342281415845021291508464744956981881189331418052713736505096847763900507584450407292567901160755599543025617803442246340689187440317019844033847956280693299894594170035803095881812043441992085750808764336165455781861739861899333364388780028433502941741015804730390380833680513822662242572300000243243748167433692107538793320952414404460022757618180462931050279368520495096327504897126130010881834201209395014012013909875193970100037233958153408467616307730646771573855292038260323515471219354164484361237016221045727242082212791954436345291746377849400451881421731746305887803232148878893981309861824288959401510853635019916091314336315179372544787210216239066756451426477003449618069964066815172757563422231823584517613976885941820752975132060934458455695442469310824263011518689893515928612919331211861394979931848756668927044744375356592933282210159405945333280737698997323954223347691881300028302172046133081086380034241994666343534855893440179172187381681173695088949590894612085509532530564384882108215117629211577191966708025905369305200575701547594668735090387229755655025921498472527684385108250924864491417442852825972077295615067396736759210944666264023888887887173050813811304658484749475693246801640409716065480427088718347469603966792972734656713453611359495152774209659017060671600007877046174040348818745963649542126051872628944355312457663837788778341188052601587387159357815231769197081941567253077609521312690106940081723675109218494638022112571177931684147229731454872277448391180838005901530971598643381525123104470105627140381736425974632561358639501503569468980026468912516856179965724249399368532240898391554984329526147075775248110892109099323018978431546750689545828366603374609340524991921382392625997634798347509948561088484311830800882548953608265019139344682050105975671650610291627626285152542700321670277243147079626779525528183409665175374620919897488551878077608755446793878148273604453963513996105444304038294815242358667665530646789462100388061556466311824801632974124664621412785814921788238445373819407336146932124964580055436496605107991587736988018519889594644555383452163605709193214467533436272883357656157947240629511359662972476828674938121513761548948706618703612059468592917404857668686135847815601293417964602385833948216792557053581732902452126750966372184975505891707071587283332170848230568426801156506215053079970185879751102894077028320536861594341461132368473417200434971914050994919445945560613896243543506045371491112193514879054297011022425870439702653925682442510924440854256962206615017269289615985713974436148536906272717135769596786280488445222928869943345533649944114425892281178061613754806844535209444031673510268974098241794930464065643234774018643486567592988803023462264758160556197055766414479131483711618013876589923678039414454214916608339956025260706401589808938351051411811542185970131474545215251464752474686886937099210940691474744670769403017717114206257262657229572503203472291359671208087024036786992789211145580666794634543919024025818260190768414743651733496510707569165957968140728799232377297459102296688711758288893527514526241878321861952884898107808663209960946794625353872101131390931947587612474453265989100753423051390109102334368620805273851512252633900796929697984513525098887142328796382389389810128068083516375509333796153534384359641262145090498603077556031668645763689608257320710615320548379900322683213685079924118722145349219178687585657996072564929735007458672664023912039263716466328707774566104656315843850270944313313803954466609280420730814281999494527499184216892130287573693440658716524870314350775250257689967707133518757666512953462494309719716420222954384879125706363819956291370217766810751260705024341403808376692335543917040643087736160392893278782850510975963236586284266824094070072587037512784798832994544736017854214275113440452459888496506318433835034741127175147514183642367641846006834414842893081861703538222996401206486116457321975805550028486109959471428985584132522672870494970393531359094642603155205051887345938150952212022286838939923931149805790343461413641567386447314391479705489964427915495286979655199998791136126877276358005998702405252665459087782254677224929257765775784684489010355078003832319451880404743761479881547207050930454244920750859725793359807771135811851192660544320119864902994297921334122886096418188571235285814466969311761317631788470010677949084136979515075380273940288239986130246783736079710696418944079884578104358171976294251124606674384119538969902497673935230269167671188977886988238242459290993262354942484746082432411529452151885730779487831530273956254587548963057265525843670425798189109816226322924389053828349496902940358433572092016888970989062542980977725046494823535438394857558252667056971529175407912321254670306690246677533721260187637135556743626883557134074438852262049050529823394577035778369927658479110625505469540285500726099842033280149512798373167834902592426145261990576565219076958456424151429832213511862267751725682917411979975781015274583240344710017437597161735615521001370132398127156493833269579800914092578031976715483558840777040260089088055015786334310788662329842727740171512996042404648627463984000482536117535482781704513842788002987456726697530537232756757845032264386424621746285746473734297827228872696580975583188792237095563961576493158624166826764212768737358506740331555058679617660790835473349609307541331377655651741245950335467128472304168851326360405557208223592965157409721598300748544245995494927170282171251420597348494056460480046065359163467071499457564646146392074964158479267842171235583150285071895678792386992534808688549549119227156624804154325460769886066142752419947835129863844246323252285417009827740588256375375137301105741809380685623449157055984909318492662110357695719953726688561031148831936766513847093730444357436251185835751849951606074792365426248065681551836188800941688246993603257105812862712820664650044873558586898546109360698470538951694319239839323302238038427023808195224850366081158958893729245284796702695432469983642801007541559343965952108815105601219387539219346253226029398781787248869470688000522010321377861729735238398823656162174152467914527131992391491259353713087527180638127191027829071482060150477725644716668465079456187385616413196811462422729103117149133411044386487683391720452800834099760588817888541912261144914384745773002397532596403101362635174964749738281349925815273643427116847236523828637928857481514984472376864453655544061047400416518186200259718304994113359820094105522563449773811360407603056769550141605786473416601917938512248693731101618877393257360560327364462487290206912247931943992858760457471572745144541899030606519801410043856644863907865150947006988869650865463634043164157694290226534205413743672453145715206765569620357072458554643381029647503238678139454580001894229497338159782148223049093701945359353631614391287261716904178118587019343045848099842059755211187616303004825093661804294384964991558740409674542569068252999547638825788003571802177254450559223193095608733448640474090224187838944514152569619644186253639990422414472658537742386382758754170677080327923731385134724914942138328180054061254614279073917488815483202451279263725301604700253291875246263382929124759420362324621762747448766563427287631181027401930603347572814003401628789899203955157207410699468368388595995202100202653285606708114238576414649131801544395122342650979809990363425038301507849223758551623596627744815096942448201316362508583020611801970581600297692988107189500158353892181498231538586116141132778381259928911079495557144453015586857832646715411928913903049583673974224552916151967133631793939515261266353914503242626687374980478030824394176504441982734040893306509778614976271738579811104612038204054995906863134809641992247955100829944871685714358169867840741240631727324348869377092632676184737540177390595209875640037505462097059799637841784935896664042105441219973005188863490071193818528467756498909737157160363156689506582559852437644258789917479705769169217862995136119808866140891439619678035670980107188380975085015193521160047915459865977381274462236325587796756316753573740379814418001864690841886107170854335229677597126415018446937632046743212515724252035725419963735401383528404297214209472879947932236277737000284763588707693411271209261110756465887579149323033491185836048601754974591090765873416748198046391362839372333884391309416548821845281615149479731198779322513880819060207175223281774517516818629276856626724529634319818907705818846330756277523506230380378552888575555152598030807382070002646707117448974531600087634885254376343146351586466079768446528619416090757290474786366707480046508954587908163862729329229999465714379905181633224041014378690235888768202497710907799853050734759446909124535383505263103944395706215091270066949185469929067393902292417167020950656965665607466280561614675861829498496947635862694895960169645441029020995712584847517936836595661975881565101626578299770757977159914512681647801858194348901834849541199537476448208684697136851376744840023408368125777715710359554568773348672272056716057945439269981830961705302400427927022365106833761601679525391739302828750607824986085727965950194484157310793176970742850284662821200306832181325278978643961379874983960252907416764861396727212903594571145740851296075047899819195556041254845320918100019051592425580696104954725239137222753388277662284171716591180409510757990026750142258187903688183619826733600195789296774050072418555784417984542741780292749434904652285317113749309594612128513362565931401495143167322596272578110709428088530092564758453800854045333054148318025611203836605089622547507825116208716618119440269771532765371773240568802303276897917937081271427617916811654863295186291181835132883908537777071432718101996920884341216464486642138811152149976442515394633338304640876101361802799654185734714026995818300642973534185352294296527540063090418186031585206669964004136524508010334387576238041637276851736942115623373099777812914859626577303428476857986750426940084203638614255770442974013700722120392963346171395880641583034432897599165168860907965617776874851219405220478475860906310539593354654919485429054397679713695551504930968429796030401874829006756743597013349160982517773346118666289370322201353328632942471535016526791461135003120879318611386971047790617284737735396460209721366051410441523094659716988792956673604706677115405897084331570017241004128798553776746132848321953524679089985999479373704045942138334163181056518560328481941574952505473638096870714134572014477677164068389765336003002573842779824495108120532204880425686192718038575900747607825059268659366820732576964793337727252771825978410469242146094072527757202717707015233837177263284472943198826845461715603465151450344655773503824961459168172594704497492458029086310614815663767905681692562933068125722321729622007274573877154256105070033209358993830211495534248338507306934490715486188747760574228230206473792278527752618142689887494144992051849820866570726248279768845494711222253419139890291755555988508054255087097812381557133741173148699501382672846766416245615526073179361543132303323369130304321032664035728931986013610091165376352258946371483374910364204592028119140908254485360499052498141217847652466236658294659561916522369223430674957575950687742766094092783692308630343937984204872588332690991235194804377526736806076226528154232104963348849356366968885975081275723062261312109093538938952364100403233143527401193475713271147234152763670183716975205315538347233371222076055022640243163062766194802461866663875776089765126791437033115731161475434614068638508842781695146005989246736631131380527081891897941858363642617572551952466785842817390451558827710170117293345572032338957734575533634205267104144121089997436708918349567837125315880425042344924553679159528478067365483720720163954801725524082598624762894193846341039120768669747373183291282426671461642724226678038794046446534313486493446421210744353483100446678222932377310904467762033279542280885872382120310672798557629242583204024621048716760269917381371152998685860067369215834167591224404622113434219255021179933785945652817617595559768853704198740935889750816256562890866722269847779974338517948995762695060814732115711236835752112342416681651198254820078766672680657110483043304748051660662445221162802326168509633735758850787054520967829675962646184271099342452057259187785500984458230067376633512418976209441674593841081287218946805791075895812422615034473362250133648283267583001303700070462114316726188081425974637997863314878445687375141379222821307956037708986159919096454957209300244729905117889087754469488296843556190873402138137194819063174138396923666450398246773428674572152160514237215529096606663101042352768533539764526138822261735176136059391856428279085855570843718121824728427712902691457566232923756215471014138144955663865403354307690125758549396410511178502602003761636790292802206482393761652791302866230240454014642861160400392605339866167295930490104209972455488088556127407001018707640178715421997837138899140428625918233329305947503347361615134240121369612897588231824709198264103025233027339570306548364929653346975139819821430019016361704965059663474075832599659558933988736774694458702325129786796890162730580323908643415339893835235871298534819972085183135850350761292061788804274906218887078270043303723780739827057839498978390064884656035392043353376134268642807855911804837780449173806826664755262015768618383760264927199857744237104864031725120135424292540739473818548055181724453141626004951952827548053909027159071755857253056329787236740680374425535675215718015462449755701085964952165039539544997093226971071733737554730869203335354734468873291283493837881993526413442496481004866359329446681137993181201949834676580082603449478131713061953867140272023477090946509807885448505544255671598278243496285196588140567477211232287791798801846836054574812009190261494075650375400184150047900737104526217294326721230989309675977602982482414190518417557778062491959902734086174844313509802512721806035836683029244567767560560834692465102618648092269543155795874379776640160725217582504931749372736289188410576941305745876059429014429795357471741414293893372181572450613451276363519819723750829773550195526856161469929068261864902943686171471465883845743627356953880964225841551510544695312234007240668686561961541416034626863420884830805117054376487773029603060090695814790066416134119268171240130227862244273809388247641362434214084185679477723232286287206588798505637334921493843037891406495674680080180688633801643934125395064519563590219985450063476255642538390870152998005287710780400402259309830347621543753536733556376822198668135648908942035241160649652800981525723407191679968984439122875274358119783772661406300410165131728771290427636958588509270418459212097836477079718613507690214686567856276922020347499028008341798293363304903640650306002176416677231978514034046849437155025832121918554618442069504059975047760314583944330389590205134815595389557967081176229512742473632339705981174958456123285422286235409571454441122821298625017387398993929503858529488993783912173767736604047905259141728462604030471972984979122892277918764597454847040480673710768479675145343913347962689849310006732482716415192903895646609743460467240859310737750150690526449817354911422750058676286801000083119179200552913096733281740502225772485275968168081385111370784843258886736112158210380640952813669710381301304490616557822879899325789252749654757176198327838454622232210168506998792266511337014150806695082622483222773121488585665344500696943565231261764699535626745858093321036787519983632376702415813461440312150181757525187683543321691794900178420128332870704125020240122147349791193780249109494767491097088548709894557689905054614106759793618700684165353608702307977315227138969464902416049571816866359674589826740814234541129716610356935383864386166716849409002194567014179847207340720038823716808977253559559218618451234042561888299753396912217762265675490125290695635210474325590448713537496171313332415607609493718530871858941499118093040984141809297308414128740365852876000206442104067622608264018242696030703713443417834155153122998118556988002582171920160160743275800030584672071714207214900491197921136946588259402288336296811352439063164478732202198931288051475646260352362656396941843679904563835765331783641478240026754232734746085062927784703255885142923003558577616304270356544002924085458190432683276140066949207509405331299798347488749736674779149770731048376300366219835922170001430626044729704300041704730698148511705403391454724647289115027221720318855731132448418432180087346706879291337423738779774754742395939877501671996378161080566798597539315228311195601829179718561253656489224336566882847870043517429819833413449953632744235219812422910379249915761152723017145662138443704531566626367454218358103225599320271713617262206933040361647452833701985808844588850205856193536696680909251864892042342461602084147146295952372904466313864367438688944722315038375721606915496109793191458848675921951333552521411980151165978023733149960281899311302911093259781613071437357286715104715106022915852146251513886243571526389851008853537019117599634969597289614821867284408664655474493729004084397927400990686689598579514292858097445840598262090971461939140652267072634570122843584726854278655814216045350818667665280136002239688703977010770597399016239534956145556184853326771737909254029431460764091843447130724103505907924932134348595471501423159395046820559607060413736701972767557139242438286923936325380072607699224279414788574409044337011792724336987596399320724297888058326293429850756343934093162581240911932573020454556850368897032726747709448110911446747029690602927371799154693397983497528134414826758078841728902922001297978269461627964429647474711457044603770689705130028038273946267488645632765233531932023157748598773536312705125970128363153009226853259084725529175976998852596622176283157275216878684676851713520748269559047603282799379665907940954598008390293719298319440395893077307994707055140103805459359101017805353184260428735904547580709785764997763935454290064879807941805350298871419241369423951983819899702048130242447157393754409966983216831525894593941060491775569821442485646668081917314661455987956972502778286267719422740816670487390322397769145733186314364683493956211511095648279857308370822167398537001668531523323371907388545840827286131344031494861535629134102064034925208764451486110059932834778322413802985876608473604989112696157717558302457741792768366850898824819620200912193508810237283698845837320770161349649893840942241216266822920507916774037578007968369287805385189147777638821762048577124212388481033910765459566613740999723232379028173432742791281634372180286485186659037388458972290015133984719834707224855473077353963829329660169566748782397938043477612643364864343113068214449298730537827616351296601507107425666956055152164148083379755066198500065647307796244792815110989392437735187675059452677708507891267752288053559184497085509951238114724590154297095702776162918894060827336138833790764818524433142164548056910373231902183464296356074988469062950252212784262681438826244313847209050619975262868135949162243399938695417342961394839958605810164343446312852792291397835082952881240434517850918015150101808886883138764806917445475746829621005978988324585739097367267180973930226504740923709607995040200617726214985153606928618656175709282283628373697849508781982315441552951236439109882123962027995115799627727073324960782741076128824852971384449262264450837130380024513746368784811737166998245055514431888251909849698997474642503903234603058007474690773441647647433791060073926108629134481180586150764173627173710420259441360309097538349312105390121326932625369804971917839733556746739986342410617460202169644696726372858874266174445429644434297415086215620057162794596782203153784221359867096397080446232731378998998565495864932749148469862334692609610358849991979636068107499891637683125917602683405292153300448240813462848910475506815031215340926420489386841033611687830619647613768442197577549459203154379484221603360695272931320000794667038730211489317038621635193421209269351310059339616094178649123628521420079432840255372506922937550296932918789119838335864040560053593547188422066470969710089514517310392476274024140523956676356209215916522939045573480081231620104816524617017399296901390998372151620359904652120994476318405687976378617490762769136304534781960015013762454631437092081109282667089232816294231741600768208252402603985671532278210403067928843943279074699673882715373590249844055376396956911304240599563013675762238205502442894437701862178258369319780138663695722976631134346086852955480312379358956705843643591548895277782009423242900991822784441451583209546935128206263528204725000862930498821339719533099509456184915518464455456900109806334676267163429299125439119958332436457803758359668181880984185199245018331782479780516232621014711112459101126159224938564862581453598864838005078797324449520160634777890387787116759228272579694492037425021978244878813132670641285707447658458085287781300424083519390235861473050947977442984223653796236779917957044675192079132062784250777379089551330061323739503210401073669732047657948163670662957701614260921387193569732959776983979659950297850259909447214611319496920973445022710121881751616295447381125926553610792045100103730903765213246152960460929598012910720117660972379550994980814183821656208911287129646494019361501008030374659424514694947232290071194363395488959401599680832980641770328129307005067646515352897818229867443832679942196595459935542087411620526440194387562158193792219623740107045700862704313114931576548635292464908876602658278920838025874991765039237589582384753822397771150278011181453525853056944047477424465512564361485220572237076386653187009836990743679967860738644516311077893805490124460429605591030608475590689275632060158846356064214703692238077085488528411028994565753883798888822111746465205084899041886811443770878809173130728324213521860975026770100678417505527178769153998765736447270642021355825960390343863191082233195725521853861382735152586939953842921774957179245194315363218544102331092874507011257885857953784872372270100250751726208878218842347652018158147062492099401065849079987567746487820962868156195102723713764639348188275306672949966176926492229488804846249334582395357103394606744454614652717409688626308904522067164701594679885805301912893981355903310905234216674563019899591997800965593413243985573282930163217864716625141605457500595963157200680514915504962901810049274290616578444845627216802050590045474288651825303633184620826195722023624746955886409247958654642637170076176816223687102232727624141141931667139995970696716710358739354893488689906488028111297638599850971949698951923551461648143303601975551951522264876465123703581247038304178003275722815969470704297689615665694513586249666366031533207234712212500283133813767533526406323888833130343983400368084485840710076996237990901216778963999430046554551339424340344813253705751246842777667281628061831849748373782155921491611883276900405916987080892004508912340819518448113506719301787623302200706048702730102694600551555697651224670024163309548820929083027658590858362515633774790140499994003257717563862542856406455986531305457682905213525863837716266146939291364102312025876616022622631000334876656811082204442977859362932324873491019899675194465140911942459742771103636035293121856714742810058945482852897733411382471640586771002707695393130403954012833766988668974138806205215541365460560973386942702264795297485814055901825227685154399188777303782423105124797654369958226269846835848706688495539957717801949983191994425826406027068742325546498648214485737374667371477902217974575494362246215870458829669241511120414477528361104039421749353483126237037202180109169719321717675492379164683796779016620902802984580928378160211459844950829781044665165968680597644847103664217378895470786953373241107189137140197332168172200739196251664701151689720267675657662971210237036807260344466043869126376955236144395885592683037454206697615665191754385944590720481917817131298855835151940346672364195610343099832475135470093281994314056123687604218546648651524651926357799945519120981758971146853621982916294972262211873033756974975947000047739052935113888030666280968726686849718888929805992314108263820676702037862814860779293026411015467157049393400874005647736767595897373262579240696995767320786907678336215458445144280495927581727065881405903090667237602353475656235388093573819038169063034050817532212440914053006135591380630642528309946353512257920362995818276559949417986625737255359331490615482233234442668310202806234798606045503714223692321896210217654710697975205731052136827932537379435516800592217183306926810567568862725832081324321968872280995664157758307120932379237765008273287089189107591377750589807047339283704696052700942708528057463872471876874695319385158829085382019653723841396891948487358742104303077428456120811198975696353985132928666890961328954845817860887990059995788227303957887843133514548149189845481226860252515182037781919941332567079829930279487592424801649052216653282416723968633768654167361206413370733139805572850729058423691433571067400446589043023656231824253694780965468793500269354587276118063051959374821290468783694064795818297918642278099835487015543141372956730654001326316795662713433046044574258469073221349837148231446823901361865147262402604073355539093410953053001032008065720611595138455838533284006237746478782439173170218729681831028524891929587886398273192083433680163998349945660710431056963753833635357526309740609505732198254431435655432430186273443021300604184587955544830646531165234778787440481715618170854626588726575267870023884050448868910582538796096566230734596873121880131189052341652250671181140137991272534348513082082627285217454647878484593333307852797442145789320280095817827358393620060356783374610913363600834592125937753043164867199435436795042639920382088681627052340036665747565676853267810661600380819854732773137034278379575093306266965949908091272439434809975613806887174122721940722347973538023922725713346258362057388299684829793509779823227491417261678838279845589336521520922141585143011531883146852989445215437939646827379677098087667210934134022633918463180322166306006081795985994336270255496846729715000134776249680936424254863101146290372534702523395586534547716840222925783441776624668792957467979152483970924694829282782611066328082288788844175244681512820263458329103420448747636804370458209124499752342242897959518473842217009773783503446728029929961404408629859644007519393256579008321805316971705052590094980075515927720669401296535886969593212113641591112443813942281101885129582651179998491071494592626391767073070372022193729405077899872006442811125671108130829006038731611380314416250984033085424322865251867197255953898651596902659926797418630527978759853834763386070556293203637394346910931231272026268955986849688860035292811615356006554248975894588272453305328155513865399164320830477885270261947161364911839011636747845452025449838745699162875397348192142744172962059835473665503549863524511300854116154673894403669206480781042329321046853765376115464544817714375937232146399751322412817369245799741948270052538304667471169414652115852616973263242001523630176369178030450016623276799431558635441862403521913515556931086597679558471184227421240312238542370219035992807011978301714514346417395744717988307624399413385491942952705974578693422385839496809048053614636014462761053539655141921156901863678191016632706531147034027679280077491891642497201191226038547154258962551420176858284008114833939748043549929318326344156628879505861879568858131201089124857197760065160165082525191704132602099620252850720154340181280563873456683425396454625032266830137174948996431935676552305734564839119337846315489094241869001739497388730725533433940717808983660726613372494422436210248232930923785713336612981926192965650705576754981898504671750152105951540299794872182917092314527213755477204342187958821771574226219790621708310806668034342730031406884464296218773796137930072622852367101129073951343077010288194341556885869641032622998370197731865685235914855249426154276954759074497890071428193706767188179982756364914536620684879187671223315102738772549649373821479539366137981414076438244400630493896197353930216861617967623657110533366206147187821953478697568097657607011660262419008592818068982864902475614482161105458420662978901528389507902282372098271194710039439405209382070715817980017702024708641289629296587267016899346933127319567355765516662702590347384695876362279963320714098906097575058931591876743752106347285824653621844202376027921800665857181644515730138738691856930582199135915418646376839679201265301880939503742582410990034771976248085755569587297288109016648428088957691589108853720844312999418474421589715622235972018069824100242479376521077420062393752971515050423881241746152225470712647721113521235074189052570935925254729979821806108656760334930750264677791810342390807966926232845756346416160025819158156392602571396520462848208392641071316116949051993760229696968200582192279181143375223339229371853558819385104197497028861075257055375365048410293198266922753112075714881135773567741067773905772615868253768670799268612822858253925934107035463598173515968196991360817504885939089617316882731594034667032510039386572841465408331145720463816876055506362677260241589643524506612425529312144160206712068146038706123481857803383192985330669162367949610829626938881977310832363528707798122257162458779246444513861121370788082793119168028658495220777616717471612900805209525077614708196357700679116545370559170276590180077382580220599358360605683894550268665205424267945303678958666984504866334358367193215379571679177013202148917646520732605129999497199487194457638543897479468834854685789872141992042671975355525792594434654825279723292921005158996726560270530860896740860064309457137218632358010853588310735676327231564320692120763000500437571071818126673412074473429279459822405997085395197775208330585171814425812567106823656681607342321377676568574304572092157264535855180374218675773937783893666369613541115125217914204994176987983730011060094075161784714939057446910768424694815714778353189371936623239576996889179334124271671420055833944283422123232900018529405747040648290995654087106272385734687834678972348109032041059313572395679895538031272630825563895418849314305346786369954730197700689172046595481658746995293305463837913475894436428164488745250593358266034349684194833606081974560717239330350434092896739576580952827325174931421045987712143923964354094498796934804230923205435889138769633782502242553336208592067089677805819536120144517006356370999293531514669329752298254600640080574045890871184841107708525915159402842960671918008743590439761318061763684787187868590916033106064614363532177776566469902726092859337009609886624489009356072277783542323679882416990640387427747633082993541618751786945387094475076028937584081147575927778393126911283091365011545582115832244381595816331022330059312862066401439231469488968565771007296514773016482586145666658290430288519220038115675203769359888077836290142652761054386935582690256531151158405553954030582814260464287994465250532265685808136967346130491250408243706857473469598101945832153761252615578553302445682589351798042925511512980927209583777357559023197986146329095151504497957151214955916990784962110901658443094706230741830380442602716744838679334685155846106577661554477371157431948944516487234891061020903034489847391767131987196576179762922758164312415162857248869892131874221544903976409296199875996744128217506502880419332914653220916712958684616720134576273099277218353671418266631985409612079877548044494217064913379341630142735045915703476953653287351240844215606704569253314208240017702931769625288416584756843795458402692664928894589412169564576987695336522459872365288815255661209276401675490794277611273054771536451030726074326616423937237816724606450488995906690942361497675997783597985052042547516949752958589887737209053378250312379139987232428241885350689016104320970084445174084921076338277326816308318579286923604546209056619426819034585358747674713007854899832282171389109571888403755427410282164104626076177468395542698231088309229822064221467672247018021262277764112039753677856275700260284961093472641031045227364817528408240903060151946485964527084402101198314142203726200987684222226289453659394216824635143767442678097364445448458081673563673373616275172765650845191774816614017999041780060760872042460474655216505007501025544353253625592837898180883957532882824766820660419114012471582737503666139645956679096477013956317999592150557670182537244237368040249580595632121908437890355096473909605216995612322380359989487405121426915149832387101069067484799706485318663879545986166368723471561581865119716660183890321613718375749583124488638960982166883894131242294615975691500550672899026678811685495638472435695500536303678473943269973237777550062055464923612204505950849115002890793369526769276311161898915281603982294961439738554627280689131513528607503858454854254296944997352324839987712005106303416037185259480965536436997271249195324067828662830438553855028811463301980525849175431658454666669459230402176007529122320140257593154642339290406811328423748305144104254199325929628487338896993919618958304402922144999891536999846137855711179880229933779522438161134912281737351234814460141833151160806953610075911152671226262250316175402466340944660627042449742743036315225793043488098400725039618714219905946012608857982119890552574231418780433219836809282847112120962800618752202204775800792230412175073534193690048532002537212956438278410752600672549616422046813867598403270108464704500708754554251200816812188429245903282913182865494427988162933585650142037337267221215536931068683147281092602758414762291931916248210644499510877735271727024687771544507414057576668093027482939933690337170900527550476532378692418587141698060970899005589649787056763094016222369898152372195921375153852582357345329150642272527999036909354681359363748881027923698003308678444982498569623990936860620002527057792771703281896625556656526747074861281943224031277961196160194221128288216329182947978976728520328208258957689664937793976248038216111892869667152280161015177046906604251815593236208558629656266968650050424651783667137634923628696358214355756549922312500793617615641447128309141458329276897579703965751672755646974126042986537362805217751351140942383774817002580948925344461117125863605879633743214181688507893863303461663805076832621432613805744008713171855180324251086350503508142731720954203434369086875940119245170919370341159848454689365086960026012429917323631352915381101310962064109414674766701343160950211677396759760158671161874045010319161497943808082034080930349339422727769432139966903122041144014856369729272367602621341196487873340470524174462754917059008833423089580175506660873853416131936186920638553032100665033633111129404701424487234519681289107837473265333133127507486528907775328881303720368605839911999882974914147430427541902715567831288195766039488040952318912202257318116143300695028350070021298800800631201111500597242968663531358585629216415178401179909954516397071550831409510312446750389855585202207830143611920937598279348696839640962135073897607340659895992913703827677609592395556794902369094766651429418257330552233876760019448162830582408252483240945931549839912758250910798730693724495929655323261181937571899659694055999445620111084147221215890836791594308627770153259832206756157952146873777552513423589117650901732232960520615402792891349375745668430655924679692901281481640383099961595289919771491551156846986810528454513290805034856827874824964308872965401129017202405392341863482364645118949962976053605316737953250277108052551646045038991528963621401662657557147205129254354430906869398871677161260222945030502670269265841789932545581891640273077262530868902352512187252511105118226426357751337398792771583980103985086972003091675892122166856026196740096260336553266624967175030918238117123432663114874482017875513720759944832190455929495255722737605680244810317013934752419143965332588255450300920019581225605167750114037258762144806726720893981793299762213922308949516113882990857855792504596610463103156669665505528278946968033199867343519096319677877618341462916688087506721352059453671576631506106686420334478699801349554116625966103326493042582540955629705081265521325846040310719787157939354891070369023439082899016184751502612189036862722642189530723531937097820533054115966870337517185039928160756633480349582577791829598815382727748082208197916890845412932475067974744371394640062818130697325846221806779547884086115688525193724789561202797503821108806649499198534700122862323861306571434267010105170454504330053736107500694839967361141326156616375909878992206754316349697317034293352660978679662494890059937686240922462057633699649978411506814561320689858476269059095832728772886070266016025137868546882803124504513749758275782314578525440409397945782725303253831318423342326468588287236433570791441181104388906893810868015672423869671344568919467475471472323618282915916943027121509349226947396510806132988322050138849078913251056798767634663064789134129882834412348014630800855084765503599812762503069580541514137577323563754095005990384688991951249514160988154264622510921134634243891469567438664446432883533089486280454583220858409495488363531165191447016030182245243051473525237984021272661478893841262328400494159014207280741075163524894898386737244984040537978947508193769851783930100619341696606791070273411659736158965535469036111652917082326924917163156500199737521886477345898383284918547725570013296027166121434690177577349751157572858008444623315233020227837931549962820633069860371168357552555088997749884273705469550514887316705477318032025975987707342031458623317312775766122819376371517704851448596294546414215412780479834105597405044734002248884925359263544557265369381975141827799870284493920530557785683860326561307367510629034303803924760468361364089394084367093385984612137544900568293918581126431714424334797538674560886979822678914992798663615935713663094749499656974965078811694233287223235989948949409490010606911995111408376263711219665551476347319367013054739959471077226995322947929333750565031630968887418026317683212512376213573322889034633038591387336922785714268589539112160099517235930381915120885335538134179454200682062602159561598742675698818164642024582707635786671660537311414830165552556841876483946884318314854347858539222305948834537590574224819940455692400823492373717282377982753724997234719640995795044653796355558394467886189355863555248196800440681721288364050618581683269566948993604017322849622882957267527568857162806799817865016921645141676813265244380009041531037824182594737019306797757967076117119285029997242890091836243088639666994147144688383588047411709346720232875481386346762476321300130855093100564808470075898505424356220713169784683242007929613919508519520505058032602107243344657970424559912597561659626431434079044326782877801553071443117583815140920462886921943231370528711908207510396471447593018928931661715227924552401703727288992035350712495526709062824068320575559279912054929343500481252100516664580488762813700898367276524264509753299972088494985487605724486713774989990734146343808468657752801392486451704477332586944184979613158231765122246069678873501345748465936917513790246206727299665993526271870804719510444648554408703192993526635008704660742308577271272743928645475454105422604332055000124462446181437721124144907049574636967215543758370356297562459697992845328370950597188256710586218012937841718817671171263841795266589543830627704993317112026599903891276166967523106885571136998073416913279465222371264217974077292678942637536549156058172723133935440341733000472696144824251256870185606942052923293861667505118650968988949369938373435314842970730698498777762294659711265250982342520483143340656640042569833132515854133719160609185296521718800357261540989614196072047321478639964653667239695353838897135536155508317784936153030131476396724993955357677823465415740160617552914502476912021264399321576747723782318390920375988037493370965920453462022444444323791328164436571271477855190813573457176597647459442171759784573475983489101451648929190228275402428473960762948147257555605778550609135550717076405772162885673822558424967795882113999474955611695036454139647355084229542123172918753407744118091510088689336137203685426153585436327803912319579118748317360657611046033056476072819223191411521147089394254357947690799301381110309053914344475322867618556564195626828008422723167628491455040737313148265279534875602547389380396124562377421429429883180056686187356685240150375084038771966108343735740451129412733144243936164439882205536893980547902148976741041534696491327386135253196800725756593821673269941232483811268131513115771406750504912084501369747258918047775406422305007651836159141142857802353856431370814297613349173011157386255720779556658077387819540920110125533406237748869011396866529430102989184760189233773977606220548241637130567297206260768169979171909787593361317053980912882406828993517793023054359764426684991441491427824840796715156828602857241450958474596310124892357264076445118372966542398028676722108648395377532685709424488124656429232110095121041017823260288118419755078627618209532185350634682797493583897169102785636972011045820834755690830475507432059965624656256896434733274582126717112322166522392837173814915286354964132349602958757879828790122592117273535689094017959411385987691772809248087229586468368259942671877563470268201179649478766895584848196696578622135398784737876954740145841803550839619456465695330980955528611830063401665160066001344990981258261898262473798955133014556991387609394128918746524528559682827479106184614500683501395784245846268559003273709173705381620122235022157774290646219047801541670987136487680860216470808206312094528799735060987863618332697988959710579703802053033452188683177113892613088504815820341588814709333173503171090376262415852978937184117010278574202994100365063265112359487029848901890177827233336973190981094215860877949478362589389671013187696025214227673281578356535607305710885660280570709393001607928914987811415899314862650872917822621367835079805238594196681462796920675137488693073973472881001900104753683591751127930764620205687730766166565898178549066749367751171320787579825232506046831614979366384172911713900554525345043863267652518052940074252577173822032416577437983132582257811737000483619963601842274982027086650046471024616382990476157001479481945641445289145842938399625753887038474033568535454697191521153050201816316713138755058573497766658062924022827776979148826689407451608685773843584838600927050671326567528754174535920502058431314073991700767936765485087028632788845407253391097991072642290334190870574823603604082723784745555002710954487679687955603965154268025833996053957379043340721135727483632563627534631030255193160247493893143435609958579853832369980202586912646327256432188328464674467095450956268509194373275203775399746789665047449623156191362663940099205843893212026145279663129767336582968300188761946126448005863963524516974326416237766379630168216887974383676303549451662524103346501338866296203153608709918966462582194980933015458765300108216125991534626459701071690240956745103490748366842769267267884153678088490916915242731902785525720592746964901802184028345346590104969808594279787892984789926816582880223080860698543175610260330335205688190458957004610976575693506595816348914320660888340064216672555718882891873050515099249383327168410996159214870944388246897192599525159047806652161660837882632073743468026727678200243918942968157682187173394653675997556282600550712333801484862421653046843631533324325012507657120208291984712630248052295990001493675735594623619436086256415145901441725150384384419357095069828710608821166368678395036824450546699943440374476715416008539587376739523804574936533140050611184377297569274675696301076313401739507529291495629512663702456615568692939811082676349978528583160762849920566446326793793356934452126239426094468553260139660542798011940677029380322708866374372990927904785502867961998829061096799484344476012298430655980316636960906966420757114452958691331705561791059050942439721222332554989509745013572939879373758693175241349758176474161506302258575854007025351448824225588951251792704165559567424842511669267279733586736413567228719041224706192831070409636775058733508294953390417540001313150692966549270412857112573412099875933253524099697980174368584754405994409329013647654305668710453997275916204730006245126490452674658085672390905924876386581155950960478428674368350320624600438179178576131842347931074662578064171299669789904475613851070303799679609037146233736789602305799807359769663555281588259818075680357158936129663470460671072544847755552947410717397611593898469043583748915485247959571788481582137900331669790946630782703509658908840391718772255167072110034386552810922899679879165356649618532891428479891795327959432940390789141728391590798998522480054355739401160480782670030244402965490188290881915864492431715322706676866810395313055605202806705862351014998499134268294432032639207624186808480484627260915290379698195711682581907461236094886876121928319914213059738151689671698355225522159815625954881661397082859586108745441918708280285865557240257292441234695015868891418177600540798291717706556611557679386518146792276565464532850743872599546442321199760426225521799176453039260967831629039474257856842391168087679469136113966448692631968658029585402306606762937580693724359238815357490792983378459751815669240019583628697814038908615777302856804822181512879827094455512948810539169008229691570952641090598998344925230406097026416691969902729753105023438981506185198381812424166130672564940523210107711255067040724625151056907971429508604729212277279349114617442181736734756937667865769599415365273229626400642280281891855127467145566004633766405229739474707493881430221108395349403592917315761181523530366158285306798489043917014763107169135386711272205591500802641656743920333560121567986299964749725972316991594675629627204882175538775383320216871947783396617848234000366889799952596417746161569256532384356423252007420689797065670890429653526158344829430801417037231539100788081524296224173941792680413805673947391074196665453365874857303969381647735450400557129886924701158575373803210179569492648721403819239010669176372477236137738972620706528994276235320927001309472036780315676044214129314625025177441615444262116765847432895098008047546225743235599488021896532441779682056792613724349668007957045123655225859065850032954809580814817468329344700694374444953663609348417200163108008032900816905576092603350823156764648468119478811583744049632070188844836848461058338858879504743219593534920345253782140538888086151250889017006794105967268936776382237007871344228995182621399580903174321536597962004709531460829266273346124327941064829727657702357055869386280126737409730864629067833940210989092698765879713071382361500922782286134040213740259752379204216421618126110884419048563189534226674580913754003874929491914515272191819893460347119349476668940870956809178676640556799796730059675894137621628835355391651647064466862730046223423128708325337883258892918059131423918102356320047540968893583537650129100088875122749674703520907739565097136755464613901541686443931223588365278148876849870515819147499545659420823549908128027729026606420879599509357174972662124814336054472662613007023493142695012707782838500907543494855675803793338865155112381879561902888891529637521010682790604813366801617474151367233376223224516171197937194184301783762940748825141412581642585945389425311596934298918127980651265963850222475855671490115289209866334888201861792594187721532288268936327211512763190069541789428180144331575082998016215958911086330107836458040186228510313656474180654203276172404078333333960338207634267608304473595561604817903995810280676307622214250010978093005799321626846997335450372357524835877354057474292633595033313926187582588763371407062646265011945651989024265252632832168928947177286195666230665615154397496515923222006888340806719640744092722610526490197002782474630739406114223293013624666236756159190057030867969155106496341792464604939855816198345051137483658223274626198434605098974719274971073926455263050437335706348824292710639120730266322828009713030317252817836810213133264665398269593685366641238313778787239032820634925410644490444466715464711982318051624813531565038328708058416800791392338710578372245800714307615142116141398602544851478160122540845104122863670865329929244371225726224700093120667121298213070711242100009423080074336373730227344652785296567685512713533300379738357849372554171541751780749451737527774491102648813571942265288205003622714966497798896362254236524018824665237264177893077518909542977288757022323268663438709654079210132728671127913801004436991970214407122704261341746150712056371758705451029302912804605451394679324310140055910510207982643058985833920948421319937373678269224236913843029348906423035619292129778785518788744554708528780425364786780295467301082883753412714776187745948775331466820985205692465737263979687129506816125619185161792883976660584182357207545154370018390097780680584378744560562725074033816602581397544647611699294555517142812121427460427451526294880936854841022333632848728604935672278067858198286486672117052093238015794534045628131117064900747571119964753507726803178939122200902950573710446720386097468964780618761413387150442696774554513064599239369509587715629622200116058093953614700586803947999356733185985093336379664179951980522643919495443094800125558499719926732932907684001682466993754972619962153981273352053922037699889060107460459383828695368512546890952013036755529109509819252450326194455055783768007367861014220289675558156963183625614457708161566796933888202193198720656665813395711190250487406195201791778833440633001460593689800644052342823076377633720476335373808605444388887763333172792467006800541621935849986320260661360420296026668263473702039350273969034952671420685027105471324138351855612644300751434721287771283585991667596256493551891473120748323052430737749760042960314311460652083380208917302487739888769965794504561343709245512415986121043603309122620110251697765796375597437755672598202929068155309747472380822457934853130535781865077895194850966803664133207156346418501382896945411941972124862000594533733701279752444663548763422290988082660373661719579337463733466912158789985520033276262627343984207904706284770433068968223126666704957991974238983698551737249111711785246235279347105794178347050824410790113562908966139477080381162366403148686976620106676083270606010160657735372913184582450467314587319245321514859713766059176441388338490865008345177796264333818457356536491136853189179870861708127295267844326555513854660415626780987387923693607321892095112608643528422361243874408508319877937369869936783435101443978808902791879905670525499637966923380291779369838958680800926683146044337259567479039131102038707627832470223142537004940301109430544632187283419180890918542275215843485002929432505158955186955998741054971184275209135418700366426792501575107431030080548273613905207946054983673129773540368060738899077484293563963020247878809528889124476978269928418056887405007415955978639679970604620872756548428462266949000997456331057487964857543568368191379588660379874034844256323632067192588032837589858065520886866729191623063449479095285544848166592164118140407198806646723213332722688399656915600702063048297109000980420788381660869086621168348417709994506635921702982565671362283062242096958373684021477356726282744474799301086120627939040560236111891229097390645723578362738867238453880421568799699482499949695258189003719036408213862708413022427678728234484801965357075166940200327164514455064915017680018749109019559489453688909135059469734392461550900538141805239460104186836506633761348222039804131136067229193292975884725539366180645205442913303552156827407166144432497478288208766385518021809273774967725711354392290037068516921054597910791481507668732704548290773274275083753915117532679463763118980053277201339666851635658492505249313372175109245538844502039351282272955844642661859379021210964194799042777864654896361201276541381885974956033554416550774681029756798204266834187591722218376235901008209435304144504083074320131951335031412447543347069635427220792257975071292151727900960612718886598725357375571068112177632746471781095570597002045867360501162469967592751372407873257335614746605240753838319383479594710989468164222948190755853162245047291681316858270226299414405679408484697853919788436918106222849979508594336493693179771827270079422082446038844180309787245518105165369160066204494183995057218049042672826826984651733814904686946371238931478846819794876577673400077076028032414839309975139089206857960814097031531815453278812318703761051351750054644674192623348689993340048609584948509692131447769701168950467571420000318392317918594478220751496514038700288566706165344482719691696987918982018279903582408473980290431786378270687675217498443951740379842070808314111586307752549925170085044458037890143231983180608604438145330808006630550441110793398183845446905607474586344861585443660880784154456836405803872027011430141973239794582718629698316757412478195317469892594006852876024667360244645248953945420436985184806395375043084085583988956685572178213197016685264956296479795436961312998989546776160518481041676532815582929679975017003236351916882500215613517170628089036053632329458227089574210315614083495933192070485475023299415364122345410688158709125419815768549224959455351855438004173638010731897686590840526352405388234824250558698016931015926979036202959434916848106968339419779932978876968611370874748259919538554959166336330408438826494253108579964759870686194585369792563705666596905440652752323659499393969600859831016707135407116754102784958905504602894808866155321023719796303145551284337343194501532657187443318827588737363840138789920166825194226553080133958225757694393827558622395975726438167379434269145206029017208374418265710324848289688887177869429177913071682077815700880490266948170612737558251224276303232958130522256833957008547109450926062019118580945134242806673531877417291670766205713282536029355007169944275480221600320927405141142464015443327435442967355194237498303511050738002929830510458001310992487925643529756647158477649047115243969679738445944980390893674851069360588847296771304000411270834430323972119303014832083355951182658340742955039499001845653745924299576227550446464751550515192765907088088102978214748998734759696333945022385580448329015665856937977547851292183135068314672773943369370782118941090450215800697618646564254167159832673076368433106344536033344782739519586734456483379999369351009798258821935898536670517687416493604479159678363139518463742999256135779378101303837175708528667159749999877266074069288530116084579019153972687399952686260083747833306551638342973400582971756404709395704172242970083306347293792457822002926354454496471854884970175438030430456889370418889502758898322208309117503268494949550614185507124286436280062478411277079613518688343955790748345789395698719399380776867892327353111065220627773814835034395496278444428334637630210842870013060322821829728011136815139175410550070839096016989082908353872079121646525361014160007351676037671212051422888290566056283236503494534930326933505917415925980549340029397301509187868540600630784066930497484134384524447369807963419356281386608044220162117732520329487682675242177549706013844691597410288628287651591330044365782840780981664280627961731691782410968291999330731054506507484827634793527159175278453213470487047877241276212061219554272033621665167790353379837287043865682229534561905970818265959415477960094713413065269192624036118526673970257741918819503068457991411346345004074565827842586220323670065510744708834056016869274347205391705665230237777919472926703677269289453323172528798623796054441267130342616720971791553516619291723528737782653902393921725274283570728686741456237660959929772576891232217900253188394361056503620117811452121637084326892314619846319180838073951603245758652755224809695567670634174845599708344665079203685034341150503369821466457101824467807691088090171143026734665563347930046014543351084332414592531177324909817254376721138123032631829044390951986268734098617168300678018359694121371026682102841456126135939054703716462725075152152026860367275141212046300996103173057149425753434050238349465313824408683848785274273110803871938050705812224395131203280247216216114002914107406326904908441980065837401093370352289458388475669346410439429109056490662558789119971562099557452019168812162662787836775981140934225263997151922661924406149403621599895912966068452532835794509920476132459156313002840498200099309361902170097043103057360677343775348386730674815029760429766369262119771542962437309989522605608336749331665105290874000373861936580538837309290740375254641964131012290811807445172593003436293529244355763820698417146956310011044728410654622889050299729331145341978319905387436848571988020335303318185001971426300076504964919554599767720406234105103970991484338890487756557755248163324783484701346124418194209150943837728191425898762674175458514242071729906207561164362987287279296719519241418797700465594112902638098721977686037083147819745723670237836204758227988403132097988853913637645623234629723901540774973307218722304874332108158853653748282840677428691084566667015989485147904152574310573121152700367260847972768868377283909302197082878674411982002772871688500342872367409959954539242224686098727710982887347627029645235560397391989365765742260942820028831738550241442019180893431758108921196780196960761485325910508321622592978412376333532575277161195540089656230828533643841205098523397838163586357184232841352436116239052516230537201086568086486607284846953072265782929607481713719921819485712932156140116328179015536832833420904864643933252128586889389991142733764346571386350634205821728975598978564211846158976950360541134730540193818618218948973439397641302718036578505582602398798219504364123260230931742684771270962225733379829693942539821111614640535479165312065364606952727482127757073645324058667472448772185933150126428148292889861383371379477649593872591441265370203554373807328538868329790733225594642831818227495058510585512081518241670884241142587619755852973669447907505868189575680644743011147922342426225762041701737838488575500333553220801447706740046799124010105129190087595024390653434485727603076566646377305605456309961188956888250684788109007549205007770850125563515167859541307306268635273982664301653071153743623181313358410852560933959027924172881716935678267140406878838167790415717859020051386176957230322997590277374052084632365593189612784244409475516769527927017897743113119006774071700711697258074997791542420307837683897860074631514186912303933651648319877950610225583202617385507282525828304725359693051051125567650002154180645060304672277353535131618971105572066383409432151284684603476020214325887191607582581862877495617357891748893696708209023008948537034655631014258119786169761448324916676972441165754643011968801178896220008727440893820185742453847398419537352516599208401576972784272187785473923213522854929645821193246702520235633660328876013445594349522810944726526825330166421519901783923092237706754597995164186299932255783110533868575103781249339792618423337862685816221703003275614952960323056233801879089819071193243285014091821241415903032264225335331954709527369755182583015032893218864885096083359877312317561595369302202245644967487042527064547366596684122897262835798896849459286895648862602403723900865295701702394746619199329599205710172666869278801734935067756497554577915660780664999267603002151578336487723282969951935114371690925796649088746253671877016722919769192347611575756427517211138955363362049198243765258939610374561961071209157420216415565233126881341259365069703854636207809833859487191670132013613410391063525574222252601410893005076032671894900066660836571008981928132943415680008794684209036959938601139520518177629733092891015626598601209487917834064100535650005574849304104844957151962209484713910800799767066332313222851471939987350394357728333527645004906204142562448979983721822738427540385514892736762900867474779851158276548736986641501063589165452673489141017334810519467253882232032234763897036900124437225798870063418006836351233673779312409664268739684309441571299252956072629817499677409432732442178926061538468492992567898603744042896488965708048375776757225347308225800443272208494043227323419849063428516135791444774693358326285599616085269875371041690576222515949046950487225948608656192278771048191165641425737772306060761483632560847239662105858634873223166970266833818530334551629681761366565871057853779028208651710845509456615278297657725699962369829286635341843340545080213738439298338967383485369037813975640951737735494905784506255083012810251677347008956491200886502966124783461056040408314921602652014404628793408977876220937406679373205785419716581861619363503686677880218955869436964481773155904404870484654115032391903561796771477318351895674355467958847758378670482505153655827123232418581085903917191000498403370820237569431316877496261515677551186110360397638770383894583082410553667593986908396227262760458182101754559431827071738919012096894564525886575261197628889368469987311375283895683612575812810680461546120635077935981203432230783863010596465377910111084556043538609831448607752972520289073350744578494114103466265265980227605464449006513527153917074570464023938727661186798866350017040634410269116362992030527339928295632836918352286658393631941668412628355587014635468776220336717220865054399101389337501462207896069534406511117752201691859150125021558651022632486051880576554574686185185726635296019601145239409966140855393338884575482791914258216046861420259306259818781561350043749467538284614969990187489873333359184156878889478335075579812834903300552471000691318490393998982635974126020098479446917242815363200339864120824398919091648036614960032332005849186267059203911785513797326122653998273303788544720567279961194955314845757883129410526811192675420500655704477914119956040673969959532444896430490802769502888166147989514885886458940575273785842217689337400961463255755212871554436190830264804502785206199148554119352125769236039659847512363846713769956472115651504544460130731299198614982818138420450341484294810596613703289071592168578561053694618111782394790873239794267020466028693266642455407681220274423978619888967482098169415442997432145069802385067575317680752657209134156495394123225557805859614489461516336447071752973280834019612588232065095059523914729723406938430428697962822665851585053895974694853374157512081539650417946930525706133938804507025640249183363740321377239742402467401934542439074885119996911659263350056468191263896779163117439351956697140292358033754178398997890026694614549876394087046437540851607449971422862085422493206073200783912669615297540510582141209557842638490755166152139356339883922389694907380185890891532079850057804469508533497546885542057329610552399355166105842119906569990665786328609542556219634856642412307186773116858111896220452977203490181585349303297565437811448189636026708000984328069582373341198786716426546238764482199473571434786035924087240561998575842855021808371317336851983071084850960674152464292572337379868388450443974621546751489278491874303295677671126178414426502067842185249457082946090667300143952028540398060144596576014712449540284380721691328752675484939492701386826461227941250435027177023850912495405736521224835900088258453594595299046584163501601034091299730467568244122560017065049158631397071563796021050645720289713739943887548975493042417695449383472739390014502869898905213494423855015168979486451743861001023457061791464892460508272054104171975430688538748360639811222807048360199901863449592448393159357523645036298964667642285124856176635190039506461899644039317540869707257417739132009976228332647239400750789836157574980076035138523474775302668254547875153737261967895896954091534317808276825914392469989247741763224147653068196719975922749376874704814911485366763560477342787187661131371578401517661706081581524213959708778905684098063897513890937690120670902892749560527547457531846169105777112093429423917308425505824825362852459582600573535239891524504202315958027574254184749319182170326509274545698312287818524612505077868193873164440698499438769279446473925439893860482165400248394712174760911468381488695089132631933965395908446540123841918663005257120599397682337939376312654290752360881349668150582348892815130840500869096392346529240316128203132510839299456769979297037095964280975806656128918024432365699651833895964107560961274075218478089104573713972065001510423443739086151284895682020421532321602394993072520657345385436791109006171454480184915888937460319390135791872790634209198561347504002217078543182698638845133046968596817290089523881312296465021079752077968185116892405266445443800172552820819396328424450920785224138040118380446003841240578760611530487171134192206543646403084402070949303417709917688554657768500413788576592324905435304042973784629509690757438384819818231723033449091480041066740641810267361807065054746149706564301811527591878864935114152940077029436574675760198827145088106811254182393676322861271433492326087887584013973477958969909165071998954402217053263573568632893620226647375899063316006120647657223324934461950969887017214454133881713248088565578701345116493974900122997567679507504183472020538773879752316087694441786662055579423423638220752172862974841024569358666901090803826286495557558175788019354036272951964199416838032372267236184699449683849194221566556536522907953186944377233158784641096858690292020463295252682698191671178893680246794830415541671466380427047281274284298720654138897580545981136673966358997877773537355891334309081350658737664973385236042253270081604822959563289719842581754881245186578659810371776388960174517952246630233693876548901360318482602238406948996998301171369594441759791752994975765885249091398176770054400165063708693893945931079169553945618341561677720149981292964674735754125601244270164099754212354016041361437844670938541763902177848417345853283357221022681857604010159944090254212015060451279105644132852768185826678663359532234827684501421630030295831964190480028921704731473643308052392930939969231659429912679026260214911733166329641856650617884423019123022880133711927184899632998099870912812004577906755274563334441291675232521192892645853963790099335275414978951605836417285587441037833140463360722075879744848127791984216718694726312362057312321593837824072881557874020631665111940173821406044442287706948145985083254036937887785675769297265958435491756853097070967035294710094030647525558899852903198766512520748117162197011831014151906491854059218694774698421448084630354247307997158906384531608729400560519564441741157303122074323179964297993527529586065035588879657170594848648104519948504321647112009130240470370481614544599550444630562088797033957412409264008395098050084885945420121565460170880682157554022939218511426342508476039758878122451878966929954474060681252937661706702261721188456863598659207911170208231567144794942990337411088706491398660256376429744533085811231525721686370836382547198339069884800934327817047871160852901834182918335798333943297792603250136156769929291513375279390617875294709674816912984447456540235055954157544175932811612000487485260628791334832786223614867178515430678497348056054867164447647532768385766008971560284667271906976598214682116918657806727606538493169884113995339585679926483377912860026074547379461364942335834001690909787449327299230476160165283886036057508300312177514838889968807118273332284973569192944923070929598388714431359827057298429045978608291079103548649512337019398977848181032732039937910542958520089382125456760642062782772906842846165349383119833580194921573827413619348340502395194118412409394394248829772562729461826104937500756274908626452760146070143353836968957689956925003706916441812829707142740816540632517346249811977403208380824264885928143455157510901486492729986783941641095377988500791691923078331397847303393700137104119742757890757521124088915017785232294967574792563410124708803304666263340374062762582196035646434950243846882977716831877993577677732492604574534347567899425540338516744113162540264894807443090220429961090026027339875311857335489565872735357643834496373255314417416066177089595991845539376374069256127180761714085985250544798891041665514453855757866539369289383483794649054179097889480191590487401347175818025640543707593929068515853934463877270026937907029805697079872799467854063131576765357618560612393717310000983066302780849246270244774727926856825276645292680690348507886020998252119002625455595823068796976917843389919697997346785868896749829052286109337669689259710398022611899224845435937051086082259108159719856052307645499783906593662112498101646244002006669975995543757797871876085675789281442648308676294255007713871635040864800948516014429702587044770073784020629455161769928561910396818506012372059201464911598512275224237100468168966975513655526673517879306794061570837814401684021905387593936720996852314865119622816943118914963876789737706938314287926787810098429942131321966080014215706631063627282463708889459789526577847239407692077246792101228237626531917809028981415995501426261848641437092239988643879064309094603478381564311771181524821256785937036054155442475115802178953058315902600257390501314590844309513754738910921333071976468854401812354423542463539329448354367367761220460810804389795753739742397700287573302728494449675143201182900223565344712444391950323278442413086825435073254066493112498819105897190505384128036679374888967275790188317504707062624163734188227672635519223262770333013674341843892019843810515185637094466990547091336182979157982587671671738553377572026177413382584891987415759634693285400290887232970822340724000267561182785272487970750862038058427973149641471051571378852568368753674627875436598621631542870880899450237250084768939303657505302499204123613219639889971926186877684631066204910938130134307739042854505158776064954570344079966399241446916668079568247095534545387950303738558324730070253305448082265498608560943989001405226612135855900176362138591471346847218559330899214175531679999212694454581086696271374801852112002527584281008289158283776424572635873648791340139376653132058989128412627424055228391497062792399215001611871627209123487731243077812387843786079309180036670681382992944534651341995816975208232155977819217040790894810321915076987634500538038776119664532220377613952457132839596265053751101092643049649080680383414994835299647946283409446239654544436941724326941066787793381695637669056275899666370773927883568304245711861198902330207626213094808538785973994316631876192336032588651183244501230124702379981564761890180270075251274517273220425221446926614017937147031418423636418148031702995112567274228175364823487860572971941980392222597299344803798272596799173987407449772759480756004361702557103756280917577661910195307743781084269837658666467558010380615778013631652311660895058091941142544238827257368127238527016690236676731576192695118542253031447583714517759166808671828825222469741700613465857134595041856201698173715764561386230104058960757345487838784299806850726053113233622668924887875436949906730795082681218499430965047601589359245173064943930179064199577948258668234718060339897587454473431146427142989769289445063286873256136536761109647868500056166014336214814903889968313525927237275810331147444121071880334606193594860087284953984994615342623965578200936322743516557880539260015870817100977810920665335427240241839785135733906642560889293768506698485276793341420991684048438682283666757478714813836372602802466688456091894874797698171436954587742443765157797942688000229307680126633010716439866864771390355762149492219603074091497809842419686970941341427951037756194648089878164192058007812566908372264247016472021200161812976053847459262848758111913820340322585960730768634603685172420281494113391232045033134683378513667274467277539333240552546534802392582271916155210392025325438137674007013359509584490899341467230155544656539173995925738851646490930388716262788742994868795327794026325658071044546091258395473990222562293381105245710537848172548515482818309814309531990569046511943906003609457153661570791065694112511231490802971214977205268547658116357980634808957261832682173453757779597440875137421565843887799732272704663012109127876209506951424071258357466863037472701861087365017094425927800157975646557378378814621206025613093585958040341962947583760978871212796819362085309371564979240939794481055154828459353545249485212678607733380926352726266796813229857125228847756425801018280469568745771946559688890173373542259642404106964407055622394942082405039844590000392878598209286126242348783491507516810652484919560855228128726065298153598767662343372308569102683786976898284270541393319371018301995126523917583539436967755660664504693510632111892509697042364191554096093469113026819328109518767508948741972126427136636288305691709084170522772097880337269676571106672795512751103629024480426769997370996157209342836232081944423320391470757413708465517513897406245571905440148154061529585152056668201036022100850066720537970603493768447101546116794570768762494395161818132200412738853858907209437031686972325745257988759119870108606565714586915518194575709933847074920105649700138523139730482334367030095258249825157585340842239064049470074378798222922425235320254853623432386578294008592594361172741624882373571206145727376490432006558632613247275478557886089578075577040125933261990062425972121140906919109648337259715900770291868964150097766235113034246554582129079522176230187495725008144650658290038903597960833678373528413020130997975144398737018673801722133339308748231665716872576203945861287181017631862778315910057816534567679445617170972774594679459800601744383925792299048113873481869793392245084569662205769639484049773907225673042850228543433073282069143490929471536511172695328744771979496714604415682786556047105616567226293620504779678229297494130018094464327638584095448868445660846745361949371025540764721140078944303331451083981729560315561695888853704836603783132096812467901057041479907487557722809289262687188554753698286109203296116789762361086609801541132689396815497891238458194042976390855135598374523514575504588697442810690460073347277813706080356407735508619748453108458327333900534355247904661436905447495465316620815303890442311662103673657308780554723608529599229464343280076847181082762131848556376495678539210875927879698964903858672354829213415373257305066143248281673901138727127649432228321247995820006722059273675567171096117276542588857768327880368171903682630598832207684771253416922254902596478012924530929365510038121348872066204326246048571036342506846021325288232666732515626414896585354422989577362162683196940403634290599234630484043738765173760718948353023746290418606268883807640500581975700534681550482012810666674900587159718408606311805842170789946067649165407774367370526075065253751274705864789251572606729131015586606423675691467225880759833172865446310623338141991621916100264727426502015694683120020757580706479169582872285335662473734183911723157020763224178422683345127241497024319908847806435832728328278492564747309503366706934085743384321491105896783666139045147404794791427174011201752648952247140207560799739549975714693570117136771705742676537328688630697953986001127766531297586244408456943510395877467377709802050801992345590492051766140457304955268874627465121975108346412290482061697862098055324749468741878626899950245754671280575249455057574269207136998115482010964886015970089118219598893598772574310913370034168150350494008922023850931306802843611036675834104099789773010073658463523603289862609133300983268434251759178066827847118907748657834061568661422522229875817023658344715134986378055777663300768359084766691509375179675322159274928323269959532446580834908756836184217842169671094408384651721085175556710466591390147579346627787009531614097200412286549246973995288678237814009171186089514689560488736159509208555367008871815466524454947690407188312145855094811570508524157960463906939559924769925585092812230011194906860529341549936455217655482221819389145638526794845482897099251936094084304776937232615652072228773204345801680107611993458235033599117887363854364282527692576299084852017072962785355437452512157031567890290031910002061297610071867485554615036441482563933293700639513810047695240169756922566844414512088281288367953424780964801008568228836846071353074298945605512819247457916208799030297997914947357287547044850229264437665885685808831232790254052724396517655928249041968582028099477234117956228260261851724492104841714857343647272600882801981957279231629903179201498749053370864233010757164794897451980994957555693037647708448295027662612088550167609278598126871433628542669017137793480187230217085025623580309077251610511223043151345187247887897648015372684058041251603060402537149595157322348890938064679549593243833517936954371827606169392150104862676634822123372009830703912681724963806353847142799973999208560295935544101717853915226326445512810929765475455813205033040814500708202758848558168622827119605169854891122367300509671029286785457486569691424554939427739502215398846963103287863395231161194620585483669007939422221245444873599648429289981082189125346522572113238319336013072644322609667964272505186366230881316246009676642869905759795232573320100689179730280980802891242135222881725009567250813937731086337870798655832685006629514377389079240762414664916524071439787958655990562870499380186204119362751252822188660510798157495931730610332528291342381218041040361920227102708547082930572953776726400590661889015069280568179987445289296092329987254306416894418987871397570428356414989233611064378819271570086433884865829091022500158974409271407983741407743448387307733928817503718875682394276083454770460887601759614841225186305462232316777692046124574203007036756870567988060130223197550473861591469390204461049013101107219419360220117300075792060084954625806761889124150585554060551005097644145957435263807634107308198424525206286029439584279215616647086123831236081035573544321001015004583813234408818221340107934371000577787628540015778495079993573515696053230793173203812579405074665538158547576210578979085403165294941400406738054244406105940251502801807920423400871481406295964200089981046302300410241496943676227063268112925024588061027024539020776638862066512730661055818280447979896680173886093559651454511095832023401471142035173384042692626651851254657603346103575945153732327483940976444276397471976466352389254914923859933873607181158240320954689110396275504471130038630742245376339321181751978947224218690426952026121075214186153578191704948608133040001581394363889091116098459071357585777036371795728574196678672250633534972327031875608380755837211701931221016369766197046923549261684678831020521319077910640872264305237553874238382444224532953581770963350649916066274807652537429936100472159100281746450948483440403697790902609459046116304659108383638664579874954555928920770282783626795281291084192615770182333796695220654839789137605085615503779758032051601312671685458260615459266790897674242512274170209823867833403732012647554605989330933339651803857191332871316169778149156597346403674410086134861028082621618341999776743113801936739913087799161160998512903890950236292834787483138827310474460890710285144811695170796160228423287576060622145021400278660200128238452721395078036614904650468308709102116001539474053705230911492285817876368992533889704351497446100411628039613788286302244253596704829404305005303627815065333282609173642015317463858339001143348395401639257980217658205021671743118164921908003960243742536474093572363977508123333842206327666377224054455633260976782592799410694748321363197907957079471654700023033787186731645525905909613912200532447815079880662420516371861208594217195504748157897004999406586161119367767925777846885720930293599620962000180987881748157167068947529883624775754795695803564126400178495007584165354737086287639218026373694522672039096444858729323588256543302464479193848211447148051208989382826119181492632385361461204829441831103198449651857274950643246321170913658616128013565409263530253706415083875817793591696051146408914264190453125643962274698792552460876104279198005001497118985896998449918180787080746808302747120996011822511339743948745394376655594852927792320678540427080899650434559335004244639618968030561553720147085560140209425624447891469075519085018743440158967465741567438290455037904664411019127623328346508096954661743749270211577324961413694198443919261533004593370190840672569096139030219392208668664620537284174387761543255354402290427251813914161402758028538851047415755077782130325740573786141412589076436324550700771183752855415811229582588397990767976394912257501022717529448784767838256147950529395889350601045141331125097766860350093985467847702326194240902893660895943251091864557730772268316545669558201303536837245845189921812179769959941735024575280261965074719570624943769476651737394312254426350661659634492331241822568784888911580998971583010223649473577136935852268795803167224969078196305459982776005282241585706422561214062505578478992788600280792217516250194421522831177052216163731715898725585285890674944793190571608641067168001046138418233709347593354739615748395334067711778798231726222326093229242498218362843115505279274760294460987018375075513329778761608396883837250683072331644883167630724222693064329612021005721341678301047054948393264131781315618714669318382822888294103323178140845737250943453508691789604599938583331779182526545453763911018060903702969001458822327953727866085624825885060204190568330692789436131250394351621998748682039081889993149756388412685216405735551474540449756783232764781756105637756940519421803902487772803834445913181344814563536570787670315374718608041743837839907828404625492914615107291031316946485730902950923144841725644673508837242036399275623194701141316296741065625503952487098102477896183623781214753518863638212914997625837689583929420474717355303915888753853287518262830874603570786449101719521352674027318959068460843209099535818065879103308292339896499185856972797262612059095183944783238164536545632042021016930746340702694238456620389153284950837329061002119132282502263115366784383731589226171896415842141379937331218828125604423995748675305270535773155490388543813776392173141346740217751808216082317776460278016997506544064099712241110991555220535234715448224134605772187253665631678172224403000234105788405077387936000491156061485419647398057409494889349411654493955561320628421054054970250273642165126009859184559759324093953503965923083707864545443327655345796639392818152767038383167085537382440866567724989627768885139272181060219356124263315434461988128920905458746656726839513569047599034643846740552494996655680714433344150409054865312808047551447840534194350306321033732337515506520105183852046058680243239532159175590237823742377432641282912113255489497417771956101173340176947290874496530744852177213354526636386351907416265291126166173405242232701657722300449062943253896789365869818889357540586441066836740648491800617511076026992641688526308463495481774303998024181898725331527775771064868228246239938407753527799835763990077200280917613751293447318854724479377969435008340189000735196363522538819260459911196763929244634929500110641727577888505173595056397067543104025489634234718053756772524208118407212576178811090729843629858394363486922618996396802386333625587188928899606106064261643707530093206504995336447901863927523752021136628003025994034307611084023684803418971345376043094230171191964442867489219286386771326753072591177341830821109639691779890842351674001116170951839022164084084848046517888056445442251876271708046648675248910697498903851139853387677043361462257892856314833323753172880929363975347911166772295773809291731281302047762625458841758179734437415220510715061262262323920995265840481862372650257606558531083632289744909604230187048758812639800493141793210076771540528474468735200201360328572520236965126335437217621220463633433179961033110409659309588455645314109008817030147158843788690862540964173906554190970303513212182537990787709063087385845610145467670915650636979218807740545651804465049453600167515420400695217511315833110600934355973890777304133924117511103384941061372447870807405317312507706511716766161633720648458281885244675483851044615892536655399702163143578283409201763187167622610504807532866060293210297076257700700620842755158547780973067004387279627989759457090512540902699030404514931561324602298783668913910196778857290234367778944907893563290255874287176985109105319819895458963775307437235131730076858015484419408138597326986753258286002391444094978429911511313177815151608033661788658938842328044024408567435372400604927824961117435590027644508646873908065395091628567500724053550023542502973728483196964766067381370763450062585641839755500052663698812742690089849099148894517741103375373462282579422449259233443708405713917041365783938036770197989660733178901386332985731115429564272212412400512371135944816344382931339029664233791762678775097059740698709991288901866602947477341052688970256472171373313905358321260919406075150386196070498990836460771251310501403846813413514680937414016645987111932287052911225697998243001838255345632626165512952951743668936798032935632310641982417292899078521066532394735406243631687992608778563993888344775745133103879419115553930600204221123766030097721523841917213486805504042075459269286757617567621926088821548147258694983595181042489588697994428032697714474794085091363002115650972809581824837542514201269505103842431761331581753597859103657847351896746924601685708135639554186333017419029824933691388802087427146564266050455491128098039061124746145322546334104070107094945775774548434016832470056488992746714350001779664099382549534695646612293319820251324320144770845924738577815027916110892008077392535331749124911737586019353261475828199779403904008536086433235149942878617100839569899221793432828888488603650763156703353109718978897477543711733199282821326726294897091264176616199442104688634524192011261359688505115938401594693201745677088445714547264937005271637738259390876436326105946169978953335646961284215214587003135420493906444048781246943282614094109159633988859075678644579636201795008942735907944686351817984179142785988162507923101977031495195727061712767394622391526279870346803210273131444804575737076840284712388410212638482477608996156214037203112290333729311420431822574972099101030573680792365612181534298809479198754472549119720979683506651934823121594530757655443489781524061994195086927005324320583761198876007476674371458261456011837308886121890675585652541219214893439801922343763956809636912867437891664003888566020330134113338527772123859492127176613655734276362361055204098163713548050445138699885668056615988354978153543474886128601543895520455651205120986173546677021530061186479452703935145615138539483181134774970725138751242570365302200775798693895570400427257264247151164258318161748436892618671851646091778460447596952684265354315488213640243110792387200002927729628407087953375430882238292819623491412346326773595230668988108192055954234708749039543581081086524403518625815496528456858523779252081007827517655828034430540617338679899942938864480127433052316511326323636371764874482215051853948988601296647045147740638897978453538539451448509977218476239737546393625795086413153863370131113301379620033864948228917386007319320968158207454829612593967977079735712334599000807880463605475775395587753787478988250713796424260741199305047126799220838867998515353395141070484178730462668955071959674260260301092253575930099352571805467819205089334193539335572274663296190452377749211126285124028285360449669763988044433309751274366184410827224913467488501464610199091621723428550412817220798738180762163492758583542910444217592910241034883513202670281598008686356097805102103892440651549944749345836198397502202535436441067100665811282612910165908136033419305748478551634654488725137121914920912854002606526854440251411265891137448706453279593824440325840514308598745677610579157416701957887439467267427577547843085925879343591011549519602698696163416784117818684032472505684687592887398982789786616335327034944948364821228611058683757085876764381547788348727495695112673556943784583121228326043994880473693681467052493744160106690236904055341926225940029072769403873747957114941174257098587357031360193160380209216948268842417571030588943774378213415653486556777108289199553003962122785541568182269275517635073852468567413840576077744515157233636480418963066030655440110395424368413177671422504306763802335310458695040259532266398582667076045465144941906784593268041693288664316037526000289777860273541114268113661865374823413355632857828019381733273425313371901437906197871751409146306079946527251084747585073184259097052142817359276494976169119738717676028312392040544380107996120126523471094118154464242109898219152575162597156074455329916518093238281069833577608296745754305836425038428732038851351636583675075719077187706029200172859627567129431271724595829617896960787132449234878363771414945969363301048029412984862016177666167256199766020369629632257114737688221018318525118110573263283511140814405704982251784725218812583649336182966760570514759774941879032967914577409438631581115663624317777249005014986456792891237857297688196325073142764799025933957183279718411249156587027611848534017651787095689899611672838055465395487137232914262125616848118036897098362336941256965309760964146212789281016539917479856234365523869969122364497591260072963440921438517032556741280532923301362383122780229525557774677187873395588275816516991935129109638763509643700344546082455653238848733508765968445323162143377011366968962540597535625108826615873013203741238414707403521046147783383937673255215821447985063371248585605118743281786832500165396806298849201897277550077529785996305504801770792569646065398792180585015387744671434146749062002336138021985765850496626242002677443930832595628670040038316811371095586802384653678906803940959164355860659611668397939719271475316493723023312051279570242556588501060012629367458103804266419734958024080238499168407462691853446914044461624844276049084101796561559578812580124919568211298985875392566240393754205442296510972699865653240703678744763757964914829108304563064763135078013965814076326644228115848267920670502579564864243534265311255761082561183347747474789032650319639164402482098112048196021417981033063950394200138143393708852036725869838360250054054397927622765308587715547270965753494267359571038629408252329129963827339208662244549169034168431996854612974980437668792963912883070324790486361361136685130616575688543702418917262092211597143036122892254489019451422116791202634482309504073037013554180069706628630129308860027530492877265095990773147478091493532935050198961039622196250579016480217009365945314134016814891913801347672878104338887573904879926711720100888385492093473534229526893120969504150774139571188267935278482975522264284112846759192006173768987044667202592638043939426834757763369409589299675668602531908933197465650625693086349346387961399624497362468737092640983144936299422414011397459304903624036400783321996562245070553005494646365830914384924796175559281124335405593738851707293947405992500510408205065087555446130989691088447952795411211090997144874561993349115163953866125668722990110067300048763179568404385940960598523306117928134393371548729482200971825682772882910259091085279839284081774377061105853685866782040433806299490093510105042224773682540213515410291684505502606812739173279032564722047065480372629141386193474823250337377149309670329390994068058366279990800802532456808176132563319936858378580975121684196365386797357799882152436096579782078001611858180418140663275774393912889862343158967504244842402399003102275030068047420801143093204001847409420417347895070769216591454235939029095288288261872203651734951825492429902366997365747349934714651249116222377414136804351270621723888974732601758331753235416986990261826775282539337025959037055484026349646568745700354676719223767386205113107238210860780840543971991548056007891884385979644820609585823544125723930289527733768337776032533006983053191076324420920185804556398334044475256595319756215343547749552596811812525892680684579519095329702571894027170503759843998364502927913390459650929058723233495175189237731232462898583093409195458245612500443158277057991082560999641004678940641829409648762010512427618829288564210182613429891858610480010749229202755675975497451621828188607692393569210748393293922717048941224637093134732526568011151250265815569362967619678186446851111916322171494677104860385205004370610937303595050899682567130748314045402804939835854963844863839337125450986934355944706714056008212385926088437630666974429940865930649853090158795722632487215705413861183057219849424624583421716393737116476305684435436255344003238191184150900002434204764602866520482768267301150141919762648493136574637939860429489723775604796849835797956797816232741470654012911573733993062969911571615649748996798243578009189465264751214860338507986976021029612315889825068679541482106697705965467378423494726648749659365855127326661013214446512148075522882799799987163507858391975149196782993973101747604033451369345157115675833648358712307691315712236586052167707837099840288751379844643501726691111460485826080605141391830286482839565781023682275078685392670847809688304316091211804012996985390570400157446040670258493265689961697082800353266931960983127297658260406805280796803778863748596162763092458230266549688764004940876214574301373819627691602302834424294832527235357215429403296954687583834872499548646330319524353345541642734304844031482339393999079954773938714421876305675851252954991451399860215779524712390433872843806431441117416324677340006155732955630321561466040151519198985156664679490932843131591534490664985427430335105902162278121803542585830944906445423580549183575722381466410595834743820187385036301315066011541322738671798630818249976339658910714540758829666448770162460506921447022023773966464093734695314987435355994072841649115082498082045773432528007516849173065044205501869337040912651320757000530358709796421254705003616109584923706128227935949254267366854825459408380769947403323425627618419876733514375133390374088655043329813392215861713233126471096617917540291041886596165505524629817751729360554748045252190433429126891874093750678387050101422359651549480570529966586591758158756826532587782970234829159329743108315709682687026225571137589629385842081670879097758350332877549829712882971544029233009376452199532455767699822438254611722120477294308640354563604648932580568813690462587787073942502242451795479141674271192522438236705081620910009139816960502598676570297177468722448434808145888821873178082264435566610749278460907822029629676378805806458263655268356535363608098956131076582098433350830819748267920530208254844552552260557603283138973599294764628379976401943146018164322636503241668737674185981951704312876448098558387935009238236984976355270944908285639299529188056390316478222344164670134415430117078816224749275148000323845603169754588495676193337106276911363792552637966951023990043443825935282994349604022052106542259607615623117861645231322364515280061047013797604565063788944335300520793383787145187307481353860284917331194925950341144244867435278723134667789502263684061281361253297938180277751308236241646779732705564479424834269354193167750376476466913624959528171882150187311263853059411403045529424255665980348322873642289433181690767761950577330164616056270249283130962503241479131767166988710739468833235739575321174184703945830330511370610092084239150959694132351392304495617153802836494344320033663500292833896042725301372717970285829186684633595653042658273809771486936082683984879241851119235467248827348077171327746925691742638495714474843794558352996784799760445818206846274703879312263608441250654633923048784303240970616101753180204247429121995217279685948864326987717122155363756442007414625253510482614446154144309106439436775194320802399939603851771485911305068731097576544789751881199590764769134273908325198033872441952807922281901919916029383425000388538217891866200046361691489478325754757132556513884599283941009353518379133834986975584343772763790295225580819662565313810732427675533819431703637373384132231312489542433392404014691935663262331410144491029107841966615003526559615929833427672826720580890675554453375611397720501421570325047927736831070084278781427040187757220262489067801437699066959935224290111451866290510018380632417360173635614596546651146752925503525264795450806103363535216023823925461584039251073582388629306278738933984671566519691433412747272707121890634299656829738516099859271378876702605541690488992215446327565508453524174928554265916730648711199985962222168455676348063174686414941533516598070974108728181325616459290934280278726471906333710412958614636875155670651535841593158939359249071282246876030741143574576356700560423063796865147837093213692441159856241090903641156648211057178672378086944253642457279746592250485518499986498079739293698254819681445011932650466577017448924932071641532927538173316719440378448594105983550127638271987641144190052570177656171857958644823359330972808163617275992491604694584172792812157951689480177376150654294547780287239375960248419329210524681697282911015865214591647702656930832225598535488512620362812680517678885302406752863428790661177266236547747030139465643537878796679417829296997960247140127322237211241681363792831360152040707374942042860277424622296589888061653404292224379125080662292382623667705843675366540792652960613748807496568277837045186437540991048710728576136234643758591134663867873036920731529741825243340192241028547554648920171697503893654348519999426008918561823959837938853012184676026994778528833363668275984591203228951115836902465728580181789281016379168245400141498148851507812696846336536513040615990171670995877709316301507159006453634610059393142778701466592465426015214616975230061830764039467785949589212480743606928311069411491260760958927836371821548583367139188613464001425574202086258540826937063104000589552120194298629869478795723162007260165049886729617903424545620958077660062128002096537452141388113892242639954136769720664353584829463131577367302658491568798195513095908649074161379492735872999598559731398521663510957277322243988616794076124657126893785282916200722784287646865056653361468051179617797699140227837777841012229336702612524620497575609338004617023962557366310012822329852318670937600431781642695705712692177963241019526110916461135740023394416687299222273951410953199028762839681617126218334958953947669897470126766693244201691761207229389755007090739563285052863748798924835060185484178812598292329153906378824818835040694599596378463064788196262876947658430268388388990914544918518510671428867488036751565614506310913264415792021867736995456901266067696629468071854345270666891711128379017549963297832783569237974201342739294744451970758791733249626040725026916276092877854009100584014053915060142342997149330638285658309158844277560737361527809176011969861573901612580554590592332152123781985371375740998224957710942754982851771822801369046478428503705173267527754899217609047122391702086470123862916439851555868164524807099295135338552618606385378971149643135022864928439341385407473036927253999478977280498810547845195070124374256975560536967050903012010150470361891952234366108960913035664435652164769422347342740824394799529324926971554479117946492716455991164778287945643313866223920084735730855872464652386105273429835653185189819033650172126206048734539952743080196590855235549759727893294121181558665262558484288594619808296149331822588112449311493986001398627998322545990733986889629536939070114299027958678311705986646176151108943870228261284042094593268790188751146972273090170512224718441735115760814200539281854379495079656389474242664002152678590108189429427158060527945580477804553597525471484189146686663718042367368232465910221826421727439166369406733499354508212160630926634089541148596120195801936025561270252409949093209579421382777764508356715442371484394148696977596645686398034160541156611287114338913925037529974110193436519664261428797040854171732864797821398721339377833622398415235912005394698153489518164475651241541436831142527943231536547744205347028602412356837916609211719446363743740749143765147330204737667668825330087022024917201129429158146267734548480341791105738916074583565843332224368432648735074432418586879186798108421289568507644675671486428401018223761370142156270016427369004056103607552944908885339785396331094148090550229576220012635416306084270304530049035450928723870949668847407052081329662750780374869230287135618045061653391057192711731098225672649102002030179257911831193394167629533051532532658743843745573546135804954712449131463290693384059327099154265944249971734107212987017032172902539144577387622717861205332144981907074337578415908487089265751427579915923072820301275272784369362237048930668123600386093904383296329076248475864470498525096874377156124999221682233160170772182181276731650706904384904360966886225133945437960739013630670851649479007105444874820634479161245144132115521535183889280290992183342029847010370274848806951610987407875131590838154122188866894176337826834613096813916285843102731708152884215554389182488370022105561467726761769767979838505415148743333699451692696419979079295560096405807798742798321792603965585626559296921357077323963651621494834426328784841557165256254547629878793270716326409124693547426213588754503191669753975432335544538367934786621457623836742954797322883409341345012064767363106190598864515090948569441418280792683105934502172240002810581862184254963317328797432270177581291186117126830277768795570405325195917433028545495702288236771296167932739883383853890858014924419161188751520364781725013342527636325503841205837040205977584673711226584229272788994986549294022194104618678495783197086770828414241051825799873852010099393463162886429158521620737932749562096238138395610166678641299497250468556431501441423231959808700670033506453763510012563409085036595390650232039886617236402570379621170467344224708767612580235844047727233185320491006043436937448135038377406241009043817983854137075216624395045467795341492494324646492916254778106020448695935259822488776594943950854097428271981204938226232997009127109581473695223764363930248928115346783027886238268844871620299936044278705319859105268326147848715415697222082798216696546610639077572306610196542380432106454560208031242361479270871773703929966380529684412385724972577889252234800474896026023344060072506535290045600557719533720530090492056418506961419833798774018939405046352043509149403328514229562445923927103423298274371661648154513299536451105963824640576933091447236039483097493452076841641396835446458984583780115994304209188144616895573920523241087090894133530025898575047344254208010557093199523877293984288615882317367792993834050312082104036041884987555715243928800229101617430756842556606628499199703620145619261751140322251916125390438125607836974877052349385323656528414887037896231573508529655152047809264770273846401666925812715618035405892307643724998132010877909480203767830181416161175660484222973497720046477932328411762927495563667247998569517439791732981164596124188713275874324282626954624184753250323865073334502661090768004500047666727120042693556222359546190046264688996933825766403226716463711464513950078998779844234994599186066561878969423296336784105750142778955911365723740917879169470062682376357552214325960805105306359012177840339633669508831083043651395532986857793466828338178320625112214120931957109250209848892774200647151943973451113045807308316666932317744518679632011443690292660073788306390684216512108796623975169999093354303604910798598858547343761952518072696288012847912228697724451235924712993299690053989851853481430921987577077765387025239397643259244533401197417070602294453793601714086217897285423235160431232129262676074588459525615620850690936147531933792016528827886101682647030293866571928453141627801828644475438256607938822773771411962652308033432457817025542718681854872431408438250596563751615905912223464252939600973854969931019570527875489553154314539991194158496613364109314710136263797183931475762860636717599112642992623493827953386348623324687472273060273095671018365356695481465225907692396658791464517239706761971404758860882650079524980164198982806587650711556797159736882406412553895273254875467683480696538756689231972720753594536034037398064970970096299141384507023799764411895487060601315234575635575797891070385383321689895039613281287324219245004453140400599211668917321473434235511321286499325445050528820174367857940498325463681249091116024931210277671880186705598887754333076693637174306042754732260602051244137975685846086646465303941305833108072583065612037077068263106830258525528605206318130644298290687782616746984833153155168821479432048497429466013388423190698878630905241816189332473260848522848675460859410000434774790594155387086005651842593049755887523513654507346469736954378129961344175281488389969751153146618489104931379789110467057758712674752372607593319716999067655245013326437043805048974274998501541701105782744961293555309634923675885191996859721675272246684387596222888407375155517962737506665834758704805691710454070994282862727415524939488492633724869860857768022830986689252126596360611601234878039127476144855917556827746121700744977134472032822530825615922221499406556500044251242877168053859813730114585945484997038627798934454875927148818844127542555191597828133756344651332304953188318519312392954009861729874384082282261698304330389071817954807367605768937365165821153872281348006282147706202757525771220687550038897083010528318235208744101650230020324816805336515400225794285679251860437858977149018830207415618953124171644548171817963641059140408344070913487356592915190876442238396346255799206960421203941749056480007082915255776893831133919196591082786690416854141200325505129363748366251003911225687430745127669735464969940752558235223950119154425255411871240074883227691571592484881807228363875918140264650092077304375876356898696152598179151281975388810178878686763872893975661153081819463658326391762328053343390961701539440252709178176988293031167983873972135217359425250362101923151253712870704670708364872410028405125601271256246008765883285061977594809569862138373983632446485543469262134427448656017921508305974925513781595036604085875407565327458775114334050169238799712523307225130418229205244132030324009455391172901282061944690028248742232361095643182950223524870472692977822105174170348020511898689014062238219275631498796874730898252504893264446771573709105554756015520637647045093371209860008731153994773556682166537516823884429091272011726884404007896429038199035279185998353895514321791865730906657914278282275989385309280627733762301125668990547121131901642543175161719527337347957360789151718141626756634352723016718490288480921264643710824676495965506504376032090018719991489758796433806569943183909401657565292762610380424192050778544583948979271801191637167563499280340666858189206978515496863675293009998283711942557352049814255390885243482323781684461239658240518064012522026371857115911490302078593227103962604962396411266278746764605139719961621857994547994342547911358212894319280074389135145459942330943054905088928699820467713222099673848339122910970306876238579233847840563566618135427749612467921812389499127091464029115098111717584801780663395079729143290914458915793424661883862596761393398380936402938345700399554407859312944027512055134751983055259286680396515994222960290818693397437986652922448773055751313065189032839109695566670136101247320800243049714631856163141241139492542008357779389887149645587229964506189899992784821559733261783906943942618260496582430292262722335706860844129271214159334568655020084617430580467780099727063595491715245498612125155784757649287837739326828244785955674375782912321483390815388474769987921232701992667235730166809531807152306600164888333550300178431163013347595637638891604430638554730598688313618638635768131074526584627712208792220162553200949993331234307716475704186819735783970656376411670628668368518671908493337186619570667124280777807312237753159242290972558961500195389818455366540107904963274914545012926337158692271893042939096276770524555445609001802223406100456902821458999481633252279466528930741870044739612409063580420956566138458414489089281972073961657188180863175673725046464701884230614968000246508458341842186699064434107993004105259156170103896168756404069626340640255381089311079542320853424060434345927951482861953370742196875766626945833947739806940623538561264285547796761803233867784397686159474915443303103894988168475444027301707687179416127423848010821795719400433093944454553516106435827090248822081732875945247248697877576850515446077878130252593136137242750143175926639590845031966533447088906803054625140908683550882238749119760539937305672072414129076322653970957917923348861233979450678276067006510303021938486436651928742636472165115335779749844216374442304003685775030653876285006570173321050072117671865125235248778288541365046955009741898388869475797399381982435444088898448641299173181643397966371749045010760588125170367883793180881721057573596184749663426037473917830515187602418013379380132807472173850788434729226306687472156499105546415447063425415947353677943826063699606285466222535826834445039064276157404865132992314280111886717659908866968137770798100522932657660213163285392470240181688298144700142895071608139266450699348545731834821727760448933158864732539734428233115456566475521044255472628058820331853879452044992969248839552616630918564110652830156775111249532957524957784906710644063866723755830367186126488291937798521605394689397883314315744388505194443200321830022318402173376352529167640090906640222846979280358887388527317989121204120167466615745599053404672627171355099615814399605570050299844314882754943859703714237918387213479218706940338844249095302113196206643548932808676311622590300743563157413175290572891844809883458502627429181100908357078345448974837519673832874844125634147903170029291406055919313801076246522555934378437552555115744496610954614251353327950943323681810280806552759093262769520712326991357038363261550542200686008340677330891110579835197726145296223681965811285854061744605589796087780812020436536020757854245568682826115510659867640179560951490838554578841950159676893887386948407678698107279968702738216376023675472810715458967308782746618477161081232144195414485525390717263638155655447715298411037403802829089588250035171398643490271116482145486586293655865596478715573310135136663747366720296033098941340192880068607427255936380333347123440694444514968842594834019008231462623365317853437818460505816657554948260329139369721182751338615760413003544610579011497997919865725034910720111288320048751492400840925049248363608530769098400728674977911333372516777682657249531217786664815885175747676413442452043702479033154373609014097790282376014314239318699300885245221123826013074740190303659196857470341441569123975950840505212052574484672188884094827732886558988873851127172112890393951893074859516475300692634836816941775058462215823170486115474352175900447687862083833409813959961550261122728607161222183804567019333187527214749247863452273637247269623077092354881789094913346030249032332418598817002430887198590131242261945808532331459962827469223749721449880134189768784828221880798331181418315595861007990132885441539394432466396039861050247229686491645880823035755686031963824412682552156739525202415218080309691300405204559815578279624741124786515238561158797311309374189641922874606910044373594660834177706111904307487338499057088547500140797185708909984322504912153681599841648322179637994840331290706981027294727728946178874168640142045047066899122445269119213730512479582429455952321539260297637496601528466877011561797127006997702440992647230963491394114610180323276480667919828780746920683321892061202966319947489520824951422628096990725535056382094172543834541031466204307161670297387130905271626274370831404778729183627739524555390635635778166506498517480888704818483924678784995323972031477959307328262396483737170797302561713737278371485008230752023865032988619043981726556846016520646991013035925519255328787358325379302904893817134199990611295581659297776702574208780971945202843886123130656521048351223368225531020507592968626156591589099235963342090758494146751009387471030985533551466963111066313456555932491124669566481215648852949022774756414624499847424886041063296517404155940650381404644207798387744890555716533100607917940567555430065063642886130036431806483217100219548544527845767180650614549359526322635476235473241837903833199194883812022287494629218443887333128037153064507722690251108712734470492695087424110040841210312391596010696080299011331333125596730912627658782269349359917097065116122955439851470044282374797869528503591650353543560654278002523782357989479852326039846432488452606755432009715345915526621195208936171278961663921588525110128029974427194223871069546393779333430053591062733063834654319120507301050895031329714340292225868371078912335131160550022688272017072919939090240193188251253261934527726397766093140042555206143781914621142557122560585418214234624831572823275204624107931540256100854464250375856585435151726016719173211750480499893792957292254002007349836085360323590574637299970677272045336412382857751571094230463040978729924478187478796372337558165075652159039484244369555611380101322493401306680848921398990475531432923740026545163258496379020056409658608483383641578250155596399482785585088387498723635883308634731825601060897500412353493036090828633214405549830031257910767997086695905496915520081868880859958036238650674067856397807125312272620405976986466793832890080016823983363817292005749183378699729214992894300362669259937463194059942328321423078542507287824544167247547268542381441082568403711068646267516549768701082313167576097909359093601572807369906589769294278589958147297608634033252117784289621342795896863309501591209007599247150137959587772240820161951787094041541912675137793326341289262979377849197559259241409544915354893334453712268064099890512723889480010004307914259904187892148275460913250930810979623141149555977311188080801729324512707554145251400337021698950583358084136705430042016953425804393943316442733128140344399949317549735371457643334636715322482082454649810201777063296283633787377099973723527557404822825673237181660649460155780165205617744119084352702996054614216403166600503827866785250778072437638679830168076416842077087080380086982701070016067266596025912177826625091956738954231621718254896065202558188403815769556118668437629718646276678826657035374853368552320689099097007100201850411887629230341583847280184326887648744919431628167190819886154929339712452312746990863122794967745957080427824121495826965744746466632503644436212177598484024986088295321661380609160370767156252191911850807092541563789323532331052820085889925454784359784028429899298734641343163882016081066475542807323328618529349642268356737859331283950988419244406908560364274811580941198776045665892163145349300995807900659472114191281132667791727553509948365817606568026198442056464335133403022963157198671115959534879463053133543568826764452058539851873427415127404962791342822069460817813759886441463134845627427895226695100231250930427731831503763650977767698364021289699919101733848886113175334696628114685929478525865068140233369800757144644372063129626218821502522870912851225844701866778375944961395752710459891631689866543118776576170395310444588311244688899154953480817643385058378938118871343797184305916607747703815491339693654681793512475049025017191890132471203539824146270469806592853131643340132247552341816761031155748425076490038971115574316352425895845022410196924821616559195949901936293150448900063370350827134666228406323787176393426633942375010872946450447624969428355584898999613214303291912186729203674947131945371105888583857531034653924808698213883954928067561890841227555437198660128495451604653934586428578731456011657096753377515474926364708038757016459469598192199453534958958508685347630478350113384751201309230637798022325369515141321518277766865858466175823070837193694407698327956171011122139263266676572552955876835355473154647790112827151407478429275196729683304901306449702495684529855166777097823681932765562097148110063031028162720367226887401458697807179861760106139209728165021268552146922601172798079383732151879730669562761044142428219385668580370877054509141116006951510395420452309263962603837839398509450752553263788699484167658133567850132993097853823842158637963127935320466648826019680295896081042537467499586079055807844046704369871591211628792502651466095228468422175990082337427860900540088675032892779183963149627135107215726515146647317908582335286674240570419960354412216654355921118347313712235191714892223992924031674319806283898864440290947246472777516008837969706016579960618754505077949525221243365230680645457441018340636724383606201961626107922951370921909458348305834679514568907501178260244510006928281782069493354461427289810067080862631157951690614631199976509699402686224587914536778617708939215292682430855684738703923925989609462273131320216225246789686031794276484949461965766493453085301392865034286091634720129109174256842091816037872839573623817316216734784323291927153757728516163677419112467263744728110795292022078422195402514054642102810054917324103804681793474107872508673683290483900133503052407102207267632319361090445881478883348733930723827206623023429660361004454209887061814387475231869941631583496863553792640126465147173321928889459948863621892331647446835922127017619712971829130198189649225880557653329723018587532751437315956902705523382991631740604951968211114312521027554082153386615011877475610676600044501760230362395799010492387350049724756604556575730709476904546101162648883693894867295586564821165709843858569489743751865106392698322562589968808121400818688690447499459620571413116897157199864170950568425723703478805720491421974194523310602200533515152587882251160077024995000229954739617386675167634678845819178925231180650985220945968882289429596379956957569187921861235486905335564820114030103517207340458659836987597637440445496209174684618530282910720757611736906076824527969734540209734202269081824828873441836229504808356088612788093203140598648961312576755600287311256298305635549881672218141863893776517694467632189541945589267925502434200450081904514848058516646666546083941879925794518601079278723971804322432872799194697427088615254570731945913465506700008023241302905457790039155462420173355783552907995215777905326591294692612540556859531743283167512740067506543681912806192859227360687219964975676304611306604140996818359230539801537138080326561670446589307716029784601086796528718713375380006866398382332144682278970029495407379491003977848214646552243745875134802236725246125953860332503677779698916035562026971029003332994837347370633241833140496003936990707209579180275460929149735193630452952320360588178709730267099061428902563785805685668679814357952196839449400992974236878041309373193540601414429559147025690965515315346869228510436966571873837647170188236590887102002820543032322253949878189385191048602035205333834121629527051362288712690959635423831539343378618743184704532839886760202827783446748941193169014337973226415218026595731168831097680335079776852864148537008020965074004160764340315785889383528760201925963089503115739741942757134669348651790683428875892583183500042159507273517938401729275953552670734172866810090095162944824298846562390989432936622052783677493714457693976666362731073808116309379883592207673001255099545979524537799373768737597735593201895934361881816116135751796847409640839587293181702034432566599978158461190291755263110476825643478889337121209465768155769702484893979877911323897533570285478195195160811461608161415669940439124397313058966120299357582372909018676674161922742209635779936157945813153314139937474320388846629392644338529445748652516220758735201944617969894446813755154662371983822586104474589257688373692006012745175626466469240915587309483851254861456874155658839810765235182418082310553880431480388967968093402332113127887431765111899521228996922273049274534415613719081779866910965757397298478800555883740809665587605061496172236447674460526812811816264184928511569689626664424996677330656002069169403128182538259914008444876404577695914834002992849937438991498981642552210009624433031034946273065221185727617068224902695193685673582396487578204157899323876050237885195245901591386052438249586700367622974735803353136409987095136847308123230313842201338044210618283567741628260966078799622554671635522770496052104373702036403964177709240530982862630864239285418404899678362391781448535493467138552650352619290435313837558705999842945981511290822031302890706947499822718909299917967106759435367626270481779881394283078242270919454402028900456771068785262882625184457435424886168097688428736634695225556927625268296613278395174544635684067174107313912813408319516623156264953482644351997304658641184736281758903867636854580626495902750747631583444775275768596193958686767178651223862993715185565583156180337932863035577894721402966171115270544262264739621081033855449912611133246519209104439612415950214071739111861738050509261970743574409181529844108914954760539424700222502711154656060894099765791256087102940484414083226223867962540710015264984923276391543321508627157106216929919071551013490150569306969779131388887919032983484957692727152766874783057482145024673319293249121066959431174979007841208587852087249993587443985464458075198848836215841062014424951786351887195742464544549222441129396183642137751482671202705330305063602735786145577371806057806289928801616958947710857746540340534856412762043213348543876375229977451477702987117860396579317125516186528213027333641928702421074683195337143567548580909113920417344369956495690086122554604638883782711266577670990093907761027443600436735117841475867083136518510358941119699671542951173312163459125042117769531887127744768613994356077459113039698683256446685681039370121332547302123789904292843216408682656628403417183221310263633265222227205730037361592801672488309465294019777357094790610816350506233756522595915317934642122688409301338268847950263808577774985033388415181695944838900312285100580779183757714731510065989899314536243550842953811187223552964787937950371352265856737821389519867266637031268109922686013941497671407540535059806643701121430468109006703477197931098050822160123727822049222779284149987907408474729617357204834953696268306109861872851971975143063349440220942831787192992947989491657072220301662522880479899872097184102576744614861519753830994654812756387382748200240404984248741234280350497737862087027110112548760820448953330298348224286196874005835428143304822557096675537422778320632466203887419626378306194221658569084477338155454903963605276122780494226935412581316824379442491774147062429248088502911201835284252119505668757969625993308483322316441486678888243010135593819276891120476189817296751803400938642751515283331884380168267387635210346869453992626839107505180213270650865044184750270665723902734836541868062335585388047212380681029375463507002485657560040682293554267238867090997682188500735926962126708380098188312732024147959600142498766665108347039667558087629826580605974268337242737546793685359471001389768345512257955563977564790108955026223233446909999125472326708185234655290449409572113182521419670004809571829467358643638151881024331019782424289588963309638788907080944508648912798739239431941269200693447923382156684526412103590930486399542005150156481273398169768818310754595296760348931864082366985893980373024761595236842933494067648636150444579221982728223326797020308978523512646494686570741184808087517752337173068565977518558480146401837358230239256363984455598562098133843635028998236286913926896920860716223143410179763553316164820454754927600653859658594358130040579207873037397942083009349445797911534786362531577283045799567028156037737254998464510241321412507801342367312101894213400736840972264407727436300399981139414077475484350419879976989534071403554008942459723914854711137219535529912530198177205056369917863497367294711646484069459202660651961057434311954602762866090479396293390604194477941454276924832904447301121338527177755000587451933108244799266283225032931770126307018231501956642318581551056601681565040965317823083077710126076556671774072723727083290619825974484875052542830518152541580558094045870891784223425887359711295654229589882074413784159225025268056682303468621076794026621658718526862677525813762354504463507776312840020689853850635997028827959186537570353809372187551344639844437484739596744016291889248522774106634035824798332783987602782446736432782069123185522839140708874581515172124353352520073624931394881481600023189286565308095465249695047644751801925377781089484137682850320935848574730332479165391784904068031674312182625818362631317532645569425807894647463381201542210999655975906938488508156211552184148166394652387481812299115900703686582041928808550938122989368188192323155734217925341762887798044769301097291331255449632738531805513389640819335579118470097027120652819850767933476088305849734058070243919973701860322458856936267888111806398876711386868437810748962677091284535146275755967293311848443429467443605128738020959845881393555249301514263128014194325041099721163933189347952029634583261513886868134897331015994989108425403874725613288347104320621791506146880132549191335019841060353043253272725135233785834945742214896525054432108511832587202774777225922771034698509963499738626021295507524845073709494616368896642340249083820614783859291965913770909973309725196934912611652702454983700604216169796226838511217284514441882798233285670698561161874648598586441097346664354617430760791540824849725452102226566067433505620608251562372931720667177996086116011575097926942238388500486817076880985864680076237885771246096639704008608442934708723943071695411429817795876026699783961061597649549805930067911804617683369195436356515088548589803437025844646709620955810746926509826599494617519382619848066084681027720096821119617810306597477276426180562941850366857209362813144882986071390796111111207757867738780476413061938928661472882098244498416797270555971224431473369558429345042391952123562114697756543680966583368692549888809858267664597855071142472044122035841917858776221950395753913481253737409096986814681185754547382442657883040711426021648835123027986828043168877289712446891087927822437835101904905304947851960928816855914232232962958634106893371307383415291381684322845442849986181356463280318604650333410797305353749889624975837438336163089528366985863185082084312824161853638279314931837347305868756240157211111399887206362913333220408982794239060509844593482926392348807540957815419636496145276315619326570718772469518248254178994119040934688709237484628734982564464247998366980972816113212916297863989058587361158282754823956095823438225768344761565485348033549536522490657199199635617590797467682514389554381944271692524239254160413506066728475323174291866203579570578750258188586012966488682884166933975454153475876661764800392462667739343007236010570860073781590924918134257858697961358340666812560440419929371238093292520711183446644213121115492135230929779337230522705128681763983244717049669444812569324971543124710746232862419793000495524677107488837246958021365285113174287437983117309176147723116482903132015249234384823965822927308081991005981900587227442293468718176268555758590797033758481734408916672193643910777564961376486315778269416130811063949038946497529435458891160195056438053508170904511971555190043552287248042026407795146560560836195257345981612709684259854843228109162569556047535425873915737328099410308440730942454677071106995285029078838442419236865518432059788654963356810598134494294493575206544688973606081084106561260886883185758150581761266180092259770403972963641273334514165254754613885615038665906671830267061054389924945070841648069902007970887084627051761334732838030225915488328442120286207319886223188118065915405904329944022840608321998888514215860289209822026145749751937487686606273542799766079443596198735846981028912567060386759078833484368961299855619730119480545206889544787617068757097133325194538288646539505019012344083632382340782902813384366801337819905546863671934753427587893373612252910748892211363882715648402996227837490567365986787500904321171282513573016505034123593224469284032125534900239230187853107924455649313178217300997785555590626262850172567826782300554926116617009520859536645489638301585300221703942717928867002941860590981653221933583455284442426541412926985005548192548708777421687275564135783837128475059500014539546483713165287939378518282972043458070998238634756157747213357674386904596983770268694497710978031819643260599699272932697309168644623829497340798067896533500652467796841351025048698948441782520275255731349350647420186488623034486681886108465611777321840086248196920147320397413728094918455683936522121690452345846248447882193069813971366615595254337691980431563933394364154290544286397541441434039792607491760999306976102992893569852790532919292265233370133681762670635009143056317371212570058602406299374299166288246660674216011972239929594168782238487347140829783135198212448431288193269768597739917229884974664624313828547349671952638277000369755470431697972590020815464917897251587642671255660418938438703411395001381470142238523222791773011723349516137350985503625772044281170249877245568133057181998548893724502762747617020726825882163266864005551461629549462732253636982463899371608313939517418637646990230705118043935405504124209785653950213846339448961375493218799941652258796937757485083086829464501938016668473765030846247493631548670584324930768113145527948559470930319659225695067624884455433315586831415616397633347298353651590233437042897902319042246228231856355217181193016123024457433586023692599744187344828555021723809478012638688681513117880120491838912873330725362588672501659319698206816645332604712900188242628199997643516070827857805812365958484620318656284611675437078916911363981663575176968043410154669915050169813378724048229858604302961867763144156680822669104576927687384882294100013299904402471188143992117568542250422671104922674540074612997239048498469793450974788944322091336356485295871135641242112641584081166875164059395361680178095728546780145504606178936845185763108008494673897433614272422025601140733989246970702358091677040220322332557731227544114447788311174198837809525510763844278939550631030225724422843181468229311770376043951133872955601297782359048475188356038743071743786250477753086527017921659613888723682552850012353476692374895663540779582604636935406635785433358678699693410676839113481762695079215809957122232676028359474022612807084269593886969046957657674802456194258343586815637787190498408482879948292892968817918495761116104228642052371711725209017372536511311755031254696716469656930890034733851610826251378431264326511979287151443759269733324964881482058657928922207203152434057688242966134475912338800875157828321412847407614646844706304212419529041588588043896316609278382490035430442330274738726513076892436871036082983122243217920852649676374734129797099308673974589729369962723370930274234742499491055480081571121778116712341588473316788944057853340143441433967919585456232625732303501056927890569457063524882525578021331494127664459228021364345573245894568533298039324993455234359523691666679472482722490145719220019268496094736050242866390825044739063682119337526182210877662346720962393037541466688228373664255180069016776566554532159973495184902766488040932700690549228534874511244435494664053387558565473978205664943909989462299236686336421588091176094555644985710425783730428615216274387421735656573510038097036613699469388115908489564028395751002678719006474862680228517061873047493434702604368871936406342550079439992619370501995144594005726885101251223368841892826111101010164080587169642980093753210457345100599110147781380714816794259078295484747939071999854225421169946280742980683158597003202428900376005715006032757671039467218057780103670825464390364413029888109936627332122187390723641679980905976881959254846092550460289013291818249379739553769608834221533096588811729448129944040953224113254535128696119427381618112067256320767985027474977520662464660833675581463559273336068416834463329408159008054514243693679166020437462833398988352198728681065748999809591537127222485481263183156012264964856483104525985530964937545470350554826309925130508820064179878393103254910112015562846829418652882009159206924329566524174616915681367235592255518097190238154144761223344797625316124579472828420086222490384097210348188238001874164265650116428605195710053294347651055706956758567616726380278641433830577932976651668967887041412420167713769998210878026202517109848789689459913151246323147561781898164928408727984039031680407588847289641396065836128020246683212183571609241237204051079030836988677704193449265886655154068547099730400773897172350161459618700832337472674092293775102970854338976796095713243932330417352546606013360160875845597083666593267272650804441974397362647275575713317384988872520708775161425071234440040946447346413732561235288566023530821747586566292948856751180698937987163949259378575464716625693881176030921917885014810035243956515036297289286337287782293767790965559770611106307572420033362046474902729204715500460691252543955955123457258908422746718960371159545829811400054703699402455425748660214940190616354952489791146018475428466172584885667600691226695992585103522693991696329189065158388253599020258420162493385813927763589606191588538498957955509660021918110879777989432183985133016390147832705413427476955754182843069019378562007641155846060293265873221435569294885036372532484301231123403993139525474280154831257424490551691898465430803696906881796439568493418740530292196072597039385690750339815550378303118258275113183904768122407177560226376635831195970410858349991076042076825327130732232753766725825109162700313946300189553979848155540157557556335133583592568548680966554116586849182588910983626590076460215787958668388283800291466683336268660601690307884650024944963008440026499691775802734818465246267935022229763417737337759298421052921702172007737221828200837113881986356164708341521803783899439614600652356909483673261098430665023936578685161306219476163136213282640565379200776947382724240443997558659947114741622679026489417580792617564841245570692433668122587356989140046649956519809151207420684885949468514543941352959730397858389886251541327061421071355747581009375379701907325076518242424471024875146674407369234584534640397315944003963042334634661282549228424072552964580153752852694215975003810667054665273815426301132514672003287953876343440934433517880579391766892464077063638681421198784229579367686195228552429363584194646301092060838445381249623904279915924367296129982528139461075632816755391940334091707666272036459842496181210281437147250205054214767962955997616863779077294637297871944250014192575379003240848589264468314374682177623382468907241931831016431918322828357637188861593956248035364023524963954755472040842330428176202289574100087845379239047349743557820288330492940496907540849986564245965600996579316432601918133441014714112483255891938839419017942908430453567928796916784824834289477336988143692357656328397825326203507562993385758782699922805448460526406400205690655891721468201710606906558286993092139422494436508755663988666954502564647520337462320643917462065824226023479626817211736745004571463822757508805801083656891842837385411641422671405964771676918840485847559772396655151480806201691770689549854005463289226214125846161775344255175355211140703235876104067770991191497601310277868458279424870873451974920549803609389549699259503189936555453260414063234006176508042285397082293351626670351131607368743805934225215304790008752214706383113798894938367040685607569573711053302618509720551408267858916777047066412252519800724688598682625919723898846742316962810688293105812594670393245895990561261989519051921721546851731819969538144198180430344171597368786355948933559690747265326646758242058595446408361476669922460317460187264673344916689597281481892199560449238315730775734686774273843798067851818248174870311685695836829224531584195553615839041847359879198251921179857709105557322518881186882485111659780755333123359117632664360269380659154153094173245663637144473348415767143192476365357773081316495527412249902452237337636837397256003965825093666632723022850838654168098662862172280199951887416281000834694077408550129686320462869253549324211111605446679161142956469704856987296200025772438016093754053696786688739564012883128091176540815821601318231244996617848309763746659571102779880476122612603101331330838349697594498132068741343363305053978494005588778940292758601462717418928872983056054464566288244811292425844690694777590852405497173103392200124133182836154796936662247174630556223087576851032750378419640015742741417933975706086685818169809820333491521611849366510977685769144340478511962862459172732164096636646251473494212529909117317101414294747127867599036131221805121956286570016337846507279275871529288931738710301979609181214104692434830798363060361607185962698769259174681412104365514464329941922456372470033210101866268917360269393077983596741875540133715678459041090161969628241460720067676658478116257688788529268121674927013296164474512320706885238504667894689581139753930543560479367580824462543710943082990679066479449820593380562295312377171418672990378590298313989576835867470978989667213668810613812023738024874153422670004334205055812220740652770507568229955983018928150626701886025197830755957450271262326509720398120520786893577169773624055173001110301517793461448781441383957231602841571593197879200095671724231114111806612763776773035480741983184649880652520833728358477138485414133330224319110355241514407821848520154912421626905537510912945697210285185663797857068693079194998310675577516612505842053152161437269892273978559085367692877594483809017626457061775058936152407875342469723212952190444068555876931284239126974327882437418107335339574573928601532098114789168782374852454048710711647911363804977396940028227693291898141818780715961899689447154085287408037035053178684116954767396094141501140841904540118954061519467475709250001910523459993579260103805734973891578538503170663756984460210248833447246188505670591101061017041084029842215931131706074391199543162387818343810449736010460571844113934359993450157488319826985647554864374699353800286181579313423980898821991239958008310113130232025171689880950521195966341528032076820574971082919964492870756160052133040136071836998797200258741105233309156999049579421448899009011392189710201030975160508649288480826039363591804535100563431047198298876348037874856323952358794945033721416232597641358063630765798614142430764812744919047457850009200617586511341630092725214284410815725340234125028946291257717972524088034932494978829803402613856484256626518804090425471463289300561414916616184003276940980326291252275213651923573966112127997188552908061221387104110643762266990117174185728851037856944663810360523283256221945394191373398705968554717771858630175430770057388129766189998224954171344917669917597089291933120577511366264265650666671632532339877013457701038063396312302778109742639972226160508198133129686756252610907905534955889739092029067546528866944020048423200371230857952892783793882410813870657150242900219837393909930408879351165140459986778428833833826461124213224011908580232833664747877697065555124213351990546814654954629421322052485678616712456625247177182699652057054937140503665977929467175127203428497891451175701845379649127890047983494047341364050744736571144452258259268037047634358809948726173996798839042917497242769493709378491390098586076603594707905443493556800381257569025290801563201513184003667317204679812839826430363064709765012674744200115978391803886080631831408555123830961538931575403458789186591577860971984318460596619313804050897231247338370342500054450297652284556418096585986900530586205094832989807464307705782519411130554670127790749759664943499358020211880378792834910758686744362103524568296964319256560133495690370183680591745054445220403521088694252568828839855870287836034938233739733230218652947178093744764004258347134943297851814292702969153007813032432998007494365644727446622137859428731878950218357317334328781884561728583477843799303478112498795202992782455727424947707827954616317015217371221810853561223790924584707156903204741271658052906349536449674621291144982217669594276534035431341162904933585044593849431551108830484358812611110876718861917613945771395323689139370316480689184376339581273768571514807108856768418184192211389983845359142813133230266864526552927940067065871354063642898744495158260531330183197713579039088389373872890502999965809687795140078476055385831549017667974593798571931857251038556375394107248204229585574238356059172542216906474483517008137594019764224601256549002972296719294181090006721282202700586794617193522027492414635625678465212342481902022304219968755339909877084639766115642553423370225543000224730166525495330444318548051460609152649623179865372933928574040048012503357209622876311115154640893299880464373779580067091894737613475887050229298311600786387513234812990733422421489531853661552101746198751613188363034614572819756670916654914255304503672738298692047855206051346142772561483222598107880535732788817680025755398001257613288049709967702655969313945322273885927594314392598825128532239145642141617656285222138964675880027159419616043589793583366794040922109501902170237100067171858024706625271664821810278762818863899235893837094987978240239012734853879554089472796919886642969113394078274048842796226153065501393924822736718417288124801771132794664848483492195576443773127743686252076484304967280062988581087455387613268154430285416974707774787813509646889101648436164647650567090988919341323425023488961729992670897213067173723711367530782409138614620009046753309281874014169197778507033860948989258953770439411223157995536137995034913266645667300216271912594009703535746298002706038404304544218998379102655140451953948355371971105953120312616434229008751182478087661113664156559536692824385513453061347315067717583416389804953494542286602438954865642344378278035633887278978750781933813193909344752369194200116920910187504757308127022829091175980034518136284953239065853904975806597250738780534753764542570396281727985495722913744747677209073365772230213210600471958408774524563414526757208880065094895797759350932034065650450858407421453686002782417811262838442786140996929370124703309179244522396823883065996709033402600982104318689601238775641384430413680990314824937166408875916261539791125590310196238120881581397112674196500724553484587091882175193932196694580105537996942316637698845764044983485485956879058239807453386849025369480567046043543869390200302314858737131792534367338865345409172173739179436665788024589232486539217891568776387745041216582757609482434657774405085654183230051357545238811803578606596842201432780445895592590116615226730793136732233364758235119316612668936866057827152343606097778947546462558632176581329735529428092081508358997982456353289278884775426190916251262836999881406774327917517049988231263346450830329352684641361240468550552907509782816336286536949310727288728378012441264733771714972105057465950875457176085856745691854486553631024775621887421188238825969662708134687393785546178002594086686290966007472140374339829156154713501321831633268433673338634420786517681528257913152031817540053441555350161306079725576457538821358902832214127650704898888031581029807019299454849688882179689753241621445525759907787804129542219901962260654660788170117042073303093219410773449887419708294093057175247029173359665788137730169763789922624505281967467726767220921051620451870795494265586848428393721127939736577546197004104496884641361370840372987120633608921008272429259166000459120623870002403282652382539505670289497416407058792415831526434428076175484321240854548007749571690010907018707035555094242036160530453021936853076022914324571858453193119181388561417682487528565126532248714602420229193514481575723145964510890367176576249515215743882690593628717474962078346017781597707940761348555320463158336751103372552818770095608339990556958951154691705428177279920469638407697129983089803911717042856694621047234658906415381657957818718289291645399667552054259633621855118772359978202729746129547831316853091968817408181490884744322552433994340446211647229755132963377263378514342931649084354822848061243536174210107319842121225921621153700216223246925259885501360069799699646018680119718012341942024399556132551192051001281331827452622733000322825576032057939384107978544116774525567834794682462422762813023370791097723850395552048976789016904336472538773185310795634172114129664771408986580551960958943261480741226516743920234631197485564579635741530489906014482350227453729008607126201674716666526286316159481983528311590989278665239854430603984680195541943086235876944615411638137639993911908598667829982325061238924515903470394987503847804244050917372598368014488131806463260708922745503242442292963322995433313640056043023415468056159623416496339240379164446471334188963623853119296196618266732682787398079888865483685619282414810263300589793378756905356835638019050807786440594096319172834629210340983366100971872229384681140595805851449948389920215824021968658741423133105697769131843359290088405206469430612426864650008826438899497710253250739855310313998051270664501139117675518151157813129122441026177611668931008125667654036706003006152444820994693042531707806765986743983879751355710005297593311055854498787646185171611891941570762859332828628117023841712274783535393443617165056730481834764493886532323630678959307139824633126917726598551380941744009461498881876695708254324892685311796929523750588341085550767468680639107939536893394909538934149654989437386317255571565278964400053893536649370920931212806382577639660686840149133650670991858173433895568706964322761702027294013394036107916745095654478802719915076305071102054646523925054739613620074730690995494655169516253177926354701559585050239269762022897274890680078253152168931326466305730474045644300158420295342428444059461010871597315235842903645768129533285536708420381216210293743701001995762474724875093953107705009495657340453928180123895329752152437045022916881962178507407886644287965722775975178522058124291345642727205090059224454256046403214923442288169670175564099561344791344122845720761811085400851534257257916483862095234435038067791971624245706088277144742660460392965579736593899426988691376731665164272952535975842967238891379138043195632427688343620899519131413080783472861267087811217558058480390219531623680561826153667300819026075131162237675707659862575131178849175786987158437186450969962942280532704567544302610530120625832036333187551993546303247728124999743651309314768542798236608345081888529523618688237022968372331929432592385080891977698375332304292360654929000270808732455499818609272080784480681903665178865986384354065991911986081401352786102527951319274057753908139082466016369591461174369003539080898894749094887798211104245676632744163864126844638705299649735155774426038758829749278483524271219317342932917525910315007438384200898943262216058922213860968970760731861433318098593998398305685907859184299006976707633440203656377716227143419479213259942985459660947745018110888370783756654192836459368223208243473880264061704677945196226502246576117830033083973562526519464364100934453096194159881133812761014241682362765559128006152465525884047902368262818748407756042044665037272618651306227906255271769248809170719193418886292036194045976414119481782549212572504577672472568932819435803548391931705487377043550199781129338109849222775935841046328648772928007925600194893114363413529871958142608121159685051783268280292254712202338749139711773764787442492714099625086588586484938470905258313842655972465681924552346768193954494392183527594379449545109496312076524472133094744572670633173914728972548911861540539043357435066581039633463067264438016008007952945573106396992270358965320450561961001958099214452692620513469913033907553769344992760724553998619214195839378681384143021825784592682407045349162133618158509497622969937490068182335800794605044560640635150126119483514937321956158465954274025680292323677559060005471334069551948454439380852146727723862676304907913453853206456068518191669771620760094217231688270115722461150361030340420263549673056778944668005665632343494818231110780360562074996512263976449973600793052693859913191468975365596163753141777447042811911301573235646511985023746002524328929362280710849134326315167407624906350237800460457219047505119971192794342677012294022747043455625548816396179758164342279496395262513710220782896514906079650107683053049909215636151042557868767201235437323552654242247194518106874903782834555785991212076133962129466472793494313530299082968392641715626714449044100519505064754001952150347341469031240734412400877743972332563229221286794948274414627025188054575700955446158887858295279604828380198980188373587704277589715333826680989687794839295159136950072391210163715364834406048915437709386707332949899517092738871978967300229399813028401717947925568194525981439218633649485493926282971432810073611110340517837245387831575475157435831399165631072034696866358124196698110495286704047611333077047201969113905613278093860092120077490611573893854087392156030024314111971677403051222048792396201762909422683067727386752346498050610619727461102144504487261782517658317336214710552468658489178380550310570415583163989341650801645847563095322597470959584722476063328371672815622573689090847612900515079759702721699847150602307044566738037946557111883628247371129296370487685212799463920364878959399572149986939018413470498949152880565543483722197247841119688590216469163119756948266023274315649426510839927931766509941374848747982171528735320729062421884270338619966632641647679303173226873545234239074275036161722885793806049651163344915506757458826933367226265044885138855407213550959304572862377614394866261744254834877571774338965306602071049840584268488957309350482245872446440264401424381904368613467795084084985576375633950559391384969670001071437875685968203717585831588973543658425553601955063055650951518713431528406764486065407412088009167827693109399687505441380464541399520287934588762586280433188714128105571983032427913727263198037144810990791229596460309657827954573181416767175073860104238779407133430926450348057739444318762802653075495075871608392724498551392770372225880757938675476416203259898034717469735017697859113904662748197413631539913558206146422858983894399452690262418663613152514583997006264108064619469766796989040558410610917691783484395631345670833048026172858041816412753319525175174271624103807904984703660908033072100409499313429948504675343900296601967231334585834705742175514271637316595662831348126041872173815951083210458807532622349201978381031269209882598162922528055421666700281911776205548265075471922025278556924025681992907987504221227576487918724085891780510317335798522362940987845818602960621464227017337141532816491693203529355244465807961717445109535692111569540159115041460379763490931702786480434056719556683340151436928193093859454266285008493246148209404429720777538956492903891377958950658104948454362566153203142587928301216906050655269870285089997351393339504745016627451553991345809137029660658877626132251564760928747431887379265751491784381921583105124210529572089952010807417682181327617346790167005885580685562548354641962172425807502555016729031103551627479770595223684378329368441714854011395073702369783092305533425379539006145873227628366437875299108609263201944789804877553890045954450565121575394980932431038649059431068613509581911748582693556045583470004327449469725142906050229292986398602173816727749276123182973128298898469370087423747973107079882224102627758857493430852936834844296433482362698104561706715500141451749039759402232393628144141522686572649719717212838578112494179840481836579688575983592646996206806105531697645920217679331314268811204007940677875769577343778411258605100280409337837808933036812600273626034202630035959273423497042272868980823741429007367984007349010234922539587322890590249814052892365256855130649594128626505376950927928929201794587729419274228960446300760804773146951844596436760865176120063468711171577386429623605933206856667466639815549141333475002797942335117892029664913657579648978193650413193918131580156032931490183934796717143646573140833667457874695117846198477097999342178856051022820868858089721805113454312562743059803459478108387419918868766357167592715177350872726010248515209952589008164114841544937956881505617987856482324419842078307388007191305876371623760110039565762874963642145831165552375682942564844339357907398106803341142458666719482039128579650110875038741841604709514190655532577323029525885759147886041492856383975428340557259788200096597471375137309625264329355859802868614500065379911660647046867818940061611133755432750816448027174097532720539687101235508641480507060795113225808462267199525780675864751136648996712636985357861589730958586437248397041370634207914231067300160191632778765971931748146666791619644807912837076797630534087099288910479632011282858835124055538077650883359466988221311416592117817745522148147172813392597638097879701355130742904543592960222171058452144436064054606682617244113249791837662617243654386877211184354240839167697684363714624742972436787565884884882102901286773728624974914598258880955906852682038265341426956881178744773073603889413660044840222220174275065717778512994672240621146531623672726806520267204014050739489855523618396504920393184637681930328134498799578079712255292526487776988181164560747299280719959183859561323471685126712204598504433540295276904292880087743169270363107279983349372206203578332451105837731760445932225835281983444784547758463771568938329416263324692430315721329993089554530026540505567436900211970461353807911445523722954620937142927905565094619360322547544268787847257722412106188511517103044338022699667500267470544074852778283952507419139873690824019412481490757218693949102779054323882601235237006596850548232377689731009894167864344633876822425495716036847500756571938721241984043642246184469535517674512484681228359718003245595772525711022879208161930034466460840559926889518603068526173570946800258260481911424028307112374906955272842796686537525176924124734559810599272872399445016068433287807396769834492064989335417603538284863879227518683951050250889327679413961839401363037319382482689949781260429030065600235583523164370104776518507937528730630241872245143463504676821963987825958036293068952292896929372147198523513472048951445605499687023028815706030567110696391912396693373880422556129935304725028502713688207381357044065803880109620793587923974004551673344059809137049766912387292299958165538598382230687209370247844867494309758094124426903146426484185729292232879288525319501303624886377733048503244426750740712503385862948145887206944091924447837741728830143038832297325961525683649580028771168852838793554491788648370937611185057102467331267459598451721807028796182197027719753262525275053301391887865117906440351363426976174335297088388670229484061618708461493188432648723357962936659948560998978538141195118650082385557823569878377641731278478990441030690990846136752448152386708018572236945036384576777386964597289145260395462868610837584184707579109557845460774435233226469304139343989097838676572097535798120634044498961452849668686441338630299561479407847688315381765379234410442659288520488060406889773326670129977286696801419937378577686825368480574546454053521351739998408017932071614576983262537822346778100970555999263495700616410405470422757953855854879175770356601408632200799812647644783391531715844490347911442498402521870232089455200666863869743901308074106981580209494004597792569152853244054858775065174331746562838240243843293547018389409242082628524584344954064599716931173154976411311613175509376168576361659812633381517358523128260507285126623362352794757778752741225694221690209248339573750559497043180514292863920913070585637561785623550582049396574445838993150461572104915511325356041860134851833203079302046483253876649810072812149416024202271799311501652366363823627934015426607395358081987570023417997059224862857858817964144928182120072733100549321254773659635825507904945879329322929041083595279635088229932351401420990429171460548744320063633621084793595294927267936368775481841940544263571654477614318910153844441312012411061982895801387732848800005790000876604018935927173012329365987995667120615202724958050297645393789317019897464191665227136565088285978970501073429593587672968158189558217642572570814140313789740487962892016310934215744471924308321905911793170042642528477017306520529396136832471242093455139242872267501435158050934004061509144186368259717557127034260514240852642485070450826910313426406734423211594323214080963025181396659599558445211902512470102906829910334623073278004475291670986711563319252010618222279977861326303067301356953425481386157941010970946090875063006626810154406981717021905641334189899728035252985231484744490572117258322799451000749547941041924312859055660524304507542689131977897037010155163069028940276636706151893163681616319787405527674172859477347449188583120289182254586390062020029011493156492201566148878866757037835891490391052604658143063290609187436507773053370169747157295747751153380274535118108455581800469555648633023979847743046329392907824550461468550688665629807586721053850908020178044944514171227469190800133641341970431823682141709319791724730415143682039300722933146196763733069346336039642718435924864663468282067389309168543374974385290984408480584072237497896285475528347195947767563260871886045451569396850427325455338344660329272924622623086672256239600656737645336540305379846896595458652653946459633329340345415891820308135751201088871763688714746204825867452963591351272831552358454113050300877376717440319061958333792788259888424054361897776631438110271975385678839381523029964844743214722527310530439124878473520979866800463502815016143736839529609434563043632030709767434888079874987811003395770450806012635740677131629315990749926031846280130589446067140727504289200448875505055264275738308366660691564158080017602817283679957604392921343865099914181465615896553361426051258990762522811693973977631380617724980429759466995204654576424802398212083992716683421973253359836010396435167727205984036295121268417974809778455031724182821474702396692019100229845282070245061380894718744642796125982791280810429855983609611724674535082079623925789153477510983419962729431374653512597395972591768820053677757313892307137915850671701758905540631714575720027458819106676116802170508771180162224240945271073938611063937849757963824423615222096093773340772748613475171384233466568938083921530919140122721951100102462515639533181552040515738039024949619996567814927808324408462334173667846317885500107541750589809554518188061177384814579576307521149977015364702436248908458844215952694425404667110152392928947659841496996508641961592904718015925987319444492716915149372693725107292989588643938916768389626833411213569931603990629533962143042448448551220705501347527258066367952316650037696485437338658064512139273180867302359509127233863269049376409689094573833648368504800821815698033808942131031416737874473736991841460447503356735412912071147742179078262840771212916303034261324484664349160812975897600947764318578941128833128967868867069856853791336155561521521204624357246425308869758277142844621089233936791961427023134028239971591373217069555844136121445802687546359597360600701616746571633500744653197425800422572592811624297884227571875074470450189576356633570070628546812342856713537907735142011290238354972695379329336144914071017925608891159095800136846230096673245847282493107254625215573698355439648397769616164115679517692120233260594786928704899407253574169187408496951028460074360492710999536059094248498159730209163534307410234711373501064019682961786010632278977677352123567550110685562718913219112265582943091678240151255276716098481891287994041784020841679899161736983084679035728073934881353736686954282767712340570713073115470148258527828363822920393552502687333636458870225669417782331185285590069599203583171148170746829277115767240328247394774826660178528450286782988252717502560026003744982370433095764462514629716842461569793478253109037194304868001953146854504165320669179517541218028933262229462098003786647607104119564271042176237787547146125838473337913649966738162926154043099037957083433599929618453621479609399431932167132470592512020192737418819648859796759564635765234264620319871587495104629690879447176113612268975519134082843512744328729336746339382951680297846876768238481577262568169120065159862898882834173888067069473560753334828231671835427834324672798239064532857170360508275760852862000613614435135453662848418624433558693766298457975071048026916373323012501547626476271505777569521691515912786766928144455173896116215430658862511501415550525174756518405417128467178751574704490784799220474961843387352034146686504526135144046448154547638310342778970976142177237870652342692284346606124847902845399098005501766702117621710439823219247979972446603750450177669208242720355457248412227290643925579572980776441688228806886106153234348934434136072724186285732408270957067809419139479663793744732416851526344127417588089056611214216694757357925574905846982831248380918760784886698081863924658877296782547788064899213840786556833105310721716168135992839915370780078189830836223384650090735049630235085968644585024619362804160165156407967971269188200241864750374804953587889384661930656469086149096395162764769072289835613408597447855043626603428153499151860226786927818111294153855990464908520090374513694926195378265315873993486516997715472814846005524901286641640470084781152643075333013150696657947392789320724794526696776023094367962465349088816066128379077410924356999014873020534106984144945792224531247316026567601587292876664936126034142689374188116969175601551838872317329521788056586297420749971138623886522106222654236746719080056504475118261363945381778427635902061637799265029341834175620399816688659542869640162382628371041639520392055694751873906275135701010893793282757910344464428006873767178395917335569675945229902594464636233348413554629176671599331877955644211155232134365864671406432632438541686323141153593085991633679396614653024483495365995041596114745688419983250005393271033665501446009433974971817029958238068692659840884373796189025666656793375370594961593916849313394292621969347640443782895791422246086874438065494920752283592891878050844784592598753411517866843752860976617240997437415810831437043340321270375988667295971244345328672516234650998665387468465742442791069996035711307002636948452419050671869883876519212267799508782551241555503983082162133456850122462436883792462618680047141025085746018096512546345433844512456715917723482956832808764418478230400998758875414935316918595924818038689342927344768300499199288943690062433631797005917608215393127649152934365278962014769330477100391858531226283294224310337212626145756272232032788488889217967961537431164563053319191913234143849488841670061867777639306325784775740921413846753651045787088321379002772869082311411355742985297156197534205415689389093284598943637736724619408860737461054964134939211777486389118631580526618373229393111257128640958205128318583475326961176461706631935285720570243686226215235221570073922667465164835168212897124816014188614718769053279678410767954565231634544775220683255280769001258816846343989571274947562927405218247451748249355606183634053692823869033460889284264324197786740458550619227180981112852786823398535557857392285597677412660149936924062606225548709884707677243121491626626548075699606531494141083410260229484552929140586653831106297014629210656410592806268223057670076688845368203628929986277994238456892716498956689594801041233925466841543403398968666836455606220325620382178543525988183369879703612539613855039632636068881194700517110707725724577840084998336986693527535839151975163405316721544534663944250943753734152025314526769603015958526729306734049760968127097337520533899010886076438479839780544017367813093492965005693375675165605905124110602404444894130184354183519950658727601259047618401861478527031110135309419646267371736427770479309953545477092953591370941345631682104828857897180767758850169878265895264867997954063674603237832326360742359693256656160637888187287757829815899749100106866595926845831910666216357718787586033334673587088923603231433523827882811390772290607911879661142937556516323812830542677117101856353860450238027914167910368315895254969183445590253259977936997548937802137135113496550354397872068740854998976487640087163599461626627774556898438805565800589211040835641610149878324784414158965506482511756191188194724266066253638435635914194135189798953309587741960459154739649712376614208117155470191251129486978922175143540005673905275916451794202193426538779664208164735000074551091725915549227217969802872216190538073343421470062159623991044431141719877339125283664232288426282773393050192278808392076309449790743264788445546299362966891938017525489045992438916811541020552932019427889868011062751505983420039248109237304754307027960763864444636958013997025358736516887113376214506913668969308464941528940902657115097154684141555366964354671890153298362465273255757408413488414350758442715760313364557830432568105512847955716725568120159618369176950774427924509411848689977796711278646075775587087450309515610192212757315813923765617876230852865568916182594877767245155553847188118390303053672841107408402420942642977761586904622021515788324980532800372162726769998087946895173417957475774713756432820305190564525414602196806563790756042805836949121421707405595404460060571898029565570524243826756352898874232973603006109529776152381356228785928444535030655560576625246435712192135734835051458107364619398471411776171318298198103403018957905681769514477209941122441954541675565375884482447182511067789859973781852205938138247156571130802677344686058927996726880467036424237301170375561103029994725168814547107618002000804022411166509628798644204560254069006651971551098381228607346410181613404288902955002509466694038660092314453366853391424925413637424563016960667446904565954054755294285518162966052508719318440196572963326641953006769289685914435307355566042645519045727296832155854117556430458754505574670431485919814595466573664093820498172374756283905448467375780368077798441427314614804808163493355750617842979061032815634390709111129662443320324111368353756491722509361185506762850917788338492143958681546412301018486455557165655600489319112550051255423893864897278763599838011256070002388272484769836648757227172756755982780801302058213539529905786617066247794087416662724620177123618372842159479383059519009060020708976965292896544995934076395017631712852647395491445540094865657416994588779560336867175397424325848242514926071280791489418783493437990731024098277149834239428408287812539264733113677332721522577052455752567485129060145661689589231456400855978681265840117672060195403328502114404271859741131717819254070197977250288367766964888102722817720826780580554883484351454151809901595479918161327394051161468710328254624854656090493857358669868313415446415490749126746753915290099478132712124886661281493435453574601940238546690465860240340357197980358640571959733463492833370564403867471440851605458510211304143502708065325930364730218847182486765041463568047585548120162709420590454037897086944457668745789617200243118657051339830241506262781535594550926518409149775443552518802349252271681204738296805366268599514314904375705037733453670726929059699220080884086358263484069322510634801521192080856539034893137078103794704346900716348546059681927907719396846094351017282847806391829483744333389208551668466498681181810514265314471912278350260686865543840700923982655880589465398343978097161305701817383850867322247447826461048770008521381164017437066165792279461266214521941289675621432885209691601919029208906422590247448530812267504398440985294047908502533749043309410058830773697913142390354170168886684321700200372385183987014497475424145990448754609201383147217303599745473187978149694758919980462117732614682214380472214011896156782338334400572737906366053033777707995672222007958531693392526054637858273893000176423903810559970398110219336909272289908691280794687896661138578233139368360986896888136184087427793828698635920812158646096243464127711760306612663234105501453765911433033096824347673699516096650902732448867845051680394719495705930886387650373587531852472824629296045723107222940736905284327630503447038635460279549404302369218719966486558223450963624661383680514234455742822533129115844550698454624948500390678163169984973174583078260032992949425105749953371648539511297539063579282927435709319591691362541514161413197857552339363021424169018901926246016799805691489370317207330609855681095587224583747934172584800651821287922637796986913871900787030351626850444083406419172854909236960389255238867355960334891010808514067105305747975359215795241857630671836461475427010351902922592789922846053281313416369754246269357109894442039240004581002795019656420995586125470026875712993720990768195595297505809950877351609937421114874649125769485598097825672100972589407360872507032123216089812226392488174986075748024899331945405268024675065103822117691819215552178788725867258054732257390413574905826992200255253595739422616272038207704383787701556476036018838374777049042118104300342670271595543014518692317979379130664786821242139683820238097874396195295664581036349968827753314674281916201928577646529082507890098096127218284781578199462254253727332134249022132121305695784507878324529373648114290268412865134867826925933805940070758991255103856646054973259866271747367249765911275722483958937168084931976098754099962187302431770968946002651071060768683924590077638300728652117929103079321266837232874600024743112674870150070778316815727488766096847495998652716206200084500198091110347065758245100987433631688405156261834950312896025638567343778619288755210041072194113202939317339127237718829791576579824792760363182197671802646694471932077893108701585136426849037605060501448171414815513081402832371953296471964090670468725721094304716203135932049830796216872354222469605930745861853879937946142978375200975818169470824930237971974995766992572217974498040579698064910340398859297696992785565684136820336909352650824266654131234746917476003647760037303963049809829382112235340694548657368900548512319211123442409673056356322277343216701276046535906810744164910848969472174960074271716082963157633670149694580013018839959119016625270098134107008805066480410328432351901786604012487564126363661109535920607598590186241810839939718398554378973244399743300637646958718801458958427379620812948800052003430991164967609571043918489586982483038448731264254019078898970585172142680052131239078870458589112462690644930193247452640327885216970980505762055298243195263424555514719009766289983595305066514244695550011230471612269620938733946852514122131829207168896190362797488760240768518140734437982807393937859715855960712515022090838563433346105111150817345916681158279308901982720527888357529223333350115654108943512946987950684255860749496065804483352461495450886304251489713779768064296276237246202728813815966201602160616876188608312544548549548176111430899318518071860963963053206209178956419369420576085351917826076954872565200537971345027150545804096797853865491092600734244262004729950052772087546535769140961325678689942331355785133312498270987396867061545868887964617581816926947642725320940221883883050816486104219338937859803244085074060844287053444879467443134048375257961712821009689833594881813715516649131051730259986314925520283616789992815232184665666362172253760434127730357597956219650800560116653225219301342191571844107632005319541435203179976765303749537692622946758753677885127144053681596779326829632539067596274674070062599963455961610490929542217116849105433656572033488634167947662602215031155809652098669609037819432934428126196459956608646147945305706142626363571368308009035118219791821727076404976676260979698442352103284596691032202808334206653876312300824798227584148763227103303593846630750224990491468653186450176561363609279701495857243934344298645539673450918806352511716758303884047911078975504157544947589691077935483103861882846039871936757533865239108068175849801740787248691590591911429189460149714031688449523076819185834059177821092700512916237792411485216620789445306332383800574109942723592096716280576376812271652436953407908512839919372774104474016923397058000821357604974450475709152651818507573758599271853486320139249451243018298290816872663471808470145462647832802208999412542602802358235521135370021463316234890665510490867239132855114536047124382877846807320113188093636857240112786237444063203208176610333079711951433931252148849923436650982072630479023951085323957456328084901933165485842941484506703274869663875600364203967592984401948155279995619000457930885437868305574842695445768956934567403850693286514975062249147984807200717692925412037608458662856140671157920277172354584989463293315311841456676763075866986473874461142143733016084309632145933817345284883271257135722615260854888997188551662564800055623274582134481475159455861336202080948502222326246968336253845973035573877162700668859610676280029573175333122737937444132717611292167832694111064848751651764238372578577323097584509229001903962983521354915626187189975197996713210966789878504596587011997198420697726544086446094173522997380589768346598198926624957113897846654714713336565022057254708852527858497258386886387361034311268157626840687347147968058731884020251749414716128845755503589201612324398648310544878173185760747118767837581366674004032738009822678414817903615691903830180100500905506925823746313279572909394593141437618356420400408431920906979919038950257001634514688748590390897403598948865199142833177225515364697166576762030852157046351069184300673953873260056742279732829442282263582136058402608534484780103731356625613062855030886885384558284894815556934824481257270693421689773920581191400550144911729004275766060348393862107973557335852198684236791889972011481395017377685934745436102076913195163775480721522023095294049870604629349556517188534867474686409583497816994429221406736367146435659639091992481489805839473928689385991159931958912743753972298077192149798787645774412930707323580166438601650579045437054360757724570294495695716486628217244631630920122525624958052830565469785288903891161798889587420535976913535842605750847037098495384195081867841493833699639280616462451695312054950264423408691103450506625034990248599163749073271113721313467338209463389036402162476545281241481421186106721177895365078983759125886291062803786938488111815566447823046485693817042128430363795943597216713548823079348248384960793804086125156253094294149744174883530072787383722239355894249527873849891388468916780528027348094430299379390230613590351867809313991620282721412193355043558695111304565856410614477945783563724334544396573865930592067162065976027092178398195846670914862895075144281867662509535522962962731210714248138557187895557962055015495350247644192887333289486040398037467009508595745249410590325726684641851491510145238805895232796208022634822954839128814580442812419494063705372629607524684930339837722691247749473262862201636076241891605547532948694714312613878049314113092682769571810018808857934052432755385863087367933741599736085882266394469647032333217471948199744307353312847676433520276490398804913551430503240566370505109231526531659455448875126798397673617803477327792590472865378077445722025876001579174238236237720591201585504740930965575354937714362920678712749477050187098190243740036624029450163460743773095585786912971795058219430911240711097487411029903563328548942221771281659067989834867091942848185115883520477170286212055307387042647678056248407767199658065742050493241143543678031282501704368255979550807161846554438622575412655639949354576894509196207826470790062409250003561815539187070743234699395596562375746924161777671831920046944631286808698039268452881505245359174118268157029820558548003339105418626505361138170147160122836873843901590135783875284727962692386100414303051614827318985639193138769034377436305628161614495070860107497971190565710423877750291005464125775183847569286638889509173749793958213778547115244980703222837541901636675994800683618585991404200340504809896151643246147088351885521057078931442421248303466536415703527698002882178034902872506450584997073138419493379666482231075147899133357986345555052883162981491112394297893115687580175497626356570493794614525500204396795782698656770763852538265312853936016834896604104271492085487166141892970123498972365185963709071447921662088107540980211751720372436895922314657138820335487883274723880682632782251549123265340490111738019480552045847149908048018449026985735468783943835129990272537143246372521049099692502237098313677910479986543444306777758147447013810910392261769771412815582884989406244194562244287282515675112836578354109481681692922128390856559822413113063505295846223699608992147758330286745802535981225369508301711091824290744155269621913942377380336226186539978603477621893362983867786218791775616202304200460916440946316931867719439798846383367258744295016344698803075736589786234435591079847363476366865917522391412444550200206966764949527101648500936230807659286774493106683681714135146054250939538133938386848671644187355719384702876400319231869025611796329753239254762461116715899071426728535138365085503852653784157268092437717956912570328332805970667153225280767147937525381123367641724448142671922012711888897057222842418662015461438316914041033020915007055756698600041425159943213506140881222408504541551602438157159575786059627735932433919853554811476044481038677213748274635778715882129530299207233327730433603722001446617757628954936790024578869875415952043861051358576158070241086685425460208344431912309876405863847794176698090551713906827426946813090086480684512103767845659190211565445863934339834535454460015105795167140981104622188400117546275123313505520821362742338571785488548739321001481258039029410097346455122601454204729746324580807352814668924077441133935823159077256981910023605810219444677835324059977377269313170989070703448089982458843872240601657246380200929697153165077354509638887719028515295225304380352238721737384980571352754206509974591865929236796362093999958589993880084664322511125272412013286640172194376068463212442538199887728499071182156905771100213556873479527956530514709670561471604761066087862016466909786312777183491809488292305785717317933862044721625858042734455969338068964708419719336249489514470364240008441894481335820798587152912591372272715521812685413208265166334007554712265884299995794325987897111188457114974369338658511527474757354444179952683036722855873379060895707284981690270303148604431483591048350409139205228660071160947742302125113170034146372404942917506403609247315507407123822367620073456986624222138505750143419415462962458815346687944165548502872668901280154788517375999075830491772360628304393445479436190590105754653150181212556980684412660334237334548547905417737079930851264721577499575399224868569370935326180782467040879129718265094971100988741405702516420988490322586590056116283929070967495833076174542922662235217669283546408611852480516589365111997215239023802593325885417770295336441029919635715127967883687175495197504582710484447951433243489213656186743612066823542344516060278978665523106968575226460688549644182072303022473970119162575118772288180915970686680620405138122959151440985805013634287208688490958646954904760960156170546917808156453905350318569200148541139050948332883421723181886777449189146475260019892973637257882687109504375284286943661324341772643052065804298084169790654593514554078358554372199000116192981567802532076162303122026620030058210173844295163804531686579912286904289927633648792272721449337301269466690084255720433281540894079839225058201883739215962055193464724843055293935900060197398918407056203098923740954543350350052625343990987692645704937439952805130443626560378246687817425210189851514474592258342230347505558749706461603856988422117601389045909303744640562905888660102549106338750783413832037613548990269922333748604315978516716096644079093381981065538218522707244513961327259229975464260403129520289391333204964296189561143561781217765871190166330546385027583790437009620429494075878502149901804030878370425225317925358042429079485490414599354965674546253427370461129424101978105402845078616540269555428027004721210596615542332047570223845235394460994342599281005975212483409398273923541072126020494190474406207386801834217931897062989402942529654390457430524442258060371629778472180774978739868243734760880151927379343976849670769427938121996301482336576748201606912247877558068630323001262251500426555515308712736461695549629639405433816066703198116306816463428145486258825449117658930982535779345795909015707493327085006840288280088640631034274557094591942464701299672435602493303122760056987936359356673242265997350139590053545619631623706229249395196420447662622638517141806972125955837233002784908030702123660883821219397355719814818497195108844135956050081419955823962250425962113442794987633314341770441110771723020994076322810893758379193579949179528601407746981033734658865810382564051824838405709172268258779685294037613307781209365899983094221722288891275464264557291085084389649103832625279777752907469869404481536553371813228337830626781992246878123179246513915137244962266899498482503740111611232409843310365985865188067765584440107230029407685367109842632832501496755934946704281161804836675537619146894265735943479580244867267426502939072584261614365551911988601333094608059012224397001057708066379420380518256710728837995392591386424780230782239017016463854600600430084841705387238783017807517215654828954686655499928544362134253722698751875964448055616707063758631402137734113420540919198865292600192134829088632684763274593417385169184174223250352486460472602145717016761333360214169851417301225931776299514631066160807719910487214969966549901551285770518132602601029524639173770102687427146242946957950409512509767540876350039761978499024867364249487103886003129412895125351590969123607140636494044075974390148762627737126653478796663304009756557907835041120723105873837688051703320855307683253878119311500385234279914474749107906251786828640226257071275993017459387853331057434822160294742088861811948558673455036109306135568299169521129112439417781438968398818386216187262886741599544092489111721688243823724561378664258295142225155688801342428967781193029186423646615355223825340818218300075791441908321901057792345255007516931683327898117944986439136356216545531837541783965774502316180140291925105270424300926974331973791651554904903607307702592279009723229270885143053198434796977322154206989196482225015590640345991896515173335565687317078226831559698007613400413806490990962484633979597820267640281215146371093138357615822145659273178710483599034773470721652503018886171075992042094703769894613915017401318892490320501336746804113248235217533827573648775030678738895046734766934256969335209658038568439541743129126280807175294213403869133124791344391545519555396751195099144017384146805394750388415030581617797888884134138710734918624429152297066364477051776287250629036749781019045078246060503964591589813012828521386194925588023978500627326507300028225251725475131166873270578953685672000587782121425836856146744380510569960377318472039714790105963665901615470674946262662761599014823330240138858190965645835252378567804910719761261100995675221813695455514278122727521176205064028170422739809641895076638067186877805959092301482031508610625370406040174548099270864789838703719089572877267419991549997978823975721760973193935457908837174283200202600277799192647358085745052822431655190300016160384841746652739753502958610318398770405211429639822299302583015144362360374987348453736149580879263550460960067355363452609821551556794490302959388642928931847593348800183601416709170034438604911083650911120161848770046995318106528644449178583415104623526851765212413066179888467377154559463281393326571618943030752444091877240806764748233826946165020692175572254890380167133312862572621925801114499686905179598853259947576740087697431389626952195747421459466581699894884065260832476199282820316726802133611153109656166259837778099794326597429214627563188478645309379342528114293892684150536494729160342551016708562609376001128540940912259013823888183428497440787744615288045944084885533641916016257767935541853315138394885209019524350755648624354629596835096358837692336674474747719513085285294904176489156684317466450999048233537101114012501902587107024276693593879711564817169802471169770917432083358215788453574695899409163138961363700860399243170145100480277830283902759996825819310706703932519251065802673378262125211242379328339756176087824572948682029803256324444872288514543335596734976135981272856206238123051743461481262381901983775562211325519699293595392505497238265006219121476029608562774683232767978115498483125709241883018936392750582793485253555219512979004494573838230556239976239880133893042761568573485868474229029324304075813453269862664256347114282276255035515888562247217387394357020434409301982811494895645256468427206404764892715402388557270074677575010903222548193092181263595791771451294508907213966301418594590493383806700908604161020197037320918401131334299782799181907573322648335625939449363877557488846830227921929592325762082879750559995542817568557565307873732191875209640809847173967710991068284495477602299717880009266428308561608562770214080514310126655354644352018177206596787045272036665517018428787395729420307175843621637727261769271824852730671126041100639348804207900242428925487707242826813080425997493059928052286237444108571672174535953766085625373474881459203101944633704528167971385638946206007862895155821737593180231320343600492943134866068471085259575715275184060588071936565655494530251424820081091981327656596930838819735864965975063007912491266704996292690162944083339219666468177252812283099082519886155009881395717398772624448280680640888277025169596326279950732132209846612183812853820238609775872353852142048726019144221019428737474165682361466370145585723839150965256858961849268928655306401260227805819919983811862978986245087452834748600830370470018657748343961304648495606010533204258698600756405006724375480720171593762647602301027660631938816723718224369699583218294073379085456674106780163489715982229355493717521206939414715187812380783169646443440458285495557815713055580164039434867287041774645036224002504323170855467942684978837328554323048923451340189050934945935737116547486189925832940947663058608489529081354884647096699564807797323224407123529122065525206317604227486653754486175422311538044140644049393740742147679434911687030154428861010786787701473076434546532173702568815355698909952468992504442656651600761720743824192059001344568092913315236424511087468196611203486659714063168240185409409400826360374223073686181332523091140971533858841676720668830595904966532068116200822364255653472412823034123027809014346440864558034249593245356528254933943302115023491656655800767464336364325121642543259297464807803894842523098817127307353235894889669585107809281921108287642247332405948795352012378605295962061364845276794281485600312934986836701951380805241172733245854524286029516695858636856241735088649151878017060264476988638357398910804718162717929272341685178264087454962429197910708096042866633930015686928090625575475822763675895414999139339790191315675782937376789331179900140748867965356085795510155318865396364045159546099059139902394359793378829585801126127834555158355915268690930213592018602657326211720556232512862586471943160865786453957998740433497342130048793744458505153806489620555697066476952526112864824684315688524675937445960004849912927051087432187702828617276046257502132885168079436597518417416580165268569862109720113710436717673988072354615277931006194785925654201205599955135654189499406728413437383208735624523558497636319601560437549299049267390207067999316966493098317519534112771723263164406205918448834219976335412848735609153071133309954992374634231087803548941453565085612456949091454501359445246980776709669613941625764093597637482364150178305519566771286839383156850109908224438700287834322648297004727363658224193623636243025120330269238086307427487826518638690457698614447430539405095232599060983036614063958620165488492238787973030323131220992122381942013735900206672064384702435447710135147172940339174862053984633651464969523497109535822316855624224385827327948519232563355728203609990799699043355898798904279589017609620184761484851134533853754137898530635874095891011916196031790648011734238958909691689708685704739130442267000562719592642551824857138219072645811909810266601634233097609683224791233954140220580486446014609079733196338073884958853162312028395825784655071124479775488261109724336420505384939299243423025002293651000893625275246409069681168676416893194896350939979455109539070264929578759348298232807955445924759530452402892984268812292639380946381734004774847470154142047651760212328537167091910386555702247114251519831983121212544676836981620170326822667146221777258707904840994904956116896528162598846489853938382577068285972982730317223321296071864610029869856175183408855781578529663790702590243002856317423807018847658093872280436291226520109606847033418309919324144139746442919571232218296497998104683099398374741407047739373604585987456466707867666426587720932915669726964585804943223036775105257716417850826480109206555098764411020641024727660424852832048886481228880247629928977439966302535939036708329336181599252559334743337631282678195708563717566408134657613446279249526586902778474978942665599817248315320836781145599063219272692194993664998039454282688467039216337528967619402740971309124575901529564448905168983797263225086536338450653033378651020414906668209554098770386774002735877924043520535036143891976324473781999581569330302373146087734938559011698161344147432562786697937033111185779797033585466033972361525885548497633349409402853409285006746511532484637507050578087074679402065172359761363775505245957033650036603640569336403851217898006652874082927819196763587117478521402361710322077673726967234862997286715387913478027745743090906116183429032003230675658632210834076127656628250642898044686946149338362080058796515844779383832426428219380933672153417976428354515648598025179650373482149674704232456251324208313808601805159873621661444454661890895622992608610959915633338235714800404453952272052843726432674694489814839193170194599163320257188858658352759622022393554307691173840416589869198634291807101892656945210237242155575934403033789259162812728238457432452886231260517515131239834506934102716484214944154339322770848838406884666455153287003775048404774077634529678843978449367445167046477411632592439261632306861979984780885500645275184663865826817613497305793294353644876784028534513686532380124945690675176819000055272791645866435472653552580245753173181205689831406432959156985350512905056939229741094283882384705812169373990160681983853617223586237177680835114803364863204033406538588165626696984562404411227415029746189778652333227025195067958664056359265125057037920876264362656696471866945072267814094085804860807974669926040569024314192817147217750359733684560781457548106579181133296661291141517978450652207000271063809158542352377878055463090333784213119624765014805460774669613135836845020276056218009523358758014582084252860541378008149885247856856122073701433289738983428146277301240816726682667754349547762169536283172884098606474793939834240842270224525048537121032962162508107677783976479017836462208257900399004680377531288963493288825190694810573520362224956699184307655723468499745325057158041369079389337538954648687219089693572506088720465589324698885892029067219154675293741701338839337817573376979464382841542136740357377580672300230749848426387601524218934360825001607540534277387464775286719365007080932312247137479963131512649312858887878328985727367034489051072221922946460531839523148689972076866906344984585208432664961166293152182020315478499684696189237897532965379354931200583892469422801544175694496775683867354120453149606225915778706302833863648399974413936077417988270846016800890747435543456125355589149428664961069383108614836021735707441217565596623104877724314527303802891533800730420274546209927425514184909060808488158823903556859525415777632760788810413792044806974040035414994737428399587456889150701825576430467148010229340273706719429427002476332189551313513700488543182525721960253534118927980609891734938683476744833465207312974789525877229307066427889055197087671168138022299528885201270491397925254314236175715556381898885573187298858925180945269051238064871079472861358985722709619951995175458195462165537200202169591159823806124967068610952327988360102006870551767055887031525667423980124104570986907757524391180096883197750206343044816268624843700206462134245782516953745290493829495034714536469476695849333782349373422089046910645466759558788909769051541674757017693736421226062957494563415921214013414793471609229638103782250486432320059410449550018362675150279022530914715242699355201780227888574317285317018869516914303367237432510873308174620098350687104367387568274603095012161971732203261633256972847165087969100422061581995302923965278246903534108743425261260625864661828347099450094713422840087891442082704110676506124115116964079386108619401779102729331436597193690071273474999445239831383725714807364758401936016083690080455846778244059313120503871397761320504311590929922991226654643472584687494033833335120982644086741926812679716019258076350364089932234222234856770302267466181885044413882878683345564555989007890033360857349594693722250173418784710810980990894321059921670078158562987622538531506582900305447273125172295303668595449810209613337265084283480406778280002101205192472532531956104917539503983253812112322939409689487331088309207377792449415661570713449991468251055246819530888433046866910503967853994356272237449784844858926152091157360598583221931336290412214236663723571622805725702175189927499378345500835544357693136167459157990841849931856037627807839301722902537077155368335751205251850947897659906867918079802877659333403539957902667034403924344360593212550739922051605188154636651521902956316493502257702461599979360559543541902042156904049603103975130545049529097993140307279991313681115680241538111943261994903767799155062546710159770353301150805792483835042713609607920578145005367227322982402838353164311419665684959438718594829301493960372100060794864979458548475308145273603968002486249730554024740406528885466009029292413818213996002684898581048356904742123770387277976766795631867770762083677094380201674114072715104285670720897314331495599117586463495215006916397146771655737026422030269288888672427143280307384290210953671937076105877750340270260973702908510309782718797979010756391443131595241715471759379384359445845583307112463407300011764322810191107840126385781704574447387422681402764966820419256586697850429343988552830976577958092053188279742012451703124406310635800976761029883759517124682632598008518093350427717990705636623584832116425482978925264455187692547347287073755673483104231404073361906838569536705586996178991931359222026231248925860001128700092997473042174679415666243936753359032063228174250854512707669487701966694418840982252059987886598489418224464847403818709070911887991476067973694199292721774422005748323790573904912133853821922649550547040763755560073038016990050464657270097546658448691611117053519054255874394765005538796105197524435309208750420418137244634476682681046933935479195202245554101266602265186986166738517640976218161664599575192698636155244471175130451540798566455821710662515930147197540014674730635299551126157785411522366069015047351974368233939942676528971729473730885443180473664850042709998350046233011861834267926889981554144328594361692410573789196444990945870481116530252242885525938915829720338141094490194204825047613869117577389382523973185779394764340108627642282766959223060217517711198542609768945687102509110301013295975201739613424799996946410874899990071324901273259420247845789324821919875710290416932341527189472671684185312985248876000667361175464566293339994104241493164805023354421830523699857770990428659597450359664153270544440973821196067846740430601198443897740275174034286144469000526365529456249518857002181242067713453672062023751004598718423609790014399785392563419632274695659493988457648890746168251917932850048422126552457534039734806056478884581349091883306877582946092147568916139489902652327937031779522363739753612294032447988614502853538891875665333583614738130696912775740070709015407944014347736161323269853332125140289519032402218671327826833141961854782950104714457102667027206163652083976133658336093739880987837948706190889724064338229963970495460694905458814396286933221081518550604691955203157140921418098479456178233091504712499734447490655485301226830721991115321842609104303556438059906802759523446252333775829435777914753682785259381888001688690597497399229596018273458739808967690088682381821190157196714725944578056074405055326552154152385763082857253889398794408894066775749582142167771384859138304173858302434676404980006167122743212800085393526688788899296548508332643955916976730446390715375054357427072234768707965406522693011912857799060383233442174280995092411419034245374645477986655815433440665029118046970207524736889870302692552425941125372741769703881749124724412051424997792509142716783933334900513869252040338979394884806788922780042405099851700885347221826583676869683684336583164623030898474598322735753697530181558663722769044385994041772406593200475131339692835481970415404782690213109584572982687392465365816346550604671442325249439753045674828303715900188376083169025979970804552906394701952878797316530970448982861768679560491851170756767591155197087262121817307232235760476372194704294132835116430430275077994783762421799503938795164085671468471997956560606858077652805525556914382199794694337697813614265913233346363506197601818023724794988524231913468403512583923306795173494451012119689993337541723962625772865815174536570340279918836313594939575189489388453723776132204701456702747439926149825663019292509721423024118584330560190224583530256527788437222549357779312091457569284057221548368725356648874278945837655051264020414726403817176650507678532768606