PREME/G/MU359041

0371059449652129142240244902613702151165784626231273275118795019508181374909346491748027149418966175612263135650600022559883606105354441096861652084129120308079702373768662613884375364344786888507666700327374349435552115064695638412824055466161505900513848199914942343332291687728705464004792015752341262861720619411183894556833142473625629058154615682860001142798946374864076144383138170004376289006330386128748918427703449824047776586066404291762418438796370349446631156757745098689199512632513734783969392747175225205126253726236050605273338113445973415314312865829544181348623628650024262194786348869006922610904743517432429039746008283030176699423006249361076772140816691804079230014915143982635575735464926057798775875282527135017847894024740684280055746753836763418954077671899026442932015371039700476437108307975663558011447473906629016407150138056813628179136201433767915972661470932469468097872916659023866069378890305400144509809923140464503236498041130039736813528581696660551935041743363078473110619647818464721591987113214219419456342313532528797940014510351986877851961895007425871275333784505096670165120350683311822087467034738889999355797627393997334518893143953106917636470088203440618276413697191764827649802097869657556894227110598153320831958044876838180264637225065026668829637307014380255998425908857031999573536067669024692124231310707778398931079592640577952997893952740193520720077533314787285383603009810166720920002261079253178255013466908823105401373552707783576269362132527853305562684413050284382694779254975267808542707487494388631594884888178670446470445879065137315806015991343188902805085110628479084576015571240170434075427890012312432494266833133736830153741332955843758494903177787614384042531381340373897226753820254795996237185461641665027178742007206173173284857802010271564543269797764837629640493505499706945633374195120519182703658163545142621245912876102592218439771459236432209400879328165544431310256219283481736278291356487622043975204128111436348060133617608475728972734621763028884970059307297158201063214484272254981390017672402792067752975441507030294895958094980887189570487625893593419502264532650479704450944845125980623855757728952188346535553473390424399319695827060146580010235235894971406932549208732479395492007144712278224094443217098895680160160907268908995498611726456963644102435066570719804262294916684820113402935006504335878347257944441143733014434768560056113480981075846234251195115517303952675002303258226745055615164614427138208001655072783748157370338136604567875016967924042180948700953799815426709726119261562070452707340499155772920738545688981319445838779539745274023567455165148068141966457952847754814540628626598460106724242357102822212537413220105127951254939361425060059842619365849944043323673611961761975497496396298225812515013387575566414067476192215364607008287717602682077962996109172073396529595255222322381687177966723062870112376687292309362002852554961108278207317200761445723652706357827328673891627498583572553573363842020805782556472412124612115096274428354994128784879754343089404953273823467408240891566961181588796781693140667053797607704227891940097297458982873119118574275406719429669842190362633346769133309809864369415065181020569197307310402646491955649357226143512481187618264411037905005185783665647518453768484676143929847891883214862385982707678704194629213921306597036501964516461180675938145291067736822574842113903805488901904957896115300754511844802994360975042719054569269089534261691604516418472078644337925307140285514321384219650814185270255352855737655425481104820647387401249099212201444873991608561144794405894710959162580546846333163463176230203972368506388036458573123754482011037274578809030346491942047115111305124520019409488822619084910486500305877020903292565625240523356181446421462449707102771801734162384199293447665637821493442638210851488040359395465879148602507442595713474678582900946241776297640933998662013816692585407649716152102762559753637198830258538645712139418316989227473122425472743502313062505279265519192829520761686912590128466797794541299130369123294028856488932219577302693010436744119202612520468223959692050196361062652677672837330690705718002556490208911463306157931491854897644412827172126775765680607803751779473957794627851192334894692943538055468781936419177143539088930146882863222810489449281369511334527676598400399447682576455501779219390506053875714409644326123718938888427788670525168478999497354464592894136454106511432461553482275148396077029465274364828776573315587145698506232780044109965375449030726960454937878490847343223874219228827394478825025016544243955984850571572509344687201851739727563562695071393026937914681723188553614100974952393636312257591743004275546952407941241209506488752533394836311719808335762784884675415332394852978649057750690128725828974260287903225169063354990970818739021333096884249824549758382241273212173983267206250491574635668134720572331556926031442890044017682272574534916193836781484969309073052323263503161422683286638760454443767852776371077528209446213124370694484967819661828114962909804152298133704139550699094864877354114741305888836675656713367842087218005038150680249847763184308832000099591674048720099803830477460524955588299093346074511011544399173788812986895634938038841068935940211960348652460735623078380989529622405770041723950714669506707910033768124756196720802362894037149656814509022266865207473731630617966985907377444221452505505016083705137508172749160978879717953294642205423839257416786009139870172590378213803670288796310618989100280289459516844544073880355479461510300612436227017594777414497071016440081677062740400074676868325594673458586694022155529116694710339839826076035490630328276520446136423346505853369916146543226658158650847410440915304990203116365105914343978275880473026334295122728404188882788369481197469138736754760450205506827857777381538768556771995120208537653344881407422303271096297190552573163030919324596210059165102893995504883838716405972294210365790703972880410653113446569295816902649230698773677869982997416413830990415471495687157648159043947301688773237265350287795120551152864357001556664362180748545929719304068510625334990622195940189569370836225029827007966784323925409923177102614500427617790917145136827510264615518852176914692641445249833915963887133138977094516106431632202070590736671278078848860933438372162233409707656601011128784238759730582467447100619013413759930927108878942810261282216816316688828640441498550817808759945755210640900852785535853514932540964754657542613841891619129080674669917854466009950102582854610443023194150614051007714449971771505376567431973012245433895844020718405405189475190410865926490288545498977451659570327904653644079482111668638032475663080243424914003459252045911277648208054663218679495372309821607954541793220855532153997704378536838088578292045827884347592024933952399580067390117794066401929605571177688653350872408234449500450624772978160723425977258789702852569809862121231112174871451354913500353729047552366663133161248645605654306086863593048155923188623401845637294529503642464916069352151194654255793307496318164313176962116841892237903532933188391638884811769877572347561462466530718672159714563812488588312272828781271518337233539814172942223952354490340031817025857447463873846234026143212703753994350594055615147619100084171826607189300335659442720425021307690469680646661086503069611254577214424487962803465456572272426358178947866033531117061370346327369588394412155720909311328992154754716543775365681056853359498181431778806091932030091130967302725403059243305582250216383979050697173556737071974754583359205981182520495876108447349077188921619247029636443363980462923774078755627538577759548506393306038522540444419467289171750723825425986235457594119458272457487327783617305620619941226171538547070700113520317705627384483293763188816570756833652429204423949736265413487237233067399247024315401425842671746492967992690007963696204164514231060454220420201487597140742840996369883723452629704932936671031784600538065327070275433643331409990675609218181240860984612677074051972442106334355197958077451541636800701449810316934251843511905867278053752141561557786723760657931104172783180088191018301496150669020432533684875220861937850856538189090228560088634897971030713924237519694072187692762281499701500005115090009085359697956030293911140612796648296995523127620425028668998550069323471306019695442745523393478899787145734302748204571270060221357277261596447362720133016040273590537267963345276866324146897059417252246811046771364252472781356804391318792737301141299791733616894057157301391986395704542595848114613792726333095175686851304902929746026347829880587435209789101227745936093908613720468658935128915134589605570258147521488946435206773481665601144358730927600721694281441174047149219640749699324829800205403131703784435949050292663650579222714557484792869923532507266795420868438846107031090004706660406020861296609090541435441465164384774451591812837185314794449518721823806134233055809391070801290924752870201888839014220095211306476243589395189348167471218994908168548031654276864798920314219915191397519189713285139814541334471188872280741522081267690993557170358449334298477619031557184456711917394805876372881958604103152912469541311384632528491271149917791429565978250393865621098173777685959910652052773951012955320175717706536389907757654059970699912673016360194341117715340181185044414476243487457903587972812835201052711019225917808578575796915497929562246154623039537214233552991150168007868590755923073413988062722210408589869939679814437283749477415789055663701004647507315120026971546900907152179383660689404977614309781038412064153843604119077304608513370863131758724753219771866236051114439669666941605899351855585465117964188405428829268858433725815033956032856224767545841122176466930043327231567833298624637323717435828293583920446005430150446768355021515301200799314475702710589068098862082802242976433603088495818516467117172999647115127144453427696059450981385836466707996759595918270770090040094904847029065994337436154123677345702565820416143105042913927356185420260286964033818318461463360904275631563676491847053412762528922749234920407939064747176693910897055437309994567189328313266253720391094870664351269897944632812112471913717384315276871102570397220131602054662889252253900561034383186285284593823569425632065800014600863171168864732691948590009195845814418516277604386786988205055267541484304272256252861277411688312626924774511548148479464849537734663454039301009463085635308143379086074161202096194665886981860903130571799745763154274331695196932636015667693278991526978709744438723373613326966881472891290012189583108793136792034527711096255828811108549326502910398775609237124250987581893274062666376110652714148096850524225754424041267572260364109262254376576246817417325732283255527450964541274738863930050435385888399198820937540422902446669983223948840620590691473559476607319736796261598913942497852255427202176878782777288142388498072327286603188861017213909723261873707215476397815186226944911253220607273353272714594564666919864128245873840535396118020146498330414317592842615267448413118082558593631043558223962801436336843729970311570334353402323528532904857110949263801912068671518537580255607443560804956195564667551008146850214583762915736178799658475147833297164878540801492393532198465386582565406533451120251167016830879340446676119777653073584831003203198157291794599558800115707528984456521271170802724242755133007971691085713957545969300945113795894157133529735881836573734424689337014249025782171320003485887421908866594280458513162757636003086739204007198441396508483492864530454328572481692410056862319417261852509322886770797269636416865466816792394806163602216099936679433006952241994322379764326601722648840508819462649083846238754233878781301418868504111202019410603027366699864759056596208610733534575721097142619209443726432724118073251249756500592407177275587182431729732176465019426333901457528117668274309361240214317739070784696461719169832669616803398884204676917140857974343497822637618933428160619921345314424646101420535199127367337319266238486931899887706861381081050279673165616958804135996201860399584156800033238591259715322201356980653278141438645873316026612270184366929832404618273273572330897173216612042275276419790942685531219914535487700233037013591933380450629345972583203130335730403461334816763273791350112477574409845812150291220931908323847992573067844868433371032527861543767307357221430499697671669844151601950146461490564391082561797209030209210661050452931000185500837544865511817182381846072452551569964018064253058350444900453843928694903650325275519398559523332581500178404580353085688454399316751729328226783713218801845707938966339629562935806356772467645602426549922285895500905964002126119023612361779678265146322559795592260418286091739373092900303170451143981276613758953500022411135815698231032041765428437174720789657868165279536241326624117710478821415831194227339372119962108627948780813792929427210387764741872691812662734642140496375526190648860275487376007014688701455183230208657227838565036571663555187941918953100046732667945619911224532105104037953150129814536767764812526184267846073075616413802103431611554509386305129418778781413338105457243131963611729043643270270432214163568477455686902920585547912635335309925805785772007971885226354993590265251649195137633575896152064615389022534320862016963916302876345486126890234475410272863092672835162775264822480994300329092871567685518829472885236607354647169612602574178372145364156475114994636547757685068788660456612705257211502256537104597659331530008170156998009418258275760251861669529632424016698181763364349545627905743425974006990381462411926378522532609088689621875656147707881276896140453257841644446567203728375870547537445697672485247935051232426243796568663591070755768422553750393382785561902065344247520592107921713608953309937010545006051965992782239549859141833325959218164468797949244537877528878434718142459776844333323936301485492631880593220452889560082670802655465149411908934150305417106427496272299255051562956999015367735132910928766030697427408729889565726043516427790456128590413889382652643258087854639690511770556100010086478322900372375103108992297234005083869763232940408341672285010407230411976238421248068353861839957698607557837761463805817321588185794385939989010188197490286240062776910815752148594257051956709647273143940516044925143521558604310102293328553401678560374574215462306025803311459463370108659953137417317526003485042129599709373387605339160506422350735376016116741940415769849566241287941260926808222716603059484419736270341471626969063637309480182705535979154965794585432262457969007645555191798599379205472420301976935409358115894171897670463189580918095540656619780810555107105901576364795598669343190087760488948141320207815931997299770976548213910313626191073640284357013273338684596095861541769067511341644216709318930331793785333131860477070894984389110041435189629551280273998477871745325656313599518842768481566813231698862379732627945922277630927664313631327751709845543538908331627280507974633650223497553180920945157324276621113933849775540290001606475089643311959416427819154103039627575462090156733283217347450967153132281200098586797298534647491130477965885899037754346830943246201163987022667027566105000110776102985608246761592686533635910123289242745755755966286897552022707073220045094566083675443409848942801339278019859974924838784838522254599955929275393150644473082362902716320743533365627875864280227205684353417368295132373127795034672749959427581686288975858307172175612442972264673792351389356326734289468993070784027530784749760518142710277554171354261626114271205504660431013594046591228846502485791574223541388709595692596976206770737225312634500073188251609553147658647148165826411966944857407305026475442092491627197980406466323559138516346961863487229575773316527624645388765617566114865844325681649193612960870798497393279616932896773106911249075058227153290122568866414577131607092629742436702812476076638784081762623879925138858789161374993611888370706527590382095172341564121675395848224673477462875549799985752648960661462862468859458198194545501802639445121251149024649241261650799931431058774126679562543724036434011673490665168060180288831448218360857464054342525644294442432637152910295448601231013936766554805860329731502345817844762225842511197065364001955907044601535414241926248324776980321031294315130594272429983662234642407179446461338192491893842437382510826544019688999775382204557257605709649748067969183038618161025986291860907264268053735658668633156880672353737679803597428759520806871202481575195698874670508853338376031671530641964200877305897286349126172349936535383312899885593688479413701593035910340631052578456346098699394627808760251782098732664509641785830774734398719258008328897931154883961484564890622568014686013970087571832034131628338648966697792067972154604603109615501101596503532413762448750372888481774730680120944872584976033992944783242065033491576988064522437255668901571024067735754706724667008300940118327247503998211551978353598265551659212340912140311143128550899536374767747917841892452097544682704591232253621177866515949538839967529989799664784761040361756505480318350098381691078250090399013960020776777305706732376775921542352889170328482447057688098201423705983083065711412326145072946408822704007321251029418383370560293636424122776949435655307049571156501902972445128882720007071384789744174649683718234763716362675558972613139124355695313770773105028364323124198341928911963830687139251069368961357287516543948757100773740788435014371448970590009582251206066648639868133385028141727312664297706405444837948361414591035652779092528315875820090270703609294361671820708524709353996282477019228955674883044776004712410471856918772770455319546288679636760641601165873516938542928467216413687032747357133252731708156281221589176684810688304466988644522946501511532534238392710997434571354744407540657424312693934522582702429387475995916458816857000055630760020600838000503279122287644372128773774524302054760295046394893190262069207644226006577661892843278874734055956273584325836440688390117873171414949994325289398350459669183683915876119928059887297583535449866654793652116708146302210282127001954103537990150467172064281446936225423081737628177245352638631506384830964933625371396092399129114624465022364584395875058425027030295159444309661122893312022072943155921335817263458259794087365911027637901514264257366863506034102379702609921730058672838132999488015748619890794627173702024804728537524639767878155029396134047737195992658736270472300462968875312098754273759972950314626260218916680298556017254187760375168467790184009091530660215519651434611989153266635109509262862896156761098387568634030704540632617420596534492011775691278637596077009615357920896956617943271849755166787520480704187903033199793417374971745628297063741083622401004627851423443245277066140419375519322821674671815359086693501062492718886385456574432787030165838608374857937078269815987680918980688907577903346402207278182347919843735241446370218104845335456429164911610473711134718143424770512138872605969324872073084893402257829479523833443286447771353953320139370684418217714739266874576338751452356069941812725246654332497531308065520267764096072906319102936276087485092078689714501892776831950751459432563477916308761779791977064585913277411532091129871381857223813028280157983730445967112627987785244213600292766769365976685265217110937879636768840209000725820109418701439357354267031334134127553742195483292351077049801615400695582040824652463929013315188787770414371429589416690697476073100865377315842039275960108325658590226646345455230811097911953282473416672218222303895932674499323305783688761674651365458153851177314053105683732747633777406257522881718030974886187512459956416321286923632061885305598474664822643898052724180537176322214816983793102241117842960853372323935017494960398668888599543875778739089639036296501255029473904675111385845797610023459240530606148499116919918452463251126156952070451289305743085768589924176401917335665455225895636171830998308851012795728892194157896292307266159267067192543056511644192581297863795064096193629039704801225928420670135696419375738257907911728216753969991532160602380793738545694805607629054628706375325763977183579024881393013917048805917173842235575085866641935484503173575820817236065033665206231894800275305137637071823553205904162628342603159408142732527064646471728840275565665716563964710955247734976240274519828614772524499685820571288092210078743584378958886344570405725969739205468271481719901274216543472091067021483883060352732692579589304665811091863855722055300329406829256324314405410123533616475610213723751647534524328409966470397057079861000065986295103865826363521541544743650594146188450339569436739044652663913566520750967738210464981157273476312665927467092986729686657676145378445415557932776403291624379691183673240382150979619819428513561350300567454639148836545909099736044009852288934300532427743240004356956024688332491032661357111109380973242614044012019287867036430786494222078980150761432810320299215115141318722072460250328967096842729885135472082436960556643407852799395227019330272517313170468047919265646938535098434023349696879378310069996802738229520553130119012922547878448713240638463619818876786959100781550571112838628643733208368064360695035038547255948718623894939941154047391050744817000634075322844899874363335046746825626849865176911771538470443542459558060923036869778969832758876975101064059895940362055291978395967904758315696814105756622747072743135335240855725771375145311340886394117309423731039366452432066527085232142174524424619933127008607484373962034695327075307771957306168815336940298957041269840468790541674703336427365379313816661079530029377544051456381462179367931878323590380794624516287332496456802667112711829577627819045284994557491209745674476563187300745753061872700668852864482411141270130899306528417079187533356454247207708658489755806605141214275091697935478996923563612509684256425331927450786507230867372576243644118229250273332369526183470095806392030727169992896569161911378364514238787484371077658816601576091325897479376823191807587447381818071397782910952842825763163973757218304489528798963616734198251711200194279619898357126245554724694158355469323070968552514577558285965163434426148831585460969358486080651392602613279879374869286388373447714541547399501789399663450591452915737797902486313898832082134980189392779725697691246933485737704234082552797276347616956041651394221664606898129161103998095804232565655464946335628185350870279682007915945667069347047017803466227089357336814837307161186282686136139748452932728374977752353890185146430959622225599732734566916329458003855362257981168921183237139560038168571066850369135565077281649255302671538742132472666989856927568871459810840067192963117254424967216191221810301108263060811077943463222558658277621503074058021201449088052120560450219329900889327892434605486917502085518850036130673954866157855262554955495183370366266115152643862171655776651577446804321097728143966159782833019765464862754260437475302048112308692080119202666483951483542118467233226107089283969368397279413563890556572691890118959743331895998620348221438159150382495919140109623684994759961783567222332368597813686563343727009899472222082038747542020848830991303543939597977344629159597441422207126222202930735450482541758203204791304909795347464026588128228800202672190379420673061658079591523438050510244238937072567176243926395625058611431666277330540777834122446987473946406856697846743293458332923742637565305503115511299549794627151682234183220542440406404964030909449167511724042715414460968384416367678578376921967659616054040719820446983336432751643224326331744091193130842773107587443866261775700241330820712056716998492333418036624980458630324293762095303663332332488612496675307384233718543925443188742090323875856937689317588844266326705563832859007767128846647458942844471875750595371475456440504272421312559126847590464637218880906731732245895861994425363721833600265484001967218343630379590753263459651279181764394540345085487422656189948978593894016823029461767816462178524905643935078477586310847446736993030420391694965832081312545196143919778541095309556855537706446601784116815022119169168999858167654878665959522342866321946569184317935529803695805645769990305942008439518958045767013384470658181983998556143296350739964857357274401591931158836878329516999701273781590188354489018243504491327721962285105436216847084452493163355466739278209162868035277760040470546077211480419110321700927526803960095995257063893554186310612580106882389413622492294031484761246065151454578956935017628091009631639397474049736600296354567332172897048423752471223093267480232602333449458872086118634502032063336138999724382228538200731869476147781698506493739162816095555693061186867440079863458998189315359694191419947981820845236466025752190846079262700505952350906920895840098071148112835917026821269301967370453145247021650174539492380013908107611616015817791077542464511397110283530177784535563985930273638242079932657225481374682260842340807836413324434799125151670869073523050050255695489089724285415074937920318248300241704043880365028571416914402311821854993226388913093689663731113763647255063035135777168660416130689360612245310884523077527202252113391421458932197181529353290656115481020563056527142626139066430774334061334110675494235871880968672690223880765300487899645485604832048312103669886923036520110617430833172856090993834889412277339686222052057104631171004423448214368113209563386163787123538422625032940820710569014987342093050057693865224201912866121338382783512257584803178000205635177272434290622072530608518188763634177829745232144991913093389275285028105035382498755317304245848846017323966683131011212696770592547914325781801697752475889939100164854677606621993967740283949408203818504180971608617142860931940828875704937946752107857669708531253867121630884606090066836107441669592734891293663157736943915957815908476109314934930506561195074681519520246673567723926938711690410643263056854334577781289922602889842754668761582195033648592648989999892374060618760933629471135527252174120696267606461222459143156441050805696630011775427055505363366907491304423068012797431847173504873726877778157557090120150267610746134347265370912574712467521563464011039503044324627585006742584976001212541076363997453091786262809013033753612274274006077552484845571625665027357538099785750939630849643434776087862906795505177947966649251078895495813235158459520299599412894244818435043684549752143238834053338933876315677356345031491657120778721931471852042985146019453492004874561671391138694478127497126227094513523736819007767911050569702663058055161242171751216315301862871991222811335633098912664096832078767744302659604893791801793019166543751209695478570419138384102146284594594899806489772255844655805680547189326077414316262877977256508067420716688154368849814025040160357105099374454722063082151103676773376029483681652906738814197717395180745540150098842128683204387226033617861923681468737527861977393381441367582074720810525269984307280617271511303795185222577786687384682465824455560232514488386231212130904842634386182062281247053571197375399254651013164433749587149057910912373502850970775482975257362027802629678880559146549834525805850850218556970082448511061622810387474450755942451827650810758020712263740634441612437176728752325910149104094470973610776889245393192524976036737798597929993722433989231043124876806998594942388070021353249797187740124461116772826566189415498392223373441460331954132451493930962700604756930564082466963405148679267079566340765075630159349408863825372497294680887455486078237375022618025648102952779051976750754732899996037282072828399948470031817686830168658568760778621650471444879034758565202994995107919913457954893121208179028943537666138021481715014563614450518919987486495294629085760567493626273113062352668209709841474488825356015398360074960545589843247803126918289977504859657259023579492839513856538810289258388816176104490740945267836332547249797432610115344879559502997145736379021091429726437944623887237955472861095699809447452903989157295559054899399569497399075795934874477961916051957123010590148109255424651823941800625608109920235099010375777476921101274163984752757706571362342218466022798261458926500878500411376874967641105736975377004668724889904505751411069608926108939204061906628925414166496739386442668913603089014118557533723556581231631614719268102045206997869423474834068300146038489211418200069491174313533203068894014597330038683900128949184761291709648151440311578272244207809698814689778856351938041347748729511940236612111735514579868740084757531957398702797069727855690431762409963238051299595250019383959294414469067384060200249962443221359926480359059148944884942488968252118904496273428638859622530398028546544357937519938142790133668302595808677310466881054643105356204228949977602987177894494479570951710164891741888964731189341194487932669046928999894375940735140651429030580448074644640072728450952494464473608112881609443070499059054928115673993333868982747777341790584866490096609987551659321111390868346557992642602968363244982681278652601485082110865882605435071499687303338584922874189390832649589964090971274958603303585202447673048024000435981310742760841201114972276008084271286510700820242850893058935699855224865585694643914841162462688110879165673316643833812391380248435489466424981079319900625559369598538689584943947027159440730734804413987524794432947520413329447987400897804244696081382926430735808132135485053342416081392625045828171979056234376257342529688254807540452604683715628705447280323698782848673235283053125028907276093945561540761099895858559787142345521547178258477710790293062430589950697834502605816879937796626788567236531904604455575553694829317401612898266176043366656426326232979288368495398813548147354537531851856368786816525173343204664331400034413660788718946301160637501336092243928717279707536302141645076241425163969131336284009729340385982279886800196882085359145280974478443682439512970324224005430488151238616946809045046749959900503444024707467859461786690609124108456522132659732458054177705344744615495285476268701131915533807063397296672810300679843269714229879511183773236846145246017854299439155846277717606963009226564929838775444106243714751658610409344617142850890289557314063792613292081520227025468853687066155392001282747542455205628482525390055381142571335344044577967123302603769439985485210614092785823816652788759279664676128565375945240365782148363998809583894235387457398284333618351922926895393096049935948940447444476202732332009064422546595138171765048924492611608422237499946228203802363012750940728218460602661829664261454835436340404570020291471024775912764315789632040277000782247721264326068001255932416916577906079518812182676942048925750990295938818436467235717393922736439883539719338742099876218749398759073577160663911471467825353679994554851923443990349537090453188434259747766472117876611824410842782587321010055360521121729948603572611575287824989479116503725814100768956252976858984544720902924230649781193210259718628102767106088325545543339664661445151019062872683566734351358690509645575136572281342471674708411654201717233092902889850547453734147334741502282302983131012276814551175078320827274609395346176494340527914742045255211630887102916124724205588533400502603498143610179404963724464877947956896390980190221202861425363847907573535590855967167376092069117130347761190700125128727497494694307865519700986288289339139529116338155155512953073030451639020500862408489821166163307621092740125287334161422394415517553579509984971003906045799171729695732537646707315741602416507391845921808751179233983384672894239454485958811302160448317073459498613166102231844846036489611597383967173627232952909448272215842745503185426322185634321120629177122018436371757622440577599882202224075125902324710085886166401310029722326489798869398063005765868955127616150525226112287501204424765963235942050431498673626674683562988668776544105296117900891743708322286205547193911696780841795621560082938323603709266597095202929170924580363618983462374514516453572607457299786521074971712709869330907620439223051754221870511236112679874380453057453689253678037371942680785392551799221631172451185330925502540203332184330340580059851039131012819929922442715598239011337209317098595916015022014801308605359543820042590015067055403598901666279622754935643568413962529953381077264303568427536244463787702304460433513984180758457508367058225054352470163613456516002225850170306773468683283232913585348888572921590528534534251971664078564732688099005701898431282015328013353451490691102498455963190064865240871882606834055397541130029137565147330994427738081244126021559472237219952475664597343503634455972942523337985881755473402554358212276256384586444904062412822717226529707338790820532154120015805214753147363984543548328222357051449217401904693139218263403882052528903769448008114728389504843096838163404217875802216817916994212508018246878975293223364427649858493396573471856044952890835962328185271569655080272205982605632144605909737550940163644839204575060121431340707135854956535628774659435211367191346758620592131708599091480749537572625418074175113333935086818863350916852451391435758897406169583624238883312426500568522141992020586223340865238226435530121216793850398377611160019451288511943063987448740104141402728527600854617121572034652136223824699693974323325628813849321981201938954039306767114467919292457454843575705805989070308742953526581238139792802404894144392045764974263894287017059352769458918695420957725052284406906951548689290466160459586218685401279331788978608357063633787773389734941933375964785813700916571686803215554446007142025271800080170950779681752112433276899814751582569622315705233338099373507955649904493922092639732386121237301789606630824715073742988158967843482397760985213211942329176954314936656072547550511758990588795514242105306535628488994353107418159897834354271901033806216201079553606829757373943918680900876595317836208278647627985795995442402699089637044429174068180004222263827169736253091074017194886636837052587443451708212328209173862727446311985873058196415258504876651768941046158470433330432682870387020108612340738787178965077538776109556853744726831076806251271349666770771100982734864562218055065137922904890206246556569116947959552675338431040928699846934746540299235048106832320373339711218589929263948261074844763117364550014794138597223422827686530405628643000370403704841550611310332121273293066963548412486174862564471161782223528835885272808839303014489510441702996972306356034802497530077060185362625710614163691472539750563888774147479245014038211902018356844223144862608260225239262551869807062250561925786720217534397813980491033298066032513273413450133951106076573800015950313145469909944462860889752032026784658429623614868185908171359541899172029412730172303490498615133428630638270888015323467792445319027498590427492250086988496706556885076232252518343034022663076972261116502660018179850310100994470111451343861733496945581168945549738460928015018361405388916447009724506386534430944196106690272701400904673947829843885963406288399779767725906528208413333138308472503443987431370387952605986219947605474464517299484028079216063733467274562373874914450638576324573021220609740311941992838039822833079544341912723779156470561954428130762895753388259921593492625372795936720607152988810227829169592927209040822631100763785231874480890412771945576789581454917492015243770834730924867936626790341684833931030500719341720750574324191880728859932436967596319585580540984283202192230593257420838299457618733106214030907778120331155613307811142243925650758392928464987488914883584166689291973680019755256571831404115474209537137287323443282948210758381780820056477942389421194297426836314218670109799175038962882166609847536261054644678799934769621002534054276283348201691056717217158074625686418798059136571788710110367448326215314745525110835572702689348413749546905818465346275070435052051775484143683989286818338781725986747068482630734700594338737882398893608898074938857926099187973963446310373650002269965564341716937570600390881715995709582657915018436577102905514455471129362824127936902941880726207471691621837948177581276507483526952576729142816509489317860573784346979592142003401873374259136779699969863415097066195927956551592626002880038943307134396091605984647309048836988616965302837170392027801679850033531892855896121239591183058578848309954919464738667740810361045178392219019911703771294269677234848245042861104627590543972959211285557991400942853999346393318978140933532509694718817702156122304951555429235923287013947404868086698315744552366836608181219511635379098042215030161256552175889609649526286378338056747187307787734629577758133043151480597761056654796721673731406665266258583520185965225501814738141667663008275666376881051812432556015760626655257737776796343538026483133603658350152484053843532334470512970196172321321385346417362317227629919366343722158199576334907801594538708473877681645032942935452349290367290144997036635476312746067308707591889939090522451066300551495470399876062578376462168684169586430676167597373742521222887872988026346923176943449169725530634600107273649107269172211709704726741597111565028002073117867114509545243127666103201378549602090282319755349459336299009817283327341046775542303130589104916102182440291272848269294899911178469664922615643407631614419936539135938640802273105927471755421330741164781805696382342039522802206628538511904375145974183457049224281901861852581251922854905824460602142805806996481147250340128126948374473475531134974705344765007451082136156776302081097291369260325580945741948315558539955343756068421104171321915480234839496378193714836483628202397785620563189782794838928769573368902151681371452124282639339495116656695996224270980887426209528585094471679499163464357814995570506080095226594556398961543616724536170353365847970229916009237547661251210981512955852900267753735373659263470538524035150281207434869206898503427623580971188070465315234566651397850532679820482600504041085420654198027246734845150967360606222674756889581482179260145327988702152342613967130106367465429764873674672338156813635102141902903352477098045080596975785320640594625145827351375073198942996575634129716491461013135431194319217073782717501604005962707045711728803148981029528842930343440074137533508681208557958190511862891377934973780131049365259757248652205959773810005839747186715175954324643837478639628965344982247055159095425980469238123170677413975147208749934328239629897785926342637965457955330981147511438988194143373008962017414914117073709826161113244870772587559315000062199160108941806630704295902134617995727663159920565937638219915188803854386457711253149124268358517234257332090514699118121363615927850079467263105609488080334312207538691466518806948726115333012468914099637934999506601755923936368363381483630334758351640749798622402006486213763879302344778784441398141849601240432284639116511994582997472110277167132564890450718290741278750340996980196288039012145586833916743105677037194873346284729988361266536117578371571772023342323070023537263151042531541065904126447447216939972889289952978522765202102403632558584184495967433854712069582198958311243522884703245048417489831268066519462111309709902869699409033254750247476966634698065531258362747486820293227919578327308301366256073298178350570702340315677596080659683160191336632082478357600531387390262330586661371134294666307505823376713653960205102769774592875155444802126904470636936556472805282816434454540008713125155219609849281507896971794935030183423490273508448896410493259226993731591728428790376437117600488028618353182098101913361652085020831790725865060630125299442502840581146880634263317367952414780542724985183835965520508690384513736912708954126912216539349739372974850684122879484283079992256866794775849381863025227959003737827035860366081542526218908513829404707135757145653394873652264316554655967219073529912054016222856577324324874588003839207898719739161796264259627205900924828374499481348228222984784747831000271635403726243888708241288553733189125826332850410876712535641455607821284291347648809446580078903658830518256962575329010541810632536417839415609021179146435606296087475200575964594543728217063646908077749477558339646195230238460772179975424801349968720488783716832540291686657980859899456607769504547432601054538633107256032228346940289941638033203214766701961520699687118666563768828338850439727681088638492462589946853321005322401932364917522051561021087658528134980736899951378632105043496152874590033090278286484800258943525658596791515378968727422661383869208527364384961390273257877551344263827112897575316168367859092814414339556451392302412896484496562969726401681162958670478339344393079081572777861502596310011489686279312009942339917520736040777021618833606212418353474923599382788966505148106997611219000693051122555685538162012664293220585621310140133358239320394140374257589180584569680625410380204021218850676757203848901919351265190498071420352081534211039253680657314889513173265141419194332310188405762499262907024178340770962155159942321653660090986947601637886124027061589560333452471862633204932525475144870477245166832005493224390504592774306554963803420147329005893202438182142585609027587030900876053831243351306491479617718402383472971915191659270065395991300820605071469996796712441986684926193943893117583213594811803734955447998030533647051031711887989054040825365576725635901133405067973301854880610572386111163502148543193206120439681408834812821572650908693280141897171735938416075666393025365053047415220452917731605060454697642277609421981125561935753573126072227228563078381049271260863106518715968187192311579547744922907615720819100741918915151376896832641301909887009977217576855382491963223132952654640807470804599708811650071881821134019909813251415597075797023590830018205180665109151352184961999517013150728180562300259163004787974039513644507600841296684166375173735674572992159648369779671930199721429826523369884008520621289193328689231466040791447679333388303518822655309313496703131024385339738870591345371415746609596072509167609901841196897917580699155025270900090921830054121335600367092054786802248525424577228141122130049782560793949226208755734349908957200815593114466132451240943910849043352760291286067439648000347411897591005252582583914723734872419002678519494923818249212844153113304939838330450829937679923608490782001536169821712587147655521328044893357043493950702662357426728189563628551159736313002692134490413787619918383122900706070427864756561818014442521239650223673541640518156253457442555115058342574570048037133590925740994943030020133748497864996958263377134849009088609077230684939149741223796231254925013277753890335944830082036162230778791592191824723048850054251734870144124112190015410439577557782675663520427505304431330050716681532297695202061829122200441865165809936927888871237115522520689260524740834213396232211653373812716204639822618119852644994734741704037655258844905867166917346361020801041229013788635573596579984170177097377841884508866457109972975709902775023699607512374267356933718176199680664503881199157825405062639583858290127673793779667259827276333045851707700524385927169445673787767021445474007911591851714274275053631296941306859128170296696670498468416287134270311071957982565089209298743971468113056678255789246674526396052003990855624509721944948462546137738916960399899155288196000626259201555335683850540133706989785828094180672247153374893944196687009846031451601601789348215924674782070724158429501772681791997220691601324857152533083021579777200489299417768894724551960698149474666909681758221718468431084430978178868631399548174141789078203802829083183362264519924923616463542946567531411503172934854089663247666757455893525529982758338997883730325615042934818690053246959203929532031772040226765806316847204935969925599646234403803412360965332035940118258068390899969941783694766082196205336290800817354121517897918526700120817881232973998819855886223616121413600080246697732546675869193286862093039604132777998087955327676634616054931066944864352352198722216189626529796142754574342456087528799724501048466054793495681792387065947107152246293203613460385153482266899903608824523202325835508218500430478156909825806917691521561192451297155951583576818505621001247531226991257506802504071348538847857839991936254315752242620073652263287332830458625414422814721074461557560751736155480587056925262912227615564796092007087169086609039712488247254923428717117982779558805168573136136694311069070251176490872454259469760289895454730824804565923325852319428026655412106298351412650014207980768919457579928698864355235798555334664502864941642964936213218019190517825491755793137193340134330936956557214893320083495656032759523135844822224993530318805858931398680046947528579390253661076564643839162259911604481902656955643386993313540964954136336742926838676283778749506994426315668881089006892150652036963308905614309692558887846092031630652032715508219563276143305945762770527128607445710746323765933085568965030995975803100104364300178488650728879575759351692495469106237586638905874855016651028644503924589131486386319651181799867153211469788543122026094907873931283517240147990926225794071591239451845034676454093104704003379483887228161543384731651926113766187054383411106088037495541070316034381425979940611001089809038819840583450743923654786106963283558419489427335168206948818157693995142820620753806229927149663424121171999616751655252602356862348895439032605021584173388386624776381215791921250499721705563057830172921419662712469257464143821095899012962614919553308371206497366159468811513717627306138426769055748431299577069097547201517738950116513703425397364046913216766260108610897823660303645529872341381258743860709344619303631271040040029502125182355556191577361797192156159234029745363822156590026771503465295144186139657676420107604548958208400620717025517621244062534590148900346644943145057512781989785130930631387122611982323319850934910771530462359433139290559682555616783274884466738897089468192067991298717120465421682211550225298235905690958147976071847514756644183803790633373953876760642400416452796293556000267725346609423622569349391127828922649454105484760587325992436116486936749195031018587307823453685133366440989686061561224342311895180268356172965967467521456433645167067141941518821759838352452174454028923799213096355445531628534472721582026439274131568216782436070898920573176613752403274558075129741635593644530333443827695026787762626049164172497573864920928754556522460070944328433639967579230716718801092173257664129932672921656830744087815872316543418673931467660761178803267814169096632949226583185553952754907692744201395884789127780695838792185533345860484400366527975532167171939654560978067133069876105983096162504847158933099700446103924668153976065347747807512409542668154152135384444889269739699223823929220666151687528184343695013156521486955753355980022430778716480078382674962928318466373395691925014898262184931511935321062441969094254386148562398689379665743925925915182855919186311043755964703712494776544179754252112783474634976662456578282109009810453212734539459516341267905305317874030510565795299487175723521994468836073238736710748381026349300770257725232237963896590687221471840987478042060529374232187559147620432272378289089186635434175645422223703807347286955377339902205195396222557710357944755215982955599053215661040514350830789379767008165560075449611149929237905906788771443269078381495872685033890083161351063608697524399537503187951823814850272098916034696239600723521626029818995619221027556554659661442799377883361411189203169657747526105976989912440851115689403088418396549532250332729872586666336692994702059290170941721644257976451947455502559060724618083204513208785887303378473712333975897588727525701092473663713607694300657045154755914734956035789823869088288750949421645524420050865526824160269534603029770948112371193140462604134757463504826179091983200728213699044832929308094601929287937984999957667057452628662462728459028046546530454288706378612649520272540953610875352871928026482184140623973896125536848093713509746337967105095586399397109253340042977691551765393517345109203075964345393654154913460017246057481581268326454194817456349473638686817251474088226090270477858161896494723813029926695651950097008504510307638736803662402908336543465059031237386149595159472590927458360509715574235239909801425591309699408095316865515480438456279377367956453140297866417388956868960782028204121671788401288208101855963591887971248944789330457506347858787412399857427199140975575294632865330903936569730551153931016737411725401866136675009545423989547478611323100362239723924504457866940097397010805293499102655092589928721431562316408244555437941339658247966629668201426447740724200815919669063484920290674181424829239793795878513076224480468022224004829802981070543269915432175208128141785888891010486900697823018400961614306253358168470754467553882611900935601679125566599789925185997414863744698779878448493743519431741133125114435095876551552045465080434349570298080433351699989323307545615193325266836675155676042286120826585763031868829107026722342117067026996702765122175776513373780454613493151679195833310620324908653031598561271268245041725477308653031909573056345754243176448164049010438272374809463665629385727261182712452575787367040089799104323749982598878509881727491318499533545749049468169890288139359111574704862455968088399584074719921082035851677743950505417985984283160873087707496469151276461025798800640089801073386238682083526137963129285001874476135779525891277076994441528138534612117145817447228084431913429392333039668349920342930423392651134800194275219534152711336833708571652086621634160830331300318346914619468226013684421235928148511598328676830509846490015936609116889572203287340788719269173396492187004082612289455064306631400292623932538323440454225032216411177353155682362721177857317893621016317673357608430488445311008450152226549248399437647773002085730032201848559560167937105531730248544534720155272777215002341203513952677936797244550033370331192154435522606733894376050560463142680983546078569328331589401357022401722813870110422329913373738607538385785852461412506983816821505648269443952605808779504789865035885695680742922879649488568901007825911000015272196504710390471945987392097336624045817575802602619805004699823621478497671807180234466884309170952414846408426951997879690367504030643208997799707995006572968496502270714280189142117329014341113484974440396855038168066012210243906153596076338278848909401224302173025110047317657978544737795388459885743660708769048397559893845857837859483383333623490503759598398566737606110957911086003103831424367388023644571946733855752296846672118405258734783456992041684089267367387873284729436731457367301054624978604644103519659087444589024947938430466424237315654813731991050119713707712620815108332311258554034004791102257922965674701512167545600936709428156121178562083399837320460873523853559858423820086039528566812760315048533583575283886647691733947537865596439707297739291886344889628368257363780676429348154177956775396946308757178915016564442455329373627900878039600614817270904126978460361617458455566648682335079116266030319074503339413853824483234814658696708701764925644025266672053926916450445377333653196066170971789474021720791708435312266337326108048121937486002385470767012504800868202951648967340418060559270353710260905272764955077376790400251660297543716249630438597912265208971766552443560157656633431092099220241059547045979730808766072401127016243531413841397669053300211528551703686749059431286553628900850278153732753415528871827069058872465982779062322315865749445567934705788145108524160058098012202130523135705729949484865230692232015543463204606703938891347681906455065736823473010352365518067544704495793533059077983278745083714139233113107075150453344690665703095015908928317507693253761175645832938005088378427102382172257586280348519769232748624958926053230365114978273186613589855758386929723511000988569460109997012662492700963026823253518062817422161338831599071287084016342953748382742549887609083319138785360910489161170206540836913725558183697789644887396324200611093999046957809887255808279998720152719664243512387945255584724966040986421908590203214885215052335072436856835313789729092736702630326999441862698396900450080634881759239046310521004143466647245268294709152003510966438974678759893115081593994441483874809009342657810604938704056407480433230871153175793241930138087898938032771847697736353512417634064893329277097405312127867237788094880133553848829935639344190406616266940540307218222808926837001899237070840955057917611665559531416885825763827847828494855106518247852502884233241005930789673683031618925684791323159229189306040991336251932359103086427162056903380282897772345079335429825321236162107501328162522946500159001651092183981430228468953399635537194354445341001067556560284176044926776920719267668113767026295202859536432358221302944117549049478668959623103400912350907127483385630630013728519488720819721270086065214815248359863923944591591119140579943631460703703806062861969726601392347791057590598648416071230781697078956597468073343962833974281160765051236960064886038175591339943380732314784711132587161259530575640822069158556536196118475782440646027019935420275160338046025017032031133193274913259447631826830417429587025307522859995795533343505394521099536872021786062397252929966274063423937675820023979986017913755401610751386317063250295531287759925517586142056144960400123789936750551106254268372149200237796415873175805988495571137076659002299613483563239313151833952378234845612376889510714198195600713634581718314277252919407916334199206016304959522937880246155609325699700497250539806984106986993097418339471784033343251783243139114773089761823564107927224928428775255888393962001841001024489783039031818773213825459255986602249305792945286604176939006087533075885642084184848516740458564763620623870966641960738695190650554270231180263176118856818660595857138081586546365969771889488544178513603774230209320829911758505049501770176436283324366489084601183525094843918465682348356491812489771080338869582709496568577525366111415893207052947302943809131020984261714384039254910285993932932233711789544670158019265839665585385566109851721640251247247996075664283764150490285305450160185845114450924938330387061895882833049935570028919031943516509565905348764442111738408171772428675816679437911118223362884914299249130341907659180803991148503930739309705426962728788368760887068146058827001295942926995244563474931910139261872410182097559627712482893225708586192996042376024200194232887875810164074848354215628422120628040487516828407581388762613052646169387162460488091200750498408466652556137150177185873574089867444323165804648716126146650063609191340535443480172861072273007258396667308798458722490165432891869113959552523813818219216986448577422856325761367583347616516042599351106166882031595596654293342759594065997673802705081067026767381066648441093626805384172854388572853892598214514482721988997227059360613060184083073190378697226879174667716868027374157077975223351083516518442199572815638413148313603842316703972212530179535973857793847617145478087899596949683720231457108776024901383921682172005204501454768481550856423741841630857275343336077508004137845694047625830735016861395450520981206526696959380883254476221731026514989340748781691761595744533165081419180229660584455252203761988556120101988033822536123413400381787943096224820293172905240445190203347904051752685542612335469471890284984897991236423920139423171132164466180982359765951411760959738098379552941170981026031353140862659524112466610381152855889187338135579520751936274166477743052586282148267954150339493150132860383243532038953403816040566307388153225672236926995005082597186277794801439227116640952205253134040751400225516031990998976310906196082776653839330990196853975760473093339399371557385815468109718054836059825178003499477778343507657123511055030540897847645873866554840346493382508997175593644197501028167769872746234246203786996903108929529804454428939571041480412443043311004919662536405872949337460568176462771445953113769814345998398268356195676496823408944447373647196913261987454251965857746888738841843993455233151105600916191142259362507541188101473883586299337415097172352282263227111919361532354163042501965948932309331506643247674499751859179172937886378609780245132711095294088085800853567351467796602321407641039528712360601427182514685493397719984229672651426117578821362919013330838986977846088264982780548369915429443732918129791278700373387877935123552303639826564402644980731689839478759209858210022231115940394961960211331989818387987549698654076700424805021759649236878671726683582851020109761435575395308954665816757856016914141778303450221937938289854034081916282942396516090764140044521159058599019232207486737136235230191679634280259205852543965953038926540839615136413910791684032665579139107221947272352445888210880330916019645409791069807347491675661306032573560874533705692205483409759972785025128246318945667286315168755576917392431059271122407987252320869971531573418681331129782084274189197747364214426206147963491281963923813549961207198673449247621821087453754048312346017904645701201187195024029726476339434919005433007283279957080350486905745990823710051059825605565097699414378585952265924244723017590971171179020097334324216599126525359910302858810602688400966040598044836599332019085834612057134537342088970836877183822316533163588911361543862450355366917072947790390424094092972655078998010957209242996002027043765862038658688304104918594073309005680975276802931108846690389994236926764337397697563945899833594129838785999900646752173397208270187216222399844216452856894599653204585526414806589551626200810848903297798190952773627054904184818727046485655643794608497083315311980111433198510842252875619207122958646669695248778376936881860174249422050101559989695559546602327224830210918446077685463781248267144270699971969779163671793126472795479493093539679281321774920453863559677769610410900937515032273620619108542946484865636816697685700460299445975844898022543024157821023774039247454060009414951616368571689832561657308229893345853381629483931843574272264655310002574404058140390841846285021746164493891519907875061312120700402190617945669112590435083554721152095139402132535497886241181598566539624849044259556407765837448296616491362009755166306242606636254643830562231805209619573174009362370894982316660762865522351756382823727840173580923406709140707811876996699892358308699145450744689699261366503025240818095506583538054028962061818124816812014209047756432803278602084361118710228782029259419095858045963863114198969103383349058661471690311446857194528996493401058528966145977237778605420337991558807267318683692886102321375369422544474474258324725850899824303258718446721838380221494334582220218419446421694582883352817466079729809264894035539431763676278241206265828976357806179020245854222369483568055752083897389415633158902165265325113871155359120396745406807971803613201032313796363666210321446065949674479662215505646909337540246964708321777408057684179693442569476390378626526817997476571147772195438815496257419976265803697832104760665830427673457673416300082530181421701850639046696616907220882844469412281749864569788533669627855233467118637518340416518029984889378494259739287486740309309399991623288101784675677969751380220381837401642059823935622680026753196088544178210640255713645115915470686848597047825259686346192320391946650182595128180969643603931183330148966063632754670247383231503430487346353828668569835676035537136742831281315793154028629487686849357473654775540963827631762592498043780436128901692192466175748060911150584265512208463634158646823664292781484159525647601085378576550556170472051661843678196274982437996596024606610374098717465565685073680865920847665144529753629409147778800037510543564303853772604142315880494969812173840699390917226980167115076197403194925921383192228534492821135887031957435291945613263103752349438227359072725256871744683875109571167622051307058710729263516116560233178234411426119312934530134437307793065023527816240851738889895625570944537733929404671255213426650845418051215918114376802486241338330283162220907318742268061031741610225294535397124587925098071826663685252619262406351788065700514530301712708774802294933294139823540581244295823010664291992602924113822029424955858498756235335944915190805314193208019002372595603261714650191804413694606688144957961961247607085712023869222898408194642500655437211700129272073648089979588619860222260040695975445920991398819021150754250681867135328220296100423199749349005116248522813558491474041515280490617162194339057899923878353357137085331879558470357585880630915080032838052906623294452213560214433130189816801116562367939121658461786315302425257899304788185576489421272549190670282857776985484387142281231530584441423478900777487644438994245479450874617864188508592156149145113600501058441942252863321762859236849207870629375799719109346597723483502682144376090711737101185741288777833676111862762090521691316858452315588005233197750823162489528949309007577919476147458895431515956076746442579025940472512184845473854454996896441327497732984419912049146413801433154338287810914047454805392853089089817891187597016113889594157128704222605224191625740620307302386592166945455302629585551718241059198696750456776059234350574765142100374151885984936117953963043452993940546670930296390626368346197271602251103600483332367928716901605747844744261138193872482737105624674137139558861470469728405555296933385000285133679568425825321036415514563641666947187132771481505650112805858035312584129560954272391322849775009066132240575360379771478527549660565609820252845453036069729856039676018725221428702028652311951213179932298665228992454556351960247827882934794270065732202343857949406218826894868094709160700842728002673397450406859502963069772058077196634293000372160875928545016449943214794578755552663228901787358896776978716480837269940545058468370733497574093839978441816718602753389215277528171489972112950076999494900925721921383303840028288869882284243601460135483888649916563773557033256629279482423179368867608850991274698379718677938673444346213373440265686803231299237253118498215736504579019355575628520479553530295389836415605572534133726484069255291737234732423802176422495976837449933543194716235650491394905865920031618713509211337396537585750578249790665089678340855344557859109534299076142232152850995858260845590552157795442655730754472918362762797283816957906529806394395070482726869179852013828617337426831169955907968079120671843333175615351510506796284095630638899665196710700124595842974024681236524613992431084664518381035792167582913817572372976872001330759457894791932529313313502063436755661448003970790141241298024908178123459756706341203325032166220633688567385035442311176166850065805203037334930821848407546279855965896940792109170234086350896751053200752017553073398050709079362785860397590259525579714264373587531322041719025355030971281937060220236645432925728358573892806220146881342572029118030537577725216984069862283617094496051384492415964625530503610585431816875986360900914378142057458865304163180334571283611024841266839207804689676863902990892568851331732610106667461529111041008539583151468157932463523045054763035708515130771367358300832690404216688699073528886601557094203339573426173485642689784986647571940947690073525113759475176945213506148470028496196590468420070025264463291286503082406264733636705463460279192199919190922346285231993819736504979110388499149624207906476437205518246661115162788868332442129339744487015956584960546675287229110954376344211730320078121353887964387864191269596725208584860671034903731237442916073421319162546737811349826663079330473382698175973254989455882867064237935720113814963718750774632702309580193455135990581443955329771026690041935581288604596479202619747067266356272259070230270021836804725509204195765459678646225256717811317212579802991865064056882948389894782315143535312297740605838504802447924943005941799614079109150310984712159430392790956916062910801518806799996125727825559998913400207739038457277556357212714477344645714960648178070706844443997852893622973818085214665180066371424455482453732404642788786615042431959496593335457707995558058780661881149265153464589624531252944184612916241886191525099863783565019401251694545299437190870089872967579168191374552532212880098433396147389031940347490466098913501454909876189496722026382597695394046515169728457216118269409359200063414917419645588293647454258952377539545398861117798675718268072119633926100319506734109496852958468501181638134515917710243480061908207225315309028948203821917507773003884844141054585842404996873683970039441633446996053410878575862117272805711206233048795781236184052041853925310386096655639852226000279740724280831566139090404483644009069349894423565854139139741125776985215518867664735028283887170894375904001914123408088222516847903664990821891527251771972748092985119764433926163128248051115218785823559513892461135292031129872924082616460120326560919468870093826148134750379368723335110410086977347060128407105521997155338180364091237949071631425002630820935101365898461295843645999699581189043564529285819461662928140923863116479628699409744868380001242153080333830961437698629003686355140099209944248656203014678122469047005432473668901280299993094353278213692710709502151187516976751428891160663655927175790817401433623027373019485437461297288989905857021625078747782457391668401458564267554210562779096624013378492035557229040493374534997257383211834391035629752527691522821523679535220039003642995457705108420963274692498306940623723322752669011876230094445362686694667110927663934662160783657896969599925427542286577726355763464892061001635596594410343963295800439141548938020285512947151553675561696553141290275660413752730830340502916477806704485372006853564021130191294033308229374549966355813421165147737318549234731658272277271792919311518266651085714873386285131385827707795827550442006254385258736239600709419595596855077714759304999326504016372441266049897639966692642089763675733084965725581582192292243800594807798692514952339964690182377855167065375479848786035090885054431944643159255785888850375645085759361262400857608333740790602662589781564363018130424888826871992590835004629775699760883975974756084229584488228556254576197306164347231778628323237243179523458689720100262331590841170159158485367572684857885119694560500628651163445627463213129834739458980298949756736219779232969298524967366745905706816893810242705877737785496416805394806719379355446620664814414759949195126191156257855451354693311935528337009026846781098128054436857835862076190446118498284755733761508836392275262638094037815214917331450622169272708943512858365137321021581128885014020379026346233686561608907002419479551227414134129651386338421863014425271218996755981638877906708873596202019550954986138508799977492839170010719911110644226079960446228421591687324563662164636388655551928322488432216459675228734365208417812652854312552675729930266049137434465080422669428812886252443970591727296531985645291574068581974773985325050222935968462523005814504676230813575049024026871627857959080142821728767179791822828816462287799196372746427215060482392208200349989864796126124159370662140457499046871039721626721379085706463420143046453214568988146066609593016830951292038140612014944240306934585319817268609403187929284675814515524545375325176833600306989885941119686528547172544831890909683939111953704268654559665589178397896666754599511329918114102989390088121045741564697840615827179396043397344820307662889872218868610110382361684188495648356814562034404230509525423716916059637193708047339920617467466517824700473331415520364712569262015380796272169785563529194791512631596370331710295063402613373538526579093847380220774198095783435767751030984089542894765956972896722300619248840471420080143360473230349946258353788406804982235034529799344277753073870659940884645664403598265677314253694963947128159571542863457072317778744875281569665800791033711534923034514485427386438210033399445063488964421952686215089510666726231578137096879766170660432234802209871342774112271425781243747907202563935550092464679475178065936528991053090988147168570325699265217053023165202489918076821571828862337095536602212742131532923121770471334883875733824270114855288157730535553925945182283195630759932415405211972890887948721244810440988056049974552488993584935048444971134062205195784965949107863687739850087647055159485302282616289205407444428164270089757099362019482727809664036121496565532126094027858286202351675435664187336401778087222223754706927032003027985175260920671931185653683745838329239391743804028902756994575588650111842426555461386938335138572823975816708687450805316377106674061759425439367203705548896128744147998173196348100723695867236855100328782237291819940478755394979818863925472113468340319242552246125300868767805393611690880649724069013691394081050772341753805434121109969684542928669044222735094528962885394156016515117824736517703675859004518840708436743840488343885028861690546189501327332509679838046854306688863335105392187913821755760487047060354701973258608676049545905013535527557616195269860508215924157170040091383151339664487965675813235452006573550348574448991013784655883856754699400603159240844226173211238371435069679250078296702700586140236598078071327285554570150817731888886985023599917429853107516789273619204437006176807108982171910093550787917954976100148937036314115843059911576708773617941261696693086869070863477365452277827606852753486972242665622407655821363784923078292543362608358583167544504439938621837084180811157940383286562797860942043639965904096039581482212568130976250237004023367147667965347966641602276578688417774453514644617506711834097943081818205193329486288137129603123826634135357073019031539383305098318903729120856888975324792311644881252636217488601682197909940885447151127450064785737927270539120925544207437518031366970709271875044526607901471978099053793946621984872433002488525349164661762051661026669019496745626403764134630416513773925388669102552658265583210003372062847473471377030853976054201969686998833769822989839762373681754747493364645087580556183728874333975357393175171579239506900869248796651519272106085640066919767938711545329028353690018985549944796022689942234800765180235527645703817074713359111166812395885398386665493819122160411850072870823607933464337546437852820977584172351867162250604331787530045853204275919722461975975464435789784202227108435366122550430133781118182938146203421347229844790116234314585567015622396462305147529597704124629906900823381655146380530407670631808895097595994311258383578297868466740452811327326819327630553187505599653782826561973575560308095654354184958080493513837444284839737463128361539302313497142598344067106808027687904773501598542723104174856014661736845897249536841848822478804166150402750530620218317005680749714440210245401912176050226832668990041101525945442975206972272630875583662077791363967302417907263824514526891876914915704190966145117041577471876491406750654585525427451644756361812534165347904130971101590107313665221577697416541228456149920014615725371070012741065780997626866837628519299471978506341241287771529185290350121297539746564568077689090059762782847006755870745245221318833767303670059951215960491689789206709416642550908711070575425776479259081526610588682575703071182372154780491790645776834098665189713763848672431608342212030642606134035617814280378713007369200607832569365086170825412423698338865518655752094177481320242393936062797352385602645568969786011420629278096304950614719266814426349357444246270894271849951357977512706350056030742513505846062067297066539604645334524224970078050116909822078790793684255062882252531245192826225024536801678035469571388303065114102970332726708127690491216180978469113162119776813113248389626728379332933796021456314853264168902566438841053959779823141022542781950112328910215040830684027637923049228794460915397963601248580921610755518181923211462834053601898807663835536631866879198256642391821653459001065307291790534437979938602474161777998283722340171628440559805153010599638472960223465914362219391111426672980828815029036197837268036804712508723579962057012278503245751337375658650007071346689232818942198648823846122430915128429554817780970140029633763259384180449220186457903007615065917741821563815514809589017174105408820660892211926842648443283617257707237249709004424779104925276118779789733818843513658765153862807184037772461182701985672005219465688483002243186542365378740357646345232706494501941460397782959231378910672541541788374527908354722704116962421686246626221296908836202536966506240405942736670319016783076430800295802813906723995633822966396089460664218752878597524175720104301423509102893688444036966592914721541701078504110012978984046004233611907538089276477977919928974201646120828854134071460920096397784420906663517760714898876235585249594469960159990475476898560919006702276992248787976241381352643265410748943658124616206861916470799035275168417269772185544075915138935710222024168598644635608598069823352786594800622737334828387122952537766018448998030518518037192194282020315945735578829502184562990326973029875018072196512876061293029857160319768939521765055705701223434964780565145912839764398692942833654196330099998658266015737908703287001926718726705324213988214700994899290288760003851601220262540642538397088197150781539181911801122971829548294421313669301320734257065492921865739409183695526895701199577368116347836129889161784042795207997711199006586151143288695020770920465593548214659128239349028535261762783225876137281075946831650512244746102925562562754788498654855257872467039504934906429081614193815841411058475340425772993765439010899861095684643560734949101609594492899315826822994479123548151916911878741706827705730707252766079558600342730643891040233030895086812864471541799740562347069625665982642987308543699389943643073956691621515108221919029022408737268399898142391827338532964799335580843540285861130848228192035674744901495306949891083815147468714501596226264005389770835542611118841767176192819705126252918778659214852654588988539404197914615892686834818464472895239206215974633214728116017243167064104221002974112092361209955226924286230332779798139536903109975793214066767114102342865083044470885193787530497785171181032042453347413784662962807419817690217248280529849254395683358379464784316725028400471985219887013341804929879608579668536431472041558228955897821453944054053041873485546678981341533848364899159255833188061490301525643061378000711519346294682765478363438777382212533011231463337347237876516835775967371134681585571094353389113129301174339961239804842884107732861767459211774806088888057974859795674254069851957984344229597633752452172800734654796059602993549592188635513242770596441868168603725993889999036602691194862155712652559109179378532343641213911327838546483699837301325554938294679531405648030101207675797725793294040092538072480291520925848111420388479831014347970855504945888692869306604629618915424640756513890887276212047563914132939386116885733850759146949364622543464163014141850150321015475432636451737196089642111968666214836369680425380695176932185358431572417321795908548463603646373171452632326362282692513623872209037063651214990752220423348491934936911902253846301607097644181861226360690016503920786331349051769524723637706852800716733997799025843399590128203432378434528569297911424396002587826155632433240664528147778471453710227098152512952240070559481748031175121704912137255462442712467524348753438826879598557831515254890956343343932212531516682072267503348174987478914276254878029322188703868349863037259054962690042764978948125308104943701782629728682867504269008353118723690849932912283663349341757552666431066273540135404665104844931696496128232822783010874843839249714813731103408326999861785627715569052760094950007389406742177043238985751040027082245762098755435430242032426921941861400387379602996749375564325047556463408051078799784403889069287080238026818303719190815496227239617651749025822300017114314725647660177096390895662928846075732414797486901317396838674095713378743467103372486995168395588655197284768390096737458774379057137672519798547816586655013502224658202651018457213577586757124505285706123120934032412838927085788953248725297705989626012955618291330418209694968466128062526474520847606782510206361033529326413848082246338505004050734303134821783265266818952639111934169953836542655197151775651404071883380612409560110419962437319348245226245232162953481076131383612363184996109605904821806303957800062504702832164672651760457497721468305438013247863465949819484195163983089222926994800975315763697326756281398308401656405088318072337843516891081861342960380730605991649709709487116107917565590203427916700046151415293043675526684937612155201312343464591484814110827597594147291523739768718894583999616959629404011999425058793729939603421887402999566065003690771722023868205094208152161500146494881512363382404628723233772997751243601934343950993176818068654542736381831064288138504912720161129396895442910819536212422908565105242732890838475649153606313200278075838825829950993132043404499611936687467684378028040723640105647628991278885167830001127091017075466249153852886052993574303852489368787231631872351300238697539131609123965259882201199880416676828531898644676318417122662639704049183698763022388739228671647127560158732571300426242559947784040720510721364308355949147955922254527416993906076190267634720295201565438612823637336687643347726615527610655444284993497947185697990348970045284931099254054348123967971741278961440041474981327593079993870682514347672036893964171234880419461864186673252558122027149055586938944101864595104713135746889424706177974227445453841083341297842804199998957270598480912675045979776075231918574023025178720790383846420962664865556475651889908324116704484638176587566131733946192684251084929074496317641993700353614695973739991141919167694094592253972820970440886855661225187792428387178124986377918596958637602492220939628149650567759118130589031536752362848360036038360220770382740936599995308703459117730592799004005082919251388823942599559563462755830970715058011939570742171348177738135913328943972344825245338423078791759366763353768530985736348691608415279817219510459002322009717375658206314461448267547125516320174394523166048408241893665415198407607787537903375332630361035541659569893614758271579166228686605934968862000796584222260639245570867990841887805304397851517771529384535937739122090089790780384938966997861500868637659605107126240041306826431379267211522945066941663078629982847530713492031009383749191380219883844010197658461116275488638140752112338409453515957035549298853273935310743269444194838237617204288034914785927033424859961915129165521064980730133740217350951149566754932348578468728094047984217024239471626794652599703422732251813938529607809994161998141489880588159691892121463707007187660332980908475732689427916326965669815358853085653799988981890600787711460564785176902316226821165211821753343916735489036610533120522665469397348350876482851931280634472961716287622890533653987353565674686366948763916884679609467788106580882948752748815869182460378084609155717772970268020056719287404802148691311421282504841917117741456386702508284459056644658122521481808265609365056684772235648425263335739281304494837461931530149279316189625828870172747214691527464096016165910660540096772759662495017264266285371447520261700546137596816416397720605664932069538575186673519170175770099619551202301355246142998077297941598167265875287243326301484338819745778032018541062408567843670892516279479446802986474246095007717454816984550277675521092983060465196705785803424123839465524659796402946959927804445640897131046530065306893320944231220837432407326933533290432978990237791102210185219267329399454601691407137726209703451847704722240244930503615885983146216258149678082913928011158686638600103405398437426100580647915675092782426111446220118283725303497066385405562234898500470721978379134287756825570076372114771244203931934581654663195492978234477205485935614408847993436214805927716908290360837694743417897736756541535099169983116497869769661549801765868904001335226629946592162891179408843100126013480944506590322857113538035441991188287306915809972961545916194944332436041065686159944699094579191271060387876153288995275700959736492070635447628268808786557137937365758197510303159475319909917119385625734435905877662500104917765980232823757147463223258578210315914239450252492295309746008029632618645524815482666648498940026233065004291408664755600845129316834737519189206888744515453858169851751510367564000201584923308971875819345356248982577871877549124056238407917796441266759339360516439230347378098267874979069805217725226552556135993348713766443048436581641362571499315071324418679792719268156919012888016738551033951039475641708629335278875276451457514830392035448174295356234383782687934467263543543702658776499602238654616019842483531188103923191177750503797512673737027882410891500763286824395532162416924345196661312216495813355288775846366988356268914448653079760551154554674361635893604131460087940211442193032229129666964575356099549628345834168113964197992022280518604794070603675599133246829494232140175845225897706616930663728394731220052733239928385853736407721664171937553051656118608148715968646647748594049243343590197393704106459206733399969967112371163078500093668257543285627925136451696818388497284198337784835732009586438183092910636853848841816436858247741157424059860477960148061687478813424398515080545453092877703891024301186266703573144776151469291885281521117867293942379981390505658927057381080600377402614283966489219932533289373713138111860560899222504321938381673587245539787363551938578208515555180400928901458391258658417984574224813491713735789299906144892470204545340026568304986218676089441832162660732495751704647161472831634747871965651484099560717006744809280444409997084201681290212950399425481764505870276711125737747528051042702229533740611097645827542078943510583775903354958090094875003725794074842996696132794365043708880217059870187015651617716083163222097798914062832937887523838172899507958366792013380761180555387805720086321981870016985992891685110457634768585069233070145963479005831906615794314361060568535186390385258026053051238176257081138752767149939685089012573240908498551282980540968975662750829631022947584500684251189154408607638389240088723963725848931146507305069518117774204456704943295987925793370570032959813974267049163171793394716322104156584285770708375274932491804703767566150444187293098588598059677934074087236794888114699502735753299087699464225656741543402867594055459188574620273518155995424974526741440606564433212512794112515989377882647913029883630809083807695433836834243507706727331727635724879528741656988620477040116832598351214531912090594742641858642543485275761957470395770955432746642824651015952537744711124267715070725463963953685350017809061010435459516228843297943833407931349196970734854025437130302791502356538682469779282957369503027993871234395799545592615741562925543460499070057764693381595446936747609141583176393101998223773197718338165703462839138235401397739285115537863756811612396870064764381666467544794064662176889191804955230824745623825249347541737356897795584150894539038097536514454966491542197182932941160083065513567527481859980666694990068103970899209316838891195359306492547397154166367309804814948341846570368234023523482340176596789478749343669292033764757853425622596762506223608982637102811176503191144550756672843875828577032008285613681040105518736709045655956921965044762385544425655727855464148039677458528953712329134886765990415524001301363711762825267265333356045869878785704734349364849067392597917517205274685759038609799144681196684971086421980374322716356965128201922913827083114405149088577873327380102245979405236809264445721782017177300056139229585163242609018951065663885599323290560924873757928490892187134830973344324362284398516138505298013092591924514256148505804409976063353722733896541852554503588943070030117425413661006225989554560179105252857451903660345290190251800727762776913473146772885932015801175720733006925969148183665720270227706396201042249993724690318115894499074101822424665543698830336360606310471575683311181900229395944799846461397859803346051588332104637314093247696506605456489065953869297459744413010112790493069544241591236186644144215339963050629750684464252845565817672316867006639666731897629823013216531433844558513308058401811082922388607817047379570361776061424932584157707642150169832597478182214853250133851481048590639363253651970629595109202993324083529087191093785606463808317075991731368242753907088248603894645066058713240172064587094141746045258799382377548276577442492629433434368787866038275009563230351267337465093316460038134443115714619852226232687112038202072341919092276076184073180146945194732206150644048258367934463754507464531332711346901665920944914549909026971327688467412183796088134089804479449274463903556826036520164657014132547694905362179269190121540934691203275645951642543966974579841096268144667292588531530557002123058504483343585906510641494248568805713354168261928230410396381754086316399202548380994783394318057606918586657215834379370665745329962145854744595706397043651840471811849551261668533727263662036934585829874455238283535248165588827705014762961008358559591155793869154072147662305362684088725094039549857272838584329928990603482407801244627798384532393513426177411715064774555797821351599237042914989527661264357622282269409837616498740669419065610307384152470276279576515440849389600588997595065930573695135482692128844441331810648572270940346582696648494130376157234340404909751288382659628515035576951927302518827366011197297370144273371356095934053361510601716805142034373200330608431793001381558755808231972237334536654349732736705842194232766837882314772663772643060998525610002116208158026179542117348529743810546387735743964945144326362973562287296988038116039784105061042751541453874230308165233488945904388950366280511778285048092102931005129322240839311105614846447557288062943779430172085526693193494933440243594500141749693245873504506393049946560817269245110800416884603589372484748210189810723565075207358100046823112925354553933591240838588125741568612750312994671135915674737424852664505362101749146944530417882288084819175731225438671255581311418038536546768631690638530251901878322813441183475361935075927078100884863315241435089743211408553247622189411348298352195213377395871346112462990726486136771606000967176099744139227576392537035264850123101217141678227669890319203899375449019539500560320674768882500724063005128588570689101843637259245472725441801744267720302725150572166284048983879639152078879679244391078970745813262761834714922213928643156531011933469576838947523542239575118948405027790077648448009185824240070912817923310293931610410956214736908216940695394772666839698222672852438766742673426733291646732421370193565747151087037618650501010912651879188623592252519657102591674233694163310105127334149279964106697596382305140736713384697499032504530597474558295293736855873895347657811330115875860607974033974015926635511848256931091038478457825146901586393783123120838992867512253718171817732865109128073475750213891221332968654730062215672998837005960484628718935483662388619288857148568532766642267876805062012855127982142316298456444544534056010201925558650738401290406476994537895671194137806390266312718230401682084542547306412015663447828531435054603375290478147859532387653837188653768164447472225885945531050478512550243701126238103634934426963790639445693562604046767487825074873942517867234466695654137343496003118579362027709386490498707486180853142707002716520467010347040100610986122106489765936015351064364443632826356056707252405632778147416163755648057107921854606792355510013339648316285884718131842509701448520601562343615336162036949966074773847582138689800544944078236305137141831414906230905756167435502283174329597175286229904167415369237781284521075504351027548898128341590556778435964715790501309373202490983958668491826755623389721785735294009878202424976689140177306487095695219660815512091958720569247742433103657628987608643490309596733082694428633254784715017266957417587203233772427849835579563968848476146176444339650215075418018982553063707158242837283370498212889428627480923243802476344085596383525495675964600783467123122762213546052583271596686259230382520286358983652473283671212578814174015500980713424150065769040977585495910491849126038676112149629485744076935427629810716101854903709844921125801660967216244170254800078935801279235401348945789629938575621140719096734348528537928177018860825407204428953148943597148664322434428684714017343104235350064806984678893227435842145309710669078913324383823233404206481389189169022275038711193028842001829186037425798409050077695797887494404395576711385518886043970584353083474037424770815078669239652070834825017023443554112539350958837576374536997939544793110676335149605538375813266424556496609941195831013936554249467006680005536170824721053518802724221204547921265925734325848864769823925747847528956417643741192786279764806663268716367253618820513679819848296815052847323238768907479829719781226664750568261729460028989965876790889482429327635922254843933811133095394874174712100915179949588932626500365030929448363068228348052189895703106966013508916413051864032587446513894052060695794521616877885362358833944599844286335772067198011071128124322556993931515178452766009992979469027541044345659322598808496221428668895264687444249183935835680902119307378887853364190120074527849845676814728754563299114022703397158641316030656608236817598241289713970839209316997152000057153271847329408110147640711600576537601086548598005826951497321839045325191461355497208603557107568812362850664651711129734167395701891699988622483058644129029495558061184905903840966209905320593240490408282066636297627659866784058001968247009102040758766967220337082574445381849474643147059636326522709274846970774334699925341090296924675689595120429751400105323405320938532042385440645029431148175953512167194578261301627321727255850595962077976736184631219260837558270061429763896196025480050949100406002838579239207738758896580862031502092632596886448643699868737176544486175020894006375768351246924495199809086391485899584612499491573598166244310343896287726089854553227750002575449490460099405905598516928263745884972282577706164766084964255618441453482087706704396470173749920825756146296490821076526087544984953143539208831627297148578807995918222676964875927421236064691041804966251404772630037869091255092120362092195253843702072215236456032283079493377771055168278244770301281010195342677046071400299386391253746624185933121443754881016641223316834049407598313806728367977866534812663625603811019347708592858870913269725733807560900574666442021877021553532471662491462196572840193401772795118124784513500767565800033155089899185117446963001489370269972669258260067694189123874800981387084039475759615159892642157797701924025240672183297961004436649277079628655392475043334463237004747686498807989232234069185039881100711873199052279596300828037397588850188191087746552716524437863081924339932460682619136191337218446758443103311698901813856387354819442693188528900666729353274233387574530576129253728044154055434384926286375572820930832693802654913317926440102947272230767098008820293135367502769014958364938837750061658032568280877519192799115672470875288364911792684539452904853615440763614389042575185158701802991298014687198151422170461781756090228425835106054517674813246411150310015693863837867482382480858753577203006078438396754806624327345391232408699717820211194313018401748065674680890482274635750188311397778296991399973145001013165052897084441001054931832165243729397878876005664113320328791362869170526268292961813471585138677811900555989655413529853407315637356382961333963087989019696608312680231698770506675095621024859182233972341878900815707558400048679485993204752481133793274545631400904171623280051410893255932829956109928920537969208336813730146578994592216856606027714680984942788691239519065327601184482948864267730512345809315670483542270726236045142163998875578103169120644731838811490395880574319678194550042825531764576137774140267623534942723632334774761164662594264301917913406859090471668148705627148100687893867414092012852893415250513077808087084546006778992019237107572646454625972716462631506321973491039159499718629083411221742131726519950455764862456051212534487998421087815391355603387205196912297813999245761841856910418405927433762179836423158405940700748294820843944192811889448041605370112207159374718470229246313873432118909533095631667867532431500994724632662447719732986514586061354131459545282093068684708313902913696898193504589434456822463895960397747844667041846096490473212203716087051814967183635985354025754762290377408640176420059633884865388513808861721934931540722954331038856686554943506499813101059059539930048750473589068362258874526780422437384949468053993634659003793337462031301463001103403751239954699125104487704328941167073532842734668891267428844144428378944570224742365609751006136908229038564788672231831954152263587983332156077437197652154522105837288483165263951118221227973957567177040522215708789867532333751011014310263605642058060695422457194686510969840158404742113394015362495485113378449623626633441265102819245679628598686666957395101535472281782435426838489962653420997184212400399676814416940650374903687168585902607291831017952954607465471274117390315028050325425213597630537090156439784233502336955727147836568014866240517652815856381893481862444876345790977164006959848594170636613955898798466501557059296293063039262058314460758485406325197503639954268405054774537790856947113375297498329342106286717974715800217919766760364824747360376793120987308572575022087087965341843964894415480459991982049975301869115462806134387556366445404451349933963034557054909450842710482117963177534960973767324175328360852414460794208108734293835640169499478296858630683860433449611422937826666082007201205976636503132691020224584661086053814369360896678031093279148724959845449741559880262419941966779441506203867034408026008307212736618815010335720895336179599962373620893973195493597943023283663090337318938417916499513855955783277289650410408079216487337649187854167023098170695590912789980333543611721304116146010560880937094386481125375504932924945311922691134098196935274393687704115894583320183601436356711989081069752197990568366217428941746954788194765514282426215018130241998597599489642671448458107450264068439255394207409819481889236952580470376562085551241084907296180157384665171416625042458362954006455595673838587322265949354208793474503508371707763303407421003657075806964924628143454378934412378344753139717501488222268195756402525279881963342872549219412554357759925233773180273701173749477258837180473885761485116591439223642236003756201787390066836577543777017690201880038878173693192901843092588769011004519799356214630181487625005946572493410230053923300430388856501504539382635767132573509184095618606158059889760871796216479696320654993125714330904146165621531235642666203960500013698963245463819666498322080928780899666380664781131655929552328669716912331070503778732205845927964478167886334655913188327474155669434061884026004956397369207097061936538798305982496525010335394642388270597215820018853934555038094103335798116898566949110238403897856971706981926792811585901820225241928148926148081172832265942936289108721267822079782920970572831229989458120236755205289737700984993946220452975213838093198692194032698890055210077708058769854973647683430178342137454928127715613957642870075276260905566853378357588812850231842710075937060078740160800460583423520054943586938498605025854597406375973272380379193378514935562498457751320825877120116323302408608329627728565099678425786185644959889983301033850646831585919538539446589526801913763510114053325429424864623133814651750757285307155864581451861642348296578692522785113922045826425365501344385525145024159693802244643538294429487192793122023653130875939032878550749495436115748621060426156869818535407914714606511229439346147953521669196141482439880422891509297974978279417869796647185772402007922684415921864469751764245409840430725350637825540222491420141480318581220116514305568277619318621822151484010102059343288114647194983744833770769024863885572082233030974033786766898335040656620549260421810431770190347984415479220998601735583370924589040340932632704463788673409246497762003365240815089411243545666545527818003536540614179666842043429850977527369086047729626867132204651551820496913404360926553434373522805647972846529092193025902174186241199353269180579315916479867933811267306409612805725576833333635775081227048961803083040808304862532400063298240735125425933104610057051749677492097471412727561743377009742244337364987047541876925048357877633607032214190644102599440037728966061272446636867499998798615843523329456686732482323172393380142897433875716821921713288120388942744606419048677082148446104590427169445107828017053568058246668920489237183823364210631168765527621393899300202334980101471743500383158274471371569307341494720130527558355803344786697350591886578015579395017342839458420454705263219333510128191101117948072457325820305037157385424846047388905586184843746579744795225151507500391191054644983158369569168687235680662297910897777846091065928187930501174336465334598953905335117992243596421209881921657709102806405874585991199040833623572729556226711524725773143087495206634435656392354263410055584013945706588430711519383539576268615442753829100082596516803833113727141533330066562281004587913351492819336340673314020695448996466012317240533490467192338388055535112721300517557115733743000951597273962913997287791791100194683829812334815403881542115447341427678515311739993944584571577092545539550079610074402662781963533690862593433994510137793574974848849796312825552681104969264167426589412213011143015459221159000731586848933660511493987991193078122860975267577511477405673065831029103787288585682883888442690532546179845981714133145572115097997182835982327016500391051319042661059258046208894067059206345524070197645088469840036393646339187477780613876779044733776326461955951145240457318026396402111148139404896016357746116038681979102358922985307136392592499016665074808414006923424192240451707288571297572315585682200265722982735246893740418114172193649505396141688325260914939211779358466273864702066329969688171556457375893682369034895753940819072848494075153837168374552052078268636753380625185400973514535025205808273658164878504055391434599105873196558272717214661409590684579963458221201893462492867581373809722119435125155437881191076577994959406029222492161289947626469045002864165076048252386852348470347326215025896407044892624638328253987359810741903689635980268396557884214109072089938333591838113293058371516079513982693789600667892703124490967563264608283728511864098403423351689175630572739005386263800451375264647898652873614424692980725731651922470022246871574478634607159041276824622865730514057703957137785451055042007163231837159941441577983610940591533359748472896680908256587442556900467325865447688114834566215654533939481434504900638229209398488798188351911698568313378819560754141300877979461914264960849941389168366209111341190387729922894696801976549036467933068283679958640318881341852705805004010410689141676045724086270803767200586690448572542438505319706375400595202061845658540635739140265827383524938796676302635957454838200034955192194216567077388405795211318124620090001094964850990906382419575438709731422041089958311301151840062766602361687390460862124452115578268556332123095688835102461625751148260848237197732802788749323693254993623920963068192207371990394401902865584119875116660180804261580803548002040172423118690365096143728868006631085986106634087542569003646901531289284229246400220692958924323868596064208808087001436826319919552515891205482458817656462508791746896505069019759613516016934331400783317721093301992617291962577914587768629186226812031001628026942564985224243369144221722080335386893325317628142502298090635697382755938646201045927815014380250896479247517328069027879624892373025874401115762203618540866783342882561603964976017175594017433567004165263654098193547825435997016486021787721441444024064697659197606773214103086970316084767040862259437271614578249696576478596003148315542158113386994569840985110737359472063860166237116110046839437549431533632774673535460268658652192620840059112917858568062694561496080469644644191307969087015687158314389780992082946251140291202570872885290487361304102613307374067796154371131535807697882478615581582476679417601419320197894640444927768278649389378810553104550873624726301021219217204460959791318218003074307878087771272398725926103264610761421158124568134929698207881117839941879568546579192419574745431221206690800097963097070706658809663103635972802876929161290195034984576974235250600018546755051374936132390998702549678561292595521711005678694163931819191713680521858351419180141226793742982499010734060919974748354647848785733950416544196389037588746697076436935498176458227703614773166720799593422864372157949858537271846473092709008661654052848364318828950256450995495766725165070055503458285889493599068922522751463406352695633282353942159407856402034056983908070612623175040758090945073386285550362283238063352642280046299087954716059681600703012863625896811081590452685121237581051096352042118613494805517650194337417829260924453285113109335553667912342819373017896793636070374127081416609818215028029358177287578672822997971142313243107255161101062507353656864694679025665089048604859599495074758711117233035365467780024672854639098695204532143374716091284820650390743189442079811590425250306590492306858870955890864938316986388882892409785430431523303974769463709351976487485571203335773240060971177318872623678166732810528246219696794149983468627599967969642853980928371383247142008078996599574757188697083764659475138382559644045546198375607499975029995954252076408691481381448300826162383283027325094498860061463765976522434742364193564187806906019631238744863498144877310392814126961590488272370997380426581007976897994665975359329497705417370492313381985002138405681662050901105636613077910852775297455728610638734378319437336683370118555931162880772166531385164968405210590242963678835225457520143758844392747292502420262554738287637896137712451870203452892556190664417734869745245295437892483354135254146568675953422712045648704156856967639546903984952211766487346134584982574883199886569607261863901410576530874677646773977848980658787301836086772561376964478452297123984499188698679849861790589880116820595693692626672732069488380234834312011132451340294021137358242259602112965212987298858206712410728142169220173186493707157070342671638804525643652881147766941670957659020761261783021931182177177992478657548859149034920260828815474710772608345644143178074643053311174159697395421124270554963374621680796479344399685041667027978089491298398666227782042329582946509274443722718713277759051854493377873559451496835677253263025713616256490408978813770115685168497142923886218935668765862609104947745518328809067488382048517418196839791556197468803221465380561362442373179270282262275875257041779795743458725935088990946677827334915655236104083449397108504299713285883076564471384676393870060365902722457780692499061327742418584577237901236844353844980170653038473770571012566492843194858415246665011061341760447468142824112855627506584012418998108061451670241598184375215194657730880651134633740381442750260725730433943053931310120996650092922206080392069046557092325455100043776396362491886297430761568653824940775119732389962529036019638165216315357614699169472097329379588807633021047699232969818904777544773173991320440268890689208604859510739681741964709798436685896180942062670453819076484286403053409584117320632848034377072136637294785126288774917850267944632833656040388037115617368917426200331435415143551571897187830591673105499071030551584337507171975844657891769837671216926724408352040183471975063211277304443660629658671953150169586578311355086309772189737208462982535195582490767805044153205679294392635846076080097535790666792574506968680902551211873542999043608238772570230173967278821627571399051745268680578386786216864565839521332225441460035168561831636118844460677793151526658317330598008349257218642355577659384564163573627418481287163075378715718135037953122676525077295167352058605160056472582335835823814283051667331945076194239637096594579714672438044951013396120904188888597472271310112675552061249620310630176313465402093328848304863452993487467218333456522013119862148013278391005202970143754182599679984740710114773814138161191285783202320682047030797162337289384168696874399901371100821150362874023608686876979043833100629765081570241437079770750152670286235101310167994262045544068489123770465700412155521410373033566892380258776557449431461155230317350497768954039807655964060453041250066273216090099824136196712304153644683595209655357501397261150506970479142115555866291591230001783909857297794910920928917489510750966968309162221671171291792315182283042150057260052582225078720858301149680968784534805921902033631596351465897842258515971708442125268428520841981270502364692069227991329879564152778958139673550572055078073763987500883703185141038777155099435017490878596056868961086201135630676418134866711482374750984436219899216601265331302211377728235742612109262598144098036612128844967161185837872657870432552597523412819107650920750176097817013280974341276905630635116054178601074323619539887631721620662649475806648238172746833136782795296720009652713006110911754034414870453135608816453729835584974151957921582858416942660132743626738711171576346073598317941697474373846970616862829183937501389120619421755846995031414050331301193472916847044445337918361213272843861489372519513145969991716415827677063558004523774075362209727942677414860422019547295621889252659217309377312494685029366274957024528228044413417232744740875988969324604234369859070078022501899807489140437013151572552178002302427906199790774947993594694527295776473003331603875959621959709559036804072248797383634479290905365302322559388866791877122287070997868191610609090735714540929469201956976151295124414589451054797506284664136425332415203338253825410005989274966473667642608920764074481103782292859153484049802821443415058063355943686312976258610546877864772183043546612981617093787037620175616280941189863600700376515524735541783147715283571105047893521026160088457791543091047356211239312072952120139407868264180589973384014153813206172291248332651796847568814921855670835978644252359629057763067704431404408466652754646638536241372904850957246726119310664111431953970570782747739343683038701100659241073105416660842286542661540469118488905280467154871094541027078181544657120111177874571651191839803318440262145499984684727433472142322286369403840154369585269641262514750266057262933500099023270922698154861110220134372212317168734602542727093227434491191679576043775530395301642139690636465141820490340401049141502422841606411742195786196666225640487930068829961967583463818793457414972028789570771982766685799897799113345039486997895516615834439863902680996728000985161945609092173645422396958417302752921057318647239089410242367296493299388120754143574284031329719656954959894711280111779454210137112364624902734345382524338485627431519647400757204052076806605967161800321377467446840088437689388770581933771702817768765460301509482204998622825081817448331460694977177303700359690195348818968090998693913490827552275523075152913944718811875464881799476443715670886478528482727466835918033217432342846379240779854351970979204031279907643651772908076123432293384776352468929814749460120792836088446707389402766637495884265256135291225406758727535729906255511922298999026871636404993386074906457536845786585010803930273854839553128699232942038722017333282614006661504450320481795635516645598746078315892942402028748120402654188811385756022974002452959435860238733158791987543304989623799803865895070603562743532736239899526978782305718735951355736844425701070823904503921462596866484283364586695010589824407163334415187891147152091535179707564976462059831733403097421767751522442413094781694131824686762591299463136791479945119781352304303849120372313409733522650942730283172943595749612907529549295549409583061136168968223918946282705772520844476372397709157883574489948943258112887161289401395513522084007451689935063070722943527767652652325275778624301010079890100711890793135318856079942375391603766639155516556561978885789442674737298172169910677084627675979066844794473822426403013492105319432509992967276248524031656151168376674400960767657127173535688070924491743088303714028372173988257114494716166426027360955949974137250827937505692412427459621477718022048370355037271616835259037757240006322617403302244225981097101036031003233252975183675021769380007408569643703429397011459682902593125259989794095237976783414194993866729776105860509632800725379441373156634422625828173186259460889254350577758926379133709019539930987330597000007182445383260869989024406158578718284569211305605503288800522562713827648669143959008914770307391301234839640027826217619895747812163370699924344455074695045915649429248369609329984696041881289358212113655367690167143266506816945047950192447829869458440850220338652805406120246169274560956493312505927673395358563341894391462091127788860351168635040839512502684233788963680674027300202497340134950618786871857477200158774349291229214657842422110017273035067884391430408542692881032768829939992724832609025198259930199603171483711643222241267895647934429308178836084745927818348518270501750103981643610572850662367995791340376563368782144679218141109508651804453058245874440609950081900088494663397011200728394052298643345481081666957442721565682942474644849232962093188058828776892262207186595899629391054778702268200011179678251143204384001261763594634047082532529546604191519792037166620191189879874964948956693284085429832267533548689835653547423307248092768363311956178316057815595438076254663698907946002278489317545496873491479995054620314456935091197180042498448398434910285259584825932842078176502902483831238402891781904440595866507841553841358716374786783724809307405586999241841734371012874862140575722047776671886646474175733812886443036764553111508692777500135895249107023925240694219180295633443860330090039330995673436274596380205339803364459085622053903036898305024385711195072417919390112520956678671727742555266972663423889701074923262222465900360292597936485639488166390792532571867139322084445006135843587874876974954481277248803944357851711612465476208682070687227675278092043821317979922999716046407054967930646802540028928484595556999788267055205718023624613633777441798384030612687102937846115694656431241822412846689618421240465301303025316168952357566482059172409052930813636272912995143764565038776383807965559100052948266396625442146183732537401176177109641607670001946484980390221058145673558736930358541058366529955795589907848130226753446926120377154377223632927283016002657770269002689667466032060070704777976172728798061598279670866615425449709403504615539423791435816747404096051719692920056676356887496380857082922526842085378477997202275403165775853283666537258972708547009625305880262847676856493663586115519685841493695016146657941549042351242013671810712577799249943867270063444252696198274097498088174448661938092359142103899417876776286525968753750850293175810597438368902450496327072656826650861293688187309349727456412568989471540461642663770779591562591098847199460829456124128985911295105267652496519879925955717913863122788140931643435284476507804218221456416634897281052353377897699306615156360868262907697120042072690933476744459029777309549683211151935306383440218632143848646810721233163671004736031436976096011743839881912614405171048847878310313383004000724040062464047439978899068778834561830848089538480983785778254374505490314470156834445681582719751745736411667390624294865559063583152559824718018634192037816593967635662708065834220503962604117465053558311325708821930782724641145555554341078657980322645112431907443577944248153223537017909918120747853975169707672457584398216333996001700040377123253284971461898787969279130115807043326964430180938363615787723670793639180533765163354780382792270027059607046019797816168800132258126677292771492951250247097519399619840840068258336324864968724872639249043998768112007171898087475981895943890389136919295841446248295312185463956608514017773354308616785922943970181481889053905616204301766424618565202028633203754738147284373729646719294538904339895676196993609670838938421989140164705035896195919185212479895642773373922796261081103989206233919174784622122371393548648871564839729090067621786872124056389839487015682086904252227477942938280133878289965942242958350827221037669252214701438154078524734551152562775120587019402325363033418135551294978951256552545421773061829447637720159418974326594913576815745339193955562894855525446965453205828161787418338969022216198519715970993776137602576755813519841036585547128549977541736422142608427466959820672887158391833348829887401514254564205257032633380589938177882780109192747297570692474058881879041130574820138582373459191536984869648828809362119509469288644448253670822571544730364333507123528227827581442825223818186158009790107741945079502878701355101202315254005489140008473140471795747289054625369115225181113554655700200453377666017723732259804771804169283465336746854126181510132423132045304604729637713944283390845145700082357715964771551369477871136738681049996294596772279558293562481335431347334520709568662717728142381386114256861251231504107782122770256921710089855783211629876852678610510708132402788512779806286448523324156494089797484932656269123648388836808745580184135759082888551318131475754828780202440466010990689997214104519210557580044617561865498033938129087103132624285410838856487183913001919934963339789788373928107552253574218250252750231273385160624750968931872548293115617409006921390608690658316866212206531890566624839546485382097675645819994120717668794623782037229981872898484664590455840334933967550595295090236303113598109806541672292149480772629983903465315787618995909628535249201154896480068044391754030347430142531735347215166607702345685339892204626600721323691129345450719229179779659880210111721561416747728330699862449778945141430572348254200089265832734693466682437688490287162346788830760028464793361883509398630988261834402996103470219920690925706847990481193852165914793970283059320622517005171891671396722469733722515347046068168347452839472642157372572073552469720069548310631076888817565776825722886138930670170256715268556708191971418497871018564895444469880261246226976129444447077065508045282753097037049837696385981192689521260803492419028550351003218556575240220780938608033079738150063857364750214930503953435743556090526950782872617093109975280016507499595113485867849574749822036714766855927571659951360623832364646053076939845382175019126071698835602278556514377353820110530981787151348028722108714467660488844258525524227411562028546057577231421969108119910399549757797711184350705810255937298422501186286149119355488542933496628806168042509315125130822885653184446087892535254367643088954718664942454265504610662581335942191385746991330744727288816660829045347026046870151565855469387258870740557650271814619419446664497199920505029660123933646864036237084129787317894251542052620703050866934434991070358606881090429974918394553512056885649553081475936337248192763271055206839944790678610687482652008959827042133507898096471731725805247921420598075709862797432406465305513465099167835873709494041692773521034292716050092514299210528944111001874661805814764769272707340614601999718440144079109154450849567254596234321646311219267620671082366448831586300817100459875229237513822745600439297912860556053198824122091200149016634235327563978995844950355241868197495042065525422870836636980194085741112323822073617403160306714941211553392277942933840812375427159890627562301215874995080293770672412919905409403839143408026684474339257986223774872790298222375790469216101643205770246073757619312080536809833283584624563839106783878771547101784585459256850432530712201318016111000394182704251342224962173709584633457042755845996900215699708007612354970600598805673631233696680134155314849010986806107948851064041995915426671487964064761916783253646410793857099515339249955106382689344812143081723390984456985626697506841050185792329565056841543914806041240590705940772271709263982400141915555823662847818154065057527018973854716321735639585117083258055223406528197985878751496948784621384286113521759819955841037514874332358252952523697018343512534101059695116425680856411858649829470273856407870862347984815978901192026248405963546295040319856757245645914860427455517551139191018656707065985960406604000255662205377918093845569744508176364874269016747503389391741149926897330372787591071517565084875147518611971750221084546136588034833024809518439014909296811580813233034158101625166157604217596434429661768587737423277204301880157419412070019469291765162834568305926020430735815036854084546693577452495918131899479284377292582009593488566242529608561706322840114476187364728641019936594695517414109646419258339433130178475476966726855068981343854918784126657388187240185786508292570294951597603962700573778301973228000096572069998865770340873083525331826504536657196294168373930217966638083885938525785924136288626221048675753031586346687887677171987443170628122209392934239400002652552846215579556725732002020486569801087359721307418945325895944329335076952801515230399438806697827722616226150934203827708653801853216985788077415178665328499152658807325872282892482074479957672996601523781987333083123794542794644202015592496873776733600292201917273696948575972373098200691302421642270348633895320557707178983408649218029356161360259000416737185659126898909619556014133367000163138861405947678763644189058080659638881886121473322480766434062104020425407051529038479174716320420886999267541848510602559446766030241046562449886730429031347554904251644230946356791730920050883482125685070642964107558025823327373885272033129179904655259102213482368240854495005067681290760202135241758983576692180694378942411630486194572921349720211122626187862684760208765578788007907078281524085044400331958150315385864362853522254491111788306677576887987458792208803693694199136190503107504044042815453621866685424383846916409729840733919723238714296147475416141602556186873177184865379618199194925032783931687855784111968474095924414004304973516991504406436394210725619791217956379342968298355113638602802652819648422194942204884515408817607515770777132694566360791110149031247975783881581810239685641798621717874337532990965325318569077342093113633872521790889398257646194463082093818323515526185184890329415234203691455841526471300609802707101822223796349932824079265533489941356461400827572537222984288391235648562250096991438598265120053405027983364969418841127764447731577770050096840777649433512717795403933028058653282262145978807980805269210533516852743354161641750372304754583911100453405811389161019354691682800922172098967841642271412442751812767099225208332427804253601536104115133055070955986761088042156242601575351811649756290404218995594108981189269197684788258660305887491062644109201842183584937089955392592958238990510345273530361128904012534545145475482219750825503097724498908800990165428414289692847808064261007390594776369970854397013903666325126490146675082060239031358527414469292738882520454057337126017616008794756933739219973758570939191052105364184343780319972121009336096984444550859651082971625672609129567867064201199795577279423292583611081513478200373597864352460369564817829502609757381676887529582234713955953858971496182369731449910267182007663805956478955559228898357085475527945161819355095877269264156086801012240065947122062333667844839835018841089105203426717729031738526216807374104765792917659080872080905236398203628540096955190438293390438654769587879456228395205888812778243960206811845892382091652104692312573159343111667240221100815424841695363803079824760453234563613371450757683810192124025221884278343345177283026973311383195696734369328658280085124887415219887555202259869085252754624654945241134218875944287743850442821562760788978042177029951701593587318837507865501337777796849349887239191956506315766264406768963314316373688570729996207464312056485560482711734438746877953687554133768280213414857589727706905816283348256496826297374123227906327232797692594528309191801414923670584305457217608056024608778712682108634236748081567558356810418321733196963459496415118063308923656549683985650211088571926922933624037379060303752221301290322688870519905118038046797525424500187603588673358514335029580439536385374931830159846548704541282212562668887044513241729989349089015525913661298738291167126698306763748720691993890953891551310598765453227868395085126396626482240364721774302789812071979297576481392952994454336766128085291888050449470024230998809052629414549234353305503686727271539051894619459089557042815126263470517898367056788888752245560875599167572583306325238581191337687123278688734435503024582414825614431263918721315395555193148048574183546619192488230583825930710817282081994100095784646340652782175703759165584699435371397787076609709395111378078308564383964045925649261456997723265493128011622940430662931439348214614747692589294048165316516653277262086351459814918945111503387607036304955685269197093733300834391330806521566777521574621040972737959068506703130770076403569601194720289637138249721321934916345266934473724837394129542666778512701740733900724939270629782533156195160806585875479879165228756126954675092543283157305782317973099319410422634246034180512671796593360018946079376574342940395784037601574139473914928565803506607808991569847602644291219451035810657228643267219204789811102792254907932566059636827252484837284240032235744176228854211051508949392808284920292669811622255501644433020763920989541480726234647265324217960932911553980514187578824137219782428663425640705491158132212030429540669442185580571881858216132468571621265824135474249936979414216544476531002978611889440504602576092730041039841070130099356292857447454233730269938241413451893585989587599992099458084094565922012726555869279258846321003923449867988279223899601860723277764568709698673361973234402016327105747797024458506728888543349608566662979349372010646407221434166766020010128224624979927892726879401718343084280531542730269019167155015500417578889146332851606563066253947351100843302466855502395371645399494602872829227380261338549956699048369202718305044730968327871574988519924411735518323430031385536168787385674075311472635768695544239100932649987972653048255510082702881957661366006719980233593731811035205299612856038095185735032469028383967459964781876499150279325866132466173484694680661939253118870587545506010617126076086276411103063211310731284578830347400435877462268116536368140590614459169911369068057553886796993309848296904078940713949259786974281632343894392932425597699565923086118525756172811447810192084813754701989759395979394297118462411489596139333088192229938130661555357017309227378730448342893563196379002803012296539744308249168367870278849983791645086558232544327762124718109960066886181723764568183463830000043523940583487123537673194976790312056114173364396237945048675527877570372169348109587664520982141266656312875109839117468579285728508615187529927295714922013004287152284893276155477440350827118553792993586991565017562143296841893257438696699729155681602967605123529130253423711070864529991982889897241317114307714573847498655264124454043511122017967489787949902713694612204512495785168540961420608883406015096165681285999101015058389590494738353355199476620415813674990856227547762879064523246152535498747837764262647945167083790109615319819673666130487088810622999280148213221191662765361785227247972041563020246817318791013678414623929897554351213001374596895796074694745034285649584559074877627797768767017169385962606129135139983201017820539640529489100328445093591262624573902529187529797117478544757073738827110959580175468995380913761350029511633395955827981842003782593398087518927725505502954728373969690167413465908963982438408229256897535428131752162128515654607446287253012160177083012372197046835568124508088637309466706637880223364995283011522647456777153865605935685264784768791390198244756353443057265108720596726914311605343992188469348420762256034390952265095076115518970611700584917939291208300653808574841751325104615220964443234885023356140797393858546924658608103404844546608980732283107707901969262838485055188839346716289513375332823010120202058137090334974697753370278846986408650912916123181349975431707972542116778393071497168564117186928239761873678334815031154106555412866368189685247239796547805147635113123321712300454534587070627488147567477840616580019186562338224698348782615359052275420144684292157427079100896493492965374196070704325205765837852550303054979201081175718496124194338054559794133123039009524151361479845351541571283433646509646584251274552557061480807022933418879388384265053983667959088033885693505131048870150392518727279450972055599140898966467883621137002864856425541124596780191236787430564349996325130666671714067565050941369214544488687287464961630362153746824206707674532911010918007780647483374962783781633105695383559830328333769854176946913296036450697443990450135795733193113009927940451045225952789164494403345197726157562239803056880652714569887875695842413604099844624091678690185912889210028406626574802368626072650193885116454593338591132065793529086761373219781622862679309795261334079335396843136406519201513590241787673431847230118727200239439151733619138550458797319464981708946517397233337676275558753763229318577767936270945817587832158754466736603954808013043030599907055317300741681242977629416031949838972961024791941083400506420134133957958096970041918502480814289454226287278777605207672785778852291771237031883273603066790226458933230201862211453729273102990088283316258573546809684980748036602009899904607272402629734249312950728708334284749226893667976007942279539790837269663950625201142761103501035563397845576559392538930535371096172222061310648288633266661085959272910718740637038549710380641777002263121520672572118762227535345088874569918893965675132822794948509403965551353660455607756043170376765553111403621141270726996769531073228029107711902487863116318477813940626282391270494157477860325721280475887476223000966761479492369061441714624848781273222088479107904931542889975928757756268203536066702496189112913940225675143661440567605843729282648253124143027017149846947043918888018083414745704559649561203594759327500729576889770749396974579871856753476643466692053893173617138270843184944266084711384868272099130920714416785840359525234388184399246262342528031542755785665152386720849242779875592968121946626346219356303137151181859946893361869670643374500478182534697687006273209853291288962881158703336885001722324859622613232587216969283958197626006572635045531896669969782688890739011858651671697226270053633968241295048689908530863067735298352865280549149333957543583785157147654401173057236911622797283548826123069724951672819100825682760541384442528835778046941168858583424253668465308761871513609232325724355843132814147438187073034117290873162487121070440760364992624150144975638781237667197184966270070800865615856411344338121939275836697141688614262237695303444397963494329500909043788975048538283652232701117761139493968493652632129435426644934138808653980235832081242965156764640821934591348870524140467301841614744253419358478190773622031879878715513647254451242046947614390383537966496653635453603685982229470906549798639693669523395203689826962437145577948891030754618409341093887623595644056396314002352214258156127577603824073950329666410663870846496346889073553214737407145630093809888847275467158239744457829082466300571056984769802740240339649143681038057361923540622341718910932756813387065774852693348865105815295953937478634375035600317243128882402145301719603975151057486688282221266205615928894802746423445765803977148315150108110552560132018325864184980874602993500576856167881529961062999415557018080905337162692751854269747663252767249741441185893662408778773698638256453124781431431470598061232517492417150719329072967579243917078278777744510764926422589619337889315488514178187944479490435613746841974723293513342809637857108446915499042363423883075461865455449246408974982153636742660196626146821452564361471706852260082417222263520218341769007710924570985775928422231098320030638246881629931314299327531010377498058608580318625348279888409900293361638218925560309133811775625577489207380898212418274170524609193697669201589950506144748554631786709372198675345229358870184478024960877301369284994905402018615756152850522548525407275742727634180771167351466800545155826215379020209444440494164891800486879323475530473225102770943773676176214927755929845825291409633115346657797794058190041908730214544347114032615955180539517535755421822503335498531713998295622524768884640750360351632388963427103876719522575420848237566068797551269618540213252074614086178974137946240553272073423897118652134526356397123659181274782361312021020330075826228361906703976867283160118741827336932282534251317430756846822805995819854078462663351528115037337108946668932203604707294974763155487614330287807500750017613973205136164040413135126754938607987728692421819059702388546519828581902103418066559563436612766962199007853877539615047323314220375920623968026872851121353590053137489564713413599279720375069047258753430781360375546667551849591954104306487331303259572006472320907776423819247146396547754836473710615399537092705962504206782999483235675510127638651997243738232533880988369315270486864846078338374828722570350140872850777787907476482173133568955603286452191114491174413933371061978673078067558483830243806576196046978358177257679246720212430847033605822242249652058903210643587985323335425527416734216497606131519414964721268198228992435972920988454588227492547310418459085488489694929332228575646692644062221510919454038585535005116374032740065610552077741916741015268401522268518282361347477131057553748141625756545217635947060010343680040451625318701827134535592068088598982059204401363487333203678551830751670867959344373207784989029301248259220590608306176922504026089547129078046942171809674570959319605472138858199091121281196427630285605787051419461717385949064287708420094060234289295693485476525132954738902209915009199071363771322424412011923364702542632021475240612433755040835709514676832817859615377326731271574015086253945220583232483635702810091801057328118780171544201767786530825234242065926762141179143106291010101238974911353613534461221114083500180564565336489412800460614550299895512174585362278215288813248166007641463505528426090574972782442190403507391483234347991115912411266179037010273871027523363597235157555799497451797206440318484498916693782643541394003895411032429390751261560799600696718108704515123620293408753931333214182575424664518877293765504108632025940398026966010521175465491707605379878786901389085876506056178089118412909897681136230748863413475674266517444563072953256331908841468738676650497804457855746450259274491269107231770738322506991874995828389292131601699253166600398195211643530917914540232930268556058246745972269193432861655958399712849514577044630642165825482705352007890038990975482998710580223141171081022588055430618740676758417433136246921116509448525154207002287694820197337141485078503380452107456455861650140612568244202948260492410160866343271651061779493284922388614997611859909984450055283833828823085290939986058943745179868295844385480931442860990685821142380796402681530246957172412897135955726791467825016871019980263484973201792554182028057917587229000965895463302354958887024120274936529657835534403963195813391137869628073224621406830894533130237328155138891725967382608048631622312775294328554207184347350765181069020947519900959534603074175540581586528556910843069319781718960636036580321655590126826503461289836808430292358021898266001147743250414892552361115225267160395661040788651937982262177856698665519529287751798222102849209647114595499531814783069225831546633458930820473720256365443004373882810195026854312812840559572500195538882358646758787096968574638473864262322076008227857130855888376497984755025054932308529215613669885503105750869420829314919951558903528817298382949272785873213325801744803829899704324744738290999119360351922434410660820821943241120230369369843560811353815825706826671014078521324824962351325650103048816808078520658313436764217148470893349414328918153624262594546336724836666243071158697202317305234550198692799133400918246323031674886827604152819289594991190107245795215371494607291150827436109429776392586982962876695698136867438669665680003823440423405891401860933138563910343349016629374121189364489597719251992703204594635669667545372563969885799060009292828419351476359836664466705547446637604210736277776855577712421249439954065204542478553250158628565928341851487141582373101604234707660985694750505278996555081475959204448545453983540681735600247777035859141441642656536803089196194637713519590587020889531590995517247547932911024983573993136059460536333424528986422973372910774146152328772406282050104116307316749808469366026735454911092649801840364175265417932445121603255504326762052654113687735865566598522131685855055891377128443819312387345711093372768114476573250648059227152028418245483030916748833120329880345366916970654947284107578122033512826426893175468675408402227768854288813125652529977556693400164725353095816322033234586969811376650170365236418125495715634404618126921827774455133747041207621606810458205871972706250804385484431654387924629216065902257667305679962797751236415674577673512036065032071390374754452379455464020861399494960285881780604133829547634792107522561516054214050480567688529834572503059671011650259272096623203787746616928131993973423275859820089774709554919787155998781695088135416320431668657690303337554409171664059112295198657677064812541944625685253486122642341046943520853182846879569045839176905212261105295342895491407073678137948053013165114611777652954549025138176173052212084442038107051457024388586115482302481613068966310992515917692264761845407548158525802370578206007562602596498812027770370004868173487884352022016415385084562103244593912669618616051695210413867958994953202694733426567411049948403815319063813836483855131263007012702084611205577461932823117845700108539826153900126927581817082619396643604906707629186658121482991558119916396476707779018406242696688496516938340279357610361142046161539905520670720114449477985821742449060552910797406146624009473090447620744620530712222329765118045847253229411718278042307358321335752847965152820251505332736529704261676842996162360823146726674247888652365234463149300413294487408775884248023569542887963430636693498413649369139462731169374337750876106569487211250062974378332086184682712952326577049468220271149087239555887774079881639313226863821404472243837734857337792580315622756517729756245697556040286246237274644987368615712439496301543501108868497671719755183457363427050964631429889962752826184762959073508562045084886624929128069262359446391871670592413806347506774502685509302029263165545356274611005279036601200838195074955505250579445903552472292239743103151313753318258836238859161813453956147155452251834422018467378365743380298728010919843453320413342405038208658617834244042008559066047924478666443057133822884699154543285504441131749950781807300310515543319963631405106719558545303932931564027142078370902181834983990809093089231490602636209618537719265498970943774975819368522691133595738308605264702072286005119667452358476952531432990140190287874288248188647198305573192656765295894553041197923208617614956264621654244511275079953672617349578308886076826844940255079556900883366261252152217610292301348007748817341206127682661720651163011467177145949300776755297702453435997091768007510457316290529249747207761230640761128324190605005111246204500516150766138753270360033396169821008754905880060651770055529701741273367786543200338557965985044553703639404886567676642686549742366007605922043968800014319823928008350005167046298754071057992187130600777504771628200561571013206020290652120085308266177554564513583443716922425924503101226749568047869856250229395130422880393459450804958836701891345158577304704241002523448399165380172760917386088781345699907376927786454197078598617075689910025942921591547840817136915700775199506354347522667332672098884547516800006171772068497301335261811465711493119158502140928245905241797094579876434799933287556809809419209403391129233669710288258701166711662952435628594987394790529872242459826565164509542886881666291009361148001222342886910297836575592986181100821439828902457989129472840740394050226377465334576304255860834337583432067250013780525859878861482658384176033224863821633101027120151951869883650914233188409566942862151807534312768061556939062570187183804923451593263356735214049356435673420188936255303733713875881765090642477090708085738359177295862353915814507465960895399692032726327854827362445847816037014714617570447050918946599998258428971579108470859859738500593620998399444278625370002765297354827081204244418064951638926863047565085202149381747710319359047610711469020912348175834296092594952764583421898363551473552010087137759421027650739679312286424416949813024528245852343248447921719701998082401991594511351722852960257159300416076084528250279085645784973288368541172862064206073222139007941445829752264573493277508476825530512961626324850215259158106612881411580324700839505221509477941199426943411911221854572154923559521500314069756356811543299622860421480200741226702235552380479635361180452888091037239590815182945186383216765101155155198740831799429059934520884701823700809883534115756951556513326972298981996253207973844435014517729490572559147707447097558657501211405455992682236316785750079816471538359442439367515734891564506727449090912775950624363266148138012150979748582341853602145906011405998255560516778297763885999334455445977724921543766376010128861459857599987372428298275651878170490839911208136577360016614993034863110861728305417330968396001397203438856702181256897094196536518621243350422987183078142689421644792492154400936393796011015694474787002232233595572828616359629335467183460528363575695832979344213178426300575454750577163916271224658456769828442934423051195762637191863399510147761542390672440560558287653028507663343836080834331273959769009535858653140304216610995171409883763938389072614679124601351569015611928987805929944017778358065799242612144149285930363528533587852545718780529994418196566754180157603131958117478765483805069875841540898285492983868255433449958432160317999716784693074955039195392118494263984433137453611339872447357460828812155631746985937297090624329905019545228560701142251828358693273355137285603355153046378015452254405896713449133071470277857795701576305620790074627831577390336733188649654740224135234630544686969433621232135434897717295468055097707096338074431612093227960984110153215311383182575475221174452730362898935387702146598100900142213150809323023239934029421466910100900243639185601877032718613018310483159326424506176122660782222931457891198867162341755622599837191050243445975957982558810147344003426964579336132615012589586727928802762940917193180047679783182423642324875969431099692757679114183245019739557664738329463256196420118571247941954231841832165255078786718018756669879022654866307751413656079252176000160653426788274825083092640851242619085899505526474202404168766139450665562283828626244239492104780612381586709608170693150362273578697077310227410212734353651513725183855885633400216471859693755029385272795785289624339481707760514545414159693530670405582044769987652183898409333048711329374239725380225434643615852703218163477355188599363049124152539523053572350565482661447163661633320495660818586327253290211153083805103544091991923893123026092253277111918234656315268429457742113568264452724949931564326508848023750070790725053434760952612237291739679995063442253924191667889566165445851344091818303967760196237683471580975184796301547362011648378841925746642248473712514069467417996437130121017853804039219595026115581685228928166225070359749382103655156256061340026760960084759003485907932422543734624733609600206840989908715129981202385359505369822223845106210614224224942894894412930543424505349633995673401332862123814393210187604514042825193271245947060554880679999950930745065008303975537923978475574888447407243183934640871709557458527685777807870979520345114620908929350186752225122048508021732690890560015721124948783286927035505071920340894465420093044826514959034683026662895954914326437970440871208296387122198000362424843768718972775248558374382323098444039729516269488251614583912838230710878159507795612586019597370290333029828229543764819511818138522605168886402586238813479866031836797469668758843691896122972803298130493147448592426299038013316403832106736478190011075296371068022033143004069154541701487341718284892628320691468029230262460278230628676756993592325281442342018456350929677995549222342130331736210653705586208805212122080770988055413723401358733652457539608263183032668032123803931631812537482560699674501614752405276127000487515028822361687041643259221457301590812337835892263452078712352920100620258145943778711773735253140407896101094551849531188471373986490411479068486082063560322762495556738568849680918497658615554641183345616718757537947627352783598443748375696520085109099207042874227637400636749435518380735925185221291970573795659470289711433423926459962939191167824214013852619044528649419754546984766202694716623434794701467092775112252376780463230590209534611426135699075647410727269179712764200567481919434514321082724517226699594248962250209092319426210916285085166636506238060139898954750994724823774176357789786759982535842607299961239456698218375335638196194006438289173642567474347998421041923444302337940909713296328433070419204508896722203000935329842770209118848778237210812475170893241503329353842828820167260688524970463600373031618588874374393768966942485097273207000772496253783059471221309504249055130876539964215868401961484672217406653753198063901001972509984630203154139085694611724595351463527207940630769155276973898401967206671083460010086464289887335973867697778113572501039770265207855993586455492277229787696629251254878368512313024686631356608628565011922408214889927076484414727859554669697474469527452472264840895440082979628687781844676325926548776072397742860285614436249268060315420429283629566752705215551237567601199103607142519223243117233223692876726810464861332958302899733586622432445236760143281901714070493767886906943686313956996568527041354543012296093837430374709716925977217486587751939260808388207094538349807584151332709484700694554038453336784290559801702456006275322623442744495849758242848041080921434537411997693243719680615290170668666939317016230557560996793939617244451697121000764924246968391021326508590088031915940188057313104001943177349723640047962649366731315348265369280991439101389583795746655618855005596712049897386363842763885769785564032791433693430670659633759404375514078038927141879317284156516025274832718358222731770987259143961749161452399970368508052013188828711373552966609808938797099648320032288621744193174123404810739681843193034107647317633354330404044571640109111779036410345123531030155068996433790332226996852996469673647711198166242302238656819395258487630372196126017563721358455562678188182581870663323271962561373875311918619879292855334002285877938212114074643652328176462545637100937066161203027149819896827397850534894488679961788962822902894519324399644824899657607060101274249536588931611951465430771832316940120256886225071434779829095027563528473258518710157032922241490802108552451424021650125672131191011043079241751069982694996805669045228535859084926457640751997557276664330184363694056145935406464221696141125647421485163458665028743412070896004389051376986772241864650931800445356284974998307271989090217940455396318922311401264466069762292347730382014864881606615897732423132254387892297613784235537925525843452074221206150422060362667761969044866185143264471031518424196858490986195490374424882566999592498331752082418867400145807659676233283269027527920295658731744412201099838185684018722146741855607813825576337039236885822398181459048899636645512018248688636720012557240576496507716964388366138976550768976550541564238847358687563507089594585796308557346723003084064064715743915787947450517649396562348309985045114391187714991757990882375752619976160869778105949507760591416820689789472460585805105580916713207032957234914368285809361466701972258153520396610425365219230609472662682532369818487587217062640634450395348755154835114140020726191845729788381222709143892588191766182039540993757284399668890933430876951737052569932150261300812670608048886581086300578341478868697492323157677062333184382559310044498221345092238910357835139297406690105763279592159592448437662944178088867969489531719943168377878132064516173889970801937271691716291015592688379840358611597480604989313641315644737127552278585169475236784093369760744406187963070470579516092210282869258480992107773856941895597820360355849671779759235931633991421776822925063461270988968087530012682965527831733125186904377883544278198092400938160131977628666143957769740938139004698997169454273823242153737044417233204226621094568207449953746739484378450213838151018133488991472486474306409201495432026209066431221527750489459473001473885133601000276788864499081090089915340116907062281359989670990519382586148294472444957938035740126596741296559563150394461251103942553372724750915919863020816603516303289770067658052586449136927473621739715066625723772998595959302610471671303267300057088387393536475366468398862789187850481202604100162852433830451840416465453921008189172131602748163844010698938634134761378903230678108703170624967410592472867196726326534056132914231931319111355067018066053357194314394214629981772694982102682398300209289096593643658033605479880443879077740232741411816408727063953307141359953833585465409266846177947617924321585478733494903063158372182574830761017636752229506775572666296524543424408641887308705769338392882286754204842074001029898429417623047761332958487833802678803306447621234119622637282224709686868397046397729176445824813390391252089054305316701609229212156196573410314779165808386360725576113941813830880670099885219109756203865878678501802192876140439284318885800186354555810264994878496296769464954490102183652343309134763092396174746625970850123891058020658717795733708698121387005741389724614353214353948075868267866719996720624957434432175138906705884714299797041849663843371686375968078026528665836983974915208455201589480729294420178613097375768926526172245034024671155652482280002985568026786708197886057991794845634434632470456263664916370117650108943239879632791873009068345167694457638757726035050015724384020540597421012296886684161149326746162378351878074694677456688029885030413115328374079716029422714695594658574301537290063977448882601358590327874780977183882536667432495513990026874414839060750081204084890551187900398504003491680710823957572133231494025774607538715751918605690967087997343426412269190157119263576346539192748380016069906617044685211692714984545378292331049506387433750228570258302953479603350290098956908360540861595004689533523580131133948660575220076024584481860382568623254873787968339229891658696587623483348489453630682036398302127378661063154919255477805023002229513103389894112965082019432609734692739032945560286037451635443485022053095088017894969521203059976469521574981731040763570116044495026744238169507516555903977572486035983210376495355290616890814281798521760126265179232690289771312199767883043952483645459095462553817759213006624468217684916388250943917274015661853710192592140583221989157591235938070272892564882274807810614055253003676405476488160355102878868573482605872149802253551370616589216570486238465802558515408167005068885721356749475687706740433045702448727097011411305490955167584759432134775742080631357899242140309527931720402631373181892702881279705652448042842106421193190604457492873037982901464935240497410100259179833251661188094752113086815450731374621309264134668200160175144972951830864389177916421959477578457891704959109139248092718937661721281988071670325692519695007306158191645376970126140238129818670271455138739548376560512579827791410029461568424906694045049382416798537802115243027763613617118975676789034633414278630997303509504851927702174056911196919552977594663213023347509845767599444576531210042129325998828731155724408078376480196449163222273462217835081068208715218849997772396354987531788245441527431599638168528494536189311029637600746978802723659853441808350285542999115913394818648778110145072548578124944769424429460370405610074803960612105127925252190507454957843886745909435621839295225759221457168380913230348191959786564464728673661883433874508603450083973921319788903337622174802522470477281730557110628189082340630622338984912405382960744321263118993444016095292871103887733470901446700887056933213168359205490221577124188533539282534678327621136381723413421083865992135195261521603468618168617262948272175012319329224748193612513671578974899418985019993705349748436483150555210010439473619831588738599493520501764714850535834420396007633345009670418193601048864687608192391008452047067414627245916795856147008440368674869729026061468130347724899483800703240738567037114956987190475003308701771183613393252795011611999741984397709255627628598982807981822941382352091226981113825295387017263246262509355970663856920645922405758911597231287289416343349113554461831561056263993148375714318364150660266777001548578889621924987250742486635639828580075644594230252376601595279177024698002900849158569542301065027884680093447711061096270170603391259070964717727719344191628904873243970100715088546736932114753939599925226981704201061917856053547494443921995273236153003006715972266677841458193065662682316213836777612448915274520103066815747489916389179379389013485332029286590665318868031419226279011715433334683348175115341742368705682665846088001129507523781275023673742257898337511250049939556357240926700584458316406818554959853712987455377271904541244744962465466300364252569648598328463071077613662150805656351738419257833455446515105560183848927640930364393419409585738769919693971936484779211034438507422120803445308688756972398213501602898104196985799518635130157140956813372437268277397706304352873439212055493106521540554667403114294482558244820026831695579802505482880399570646963485741513652562484659339893556428171289265798178962506663742411203118661623653624019709884792057943037564698981825307033107920676191716748009616210092276299759714535884743495749285284094446619359178177965385464467540633033579373861405280520400155777014085282381734093367298965261040157797625121133006015228011430172580863846178811957376422020594748495754388378791225979834505042902401143912489821496095195208707622653425810174932290355071805367962220097505729248038456877862828953869948991839731983252776611951820673950617865637829483404375391996948318531136487530064769265059949164370773959643768233476862578050566581265646311168751637628216126421180446480792551694533169698926242932089591700577612545045160301709045400169316021356853788533092338336825919313958212124473990794562719434724542690326271598576652919463580713716703693913755082894462550725336977269174226875807393796319988332342386683714966353467937166801715544084853370898603432329164643186042904673281421545786726476826881045644460319320970771775578559657391731586022483067311716300663336765487112807226476221423543437279112717775416204498631136051756527571968937435985887295541177293331877099962343990403003554593979963569509078651303468438502229690291275488442033577466924162467110444523802378196225779942516708834448754615597737895558667148916676398846317638016420115011329404741781158835882610824308748798775578613351675367132558820597127476868913545990520671828895456154765192565551499390115495077674577540239198634894590204380166398666366691075541848765862304533518896872083408041790899508894038404138517504594959755126184152637120844468290198863733656005577684653811764275744468045652769962128672658055838935095389614540006455530353133324743296087787440974981684975056537827377383570653150744377298595908383324489154567794754721087528176918895331018327233415970585262467560065769157629355178544626785786366155001200846479580048435467118173163336024208927105246026598952893230593340699399492924372587421502026173608885029117894415949207454146838132306210080744809608841298297601395598509037880457128323978266572246386619368736151562973983796531533472812142367083204034643994369848274964118526727730878442797467295949101941548493919156026594346827541094101057918625632599977274725134022400085744079905639372585147107556190246322415049152287917245411959208262274978066226523407873751313027043381795487006304752970665869910714913167050787509387194990686774974545428445630898902388760108408894702200651053730286827403015439798324544141733270044040606441277411817825552140722844509885346911564356549561736740859148036127380131944786620192047682630462327714376680695581406958470868071486990800512793565443540741386263119077113592353290455021148904222326889446782022541643646518522918572954083717156609917596827262217769193208417383297241335515440435510305577837457362234699557774726612522280497042881777749165946767451178513199285866447485652041551715282530146898426625244917075740122241250597626423547187453902789443665360193360331673618241807645257821066576699627023480599932774422307277268093066699721941479563410301578414845866624730236827608537243753270519463579842524248563657355098773224858450925077387815011805357308046343666323516856794246261999346478203477343195363254520536027582138460271097858209133971101782107825530842994519571728337536740245964274895528506014557424467800731283042501248733733602093104921281560599901945432959341437316161394467593298367637580102221722701638693126623761243648931933888824397865535806423142021081568150870541094524148247358912697619264691877324110633962476751008428367496517830576338448842317307910116008578088133177923587780119628318201013464492456302901140192197687480561647473029212802806242681427390625193474228316663602255791390039440095210089846734039230079938158532433901162871096046900948709959551865442454706216270447812716196043424260022238379643908164971092198996158946366678284186519510197275029810517843533711621750098438775888786606834530625349928238185860007495783135509563516466531702403781709735044445636690705968364392826663456016463024646161268441076683348667432790395756712668666757496882011169307687137303079705074227411434295477152097013708359507959758255657646578327836761125711490742047779072574747684606646376862992073249641651574181818262838039311172491730924365211973444487481700177927007694943579860202499786538205047801381221932169601648948614948352527103591429608330872096434384508575620958812387159335024209316261166294698803314341758522470127907195374569307143193415029123069874163567599191002290922924023975974520883836500006343570182195550053034436063012018411773501150735487918912803083871173978519743618378727823711480277847809476871459734758344519203494842660659973099763164274777453270670962127998456463839205160335338241423283289123699709025583380485148845371606896837846326928888674080926016297432326148424714043984004123501736644693962775371546637982554330031485646058595524524010194785589291834364798748159115134183111005771843216643879067900474148082165552124319725921510813643595372363377306781656586443668417727756744228327180988562487450730549554624396114263915755760291236382551788082618022661014686012142874241288208090133186783280221614121811961175137616399300280562925186823743135439948135041349174343398970625204811402912462688094404669090754775097758562081881323528614096464505803763698548733575623918699726398300935223641083319587697674609646095006102982102377141619000372970353350610392146918438800852280734896542413629163393309732199233725631128214620874791428925644184533428647657206434099100431570331048867394310134987406442157612321990643295528544451067548191264744241628561347286867950956668089203381670368865546982276291483175316867753054651766500316883692505235409787944259161507956928323324902765247652649773240236684978670253901738924459708811001207845419193939377353163540777565485995312296341792745763017890007977197252338825279268479907870084273174025971117414014271845685862771742896574815615133115218765093329055690316558078458948807829312542338520475790253448512743378282529029703297186326757980256954057570921547093683834491577312527733171682743571311783678037774868573910868084308017897008937508729087453733078176269823803507435810613547130516991731732492738884941936673514719908630326206274173800182997025856898310835252780187352707694014416688347355737215396077052282837043747480916978084100534553590389794652889054246674265818520540296231110566458522535246077211303326052866134536338290817927619550133859242197630799521768793384980483348899303834512520740505932224500384896811676811901253027192852715531613950826888135238395289865460744603526440074359853114146700779579496015870155739416668039606429770635725974055946154158176088586018657187848170359467936862446356183318628332972716213728623138347778914211559823749056955353544764437372182620160808878026655168009284497297809928321084471585856790955706787188680179490785588331230052679994576504354210538324395863932261800065937953009390170543224754313555376220342665970098957929113472110572727616345392299721494092406955931683370480193706341378618539115612655083489588519050707400115716420603217377074160592599491636092750658293032526599332773808675547466950001616066763942744776349257556420862690663265597359770654885172304125941779517220789658122896963149407868208337545960625163068129393114684841804573065554848866716452530441003671584416198007424464249782413830188828331036961524331174625362846371815834251135885247667527772626625233577514130390083812048429334126060686440001145402058023284519972629950733377908169806658464258954962540062591388602020858240546509216202208685232900584673514592190226375067318928743898963039707888773660604633241191032515482953449955109674777481551042633789082764052151400559974315752935861763041861078945382524996557105381977531194935933344222468060766367410020838592947609175536626395330318452634444885229053393621407476959201548015647672838523888523935817943402128388620167133043862796677605373646493235684948119569724963755824013798969482585530580050827633563032611935762220685345898603444879722482789027176209379719483203783853064452084753334324975555933002096525981053457179882988556567941530739012407810849972156587430419345588318818367529710569359826777800837530073442665402634209376982240187224802223738109568197382347446771891588626367032187229037860277594762957888850787923406718948250561989233755188052708936063933810799694221738529570367752452896384522340923062747180288568929640449452513060632252119633495608176876342813803351595052527180381196073614781040027445542640531970138180702984423659025842033915214090120681292072065874349984490550060739627948445202520696627927249883974068043476270951008556882037667772261469694568183439054916306509748618245574930181568913750065977747726604207991598986141479725902549759081551548561545838008991861490565705847839079617263934473398713114349937386388445287373066690218668895615041582314451330399912542467162189716944462112928736134816468197455370599282891688189385356231513470636793835877145319853025700086300136684319977199325030008184519614060013253648406007986555995132502052812528405893906391017949057622886208684635497888964086713218843771185692221078258811253833691358813215296405018823229590016535835885026807376059579822208742641571769721146416482187111851556634354511218026986541996319876298032558155563097555685245975874673490839573498564145248839271505399294751361044090486003939747039426536547659704021063745467218292162740861397242637783361937441205995081129994445299436540671333353776430808109691630029350318413825143613716012761333779892485089070368744136581122639742529648080451450192130618685359854244896769130797745232469314976257226162798200006134023666335669460088753399746625219157627126005267433516533141171590391845913081484198243244101380259799848929606036344724683627001841378382659751616659864596936316866000584179467663126979436525922173409302059267855634399728110830168735581987299238632570397111050361832238937664756362944876114055404233787349806616692712050833692133972468946402891678846300715101548482165871741763376917628391048037446671849374083880640488447553464883490499952277799565040197715753246725764103954357575520920417725433640156887184992733913735554003832650746894284345650833608288850338272397515541821280281989082282540481203119085443617558369017438866982691144019368576829532688317105427425122024648147826102691229044751404986715111332397412851958477642055083354435631233810272821692172449292998356268630648062738465239311137029430304113976364893879102607614366043284712303318235883781915175435263519864566941106308449469191677044470137039080851920477787792306894180673235348476606705769390668256947868247193035832510864260304489916905454405057028344555432382738958991810029146169404858677395857811994056338826875460385955772517633398474279173957413678717842895866881192173101521303109764991075855343924227838117767544981828929380246457722273469795360403818674432356993789264053716466082998415095131651273699963701114487304253717416757739176554396089742779842280364316682972511170116493063560178547224903322539149909969083445070901094327673145547651455778287628485302859376066656978801382098454293958499195248666044336968456952805115763575832293316156098106451933082096364690295470509009896304880984932126420348542287869951273027365070794538536499570644438296524204194730781412298375626584434531715815795525728783744228144326490111328504709680348053645897768978813149499138901495492101311028312322949411023295083333294319627956815123717905982962960218217698231613100440447294129555771441266024048469491980084960252856577527875932580250941784107056462672206281677273061641073785356279703815631553994165999880271836763611961259460162346653824230033295823222585311888099472537088622186153674384643564389358870452798729275215347609438305751456663604359625692944420850637469799454366765405017092000704183639702972596562244927284575557749831673569434506981759940162893145491625584705795206622541569070620493428448133192761061538827858357165574747049520829658794293372766517984568956905679429143277043338969828376754376341142134238921710827599716348329570458261680372870999890541276352896009841981608216566648729575010459771477462424339107963645823041104710834649722559530792029635444171980791768905576919003297256247536517253005039083481443376655695134469318863109005592051750343991247280035139091060228124292799634159698327453676191120124207097254177483571839208651507799093474689099474939784751347326075895744100202553303265552624342510290097667584435975657073387847534119606129224846000362462141623076565313045675886754093755394387462463703576660720201852085787167091929266119558032758915117936622254059887758792956103400941150239893768705570307198330562479211458054486366616891904690048315733555462579707240106507313521946115860647424045576606297159463348951879133436804701443818027631433949147633636732333698797590580425592333319207939687119483021505524750142926826940880325054864336341314668386287727746919608799788754487238165346521618230065859366435605273757235995084728074049452883718599350018248173995784718365378321227666581621083583925724448782844506294043888107689464557275242644877988025650309240654103195807609218417564339738433743924050230990027099470648474781264276784044235367521616771007217175720152982239503962443903894673475872377599175153759644835641867297985086230117577818448488747328615894439581923446432543901138209386056500763779471160593449792286512640320153723975306273672683027864484540211091761361199818924751462526827433545794043996172039992795998759818435245551552101792605322939580528828249403270450359985168425130963939399011967801075143564945088541440681356815336511253979387579796646003363240798583713962010458798508853899832319478484380261345679367520032365232248564247989635132771409087588247503928541630036534900565896145672724053701371998379523352574527177014655609038189971103770494488033816736842399419715032669226578734040067279091080098495732290376815734446746282923155015093466520982618349924792363657356470740658528368591719662873317003133530243646022545953506885781377713259670897013688990665718627060437047038278158962935951904395434286719191314082386939149830872626122660083207337579924559269941500701579128021117799709625003532746016874342032407315023448451685802988475998485698406555113971559074203185443381457156500393944590480055376748358924470184878840059156355102036825255855401282753635280262033039624115326740367284908421518300706326370066358921926403010507654267570353043004251296264857598447431376464389841317926390520035331295664552786073493006471225023845839428733953156338325334719096782978316156970624507751342813106533908588435676643242917317322875302461913779444084491215960984914595458630971077433679274916841381314095856183403554841712687355757890312123033945574287958609923724189293121801646566012155422458085895528473219682615152371032916339616794686028820074141953724772873541230761308392596893918447783844248079321760302167250156018813820374431885335826336257723884254358847874031545900915156811697167536494179055479113796619726296193350816393999906232706307293692563910899161444263212996527689139243223197314571000061453147213561557880703491565668895451864806453393273865196034048341409203581066394424898092782221816338480740667164097528499850619368375011761134337819845025969688402295435255477904876294164411844277359405951445766191229854831311567525311482276052042817121472088760199015722886854552669035711933630231890995032119340560442502335629023978832629443543153226279195858570176668800076048597550836442901466865785429901356119634796363373527306627624324780969817234058593104655157721203406667369413511366262239879978362966574126795861703528388554779275399565684932613918212324452885743043725829978518278448016186547956462766318057032297909826286756849758462047243647469564798583438875795813416153325677752180943010393254128079079489441709657082956332942648494358042117496983522606773549149357262140310714439095414492412655164477060962457486248729138796450331529105833776571535375965363806459079423319589453203521765534553793639032830993010182554963839933091093705958395983983130627688810189995521000035097980710001553099914185501352962087934543440060532559717314557654295275478019610913484121197445611257124442919083481460812548698742852544355975449846770960757075125713842476364909133541517468015645247868288315436304356588764021320924681719742321642483620316027824069751793810507282440019643492648643272881526375246129433700824856017783509962307859706834910722892204159157269281846124767674102512309172552456883735090817898849621268121116218038590998499343870631423330255760082307842312025704864507888616221621251950678709455508732688819717078184820268370426543196998588617812423932454854088090614401923225572161945111915657976055352578016646902415580248315319435877664425588462267726914366324119790725591083142175832859732139886542238689722762468428472926249416220572014411544843965375987756764019265373892898396157854638178189992745569294905016288072173535388384857304370312345148325927002809326033638902319054535411176434836950345890044612677789264229703118645221065691824541115954729594311007068751075763705526970892814931765889032883536911168134162304002153528711045927344183510575658856653331356456925198575559427172275146102532169945534997053264792041560185868719076711736954518027475994553956933339879401743294010385187180256531751991045431895751914958901145227068090761089230210540979238173431105959408220699975266608295790100119454870496669788947752060354243045706710353429396763687122851780040742263293148730869626801215665346005940988001943474365455379652436605218411047084992259855228041374276753174795112782032526566500801124840619555732101775801489700025345231880968571059096153706214563721749923720393076211394753114409085446434681659711739232876914338895870796782929569231388650084299484882428056346836062285462841363732468516376012777251871677936762467956577700171314086253608149344998199901329939834303850726073084824002893448644458759089507931014170758042926295614366473303831170265023962684453059045265961443107684742385697442666866110889992405060599950278313431489323069244717488612583501391336776029397864961645955330967343202172423847703621960717591373609517593322881877247601155392425313359303208133621957105381821217415091092710433832308581084600405743902490168955365298513393948935347655453871005801041506793303881682876884247240162817221588822909333261290333879019851011026340031870735726516867243702008568740309229034970102542320301192145682995139251236163587815595929126498622272104096761092545100895283449368719102049884803796665116000294908313406296685150015957803116031304756360789037535867754595468152890857552355472400852118492369971300963881403141023591362487954313322495372543538568955118937560240575179176386645336461046419309090973249583763539554960169431374233361659996388893596150319560453092553188192048489551033990409049050284671523162431374482458481806251925545157665884693271791545177804750153256565546595317852649809698408481047546191332801776195739121342208345380854617501603806278495948709046128918361928488402388222156622807531601849358582285796224209118371456871781190057926927819691141836823738061387837699323686267149512131165600713538953517775991215512126792103928485679492391181528156566208883357035690291913896517108133274020424034006351647680544467578402717230339266932550679728505076377386711831408505284015105408537005449827696175459135592489951346869949792958971118307492938340054923235820278924045741276442373638538230194644758787247509035890254304670492229600939997377235225155224622994191150425567712998436311980980477995088243409473335946645413125712832478532636564664974574552719227833354506239202718758861273619360378394467187013716187718436660142272982014702720154105143140095547126544655615274794961627854428161962552644723872479425042913752462205808658655620712996581056946756905286540127579127936163485558289046468772534431403734973421957185956042601692010345562776833204198431395197407042107367230497721970217923872264575951875453967765739928316297870900360964453206529631549543727853023847380629103897604660858602069487533778843649556090399926713777092822672385033621495958877499475845296700836060536257224754022127350942386344858836734975396461225116883565044844577049594671701238547147497236344796525614483550876266925912301488133122773123558114719718368618674655564047243857378099297761538011541780317611760491281516163062715672669183204174739194407606420258616443332912958550649155358098412837547347226832510288954417911174083006760556054296475847498224764690842204170998237838775394910555903112193255116292473771768218166060472562964327701477524746431211207876390018908451026845032465839764932134412304308606404240575770063799530255697936738822182832422277177955969574330241297116598944649551115738508963928373861613829320887614463015831766352075603717664806621287198941952551220484839284488987153596823229388819533289291333473251538940742647107229605117154437109369117754735523130237005338270903978130659276934230453153362331393393242604803679488138890019893990863079015400122369822803154343472283246212709992024605780980132279802159847641590509434716798487389282213294227581198451133061989243844711480614905070305425133654239002274869844296464020539516330558084210723523711666057884962260930810398535851141465104336631735725421039310032002880133629310889565089731702020981270826618866892126172078349519354640744184463808861690735850162674777164445613981146853493811788222990652357987507866704210820090794817057473560202252620771565667221436956135025324016935041814069462351614383884635669561170151159087522035185626403120930327319846394311091022581873894983908151011276855657491385173948050627764423505068261119559575030679161564900822560861927549383681314454379179608018036981206793793508504325180435455123432321130736940221660159051871745154924824262488112753689432509687923200286676429129065785744693506683155538983634371561013438348424350631635778371255459966155740042796347548653923917072233019857057536321121112063570248518785245598750305826709991501761850030473273266807222819160055955628121524137986630601730992596968514742316369949064861151150213620433333079083178420267952726138452051824549410982790683950113227894850955788808528673614877747976383748022875703856436118665741312798716429473554005649556614193614486414059094729067262167105431879956271323635084930109815784996874961204799000365254655176464948625265700880163362901184017933820190018951939280021482152038996454113509210516837744097030917070350739508084887691691997823182726940591528302575402461273396076397855236725985005476265599676676414804548997111247702770342422951552194303098290976333879830363926705589279659131284814641035313106224703721424694686048311637227963750970683679811917145750902043205062175495882134338051802204486939012682990021340999677518366025068402487997732724524944067532502931746633834935717788819270591576274862298234617709029800156191732583574511395961560791468801430652116711380124462133526636781116637593518141796352309378161614521039336233319962155943665862177465979853212230274494192086494278875901206551617833699808103564118407429602665776355864685707441722736479494637842698262453321823746819313475182422712403102645970036192606189323665851283691203506709526356991480017386934511498687189131413517971265334617356941494354807995538081856388280688594756713425750130054546506672450778533350724802639475751329620667934911357656053258865453704598824660834486188483907122144103056359685324481587392022360947314752736705967825839996709263392411757275790514040226884667393373582876135784707241122110508154207909987055638060279635864861053884790468366662160171407218239228724219496048986772916194048793926012596568156298608280896076910270470196665442116065965995260767060398263559778661229499905062212069455721174359499241058032568355758567144312919926092779950678213251996737715576296042457669394870495590894145254751726295295360125807034373020790630205990121079347069295046623383656280223281353045443064222014851249695070413457369351737127200122952828623425890557132214293021184761660067487006996830147589497727711625883073675134554576537380930527364106936515115266013415553487267273228234853721861799915724304042639261618754582685038883715598621179308740766101918637383551664350000001746136865506076978067992268914983089250462453756290168399676648674000193434284496050994563798827179066107829359966022112565177685004434847554084591267681547141957959817520654275698641665630720665496999354273944838468923114658435527371988700323563236880487442625834167068572220447555380730870649391551290045618158371627603300391820651088988410995811162050068446073563087944085196633350848272890941473450270291395611812145287765738481384664494815585130413460702152521436190419802422245369363281125504031119837188955499113280674935282423782584381292836320605470720867384042695839364139107508370875558880872198421408371597962994912386448210251186852519296896595941991082925276250176959988293332198317201844742077033149712131945901039766433940992633754360240802439724248509797781554203493912222012571366884963131390120565127393735406356697241016884517455670876457132626909347235623358600270949646262559131504443272848722311050873411330335555831038445189290447464925006235880853045440822121079005333943259567388627156838019280854599007142115530080290230369176623949043300285440378672898691209616375476956483227117947681420961972498464820650103425269213045516204700112797030360858618940978451385045803957855584069746837742009782100734628490301853837417751741799917855366993478542779205913338090577439329398052982566112027423253663294872335518634467719600475458519813308017741003335057156553973444690575687033094549118141374371405972121886061022113027528020974718569832632588649417532742621657137494860364057641906492048120976143081706637262437057589216028597306923837794508644270786286271536668077653469728548830489036299625787168896543942202890939889053233206476880959415254386145744533782042359760290576705245537336346199460287870849012142417745960089767956377585847782951177573664662083837834570701895855807931302145990780609702347239761084034053601259831170929968166981344396354878757728123831232509572150129032548646642620590310718345148581070254014686140849311823745443991678855186747032439143063065189933019587734252354947256721948703255488979634134898820935144201451103781197410469883747373134764037036265108917835597280635803268512314620353413888618082617057720325190203529900389161427706059449803990159144849467592334180080817267191054620607241565574435561321665243397923810600513028201936188175653807788046853703648143144121142375849909217616712742309370157728981287570050535921015431529340398370632734851162653963726032273107299203331458554573381113326548266440140579588075320450718502676709906593395965879026915045146234344129739444805609110281744172323996836635218601561634485976550352395225223852890015247857766000755405058619497052653568321224711014069101704993229849728164463551779985545602074957435260450893169255563504920745586175702861076278407219557312376996978804953605359150476582878386100021825471197220507233506601029775655747805648847736505892068154639168922141725901952727411798402854208594787714444791451176404208606019534377956587279864669786548536360616194219927072115780540749478099858061106606416079465484028665305495844484817745571705064137571896554447411406995669697277361179793134091620152788825290277912726423085667557126155431298216243351445591848316332882194600947089509985294477311963098643677727735419121469978742148969219587084176186865511821654722285721142711971240609669435551741937982284324950325111662452441304605355318308972592574371555882676734925042936642261384683248868235410754197885044973237708833674592124894534381979326343278934279391425167614229863517877335601225560827859312947569627101354862023014692652387093973722512859392871825460069273293793212677436481067885621825965405801668192703777158509091477679453259767528119552756838915993128657912961294390943241848386825170009526582967482045953318642931199771735216207697995040969967102749528788890724519501847128144443664224666572487364173140069666125400827264028957836881973628148143784755575698953634328222156406134859662016618911732289939576195634774138049624562091926649501870180246220307499452589892394809151253692364211947668648848927943080144509064164406306270103337162658054630670262206975247811896356486831309422324541257726994905193007232357468568902656228159606117633323943379597627741774205524283972004147304594453940811198121515881422389061502356921936920253349990138963191719519333245841431677859987272274404437548009830051861615005128628272531600904579601720062171477783710635114580055180967780929389699380742658925771454853477871556074939579964869098096784325366631858851507682540036895487716468806454088233168335752347431602010205347228815676143786543861458298183936456813376607290664461087463409525648780743057357180735898083029594223554328982731545340169069963697530489279132322225082949367229476114963632085506420507039810476809134160397084552356494470986369300009455530021238630005871749320166210661951993680531068759419874840132715444036746342603270519479105632358076852639961659960397629155105902975496413938932165669554931856707421872912894489251743005356319553079278807855077911895909129699517955674175483635160397246290367992278896097283948271610331217608373098161909395610123183522669935597311634947789064467454657636842816448185333507284476029090567555889241917416383185071355213077025483636221604659967019294096687616007321600594193212275753529042845046163502552989362410682914680440759855184590940719409350516297378778540265924750759850657189122098680582871792590952379755064016852343132414817060308374950625991155990504972890597287570869012218353284201472305435012312081353970420120221356935402577758960312701096299403536028213229432964061872430943396860858392243200180728461704204187505131962639742270686952413576826106080514157428967550230754695026115457326729435242229594215942676493371179339816294350757040252534440224005006294767195919127069661907941966903507076542345404122925983191277481864655596069865965044890010667197568422441283269180377520222156833386680993351512278090154540875473203522842813870305088286136189233894723707872088814913499997130559166869509408269272538977021457767795968225285792337982616040022563882256487975381090642214784183045066280540386660356188200445822092589198217714614453910696239138873387436057380807145640443080172823779010890973482133463085576734852607980223634184285860887812729907111444843894412488551461000528329129802716454073281690184241552131895516538414199418757916467202525451492022171735986814693496156996506454198553806176807458236981631611306077622567722741699124744070235783595413147404601834930638865604217815822436851659955085188994037968869840534357911343712620963280063308414269486235587023825462153413432016802916719324510760012879384667727335483266645957440931470287848877895664820971537672754249713723011338585698473761325831655715609973326552209840335141828269481851726768576748963774912838134907138848483388480023928943337687033169526875492624039020235793984415840430233579669322317204840029241756003473820853677366533689059811406022998082708407105090568681180948163625191012842228198289529956920498294282115741520188321912770268372478406929892592937223591531126949973407607276860800639640363009614969089004873980646594700760398072669955444864782243840631610949826623614241441729618343021481791703656284791134693169837023218436064000933449826182557600890601735478008361239613456367741533739126917580317313016820633625984736600185114618538511756193449497928746656283869541546556382030693040763587906778071717465975713062425864835646446190839751382884921179378765454404545101488976477587498270512247561796431011384363466281941281020096923174725949277461796238127236888584038431033221765405687938010361883989251602980365289834251827542579796067981540098555743793897809676669764823619645460424690710089740896285898143819573940259991753983756040160246949963398634227485459164094154679197806549037944213455190250696806530532514201126892057572040974004340159586579499658357588875870800709546079879747659950067766891801084582566283900631648914797595496731778319125053621477828232647891924192777378179464957809995281517912595963029261082696312937008069793680417264959201192258916105590988536748935055759175190072002770786360670583452015787618735145943168847261986510257984813095399588975056889042893692727404225316950906766397495740359846152063186872604683079087830873444032009623291813078945208818763645924718998436633633768621622694488700977268617061578389037909179838511272090440145911928789051917559235862132018109982432597208663907601568075193590634312668032593797769814713087371550803002783665222968328138968465819842288463853160010981491593733621096485675418736782603802728104657513562482358658956862837296217972957993321201864567061162642952651799829320441738175975797980976420095653627065797163374081174051376949263750416038000430939393376976999672796799416032173817034074067435222626498111951217891209904226159282901990403973881106438232041361899231402294501405305410026249857092604179704808428699931572329029030321732638107493853261390395365977472281449876556921160715377757885786218324189042612601882984771995982307276303911088866456338499241208856812986099653228458499801965741712161317277830280916269070069906742771165509522370191761360944474687181480097767603158650513538846696290792631642036752909512906696998824777257607522655001481440426462400629693839826712414696687796355910823436980506859956849629518435683497280726475703278895024355055177484621018914428414824464964290717240940609347515911098787583804017173891775091602857255722102868347953810808984911137204368540164154785488550313712243753911923585232268066529870610789988974108483094839680801382294266410335348477149986467199388538660108595641863980382835420794925459165929111471522251466513963456911520354171110952017119978385173283228869361969828715279534226946403507307532880119484596698164990960468101376688080077785518058469780172810720694529775890831162845564369162818703673209088935626060421286214151550626989898824044253803306399729066990252657382177398391815476999933625711919316248998344104271904658670826649444091765398757869089291131129602815230042343949782327888968712110295630290559819954131296022238956790720752549396708630027984373532042053598369407575346259486173338852874108457387191715936716008109329140486173915675430303416181897270612662725891363348900047189113305933512168378981816139328543630158420193840375437652731678591845176058785427473133986370635735542224361609573922008395618679237475275410685575097169480445980223513705911573256895086012117624371987023301053742502297812084420293292879129778100396802034246764073661219376387142138266940535333155816226366254443438066586138304267832640382562049193838462672757950848958871958469233921639531050963391019966929803010948686932866155379161441868624715797259677361598800890327048468541307205188620063640520242598105468454396927175262748630704585492837770145276114936579369236753401383552203916009214380133038913407278894131119023064769080688335440741019880039811981528322468241652372039028405333323281796933689926720197905757745676515576015681957366158585242800457329713076870531208693809823366111515930235244167854150279675180976492471848360409937260869463028199636312872959674126642177178444503376714950847509250266739502429949156532517690644416865260173271864592998679022207603223789703080058240084692458843473761952773552775426511672187110768962754502500315797554929513652641042659545868581528744025991686266351902974131388532749139862522823823310303317381144210819690892664315214613505482284327342744110521689185475027522114145077974438179893214066703727299798742741111785409969664688257102580339908470276098331255643601976302503432305573052149381416497677811579240365422588461457923702714345481543041747078635304867362300469114842615398781537684204425558268048048606895868427126899773955221410733181235146955729285284107052967972623013318296605013729546213755207479128429088895961655292728021104165997680718882153830830538847915744037490587146240006191585494753116157044405593645905324999999806153345479231798443659067516333915056251539772237068690905819162126496309508630311690372815359403535746781459301848767405696751035058162652548807840152405667818416107284857653327360342195831022547438525792609110017912507636245238391749854233522293237320897682658278817602618489484262018085073483805419489204105648966319685253935653827031151796318925994260567658623020227131399495338795992209701250475941429823924114492481370514315461504458491361103166493232657201758619179751655021703496771522132567456835853183540039653118423966579023710452017006579285209007604454272731797802037931322858607679288201940017976823514947897348120970288323701102310042070802323589854183735277683236958759427294448434413067462065892147870598051002074844925795600105956195499646670711908378075836195434116351553808738800476095592392318491333333011522615307302308354192243556752139595708631402371411737996558134431540236537277755234604842665946360477032022625401205113079373483562924285668703808229204855850798292475910084262003759442029575602097825234030759415679443064175597135252124383943152820869792759584317512837898752249573281088913139234689052686024549350742867721986589038754231559240978033311891516630688465437423911297835198505947316327967048652961133050704455893509962170994204850423594613119508696691867914735173247814620543297338548375643805056271084992847401040050760325441840618305447177611997656590357819119016710475070497945334313599955986742431739437835704366904304302672973391294767463586964236768947872846072250777739915691071615036121203344104806413038438042594511138715958142643246548114788440085342443246705285627562538129196732364343946753197496970811388233130054153894293308632973930832984891516408118724360459052004192282383291496362540103826676459604460843315641559428510400093958051094752737803962230205249428753154701225137744815172209608432774814870623959910755628673587930517997806006308814453039040340124243633201456844653620404706913363107204899790322849909585186624209354547051201975169231140404360917618270343479497413941156800638267363134603521041374443518527438451406182902565026375996283352904584162139544067848140851092326628125058033336006886882755308600748122825274859468490955230512004822383719351781384248319523846038072748584598419515319171948137331018184264042493333412733699689181025065596020538056156856676540162436392909223741970130211348100467027526248081323953141231427787065300874856526343363724677066611641163204538123451895292099326255667333223951076696730402654344574121083789653810189844126540397239277484945558826024436598577332640130784437783879791016529698193866869926383283140621135953091272731746563418910882601408905856503429047132908241380304046459010962589024973956142813005039757343942912631482150135392770682336433604444666742863506016582386485762773832702006451557261332459500599354990458025297466464275086315020842205396997851674997411872190327522457027506866906974259470755727152595504664487673145148232287097384968561581879160491022020351673746804907525598047666126314864472312229198931638525960936891229332439152928423320524722774642902381978095912325730408007266551542598730834352261204519608933455401405077036686190385474898726371277011992034473023456013663803634990038967210963957218840283037199590769283070313376215069741152592319339501853600739250807521623408986207161072766646217758984877278544039568117708640322417792667073678095592417751430109893780942924109328610566186499409164832342709781104875079508138709428449717064621682842560794339412159248190139256870236476408360364038134440481580152677044678055621749795853631421312985852333101357480636538934775526922181329886253838049531945567414305825218164852737376784215643212215629788794015194159945301588289841341000849772679575234159509948838883044276854936132840099900495971101387354910762898474809584886826789222854577587413585035829448278336272331893101212705419723245734856451648516038217109451691001201859242131356163148881475827918630694561751098971463979021728579264593338066710254673757305901519940700878822075684090263698242331441085790852894654298798704114347848799362571390284473686895666812834000965370591596156344564619402217652910459477423379901576449103172140119129433174647067510096091015720054120863163626943548995875935318822869591974223365944821176000533786737112787011221878093824633819884781191628750466612339138588971825244616487285868983248449598164069847793519428078982401756898760837596625750618705712075828043636454656930096411488245099704973021052444937956694549797984660741860663128225476810542098185786990832072218021885191334051494335219115434453432265468629575612240138238915994597582906142008324080935796983404597389256593329795569663932686401599375452381869185145932254069562804090569420560874954944365490529765914439841665273362299343067553144765467301105461948223495664203688238846224442662998895239806122940293633737495962166999614023830612062669928293176969859343250116212997561271212538926575617714476312805623885682220914861161131615024307733435960871931136504737298217128823280874874416896701187277765491108014539786187550138912091027081166144577055705680359957859732807345132339026019089074579032541277693897705400616592558914858065848404552722429187429753527422412466439385914108878940816022268372955987598284986792290450245858114889516690444694733579545079558051040625640026190853541549161959729214484355675739487811411910416529548734163688611369978469687103997731933795072942813114044876659369572098459316319012000912074800615518044994140565059995285967531227564401058701607604671047532359847232740533205309377914889085001779943633000667214727841345001370966991189863990024368079715620010887161800455799268925668251539640719246802722932849430682256545403086255470662640954648305063490670559652318894390858236278762731600822564479217382668100025933306435092245899997696560133370760217831119745134497660584633063151828703442918401188568778612611432820519947982649238404351023143545808079687124931028193834751509780802891102462311294296267462517820670952205710077859639584975444956908261323230268060557542423804919104122729941060361617092438564926881028211925905317300349738021564324304643827325999855057022895067745174153622876000571193658514416063290244336572728354975169839575140771945645838082826440812465096881541667970583674628222219123458115609071278855661131730799218294258014197309879790373232353273128543616705011905455823596640972439162526320430004705475188725806074232287828108754172167582390755641322548381951912589922674637949107289372999461009653854499651415567575810052637494374116120326876207594314129387539129196690482029493363886095823390952315703888557646389361631274870855960718158905863652411222369900283458016554238201610523892123199597021601651581310050180332938987764126781033798343196064401382279023442261217055571664918587088981903600830309410315805130075676363635526094622266049141246579214491850886531273502215388466540658276306712496647234383001279368263983369427531302457893568986645631032096905751026305297425794579899212640484044718465448667661559223589922829866994357686415689076915299089018293555549793749681652506466155983548349971811741810203932597179378601482623997055980606242158653557893770338858100330378744958097429033477368305059436372024331559634402602750157765981505015183435097669517624708256758991786687882384012252362473488196264519800063065745581333523252228067203252464895841816600654887945566765048906815789228759043667910117539505118500694205981324393204401983271195133659868266121359059615573404256569023953288406726595850023294630021011946628153290625790045050033001419038372095990230370310507376445266234887963182229903357570461023524207864660003104402912412332387332652685247731916196608596073531729935316073371704953244443924071151580945655304877989003076373529828562502371812708085175992728245458977866252974065211922335975404126367880054659423346795311528074712866060968077230225407316025353219365318750694175167890369553573440284043551990055608814383985990798176006407445014080141123606151983811426131786321650742063104965007106874786017762875850688673005171178830671264736540883355307399479017904514889761351974302005737262044875358479316226166589627798390733698757918857815818993449963374160445129074103016505013359485048771139409153048952263652100640766801868328526580445149277407014061998070795924265638721795023431058628602041231284335892990123095738974913621369306853609811587514570659941967866038491567726386562194666538973688786741893281237238009366111682185019801206989357996805640300450449541192621140628307001067330569174295260972693483515113739619182356177345301364114950264727859631446636228223586015451503450369472650763693315798464940397652812063377182856518428194002669112959295671026246286298125932483662439857451883893300579638279316164024577229187203959334140089409142363102871384433445056634198911816254558762757427438794371525505876961278352842113984319418651633787278806353361255162073206386829327153962235351118350073754769656941734632569822481245865697743338274901477498249957406817526322954525740320348799223280138645981724879713126310062985233939515734389967273802837488372107805067961165557649517093304230752285121777633351932685407550498132550802428559227920597456754225930174138919018899050324801341245758347037344159886920756884783991970011298507484991852280312659090666149867103149867632304802938763349864469060100304094698466519081130499966393487840394148808743787274089407213573391012265623756487775107851179211651559068961075734302118150569178979110001781493755186391944559184105422339245683048625272069057449621583178279439564844444547551409198799816000848138336630270240390690696049590682323493684668081145179801741086603987795107775587147172355269420348698468830991758287595766980205886790842485819149830729584270270334422287029927263465525580178826690184272111346467029364226635361117680352610301727250313298370026402044349912825267243438081055080859467145653599161402304800490026784606276106524830840801722946411299436658006578069287994759077166207948809813744151464486413903865477645746468591082586468097740683984285833809094167296635197718520874546883792704041265576146141088951675652087846605657067401246179723655388025599696381143542157079386700010906258520463081838885240875632147195525632641598030138944281784942498487329907101936131996864775390377523209149665113528794879692109087465065589324004158526126981913887810032844766167255977701414028236954799596925544050214085448644167274648046738900729679115320171250266787913980235276462935835459328486077270752299803101120077517706545855793032340292236886599897094054863965782975030953999615686845294233731660913864803562132909128664097181756979852442195196816842534388442368407993463380514055338052215377096493757226821632062773653550116728850482422375915456400182241421712576898636149714063151064963787177074210269745581924049058217387841399289395594548631217789488464707596368495397094644320262905491372900361804499999540674989594784390159452425794804194586026485717863320251358665825324404366710387288699589095412806417852926448347951279006807037288997148920763719667951393240048765151612538262921637310774604790006860257468751595803290648713568938505501913173984460015485121342735230144295163515068891447552774448862498252794877119311036523660619119517929987501338860370762829821995494809294650587610326575923799599112822703383837489403230820191136897145134388890394478318709174784717167375080899483321014117274896522991794605174891313599648932949524735837999905993967928992697258512577347473318656750042446253115475260838791133989155447767704543689765376412451406361724451394823835229268469062589968717282821701587203355686348264431123075674497750393143400258890550773438978748195319985961767158037255146121813159522280875367053940619654673468405112880215575154095402762639416275117897819279548634728219228088040599384087932609965976684728034319885791030071922662427448546306061104643361025079888065780716367283054988195694999664333403851209324709105518612149957096453583488930119025606045873852516566580259244616623337471079660995565755874105966448673203790561416356612745564778695021069748894595278196686073612522051767588222323958845759889271309362294155586831950302087478869086273752817583733632015140607056858671765507318927572005901234669199450418707116283314507292299903623348722937596329168930599690509004319486579846279590550207239101165907534354778669035190845947349431512101713777247933028951546607133661606183680934878360101222041329701046249947197492005958101153702748090617104618237617581714268095787129686316810650989627932096679341873530057857712877946082413408653403426831049148758933424826214435872337141674772325041419696214270226807521440302433942898498749048992693364573827851366859861061476434246198547867256262611741930151730881087922458572456006954786746460738902385811766891305439880616138441609338188428406128032115431837491103555819087559760036128679120846340491447271049008510500065915976312365018814025737007789395946143911771746735707021057512008619320429391198139731566238326982848239837243558234063427690469830235901861691074621738012531363210954843132851344263281693025247256678401274119684779891972544496350315253082363137568859130242281021635775831344967019957676221978687247690504415859182554802282821878299958317666123113465262101091310722940735098642446306432053361187276391339188981022435208840219293275144205295471040201332682168570085528143698664003307191946538261508427129700699775994124607269897800462623275105383032094934278838950168480396907632902587920439355134861773832866571421085174859250178417325392956356604324135631330061596988657369060658746192719927505670531844543406627040432798183610141689618438201672003936896796434421701569840532560016922884483273999551194474224534613962355321711108797373450013747086151269387464019932620324544642043021026289123795077273494561884679567013029619306485408114980544998944841767970253849657383589395126892280153634797395251636818955297355177986765600111262775309570726366991105273209132615862086890801225899062838772744120522478046782758428974726542762216519893943565458071675608630481450692291499661005678996869007547715111814953179364335079787678142316682910123428207703734834392519148754327611996661266255778270620759370545073929626277497820708076540587516852885978389990639849838540276375303464852764602707174780145490566001247218457154329490141973620821916712299275668768662521901318879037948843456261088437408765402653436812447132125354470029167135814399986603392275448075633007548042632042504330821281383187182185385696161298041902691326929527793695952566227016158829439639310337484424207868315195722980632621274756005788983066219332210654843538508689385307547244571728969710950454739637271813358368568890722003779252827818319171463555355968541321612245696202833594350424778844531447252366020732346633951469172668164577084373645113110897933302337801121929049386441463434427860112147767462023653391504566496435193556001978916585197526229400903169872660543166120771008734872664569720288539767668268963076125372240050303658435185654806147282438280842244547361817667416848282425008140698248951362597322342407550870089450360236459064460944464970632217459994809814797816130106841478599634583068040275544337538913379046250925191801703046781308926773638198592095659030495735780846434573553232564717628452886432611714686001266175072494216320567446150460715955608491283030929172846943073533975221713787581727231658989880672533368761085023419339853189970959420928359765604769061788666820963499671454302328202264058894227701234735087689497582246523218093545116673419903629479547621920515282271884512073003672578014444530095972978935199357575470874464593096339401949084503341844378808820397660062291807917008912485048597646863748528422420061601892158151067216377802091262180511416317434263444047605196392596826718164489227043486077473784175494067335779729645588909028412514417230586475390160967231035384818051040762543688882067482176246021760736994172971563524053914695396431982805491231356531609594935396824574858879618827343722355566415963485500927156884466748866056307265340095820369202412780518170183879217489670983155139080834825043059785106985281094950777655454917388190765088408045047861206791977151553667430733739109554846300830976853977056717140833371153329418423079737474695482243718160855715324200475040231746556227303717045285984299433715228617868502677924342630357140056780605305762416517737794768473320592830092229073539050447537625899279934317332871333006812808038939165125518006567763597884545279842130816944650816513082391430346541000551347316206656829196825766809604016779661984931751208825877394953793049126677443518393935687681016148718846151598536372908041474312147057469807200742046983909613234468145532692464231873089414418509963262710574627740453824003459337578658868380838416741147763361442451342139048040625120856068372917391077153713595705848350853891811404710849325828766644419555343554298819734722472212886329581866858981025493256692321316820927288181559563511395946904613872657525254296647034781132318977791429456661077967034535421781918650513400734957027062180815590615382075398778544207490334055883593341171639681765968836681745819566298246034609354197305629569387468978858072231762337823164338175293443055654709288671760251092246777929090580016025803540674838315796811813488144314301786332653842573139518648668631180110606702887145099108836325796083641993460775841508163081074468873247504887080641611348232901733625534583192831611519851966912768009324408306459388021185568881541047189481503283638243863550980396594793363031879685596205752629948907692973195641156812909121954327217516182180000708788679409576188568879500655726826083354909748488720439397559715778498461687324019600412338790695586403227885406298005551687335405498720244574148955204424872203616968134089353178797203173936955783873909670607417759829058638872014220848607764636628754633128187766968943582856578314256112215928776461859898868518897934039838880072394501464048382763329999098389828679503588829580778328573254102882421468101317699771001367441036257983001375309376563671542657041161226423469486732414810982190315701793833417457889498372108082967652327813691413236862882087275369709462156803426000650578983628138542951519923236688603855916401402443021725155946179183992164661073134330446083983801850349571592451317898675057423775987287879944169511993110999664665353686563209492921784337713375741935256672832011060041062931367825600620165383616506755404459897076271760272477239669240966728429800629531727410333372668779645292844861985021086775022466037639000910338621185270205081192396228635543795955425310620004111116397734838725208436693992014724120303902501185345178633594902229424615324901272825361865635364227375137264796523156508346437006546931480686859245642580176828220377521134985251800727295654290269843146191494221427570919373922159093682869251293773791150384354023511336311555552142136559361476459806057578043451903662915541944367764329769830031898013107543198008555810452393244031120457671425730939878764418897135972014016031570815130298762792681659491435952099233638187729537061051482645507799838520281967538917094805033869251070179934500630929435198333128058532277002581508725422948951848391346689163431066789065238955070366826330615971462661754603814005081011577746118617339451982610543482114700856655147826791953841365997589232727898536297893726633223141564245854128858043764824470283683170078862614437300060739428243530198065434012277252582688864809135857550335243980179987686882891169975374350050532268677337870239800402941425282304313314760480345204316750969069712629324017952385591824570114045252170030040746742383956694533750286679083260242698835611358478849768076577856177086705205879947713294621988963347623268936701502936549621917773707615304473125038143008774477568312909681453033435370072293421941556271532048836612705640911233491807814226524205230977486186258017053341309579351744058346793594532245397454182536819842005394344107665590055185497685763028459354950375323368863905250468006720468317651124654783480551877220134409684965324671852480437866547986953185115421970370049856157827085390857841945753084522516572502232770856609575679674933397359742015628940848046776693272620288881935354051252140941343932925361197575844361815029713997199093580132163681650142940272131275359401946188845732123278967160656765170562232582548678311859091203019729681940357904756081441041303327969134387506196700703034174482774878277613459888785157915568677843443563576715323068310018833051207374688415266524360266963094187747844243845642257945241130097607628933745015813580409825256286678698001718490144320403806148187996626540265662063120031506601758564100328567126896461579355871055947426686668467245773884467206595679832067597448413181580579431993972517845469256818080648137178201340800068548178855088438723827773000998660906691796944344017769978005819139313698854579093942282964464398145955572439618923124122407582109125348370261281631663741703824529608212362238215334770500785867817593881896710552241474832974203910617141997224542200001752932256940521980245697659730855687821791288554908262993824146746181150361494208413710021673079185323589006614501346169670793196205373249765106205716794817907368936400333838326108403049990996503750559131273019411401780707740394281699492572601490324214343055110665526309538700647583860809530146255599174701163512173095466417458684515251541096039118476120111176782532557799513746754028771953560615947017229766391930482704781225836232830553299339094322129068434872220930731103500458727138663556820944489219892603638285357378038582824783342415405154796860398338761399415392201015761300206480105713320008882779157287207929619285826188961785811480948464618996660353994858239660917975615343463284830256779707860702123210769973872894822647227500952262746919155315548893711723358066341265419560269865647407696975141610627059933600682799174300423993187347880455991294334503347969268434514880661530569025620250620035450853076714013056109058082097959641711412650845476107426509199681838034685724691610025100908507731636147642481827116749086154555388114778943201536729180231880827291014785535534969901988511923620442135358956328285532075737562388868366437181502155145345559786341048891033492915472102233544745191966552526817092001478824845088659748223966307308297125662184079316269374420164020003876672435366012144552308018687054009600258462241889913005389416617256213832226304672259761071553722002327632453348670843194269207930451985526225276708494605311438227419959389142007025936974628701699657992148597003405224087104869125795953262162307792978793761196788141504505387984168207923739065166601688720632945436410758204043611970746074806952884458615349114890233828915106972152908392552227948473887810747643366487999620279032684879679711647119092791128656120972223402490143603493054729586515476566692821506493296015642178936053381734676798415533994369381819722737200302477229824831584289145588083275533963552073605771613645874667307966643164076838279652752509428342996774847106780850709230484582248825954265654402526107973453664352181635120994451482720289634062012047484400363761731641738847923830559699804194651955296573362033691271190429021764629936744125341315723558612796763045453425989121062206644058789419817775612353360548923461798372838323158278561464590126966223278220975381963636575503399705981817081921709007076398481359985550483004975798052065139772382628486175405289684939115711352700799849581363504399957570284043719557216587326097025150956748177972398365658723716799524178625557272593470483545486530194042667944772964487854798910452347713700988091636502860087693600529087567579154546248611795770141342201857980166220878071287038382242153258619081205454643899696796800371889057641280306320324949309323024520252149204143268045504085892328615984247944803514289559420414687979441749944635271967913738415094481264019783085601640682972846435797135687566137627003845412833670461598975755189551256682470447745356165052898257021423951804879369899260500256557583683981914711566744894437191101382080221030685857843231148409970406932480204951835672702624802131969967950063721020552840572536436833080263814880934198588350800876609605308256026997225424554012841392834238879855096539968871942128422767863324919948627045169344818579636480579286492621875690383025871831386868440779302256035963808693150928748713425444678584842838351865614518275030617774223492394893615713788266442554107388241317342408297817160817252147123479114048913321314246534343122798236980935606215732987096144696458761297310358268042092886895050532974453913842395361939923565089872707148663581493537951003316633506085601770517838303730958383889187599172102666249368928725581430757585174349119200201031892619895698840158015065394192610719445027597338817115807224097691441775194104776623276558677672202844952177428471039384517257730263315515815439115657803757966350558056131345279597207919226138261186202523608331862579863770551898266324255797572879569487598877428802118928771257203124494170022264736823477013826602192541861137479185810928412049281153124490287246671416754374723647084453163328672981434678912684810430785097781921885838246821337159350110737584405161738554565088083317962902483875378417206022056252264138195574556240539200160870582354897623643701201757346509158349963423581247530930119342543949510181005416189250799642277180573927187934261209004639022742887792999505916892506414925439852793478654345984292342665145321201253202351320856373889403789018997949182160146620190251552713376588234547375882433573049660864372464109180460526046174182187414574749952390576851399857320155336237856322040020408717918198884649346309043890086563841536050378950634170094541218698433396506428696915764185094712114809411323030829358999345081026494904939093138290872808264407744886442781143274748486585818481617397640566409544138346392203148313209556670969587289610001905115376847757580487618266645803514758577803129876416388187440631656563750298439809817513085955992600905287359541825180155782952658664366704925582236449162402787577647403070351752591182430628268887879442900352359130711121531287228856535612343061965221003029434671477688424510190048098615761710373366295060366853846662644705307630871082961096222342093624016815481732221643180525458350658938227759047879621312519763018687172309112103851590273049322142175929226095055754146038258584348623059845466595325367027395575685594391447597585677345861071286462923066681641597215495448568746539741514962088606842759120759655198953163926056212326793522371237013097347171721783033923297288631722483165812816379388870291978253797040449511255703156205855972627175391193026621156674823039936584760512858535337828744364615916348952346752978087022209242582532203413076221481765054755564735747433216234801827816893366688499513998438591053338616744716994626271633512862904130860114730940762642741843623216290926431795213004061016536452355820815741240211340450467415649767777850731778650978491236716092128868271690041652795202852252003301238094563056242474242478437549825565279540772784448502156384742506020745538237937950769880630753261778881931063163409071396110118895142846290007205150187944652404654474302790812544446666886544020333067264811230493453403706473310402705966260068632230652748630071286940481049854383951353459264628847095357065046310759725881707335609125688756997887441027327865109542187841186942758539481636668063087466321329005518401508651665417599765037399894555631338155844986677486933733504375510377505360342587161139886543916269749841708303531976118610021630794238907965576607263456739919886129879396964862388665766757468755208513319558287919268862389079826065233952960500185151148049943663691560088446909220441407237581409155285872517242588132969817641881797832862462972390234946286353696641840068410669269162452640486058670346733566363153393114105929349781422715198468612479543496199579058024180573616282833206213499502208055389963530325746873768382683625551761095156207383786425419468989682088213957200874736614823954947238373373022135528018944424856374601135185684292225687241989869681046903116694985799788871004309839972189870451690082489710591252505899776077376140161438211809468121914011556726564914941890673821790043271648728277525299812745325401245498484371377095467625662498865743943702082315647654992160869079570589488655980301512693527822739554291467027568734935242624229877092028135228237954866504030247082572194666465981297779136749669541715580494181592907793391941920452260465012704183205896630618866391015517236193726485095820510718104299086271350554821157894013236395518210653904952075155547803086412209708311130730397213819638283146248308571638681224614035924139470621729913907870747671060338423670774980608520298728068377588154987269535842520795167458673766062779023629098835010914440366132367772649746463312755180287777668787895573005818751850814109718043768406986368617727242285285912465001566840128618280532992803843857060310137204342561784348095464914578445958080606540150636282724354817566603689608440897718476333222844835178078125625252509307497027141391382761327402921765398632502338289446380272520542787131126909256950682387930578299490598291330200796645220896064290134928887569078061641964561892925831557967773514799339558626076704625789043534356879044518601650300301130419307729630135442924829944191122742856887127438473432301011323720630371145063468367724018209651521974152286675034387301140844977172817029464794302995489190720784121295999058700973785864808225591625072333172353307467917991042256937115830833009144728124268307448483146106456282740136538159563856813666990760509427288222853082585695240831588509320649412489712429562052783262483821405603658432965699888935852677102039812705969115599730853285167000512417760385032488721924650227667457850113506408418335812793235285548869676761543394184884351865612227277593461017796124671296720507849974741209692940170515793858683715217872869837207637394424377038473615085316607195258931916239153597642216902658950510971403427897161479652017789890170732543451044974034960886434758457211057475268621544924684359321244672858619762897264219018830531972121732494755977764594047397536998905726434868972255183577293803407433197205811787294627035109938963884645930547249839494671362326522805846981698649831588326608627369173974092139101224755992311583622214096259824511601760921073135477987769351780186184960096661413443761746074397233461813488065027420927865076743130079848245694819673140079629313238031486290593375028030573634009407803081698927870470074598505960130261040724129187520179710774814004149270941554390354144886288974107467728232695151129498645546322194614241279215125497425638256132954946249027432436360342634333374917180102305620977140423947362544352597716319423740074313466942096427710687206518675776217719010255265083239901125684587127986992800897483911689602851242004244957762269226118934565947687541929455394975044031321182112107426359129694489332031999277574611585790689691293726392956913516437532028370830692843510764413384399333173162018646767858451968253426350749660398153904871979632687827738528184713684538632191564743601947596200561660140850950597705324195867775189670874294470410140169935078420899394934895467372423833165840094712721191117046685857453974429130215617609556018673542955082176810153061583865652365883867877116715389643131952962491795435148524480794376196181578349361224003637981710882519152906664942730334063228947043259177946835978006373108385882611794071076624779893204931678165750899101549435973199208696234945701478493483357739328674631162238142962185262890136454595643276162160322253319707728716197172009073029268000602947293601326079894961650820469060914708081709503657782732351161438542104373667750281628827692659293587786094192189552332510458164451452621929124349878994941087217021236996227031687079808561030901931652403080622597125057636210345656127821280185124300782543832615000757709761788420146016638087696505184711237845888757693550170249688043816812196423009637288939495181030912980608202242714548280782753608519892193103588631232149169020993181746320282780881204583430987619183627168385376120659341706723816714316366445594301964659683094295536666589946701776245129826589781307562771697439866342651461397093337970446106453660811579263162850344037283916703018023879685329814188651458834222354700167205195687056607455236397113824939987418990682863002828151893816690651719208200866686639832832602544311758047839566357586901885816716122182047364506464434814680488179503091688894080793146173858059743385104657620793310057816672414030111542508104326789802166961643069844353666044226440772153235942093076394758673553286853255225546652759144038039697933924212987655005820765260736136140755103807720254019778244718442705142946157709796775202945397939080332884788328334045649472364924414643300041268902371205416406013047209778122454097219840176780017335280127231491999214323530810828136264346963808875619241512265372290708466445959882675517461464533806793452237440538122633369667822457301972589144483562783935800824714500334510466548543245416363006781826942762245988522518351616731253608391862862223087116926530094900703536129572422553633006790863116371367838575078571241932798084065759475759689702903250131751745466563214301867507316090501155428429434467360389627792543493198137610170905774743200555726174361435449269999789796680028830564750610557538687823336403574771192738392102843311349763094418509501127031570370932483831661819010286288210027067928325109737696261947949806785855776216541980154203298732140579539094469045427887181471027181640230619917590983198860522730616615034261579819459997906220544831953250974169484858056334508217746633690070423445469541645244445160907482325951256107651962379430337405559471655626936887386484309124711456323203050391039920118834586557569523709596315430314818002983765358806109001857251361237078704074683501669290184255349269298692676815009415114220482220858247513476950734110210414287312902169364514945122307407524401009796878155979947950986972752480509644066561937758728275799506085914583343866409610622099343632696474528510052072996321557478871676419992179700802137730285805140525099752609335100237708065871692063298309371469004703607668695162590421376180152727831251621806424007775886714767556858847410619386499806959245926651783470307106114657342010565208298987682191272278159425549026523845815666789266814846094315182169411543400738144823884507928866530157473955504280100135795719142185218953225670266269713822222683455083626919688269353982158076279975061690494987994193206321724243677344826217014570795291609199521919500396779270149846704532785833807634532033770140296701312786986924222740753622002832107703965667944868923126024314601911070043587414120299815423777866023504664721811220921956481084286620272632285646520920867795846510106103800635005511354017991084927174139429472990393261510427964386732688490146940234381378345561620556992834112850445670142229635089740079845862134904213972468641463049065143317465891804856404929623910377992459324376791067520313301987232683053100349340916218094891067648210834845343044034338851684943773681983108319470898826610712397668650748456100052401922176207300807631861380145764334703606023434870816115528839269500931115231176144796064720139177878656490368106566914999276306652413228931075209975726958026683207571513693090419405328114287821771076038849460469033289795806789693756029256007933492205874348397667980075672837645470080620019472655533821426867753759385249317254495158817551276150309314235057178122282421095609256123482242023733419988537620814568910617315399765975875607208266068520463788427705182222709114523944422026688352847512357567965262491600367729108271319850176855638391297242277935141840692581108926733428178218642459220528704077800096889799009016022976398716703835972404990979172201211081868820009300720483531786390853458044914354585766394599299192460824255609239885976163847693185077988905571646386334934177419893082333892269068385724285480690941997004419491903021809810585612608725013221987003919841408167805637015822940910125652162413657107765491907652581839030052416475042924697135101338949723284828003062582289001030151404954513286656106919591907276754383515080213192321673494422776747812214935075610778844711183032093112392980224219710171444396260310248581606089304177896047420132422892673985694799976419010487991958356977147412268392911223942868170152412820280460727767923056941867314179209980336227882629626273334827564957316076727732689505703880125641832075162562499469868195246757319604204155618835805600534742578156901485820593813526059225633219766245836265244269340104073231302339319744941897238327428649021745667867751471899124204436305652099829037699050161909128953379901573650407543890011564748719263976392446420099392085413929382359643219074035040236417377376915160338156221998972613905622976433369371549791523121185133179265073991912898521310795500772718765218316613671492037011960986306078804174430649662969886777164069684434475810928127313200413102507184104245282094416329484394282042587348023672088214650441548808646790642453715647411628930827591758253342133250500593822383013753898824374385201648465147631509663117188337727022301875210128482997130827204721398817958520840472970213643244645586506121065554621137993451736731825217694251968463372204227608364949279857010246066810467607688445479734853585424447605873506701175029547546889184597248485322265110954304026661893638285018912670533394819331183727790674701158704685654007660307208583566014837729581380937458481846557836265356971748384931976476157615103355697774750637400556818060411476886807806220454943316841395782368179361823212590715205281820875300030259870748244283042412747498763143062251858366894443758844676577658717513376043104759918734877045673022365867119058502799779769723691498585961351139928554509647276083058597632532001495678082980280443432038764914764541553846533303876855433967707844161453870084141706665204520781460387524093132361612100530276611239460865847419895343821987150357675700346768496710968761070089617479167340451493496138771979450843238458331542946123852856796748175408878049430807741445688768957761359156217158631224434400796569706183892639687880205735152636566200634258767032542339242702656903547632499676056875254169023981446103547132956766162619184694875375889728902963995918915453026122437877676021134751007710353849294746991670218915584861459845649553510268776656890110804569200352856492758577073583196810180081170664712409413784784130210663034822568475929434157354881994378267427857629091496241218634878254484904422884430543243403449184052710856318787634115241120618401490611658028527239614526604153613287657734365601587931439106597165076462525606114080767610311637023859085486067615892396916336102753981912299422222991955351430583727331545100355353879149194604154740282252332948146011312153557128144159709619455604796176457567652630665823048060230095328386579583092123775870544657723896168157972228203196094023269574703453490258195422301256050433726847911901014574037614295797959867574119446664516072990120955878725700682391499846079319944021431111240790135372482809423228592893175575210052428070780535184702066542429801904768170346922564423671697268796807957362595693755789735363263752449628881260751393460749437536390735004800571168502968953383979604815707199388179502055681470055783233148807716087095848208273220596276463106573949163966659905814677940948785459859140761044872444931419358510592844535329403739147894923137927239511663738665492977246281092500240868501230747447130027990890348023543713307498050458449954521151231010214839515396559072061662582224621424853820158820529352745143718158268586948581514007790619453664966617343009469822431076715105234533145393149790114502252790550111577777198801865458402226326562403650270225262612151970608467535435919126124929241070602770397548954965968747725690876362584155273987469903096509185305368410394794693993628710251157686080875179619699323223908579098181211048907688727724449780380276796437936737308534194027094531399755690747081782851653368705873355735559250397718839968066502101732926169524602401606577553993342773080639730419673917089077345699795797254509529261421263540421040244128745371394685118637900036762032175872362761530188756798207586663891029729041061233728231955561037901303004616733168564268384093071234572493424413278024871398578245671975616728851837112432348405599124606319016849544576172040435012650346887530579315487526146209932961373437837913356115307044789354363239455414629376998960721279307042810621423985596178529621450214561559261525326757658314612696574088924702154141492679171409453927121220897645568322340314537321001511108168344346586339640518458307253113508315351289455927173061648457506243701405798522613101303671773470825079494412443040629007919148075416313698086920971501434748860019508355822575463871436765736221207995298310775097309446928113087393159395524563869151004745216642634037832247883625827874039427463785877814118569650441363565497100975898650915534724023813565106992607242365442490623022178063404543198063114132130963664010028557713062453768520063488978796475098641040443710977323838166311290442362928473081887271022056278352428993878464066530895356978983144036152296224119883294558750285931136360400537203879575379394968564106789484577825352372948244833899563926191540009421461552556797067890100438291657602661978767874459421085543450995114003953818672328570229591797336846320968448767972595862831851210081979893996234231559027046440314449858365994307349146769014894042753198190946898415675240616818496732621713401594507915088388577992150021782797162404356024422559448959310621495280005851341446193936006844350334669158466727855876991863082853481923830320842655199996338585014071044397549798665717770175691233392952970262320832574082252302000995581171599186470125338715464530879683642815245499269608561779901580111125894982171382245124377666944486119629949271255803735967366235032132139255946252291275867787911477697914075711971556007450667039760531399938735114988803701637358567952418476108743263056570036281878804234451214743152301084500293947790780774437878931904208494002168089069928032982427278867471192042681184392388212112149306371870011640258841227713750577289598939608005194674680740366752697733683502224188084853954888055106155599446516353157926351191036447955118913285474099072483513083713198373805267532404294776801907425235790170695050351882436987053403095623530179903757465012972255430606507877800272729181471323151613361830975366146207475572297431667195396344025402100701070762243310476714984644594567802673301248959802302984537751510899312170149448108445259599706425809392424632630191628532698892963159952812827405871267860123679532458275448441305123385161999931815986026540387987505756470115245138250174358570883543192517761403747326556364988729042896676803842803280518893692997801556805473765177186078340895924826029419407769001490854391312465600172178619441458490422404482605976229493271262569640890433702951181297614469701400908373136991105275003062222976323507280962853425187763205097193924917932511476100212474809714796671423020418308000658474052556974591600409378842158875094724261326257382534667877950913982470888526668705874063675560547272665614113119833827146767582504746991077611700011301780106708823219610413362857858617012576903806937628444836112187497177805400169877407284571080864820100475466053237483181405977881388025308983594497789583132620051688730159299080219199428694558815387143260825513719260526438264830424512542094894594840320133947222598166828400650220953429553192159306174442165812977406991592001572912832601411679665136131525160098883481556622344660413317471493308921934674875806222121452330313274508420205826015290189557656960908920386081459241210750856620050300091786427474576147874922477428062902803230090157398382338261655876521771286278305264487089238167340291893434780732401174572787839737041722090845107111539775113074225514198279351896615267654794544913021266321727043217140462662089294844318675357286710228412721914411070919358620325820494380851303355438144419030057685756193788893622641840931204211298713702465113212079802498471288877144347338157417772610793636621065244651995443202418412216996295343904925996064893219140401503362357347545317217537908789793743050191804495364199501989608114411390672058242238337226415490518938716243204993441750778527731363871656156211658448766533970363140763016739959676326895300695421192566511042449834837117829875292051222308385106131537378808791605590943885055853527057501059457890202816840715892010739876350650204732748666551693103128123512037469964889495203928747829932277757540022349536283379220576499972116472865667974120209027355094052771714611375957754477617410918357805465549330492630838903161917354017048660324545080015235553428344300612728599274691417839121645329182743583431038193313706869268846080332155584558927596453223758103206195477066936360106418276165054806017963248769869977713983566898855824607395125098371774970459896680946444292854799377199130149788528506146692149496470535093082102615402420656112710281084595187603454055371614089051828246887183095331322406487866245962488919509212041599335923349165095779845471941620139970320372425839838846474680877726907449413253942189439171293479396849045547914869861744315907369307105545709509685634367799360196164804150097911030476047590296916328217168840228124425549802803678654796073631236202115352084943964968067170279698889097263195129747409396411483015691681207238206973753555715394491530631044903348076162382770721015891446712893669071268270287433071024355881765971870257318736096961501278433973359200158421036571390705710702399792227457851963847461320904670144060407606855226651787230886058326564026473743296614500616902225826143213105843771493377657310442384499605972416999316901158010137424628062501228607631544848739598837017538203653751051185059664035385582414512624072065554972475371611623878378298079819681232222110512799589499780166376208754646122016338385892711157689251363185905584582034508752387772143947668039037529524027928026095781575995143294532093301165135963752577823471459089094596805375192357535369843051161193195476112508616008799836787162631921757469668902197012777293009105479942324691326929598791157461628396974998482757345246200458278787838400282490679363459510636598329212349626807138589729735243493343676396238601876760468204171637208355144048594149828334399076821000510981636595947685507484449068896277215314855556092611665683172598965707847431143291788302951680032369666706225897091415222796935714112236729855332633568397918179141211371459784255777934777227548886492435748251537868718729268062124689616661770342432912319116280645765018682928851609009839460657353646250713057182444414616376372213486648079779844340805655433091916906466867724456664384035925855748169170540694994914053347506465548909526865181783590905080274326173317690395171602752695746181976038905780161987200598483299854855139711016518710373456745915046484519116098524362266444566416105262459888724790632022740720671844520449938513021819119361111876041096907203963561546365825239829741620506880488628746324456933745065712901151768204749478663606582070091690293133442661413344057177122108647801858944580372482541387101226112613181982589155208776029816208217297382882893106360557926971615988229760186037838060133960860432570498768277687721543991661564557851027744799072861076280070940862458690496772354004798811490360667410635392273032201285655252024551981621118330966602684586052020015860133127705576652230673657028550657382067567003762637774009537556899781822915796466944141606264917646070631601293187563088072439791932974473981398639314154817783835536132107609144739590985922143470137879202851219688670084351281785438622092923085062139774209396902574781065922311671653741554868773299859627451995794912873980928956182038100716316842656589591876409086182632272855893209323431784645067256343946740988753714622452547071093706623542673433749841560362445040113800153709279379325394234262783383593370589065136359906003141481192730227622829168773742136180616991317036766541260644582326205411295437849701463795476402861986199113241684149771265742870140090068335935848320128458713850891003400680593481659006436669520767272886133638819409785220585028792838289663443115048438270457092543779318909629190562655328786872343015281395912983396117209809304451990283290142186923132566041093584599800671337096276941933425610375788018470311427718195345377986492950223156596864303676929765951926562112798447597684473229652831967476755200080245523691079805924083630462078666186278862599143600493289104378382726701970653063620450376743139733916164539599321867544115219456336157097189366697793875332108816351485863937742396420865728561287722314449736174108642699849678590714741935987704458842393383032987211928882043934058593841266855119792073258246260662059989699475186530946230596557493787092690103915928953317078704515023872373764859943524987745615710397894899152865135502801045427700464948719754204751576394390467251074666250770332986928648480361151345783780920427841369839063672531086481258971242492972177615934481801600345569735598178818190125955345424461426555049708332064663921258345913747667362978823866123743795287018652804818931404057867856483931410571304433533236310737785757267125115020168233414483957544636802578872962997163332562140455849995087940416226891230411980603648051947953669434287687484106435029110378427279523946773125621499703212413570935339085983957531383148516264601046087190725144713718960243392596928008965700401132798383987660025943814339666127415042299073142285393400022735808724115573397720960920295896836384317479869724208761761424244214223964234130767141419059877858122254697058251550268700648006052654871052836451944906473006715239511632104712153286599069544579401563360639806688777834389186432722326205984239225653269978494847202157515632833582799761747828316313914866116999421230410651298904737353248500800975762320859716413595107691046728636570645685381772345985661372711905426839858328638464186486340487151557760145558462504758743913762922225454168904714092867944516808973252763988209617439692016135033842445171642244446215629312024558803627584768096200566437588444250651839945333168976782640271473359980859658845160006469742273989037334159199897296902802668925392208882304995205240805163903243288812514402936046189868661212420564116928663238301868885827313649533323238877711793409055774098637858941544682703239373272619883117246111426157398344230868985737902516198268136171393858485702443792970595358138643351466817690463150087060356426173017817071458524041218947699703634754028180092538227967455133855408600113807320155949373984732991810110720675735261962056827701857731741523023408826039379095611046815602333459761789485923926609913743173524844889530913292959405643399038539795068569983822085799303557952364278219403208672057095328363323402686869221996790099221982126169406140079498536288530148934756121504383904224578971631613253258957834798838729985727737199798443694093872889804449181901405243196721835238628358330689703374969261187437809306599242084610292674227145000209586805766944949171754418604919940090863227156463405905555852562279066803125931018024580602564022684162475802933469057554044896513330359142806828966689696546181007912250284828530107025420687817574387770327764908631920949072989732094803239553143058107086121600822843111908963903880780891508704769688805697480597207689264804252251830110350233278523184059444918175041336060161975260780566499855574612290253950494373633576998884157595604274947638510986033062658258672564529853690936723587067640113578175408613816919202223703165346389699612848476439975549335712354263980543171965709213370444109688935715427434803198495393613190761608641944057295037744360723267106295715789439152733775114490755806667728236479868332170714795928286638639668468259411040713895573775563348794226899522165383427131233700473107239558543120098697846506948178006885802014715250869720924811487218322102128801656417758274879696181232882896305843931041363536627636266372807708460900229170288124374505697612688179766113950411105748053690139038022518371965251311160342376925315111502559134301072255088715200584233131461258870845749528043866868645566831904632633986849634561558688188704061762407853550551634155175691838532440088474802497982688934804446178546720461599800011007142348879301528691958685975819754839720308371511756734028601102834645741665407023549867579018851400516673777906168116200321007510266526043240692608571467419404086840329659211154182913293001862481121286566471779344838213721663271522438226641516071275927190458347358223224345400188553798262465026991572512419364442362968952739102234566649092018786459279997697042617067487326154104241159818078994006644900517712761537487435834266329960290416081018722873354184777931700290193388971713531116969234089831251969704230716781387632899513618468438178875508017780403889275284028527702465536770796890156136712452912104084030454675267227783428391248945546545107924666837821026106005029409611598554915885303317765154697809781364781160064953584824366231580356416934153025621441634287047486556604910750909133032189363550575864394526488965917293755816115930825497123644976837461442419817274150238940546591346043938946255724177898579969351181031337951577684430817351809280807765329437267011479660191027567317158266424445217346979363798900845602289941586683950534025703834586037059318993284856054506890303677114568021466718865436466480779929866854361026403423303732834516825926302869898177499425731135631470486250584887876341256067399577220986091808164751333907391632594205697013003297316853974440621046202814442431291093549163152011486003785933054625218115019552529438828749245115435336234507990944674910943015691526646124888138753695052014290484001433787776608384018019217747004580570304491810246096917555686061435012257915224709440380188558144718412000769661119909222369391138186059570881330975814420355623207284108488187113184327631633534364629591855225166458053500522316712645056368626212363923074005869163149977336572220263955106549592423464850318825313119884478735779912318608180397835577547192961924395702461655972604475732048172451450548646071622342843905780309918473555809585785705804859613374916431415398351245594338188350785523608726520188264305841558238342168578806429794160053980149341427478887482250841941908838417728128357454119695877775054412909188827198959318421679391037303064816133770013350832298662492536031573193348022586440502598109935043803917843192502266473237598196492966875930640569507668308438193701402862708938252956615224380178464969854164771233236765458198494736793830948020481333094033139454432217504524591971084101508682898260351012307084749418305301103382306472695335632907655712925163027807932517252162053979265269244716455379071463709236957608509136921495568839677127295004507658116850770787092330134677600245457239830561039008834282110522293739595391453254313546826550801912412495830074779678876668593960788457790995812817266700565874551685124147822077003290585359620430269089168319668389726709813458141664201951731201663565448497120900632165470469221372256870058785907627181915048607413071831781004814983570390672055379257023468306927256311507135692383875584191520632170854160889219433561883347236699966308209756402819690441439977263594617506598498393927589144157085862716631056261731660657429215135039208459475255024826416129875645080791620141243762231773412075193710968903941644169423318984153939492579179209224261268320760849987259674399546026043289387735154126913461934291824435783424534089286906918714848445998401387009313029664456625348430654945005220260304455777069606096675582949076383389981572511813869847916373837403389968871572993430482958322199120664874349903456938960904096537440710756303574841551454339632998962433798382570411975526034412761889346669138690925044787689688255924398547390350691692467845655279715098209617604287056783001363662527584277888309080770706248655977307312728559844227047055950270532727290480455072949437565579061469814330062430136507878162358976613896505182504977466615799781642248690028285786538893699989242883791360329792143456943629220189430999663325260404878839793248419398457178429916444355967925437521222469700429755866168012255634694146911416058300182417413700171513761306545602065389379034621247578530537112426896324348362896171052402695110513218245464899050788034539024872434005614639191602773942399839707726276435013473163556142455897239351975046079636204183968090372729665899402460332474208879402803761600460118414483037402358093261734381620594980595912248276330125525622134917561359754460858426291547276237815973617029266077061049872008038337358161069246533150541212640287370220860899530198331771705303562116252764815158329605878454384474829677313532960125938392566016015233126024254684156366966002562562648829266678379097988133086391554640587362883224966412673393857403959158147504161257850970510867734492475985183057937086009061967883415434072032794635367416674462361658788006302485463831019023586417869183716450235827168314868256750764560161263316270117897910382280279767174087150492191227362845664789753273977370333421547384478252830303146639681667181209647742196381141646110837206191265497744458140436746602541494666032677969334788563329730386495107487286533914211425536697627162085557423361927686440815682623930201540283563851948433005273914277209460855631707586733450811237597552527042494006197892262550085337422664171128415725897413426118369735664775909426217688225335470555945943396308173742569597916587757564352356628066121025083815550665790395781485397102210366712346303151096202250947484745853111894183638100315230502018022270343521471358461806725861226807041303908041183022666422265641725239626593380390413134619161999573447033992333536366402627922706534003502222836283628770364478551012367963530644845677802193984183373049961573819104063742033524832228793723965681156243985803895989998736050769855209351930915709126007582280529946987855193287365715690044508528247608313229961811161429848067755181985982300923338753544224035191269894200992755621765308670022797685403825228613436094337957949152107687780774696899283167766950150761195136738475303768017315441417062306399131626862785927148449491127475079995564941602754800578023935800884597535196086048687402013818855534800016981375296517151267138051006192785485805737232940815266183315448611235739715346703606701368993754921369117283119849533022998436314718195157985094687825644901062523272433804186608195487080849806872813379983584058594137674470029796239497865392371799882947636804387049895503439042598414107511153027067165954574051565900075720207436685689600688234823326992814335482750875651726160480609246165996174694284637661066215804483177753659115832127575259289619384122321170723391677530132475834438233487362325416338981504455799800832220891057131579987744860930716522638920011929094191559145227173308092946448096194703778199642501586893121023487732666074673712294327328712081987915891956925532831790898980126057638032375614369083813944033968398480498700002979347644033354899086798310620000583601917034967335476753538715351182652574970791016760533353417521971417802900476158998926450663253936492566882260701346557596526405605365658191437367416485752185654481610905251704454719895478917018662806652849571640634778147957768572025457529408127544922919667841627213659855085702857450432127413705648272013485564886374991615291494961996605748633627038440461670383754434734035320386251070397853876871025485229193254293425100697486287621995195033390273045037964596154653453294275627849012044991207238738013047657902234502444324959687747067734869473756670450487145485423102534104499118216812437230340333917476604114605284467020246989037588947583608336938029933717908708908669655644293192929206644828165925430567822028023511457501158457913274179004596457866761633075366051913050250147204659517815756152083747829514960408489970119927196680581838720605806017858993556273305417744348007390203492624650825101657405888607511452968916489814076208806911567241238159297583439650562387889391705978490464097313696431788462046618004591157360323098429189560442370307982269019741006152269711323377757545379182385998145333598067259344684267523305635657460385092349136598671502035690577383752168445985067347050564450289565062205343183787004733536640854433738427048887561748794317055216074039211065550625310452444221633786701103500421667068224289961116663539521380717994352255817848765259097608243983977220495477603621873339831185187080024619369122958579621118909580778674048581499924579177194080232109482585397424912632067026200192226925893532006362377038567211771198516024082881452526857199044683789129992759243733999754170748192932615376044948734236938239591467247316027049598179083496438430411960317836913594730819266774001791026438054242598567388186890535669835662710356484462383094871724110825540064245335235317444045403295595820187890605554476006288293366614539082584524010870305508159581717322061901963243045559881283600734728135756968493193815502339057479152793925262983958167319824586230516333012442618921387713615815622403425941801482005410016694050870557579190829514375510470352141744333650238559846760797472710459035705396663799721886902338988910128679853847808348123461092313586658348683007946325202930139919265165314299793654711501672854065906842776633375055572626674203055082267881247886342119680371184680268442689103719712090811729685696678265837725572987469807436575668384632433210272930315529602612724486142841808105344307009918596946464053391393932482021365525625657080664545067289649203517648398342036401040000685001066619066383699103989596140483510378513407630963055853999461327906072848330181801655861961673130243630684028753692091912490128960365735667419499652226952471104526192857321556679042878845867797896107470096514369635820234611140578722600194889796603159937603253845541925950391485383320719148790356341503797761068256307701144744734612565863830600437808641030364163205136218586630644686998957951448943344485564139519376266237610992906993198093187644210442701939890517237936233557758475087623159796640385635454143464424948362754147319066547409796838444062518158397002012713628539961318194639231930271200417462427996395824533980473033361183592692602625114070475967846646218855319194397170869431101568415474519029157696375333043613103497345664485946752837068429856986741536414397614941147100433413821591458931519232040993230634954629575617211849543101648739032604574669077190293348973047496771958071446852796586265377019406568443068659981710880261378153675264544300808260401260468622038667550071543823901190402966238919284045108752383481011257577543070651920640171859383783390178921139373913927726446834077319089693599882271557340912131261737402692200956770924483159161240850750532894101959428920567650256680311020982715853639334294986730837655917611633382440100907802896917978898507285745818127984120227269643370120169704279128429971067747945163129816659203569453869966113747897354871610365725227470786560130256744351697098356742399353739865763603180566126360626810077145916069390202048679280879310263392859735827426790948306870322923121862336571712015993710739515523291763188034104938193210327034937794876924053279938891155910716862185266764834605147119776317019961413306065727920795025500430412676010010729610402053758230242427399503506497660534596902797502816363036200898004357221244695986675516966142584507291962304457337184891840770489444285310644177293856172443544000710738934837865163003393914044787023162252516643380202952661105811073862074365986632845390530703612169093735903544013370493968284109126602752114521039828784852983847465460533055514626743858414671569491963511465740131147348260867545778944887563137020922907104643994143608927227939402979003727143124971617317138443188851791932893693330245281443673086595082031869899534155119383400848985641840876950930228558430432381166997750052622360456023959498119093395712838679454443986839876571548176917882925381687155332594558641370886682457086886511710222703447868608072433516722773160719483839259656951314454350188239116670308887230395111234413146145512152215285579404408762366539904985398791943693423157886635387834231199946906263771316889688851270530319052747776612743084288065927206396134072266435601641791939296556958020863317389032074116237547899048189862893602422736391050345999749836121518717917329456910015191927063637030076618352782076369997969987304797522312902164918567450088081894678981718931906014851034105402490418208759294333201644779411440075500996273909321200992386932460864327097154152642149615779941700998811837645225164107422271159360830930735264652754587065991934837626369738131825516479949413137840421958561456871874677068839183789458402692766704624308093433108147604322995768815666531137652853395549913396374894195004454036574732034441682413147768967318029131345518414288222562893667812470642980097953557873607913691924164363135298032495197371967055173314906180313511662311609235891334135541524265403570266986854788773537716680117379684546989999525233309377329830908734559442510117016664802435875270510825738416077298416634161792244727626218642379150383673601781728279038870030850912129166785055986862748705115777187776165035761755514061885052928581221843115870562511555518613526149974934088473919171799444008157367625209578354824603329746220556933437116419793670796086505121736691770577221530223060448978147081167539190755019308299466432205361800972769996632455086640180840375433781866598888567360576297024217522186250449499181789380377136137197713132958914780850010566792202899109649931112769308801898161930068813858785435537478407468685753141124083721440377376240678169474787334725807664052584672587369063768242498540762590708447826304953620332876661102999013365687736546801972903953764324403880935458557199097221976709084126916121990443150524960999164344658267151293934640641131132412278806819721028437396963780250083716627076526061129663219284882253009718494940398578722575902270340509235814729029564559015630462367849159876830898499049036500267228092121083332418050311299576877716103282246857525190963760541661955500507112892766220249085898223299545869466504058918824332062831398907352147931391700859761946863006536923808733546986858026331743013685211612738236315912366631712387398557072759072232295166019335528983735808572075388543913860032750369750628775737280285068050038289687937249511934830087136508962105411359044994437142316366450993585177048072499930201662106336575085207672881868483159236834341342864299338072213205754016130601346376843293235941922573905686686442255658878857801193040363393128044439884483948753803011189903848961916979644845572196037554641625728132200509132229436836549636899491211565082769012090805383240760298162848970422307643003053494110896740982586595943166314353187752881102919452589048116642974332772844436804079223651164807785737124903052221981135425531316727118965664826402471929876128514791818835780887334075772940048936192083799016385490296987968249533924173033848478110394657188745896322819840579018489678289183045420489400310472110765231905465750752521751852117642392879654808028925481218109588472991728018221390383098183361547207400145293381061837676083921780066280038741303407097853571820138223859863328889360024301027028850754632709063211020277873533632915554391545068504002161271429798165609801892789410900631704247221230823138227966436541095734599632530740054501444529232394347127463743871702824923442459969583216476328513877586274220935416610935872766343533477764722541130635516656323182562891379901900647191213114283383682543954726779929125960253318190658325660666949868669206885313631827887158921950365911837533369350476110973912558593615324786863060382258222133639541864487332509701503293510981575168144422600230584499763457251647739567305082337765112646818890167381335661888646192560255873959589085453213625731055988032136650985925247917012005551631196692787143589147122050224502658553218540200156375116075599556959365307532043749671142435890232044851964613245721071962569832853733730602675656506042466027363377761761049431693787785887569049800604723028671890733811092207700922360983277696719763199797159453270744633309113064301166576656810991952117549411659944028452575684674638594966662156761715663940324323391409527556955872952696495478412383147875360887173011286983990463828336581756417064266558761708847736280845602551091048980494530563994568763609364760297875727688285595540717416018792222420519939417377393001449888174869880546264353036893873109859002038477656355643899125283059212161508311429924625841293273006593602831022711037921022603736444326330924746159307805686018002099357216357460072938845822614629286543229182164217006977890718145904995098247445497791435954232457335842534652622185577338835904649417505423240461329373796144850453701985069392535148459832010486737825773838941829126017997200998139739721752759183116189170544577168172198571023844168072414268845289488774941700890041384283718957083224737741052865739041489747263917795410935123736562144699751460506923493251604870910543113741585355690526199889563672910669351965068401625933917899902993505171640348408835847687568892006881680060126359404746165988723794209543424956920883862202449021846207317746562477306197100548908784598907398508532952073818086606494025713691826165882549056428051691300305329649966208348906825929873205308150861031824514592214143202603098457384816193254528837609490423744202966469025110084392988759876781551089072914229118106095871645472630053896954599165679989363951394962705544226519507898865827648428430895675976623177953605014544233627784259964130021813716563585788019005031058214000633914947493822719525991382100613326908200566775231302551768227622206687036660512185119932606058986273235409172838824884186328204072967997982974117109673122818988862723201489551242835175143682177264601174233723907646046389930618220662359966402560121155232306121393958900178062993351560505334812496517972950476902809390321465575968239438399601238097689287377727504580501238408593746374315361878075934841865246546839391865324946116123462336913066631403210513023811536519596312288944295644033607385908615317360407896582585993610298548515824389889578036940035132208297382419661027126369975182946379607988229941792817248514579052427554300022763723703011523556642007264573348774079260855010649107119194749119451102762520151122886883806655899114704024046980687494578432608985876983350529625338478366939885989631821931638115295652247955875079011065240571494555489799680948116390303584045141120921460099117643794541647086590509414063620649819325632314225099723060075921386147570083941692277518530681038394002301156996706126260235736315047630111490019370254398332615632561639657724274508570613391105522807405672015490412752538203675573361616671979309403370838760787125986551132187261023831075414992566717789562605524592718309298967156864317373781136021267281116247158244950677961372600983386257482383150723755546002129076497301362138913674642492237818495184650790085181570046438200711706886730145729041020202715892345448509926972335769408877884096896668331654956338864012568561636840516470351678884411619010086382887879180603221935403059172301447897966957560160897750127112911700442479905140168006886132179079208656749799333690497520990221282883944768886248820208966145858027227315807180747479732887660993467024025330643485399633430593881907796376251571831206290193552621736520326799219692351693461460190890198182611835262410056011379041367772293608614626600678948674266356558097028983328441771601921690986862089569796491415196497342285651778629552534013666847338278472571857366008390598601183498644097676571846887544221052805843313826378783545540045460521659791395419453602369477638813024681721772212656685161244808620287758698460197146786336015073089430383408201321549088600811284228083546654646764956814853721197095301682166104290543868263722386329823439040814693705571649773378254132467010912616764622957853315813391549956694712429092908244964043783667264233717771987608724298403748820678656644687179257799479408308242473741460664989004944355578312801430476836199602570981526283319151889328832535971095483621898083017720870772695451460835572470943843476963433734502794456913650113337122892222407890372301182940794347114618003678154384324006565933296341576314116159792318740457278440372924776547694660710733839449325722987704928483473531327311675330617902136244097264018192683646819455158974120010616646960603303527005216014574156936433860180356095780358964334991250708227645206326397586196791531409019677296765925144339160866302438905113337232833974694905044795745100061640703552003998409619770810579804014647704741655877344194333072991518560179070663177005226009353331263829364914779569935400957996239940437133283056652000722671640786372862879439713274377435626955356650032315516117633146061676822329345317826418828445945957036999493964960015233247920073874566043172309451046290054541432856672253117333831677267716845534899295644460799216189730218413071386060311606396538335718880353641522384604291244179120545045327277756448954232971683857401190673800281837058864213488114289268452333752770384105716627549486977706906550676999631216997230229943639627847389648823783815667743678415534067473424841076131392537827361749212944417470389666397888144600512417200872114267291560133161168708185543743561778293688942198664517116020131993125594733538675221009331472658464045160660566449186586044958017088443035739629615061150845117700601411666131068145911020665278225689943088530526293856743321108641235506057429445449764482030509977234910182475571060863289378382167247936794025477101196972635710696564342798841086530161758522502210279833534222124192630053130511453084348700550229580203129620390700621449732726425641994126502017038189973010924112716015047862787714517747835853177982703144208181732311967371831827004399591927023088795070528232220864834888961445973460227907221184429439998418771671378194876798714206733543164008388192205406622397258837385275139632869466331168461668537009640035656704443073061979835017707708137950720029068184863730409309940596381601087922793988754722475762910783714556887463435773636057078941870931140600429738408476399724067778352455015088517444746200239962167555058044187183385201276042571684971755170276058710468934305557173518759899602240032830281687704418445524798406875090990006976538797108724928564455793967719254442198191300664857811297158472985188115341506323897142608909422206708503768778940526982023433013284412406348029213271841697319969552129638409727137605711176290636252132472001997136270305662197505519209137280119109950104911702355258744986090495845400616807008813843402643800587139503847768385144846022087955988444978822910626503917870986276687955976809516570430909506165759468688597435513013754638962199176404909961685558887639862065645139440269145967316110372607335247108673044351041204658636816883953056187159579829651264600536412611130578498900242586738770284496605887614577641232780230642571873657399635090215080675497523416497382026477902188479847916378192475166158100887418568943450041229384552880881701924999093229323436318840913204636833054515846541465785965047884530159244747587283312975076658380870374684082564240590306298580221788508303507102197058251455419149353070591763764499637404060730476693401889490111029364910025001932222615711971760130439854731607586268662511891852705220705577189110116871571164523629984384990924323974024707446681854278126434354559361623162254436365225742924397203396347649994384058968698922985311965634865782362526043471856759520157662211064764340822405337626293043790895713673150125910239323122746638254877033893389006287006552846287053894218441781143689882621343900034862344636239351343464565173432634097143822999355678466645122331861830026043884401526215288658910865517677556301312612555235885636218102305532764271783841547556618566981031519417651227896772787189190940014496298247426000139337659007598709428791322632828092992536839805608906611571287305489691693387241421559761935477769766670829289262445295770559010731045796168672972267676935135830868420946649456754291288137922602727175665051070790817691871007534537687376192020109813438822739478919716972342837070830380360045492468544064644572499556588644809056633182111320512453215281585336381319637542927801120975584502282206839725805382419910097972516974542554694414351331506184666048533712877473546017547065116424895373901661988452497493363695948300149262788373656902358208707164739441990246796454302528381547519182258345792908048398775502092462790134144281899066064746866449791287693533356576186483084278213967923757301504548084214388058649794120247636903697569141036857198962842380068560351608140786976174394785350103418254354884595377034351693965524450456247881730197641257065213797957318275904815824700719469278683350320692414499113020275041193525268107789412328648303687714397470249017688814405230411733339865236098631695565592205835659189831796264799468095064311176203957408970289257516072443318186507528251527246205105536960181800723397926020664517486623525134013724713921386871522735862417206291035275615610100810478566816098285915436999954258193062488680688102270108392897273096762696169748852299745225452139768269778022105257362913504506356823631861430335048303038302926535259338103061868357099360502916988002613047003989404720919077440404700545328439457893495004072938550438044035690703394289446448010990747289869305106185067980733412762978111157510836207125718022244139914784665624117726803380870780223667692958266350137035457840918226561721174997765570086412966267831086338866002876996910370098893053206658804310574970944308966717558263468575104201912292783187748723794210337018487199964221614471211378805052512905119759838524792861000276262016743167629777790767422368067138551403885446801023663237278694175793598006623288507156506295349346456612665755444944637537867597281465839836632137028907939261850980530803039060046084979542637998555377814899750401276730432623670612573299217026400739918049788574197381006382833211829906037480764371961930632502548677362567878009312117701404883090735602053719164543540212559155364436809710223290765337375453872255089279115000283123668276559955217171368922739850473429507012683459836894682715648043430425932674290555633135897569169822218599920140022504898841690535096541212551613074939837119354346901080224187939263857161000875627091780560634858737062468221016457565611387515784104241068001339213181444641429381985931404989952601408820604100576779178855611860101122320566659269237221078984230956343747456484933104338440731827173188421140320809010817320458490637162544250055922914308006027197170257207134144659706849603326379197685051281194691318106734196901305080025802710797978363428937225008543920264848369495767385308843941288212987604245418989985156062699598413200873544016235249020800934398007363873969661962799531772986138673543214032382276805990335276459725035796949045865984171245271049649571201793867099625760188722463300804410559274556236420364756233393739485030216946384088223594528017963842327754155295644667025064692616576820336290459073750188217159675060834449038849086206863730092634731577273821524740532255428597355893217591535934286601654348169608682221247511707839770586225538357563866316153955370378101663360847608387537503943184361548230267604411077901361701186272634239001965353084414266953337500095188527742063723178059372226291283947024953983713807097509979362828293171391446177911200733152935627406631860904635590609454564365120442727329559369067340408160231330688743362428946907665326351985170267351703470988186094850154209457251203555604769140896703636220424324410867447619813415205739315694084767600270198790324925901173843223084444263930520320896185917453148623982964223154553400102635352973774153306046821621214355324132886065831527185592885185016061383698975052617222512330094294088867370599296477558259100431484419543470817577521133031803126136645510523511372887401465158983352286297376158556057272628638906832062490168650004796320379032959858772863306176557856187894256807155789636320930862251260459724394058042089245613579177575489507315789020999689823574348984038572937589594802700627558541875813959032785542107979948523813863301649590639498436351043704205745832049433132241178533356279674433879595185824522326098424470905754150734894388218282149234335406962062719101791070745450007355756857049885723941600561528277528732296525874313800138724388478773001785263009865383239830391390648179471956213831794600300937965260984861500028956020820819509216991657561338351173894050184897854850484308037414905909270501042408269996750621308592959912526912148642166560781251029220171980526813043333628749760934240951755764662777983905113170949477513815924711147455055955132356055710688196548564291437257764888334987294799820929063552494624607685046408995845803678806200752115697450452953235343964356341147833622540715242213874172070810930003468058069167976391284269299476909986028511921478585694722678196861844082842327242478629636910415203652898690347240969194351492512396162057767943884047343589700060193181382486435758011324171726654303054917048747545402463365741981910381375299446821453396118928767390009851696706261241985156712010380252271105629813216417414287330691703530433074129227802119893149413001910505714212352751250037142749456657725068150896733592425955987273546744876803913853892591359094646813812327121530061632536106394118203963844004956229817763823852482557029074404236278839595822998777162808950021109608958506688750185311871374404442725882644480597407030874424878471303446672144597960912410996460479447468040079923984450462962286920527498201974661094935742057128857225396545823385421132424551787021030181029429961798516405877323281978114742671174176398868284830403794732410277401885930515843944369365733440150708145684545136750092849191004719978734319958577274490583135820398626164815147739209325561474406797762414460961099121984421191177385808522688272108959470386537097289235220163287640534445092965325908024734942717203092356597009914160310782693702132890944681184609100865115025279440399752307613868927038102396185606849867518308783013402679616330011510414666182767777547843493173429343639994678290504184155002366553693022320039814943794691466311766753639771748147226006878152678626298951977755931148839108622494507407366736252979011825634620081028734726804212064446666467725060721454507232699535046560663123464040164185029456048892802441395564416473436444022659997689538808159988160066536150735253289761074343644051331418021737444137551421909372632542098267039318382112883106667706942420778127062520001623066200455013393098057299226902617271428263073008635331574840874552267591893332415261031726270403490283831742694414089125785531031483733911567079525985599250461784990682673828860794358095353181068290775681691202977140021456272307562165583872989218659500528651214182414583562077607444208873196438359180738543471966253448088503097202983109532431837369940051559932033104902386853810261570662615813056026751931580604784690580174485018925872366703179105074817295869015717903741496020786236576710021913620410213914190236020505890736515400690241189430838151590595991336913661837431848389933596683041579101124899302595952035222580437331601612585388424447663294292017760971587400862896347529309104804745837833867798629469005088192545498671052309057192914460844219758153128462592108354999713679487935252586529243152716425883912590676891660290882763095808635484361419857768400767212126962573497394217317730188577527830403811068380336066241163604847001707176052545744780762884479358779569330427406491057141582031929760434832322026609358292239877819743472074456681779114687759461874751323809465952987952464554099922660884868852180847388401464691165970047413244202630878109452926151382217895918022566691384304437077373071567378711741615883633898144233836137678786548007104394657931566896061796880469989691413253305390619032809078425784427122236943747148219830522856527087446080041924731563915645718368448390466662861037220687562205843651173552427431331201918081239395089189921880390560991757265528484737845887829562207019587995669974939886572276836810442812463974360256268488929738827311905077735420670739138691430789418649309989135877989939381941168545771138219395133400666919825188802677647194934180199900645096393648171338915473348154310688941204179249003850707646004449408524446076267122911065189118329574237620915869415519327628319719197878809074108372405283844496237645214930195385025691522040313536067256479378744523751165355907752991514590940413069125696909446325990342529521649072566554711932731832957600540771147496062525502906771886870145429320347461971690720696720241663818573900147139423084895973743319747625709591791994630347182203425519822915770920536530871669528213170208403908485928903260161906505436224591739709121625162391163858346223064626145387381336373928753577758237502672569416523147320283412245550596571517854872744926952173310007875526110195069951928830153606768635807708283596929649637315419434196661745540769934395626558806824240848295307562454624092496136941219621462216888750676536386304693600421243351667671936908302574780700388593981857040711798583986069144954590623781832562132919763369931988216758431318613064157141623803238731000101975197176596836203313361854031974402931560998534527142575042765772109397801248150734331613871256503631258944275645287814215346129205127087301168646448218709655239987588707535907324403983721912792511990536067324470799252813468310589690908493327932900651251107277983833932514325247664913576348237229847595302087716961268338081418590378710154987455560235215635076944279548873845832890318958663808389977408353232642772451417871270639694157742651882351419597456393336404478169201474216236120794955823603996417226998228463663822759611676227321734789685824752327727893864102335499129746660949243937267421000061779305129656427400036367488234404495324936885904725460352047114892024206258697742570015513364617692055110809115382379079313871903826155620066877386662313187679709886524004853435876189563395934993026235046428608363601844531061238806027061290079711051907031327193937879966456085954407753285082024538824975558590678953404749790457559998127885673767715429757372599291942147034586528106438978325422974510387519831959537684409998274703077744817018852773035078460482487879316822405719598622368554877790913175374694770747053521503765585699065383494414756601020852297321676630812558824538024213529004490349331735402264874185358207191635919256550879563721708422307801224905616014048502099688696472522713546275614004033211241144033528260279240740856209492210194050074597296040890639976304130522390370038081804991765398532370014273946963790168167856508786770603875080246648022732331742036313145524690883902970754459866277589691761062415788106208043224776295398955519734638844203654371079833662856008301107644986651195294495532163650626524738088316294333411943049316566257073687692733467939156701002456694922318638354918693571016491076184165536491613079846145805272607055967531266621248018908201956518828370773524597917231291337786684479880862720745886445096809365757694623343681803907147786613460549203057790686252161993681451237123021067835029768886573014880969908621247155739650109586343874428594697701574769461679961914276128319201243116206900077093813764077798519068489240815942157818295451540076371088617457950069023456634469908962894607102682063202442354531738010299383947765965521447139743696807432092117382395399537761528695947442653485169589094885336047298368126914699110436647655289835874695109813161719537956062666020573397120884219670107716997016337226582136153464287421635772397509328742773502891451539636109758938868503135117006383121533959898580702856682297743213081914254033922786005552718233138273886925064834693057988537178601940609221770086267562936264886543076434019792137080586481370355543754209657077264577597120856180617848280710398857108680281324952251610955731609319279076981745270167815357077345826223705772928585830681706420325666699484921390432918225491518151223201781494590743800443672123133588021881048135356000950187167683977504716445164940065537613767763742309198575628127821680217737213558357988820530010606579572858827181260300045373924848310480204319741508547424158816223621680582837175252670585567349010651736363337964318975098588304478425141890152232173760783798605107361646055481159445564183445906119041248630067885662408526430988074159259641316135533873542450239805383383742388074923383481001247228782843962257038701360546305613434647431079887513610169716807303627254938607116790173650556085899286459253033606036742274567078944018836787390024500853728439190276997002087942448986701226817211531950229224674617854428095182924874502423107668501101097290425569306110380530208904041206390735980499232738665278747810670357285353912611474475978614849799639869054474184965695192862075053831566074387645229705327748167102144413355857651177177385698895414535963175241261264215890270796772413448840404713027398262349321686923618861786848441488152969967203707764158464528272665015378362739304853761446385210272559102447036302912889911877534419142725166149727995024893010803776128996619319009917504483605412405129679611168534557345343969348264251351488407960142909426986777392456689814264001121768832365955125412967269948103023083537613316067810642557199466711092045867116059813203065773167138520038593089281604887853729803479190000157934973936368864944827649708579933900056017659511851146283112036212817256678758589287324299521373194589967632102602703387796916741701139297074976433372852521482761581832609621827545690200369507906061635307675940979220455772062055897467755888249201767335653159466987235053262591322653643689510548124293902124338322028755496461404456417849345377909399213787177493477872070269490781346975431446236111663570798425744313210156836878054369575687483274209050483532248569130910022841786838713904929552964934191242663816449448369269264163940086385429289317650291491894432998346388157729720899785783395956722051331816934969511048107728616191111860368580187229583163498780952526658583316745817426071526612322770778391318352789102280606289972754361469216867614292294853641913084676071854176921025503363099437091681874837332164081655178058912851671748243144906766352507261712988962809331974814054711634871580044256241994467544067821712391281047851387627183631052317393240487809515382403547583355548953208262686399048889225378906734585083678859316727302986441438182492553571732175150324755018040936045411275901560512592404452692427697602197167898248642110175414352879771672779686987928882195607524169905791403092405545836272892888464114482535485342745869988656009902336275312516336022696394394405443078979881100298995167070225056287861220518617883556013412278596752375624369200052204970456368951055157419348555897645241054780489039017385161058607394629141114570976315537545121429912503048883961275996675755699459742127851734108184272911675198767819197439614979806826772423988025425815175089828012380594420097883572120978785952462139830816552719129065096732378796038036541346021187970511463530736103817521339364735960387017578682731067265333430957995006151783178486611546709319304335548284696850163583149185134920877803558859084239242655563191805021852360111282748930134647299860173065728266116831921317340716063170340799892466763318997275849429721971605072830879269928644374549617904423118794284123908561972414482619355559043071352178132757250293075296920614668060228011199668615916008240121122878668054334743397846480626235800927862561136325416030482873408500328171845600945511735917348454236660932361031819359443466356033868938693226391276794382257764441547843819341691576334564844946819936505902089642888421867455265424362902329617114178463728910626182091299447985016888763545453690774401703717665509065063656432149197266231261331772773298225838315285373352250335447813356364134830881284247756497191503155282179393350472874192276371346071287274076055827375260452386714826351334489309670869008066622096605605724897688363212642035443510071002110900593043026432755582257900497940193818234002732217432301452301218445376950159866329656210767098522485609318326506856660965456696831719557697633303037720904047873248490613995578219727296464400496660084839713672961851365532221456132223643588255117586344831051621799221895421031444429503567390375369339413987293028181508626958571397464296236859966884441795276735228512209978616624167563581884096381466729636413676223056672733827781666407578049003021499066342451535232360085273074403404106025237836082384237917796864681087479349949228419147988370118360079091233075275725525714091871419101514269446556045923605229275109536799888345512003632551586374358105868436896500829623702090840663938937527962446746421545639524678294475647874290047950849522989447032724085884714836207183594904271879888914093998200441818119651851731681464733003677625778688921828499566245629942000578722528209856581224821985784981576983806405590283220965678091554347212652750710213850353163605141518903492046637637114222882707231509209818280367662806831343538226112437191280243211754236466978684629757830375499448014501179577131370017934274217839308926033755081453903752286827272767197289870875295439127521406892955930896925913434650275500544115497785880459001476177716990296635347599427947406675124310413496820186182006456083583489254493173362859751307973001738783777404005209896657867877292125954736570341001975641208509761213847500024943799423092949918909467993967140851455956329967089140740591944771730330853940130462107775941292886076499524096857377411663255097962405611285532713027562518232525916194896485563776645039366018178050475215799706905916258701202366325020716693665808062528009412120169902811145998883350335440834781970973809977145300994217877429603684652419644084637802834217051277830019999087846249534843385660949817896687460824039596627796892614927086554391256208176990817376902839495853064514253098193594010994572566341203630311841411425680133740537443364346721441781852016313542938257269603403901789902474059128119427174051290918494320509272489873608205092514140124926328094592598329460832982277799802358235537358229679077851771519733276815798964723685083784841419168179418300731520714301578578265720140019478669895990770851087816067813724312435948351341994523973658359580586590699405027526177679090788909348880499164813922099881167853640221185743972278285942477585248077989213309831240043048170264358903711785380593418346642452758799746008276160300335263247276680464518493919260633156304912866502543398874794975015115485880254874973890361753094657498385210497777091167974792104836096926155163943647311525160191832217678042093249428669500358594565782623586132265141522075385298186928049202840977594448760057493440894152421546180234732380564488349916637634276450651988087854791449565483358505844994610290909699987616317481546076521118195308029159350830505865306361711781538002750107907854716642706297536934629365480120462667779918719973178655944559589215879232559930796510389363560995536782867592232291372841866755614310076989483634137768736547588499173077213247671986161105752829783656181837746574419838689433893327613292197874683571788720372951204960148649289756253506504680070067892412773112519503848601930004369030394997930871868569979137396375974329857182859383702137243972026925242668875330209355966949243467562277861795363382100921923730854977642856053334378495312101862158472506293521405994898514994943944792394509555376061360815222069983540181481640129780939555628544244692978970489111705238654629065158776821195576992934452050887510243214562937933349650334552860496263005507147021280641147730625692132152520544150847775251854913818402822180169164425776181663881904237090712323699400198106285036552090473878478975276699939072409207446573843347329190853864413752934669346350032173866514940199739954740440570498153148679937244161353361227699839630892088699035299258704018703034857160714780387589262298186910425217921348894838544506508326301377802871623904490497312391523673293974815216895660632190471873962856909560744309035540535510283103511765375539215647644152973451266359511072646381067511822013583654904652572875114257044329319944926146716895685793798699286470248780529541762503707416971099590000847762371542248376704546765705847916926986781103585238326968091907579685518199966976315277168617644538624498220576091380206723348532780055845673965441865868611216857869643081264758633295889476579552504444411817322357710916376740024512636642499196702321477826887551335967714343389993957981944562655554263353991378493662287444079873182392281652429571048739579926307801572676613250132196994436073827906163669473865163195580457439648606335606880400130085801394077861534664786040006974587684578875615148414969588025320877430207832445975836371293366435150131281443238141867845688213944469627616448180181902273087776675992674409736795874718247912877480624909301707943501215534148689246296083391403876637991205960142591756274752406587054903647190417234754927322399304392759729999047308398464421884656986010802222034911170383638059510623973890769237249938103107830587539973881757428170683598924001464501368700365890480305716728795610965730452888104689944724278827252520547942479192789673688604446911715936652968779158831672731476133744375878412620468419693653990141744581525888088319138509500673742910490931504705692883756374303149655481875661995871184146768975198993838468584674399254624926293891283484944940936663879697516699637652035243691872195077244459063137964043067593429866716493056055830838557860777396173895163947454250642713863781873429917920997441818305191629226642131329315434379686304603340808820721967514700512443989795545500399055094953942944969521262223443564867388377002006707434580327109895979135857072798497353796692632313886311129332584326063850442956164483358106906192486291552494146010275401365867285990763123639997288526772804460434292495569381810810635451568888016309315172293693742023468448961577061851489120655560111159157499271173399254625139019371915210639280366639438947727613566364813184334033402747525210475556266538892745984599926618407277410827727921260346338604446567367874866204202686370743010239711156489550802613023785521981433862500865241181663568871331097812154505383805266435460234810755610793137691828219823514925158910113801158094705877320861431328654516243892412396620356666399656920715314382777723540694034779570100094582494526596542166570052989958485746670297513221485172736054731084242235514016930562351349191099184747755576380021876643582067028111358200307885800152178286564034074397682062211240643309377835671190821028157155587267631244286784121567802364198620682953114102283606157642890874147967071104504835845583885605589044953318050111202212281269493766177205037329840748625234576155648854648530645855153679471521665693113039877949352836123676643243020183425174294943590503435253760371482428500832623905966635103462420212811018403459712513519134238532910388649581293452246185734879672166450976041163674767388173096773648566531771502417126391738955291292345092913696302737727589979796527181263384014210377157609756898242925417769691565969897299937189832443812191152521503594920784735794562435029389109792910720027748701375599052265822334804659624313627093219111824083230678861750786755479650760078796374069717291243965807774846927501340742859801271519850317768914887968708163492486189809765038863517621913643944309784424312789713586871218172484117634557366712578205030167794739501933301880194480720861149994678312923785724171124626794468301033063561787166679297182641123271630720038511249052023473000134621961240633350018920592670861015678631193669113963208625833844401190257318062879227175990415403204988917401118368237227368058014375310462056038486264980146263149348672010880584654100148363634932942083208905433758989710572567537641792265838613984385504773465895319714824473726683368618972224523700082744044826472975874797758863734833511403287864225998692123987467852930984958869324048747821039726112434695696977679293898351557975572547027988167493176367497736770791184704475801184662954955319675617889528783964080937928639833089425734610138174487541630822285511842600489362085464025244636943519959791170199245624817157111520851760583317699670400855441709019751753448574979202076079832087395348497941516803835875688863099284891009861123970263798767645095769250091043098409830306064336163350785075678716376391472294189712487327072568672352467327079769329396706347646201246852061460155701857782958869865834393166806706420349578465020348088878859452654181712869271401124707624742341551696667732223831595420359076494392400398938573017479896793184897545174718935302467837110255907667767784415031163043761646605876831248599934181006843131693421732710191764514288202967346387830518552218464172076607499272016132155783833356293942340674180428051353731116756198836044307725746775449341153872599672019755747166382945174304034465077212311555813660846379091914680381621657519438241808104771146869783273113856646233077796018515311639524534133010984188491771839169363163560005992639268592790904904339218991346135295921442114791917820087635287938357612570743919176700146725986153626046833345331804016561868660332726429909026161433920776753272643582103731834734514215126463921766307833137018275670894625840997892452849423924831808317264233617063947971664992911204871256923362137757927907770568231511130432212829042864953555533169968298922456942239144731970367189810686465271171936336063969222937873742014072668979506483758895073868922673455179014964076535655035451864610792076968372952913844390491845640497344218664864968502318047982694003186591909741558502191942809072693355329991710607318780640641605749290832794261955758755523772825707063301793118139687451585096689863228060962589763984077160256545189317363141724703638251427960050573455227610721891280127439212773538226910969622254968242965133948437297555983659076344268399151094406374273521113042096530745304089435389279949977050567832056256705594299524364880702849712647930244129113418739739682046544978177677412073759348234823467403477147418836887590771928010023532684856088971404327610757965373791546719997777627396056260638611306554720642457087467654654842425619054689869006116390506475327247715537036955739523089008061511476943944783181297039658203203977577591452310063518106861182583819149212625500940689796587598892199737702509647204984422285611618183137368741750981757069528105149015049295222948200761277776416051830979738424451123284127746598879340528166580329142510817874664873124581576902210900637152383217037557429218438333672419382471241725442893505904246412060053260667230015938187931502996896398002607007686635235595160864578233562743025096213842921151760361185457850692537362337136250355074983484985780780767923523410218533521038730416318095345834111169544071390541142009117048206502787541057217655273318645194510477250029142809529342006209851612684496796028617296281235339442936667033432191636810431415317576219902805310390956867435515471440307670005707722809383545466231005304443515781185449325807326091286556333056310351800096043102641629328829006677204590015485271906343396194912390372594611276963815757232164788142383587669122778032864711454509297211418251999313734272501438653798115446189142155572875665629233112690311421785025987325931940211682730498285802749830432111057982757576759335242389557525112820529942007310765814749252664205090649678108109084200997504853357406308315463010190874929217386432433627534399770859009125977163231183004246950898429065148628274486233438715108739531454988586435716872521442930127850330372645123599454760020485944819781227262121065873525434104446017720573630166914000285570313398468996444600330410808723515229124656800137025753700959573093440516959498695057215381931400933534223171325660193349852988325400173160595687555640385511784657979750049394217800933686639463931845042861836925109911953354736000939656704768104345034568449491041766605365408139804348832742239204752699451833157691657157657996972515409960296837539881194866960657440630366680297785073447937480490004304008119403417749001740614822228439174569064836031261496686533035276715393206223214114515500336553547566341048292324511107169645119863191247527097938344422393447967609964135689062652057398096071669614259446480078944266938577068321488834749558187169847921514931391941116538101177118559344459881987326366972618620212233226360442958360499136915930177449984933536473209965237554654080378129535499644695904931601368096590124658195827176846577998923330295464424523430361446291448532119955715085660421837596563351467215066539935501686778182788548575378265619957132085519371850710674294944565618153302360376338442091008307326038370289475537556671579964523985064366779233764762738263949238490576407131053807180161115406327697251690717788528004944840284100944158644353055808582076499403189961126900015013265056366773914113264498027653095867062711972494929292723160025149976227356903906700593081057940729579053959583834268057707376711894217435417792010331662470085716510144494967447536778430496167584315440484054548899497933313981139064603727229744845830376393425348150351964920611907223938518930501669590506584406859205890751398912366888885095841003178692848023336258574133220456802496954576593009088571244522106786126842653213738908515553531706793519748392045660415267858762867093477677577987051403770833045224916493669096877473416412210146110929799657481269899405709933599052131399553312395090112240830704026730417617414473675026629782099261552312105185441587497998665218080490223005833307671931362405871610920571652028725971450504026895155979335823029634567357590193037752121526427100345438439381714352777885346110998279703597199563568716685212248458766542089669394649233145502667599980355676476946042030810381878247514483709612082538122035323790057826887217064306559972595526998377933196612666853703537966010053819897634490905627783654231169293029124068061749877929273459604096040082313035182193399132251117236389565628434832711537121413072363104712786299593541178053440613551399489403872787203238568868554633678722581550835870885461358698093195178291253380227221522992406878516439179958455710604033002193974436408015191875150547731153584124658645303241597668207285761199517037676170797392869462263361088050998895376956587559948108990746665565581054691896845346982909378120107516203030238514078831006165245721213224723077211484244058354855242243546436245229362481904153555500959437834377502404745512396903616538273304559498337575146978946876311750041827920089474471521165374799481524280513442274888846841131435167280172517446754419217286068021093691918137164111839417043247047515192737919883824684150982808232360132495956921094244606438345411028321591932678634671768324583320097315742392242209398437890244833941705160068490453808952535200913711146463519227894844964424905698382619087749173445836745721894353365693257488835254882998363491915000194806788253896323618747503706658811834688294173182060528821923456272385452208185481348999231143977758510614926536506932752996419092515865942740924672861057327576072128012718636290336346381966035381736256515418084615911079846851702947344402914103386918663269812750948801593056765237769188985494933215531432899639211499986723966459340645032260625787388668645117554391302861169946420251475754367826221149321038048343029032718777600016388634725773233122466148814187571799919486233232683845039326608770111835305583629747377702987085375578059723039500903914406011587972892644300644869717877475871764865954026314655053882703548449197407949930679589929698006602395783609009846629326612295741366338647469227450743994537718786605040561671917539538300483084546762349896335175651793763053938639665366989492680301424987575039989363996534734825779449825045587119134999846523678538989833715334447763118574718733552475890315202934213398602055498041110078653144237466645685876352731971956204765894317109951906364284199458739545793922746556426400071048786179381433113221499068930848702256234210569039152586608758191846831140587168907108440773138443843167321238195024867280664855701813268886612660120025021819392869317100173394617227481605656759734781064134602488816425328796982267237674785944257939018234902504317946261101260338197227095802760684694116450012836192272600918456596293244098726828663019600996599724697031789117860494213221599016652195862034632577722361482767437161988969326975544543516005673847691834897598935370779530458493289009499931235270716726854436491710472700309759108308995299810953658240549083595462101629891923038062090084512045102923136002725682858543158978375143330053195625254804317567021944824228834248362096629892121236772828585571087457894599579788889556492698394673495508510415760458394041751856447404164215563186163133507256591317769029754373082227566588091409964506471111486001518333941186380560410638931122067715239616781795981309865068161694564081641740638263319978576240680132083325492461291978429226629614243207219777564488469920988374903639638225691775792143875611016234335946692671314984943209151467531011184975831679017090924839527954800069465430845056024764695426883988532612807273999822923777270447978972430038719858444233495741641155384530012353251578503342925334661959149492499843126511837794712537113542540984206625253579744179637483852982064271357432882192022689806525105233781997264344811402585128260016811248559699729015619089024233986557368516269997073088245661433043622285461544267174740165187925112739350025594131283572856692957917035723644487783359248569996949627575366109298280356929290755037251001059297614371657706159092435144967377991464572099628077146193402898593775042247855166948844027010036036136779289617551499620697836100534949064890093661332997512187138167281362529633091699557375553735056108030458763619205209839222925197056798324168046402255824901007126774911767156399093300746734822665954045505525859902564393093844478950528364545323027391894372450217553132647453269907595906874052679834512087975617857810289953222282537499035608107549264509919182293728812711369126336261908410376775751462717196495472360407221334555932786372266538273155287608714957429866448086975172395707079670970313619661319848695570868305405440896660221399866417745474244615952827905319232666833845416429982617424620617522623518312308726561184361843231129111643139431141029866012393045334436287688962663720192218983153301814917277746884663772721556598985714390469643511105656418529034320697090958060896733485550861495737182998537164996112897590585839038190385731664994844664619161986513870147789548664015909346885939905358367011837460434399861872921605225129496380945355854107740053276789650675401419685151706051974412615092174058162491731878884836133563750388143508863445714040747033170927865263070553469676168199268214033928007275297402549497754157518264165735370981634839218998060295007837011612535073228215704839256155509695805003608998819839499102113089195339688669712816530742716595679012750236868064089494017470096122057521764491355691710777801746892738141714741074045661134183758016293412680970185287980610709626389973312472003731374340647621817124042972279609188037821080867533164683703462219918150912989289919033742126191275319075080991542342844203916537204920217532968078611836173141350187145493787224784748283367749810934561528799829468366122615292110621783045274828990237508714464706182997442611540851934247066569570356912093722357146654396166080849447230313367097504105684017049304106254911913721315191365329143163081497541961345652157483158219161197800060572646355020707260201829663052313153539012398024599224793892715948942445810139591638356687373253184815128186862652283127804336064821582131679157989516168395750885772921028394020090057289015029423386919183275235962510749414315538588320390286959406432455128119863054406356373629039357907501364176157659323452729101040761536416872677171491614636078714565157664615784033190901590304833537632680771957296414702425442084867519217686883442896434111018339647606594096083685360805023954674527316007673852402968889300557120929471910462901167085387244322905400402060285337259407828869222375100120360601798933213825933998942952009062392522963062530766353083780167226246922960633471999718794144466019405136747095358899717727027840539141735553416737336155684772412153470373713611696856692022664457363425595396668225574801698867346908700540887914205244546987484005676762175663145336746032009045672509585821276645437990531318955256169534689353978200361424867373119980033114210160480147619591111073696418346652010242869272855497854648007953757986755032635416454526915328430079911043672016880766984678480692601264886238577484706566322738357040075885733304918007788452051177932163535827960543168226746267216506165483121437667672559526590783417726772203424832227289185982815465418057021423116171430395601453084246836408066311309396316276852874349213784502567615807713634306916346203052644440057978695600417364806700186852950489607757481257046623049096639338399835550218492421346670654662181821889361714916400669770003363321321782815015214118883405567597202020903542274773409211995909627777662273006780535923243919031390839829302154905574826801622285777819345433710112637809012236676306082634805201148575332794294302800228037129223003740149429168878531554383205216175128515937135309735955801356442156018421306548794773061842793149840875099325177014293796458850302060036380403786726765170651137595806556186037878078999429773501631048536442746486190877328041095746392326235533982583027934725212544681082167002196702778244000468545461781029752308235814062974475402929511441982777107068678339095882144665513718382545462046007991872795162196755063085758553494758479577548981439413601033838148244675704024350431553789981214302412724414474804329286464140626161580220795146622101652586245261638469840201275108977777462278069040930652495133204148496636562423070899798745046764009493802952622945830855278716125305458088222970125375746621037079690284635719594005183457151786537193621927678270472104011346260208276778861193967464326442230670215043538158623873030963826760904317830537588715332581322036540831622597717278865760060060649677554678427759915883210626104298691493412660669177679922666478684429974015093179906131855567560770198726087478495478735003005425750814032512017052125149888661267018264614812080221773149524971078637203914279519223609933771156835630045437235987345779455019145477717793434372832258194803793820489786075894943393526407344687117349034548745962885351173614033984387049705613157841157716829989153325981108103678585708483028332341897499517770310988377462967597093111706737746770088293767219494550403571056771540411374177454759190469125250908987678924805960221154045365508613308015081430963393941745776225604547934420333962163213337644779887062993072652958139272645279144604398828330770972092549404647306936847033137330153766980050922097199471760344076660077474871443420466770565923970552763992018087179130621740553579720686714423609042393974624542684802224177238419012939553205428757196678348832427938391117784165335279932119445667529117337539742129198862559624256750136864793085429710709335562998547641455325636382952388010095658702799844350175381639716025762531994833897355999852540375139623522049874169038869781135798709680476727194076397784022912919323979292035023976192199056415491121314006107322788868434644034694708735395573932414141725766757323077777302222591100168914406316319290316132835560283772588195358006862142762690977247955920760802712034747408342604873871010059958455216058412938602183253851829078848005496071775943122806107314537186015380622934553637819130413529138624118785229902050253862170226304982552848364165036902957685529193873649518085339415593213238534839791279927862407692350167277779319768175351094348947038239918234872871313568788561388850187933634931880425781920958099502248223965497679219955951558832871190647141291647650392820977253562981582728893269520468433663038365187617570856029718993373595550144732132010267250446712586472734196947187977312720927825162440918949171737505882053622276492388833066433253267599306269088572051832537560763107481622336267322847521837763486820352120559717074754213390985406622340958388428719168011725072184920814963615763872905637515377157145682809145369616749604601600628517801918177487641709676097299012262657425960841214978332789035220662963068146020366064577681326291695272170165095390844728184374356561516394729669327462814723180254510991602044908900053795452615855766936434030323915216041755507800341749760283759072666389007552023019689959891949361332556469316648583466303758174119240671875201592064417025737420651925654630566933251073386317661185895887621886445814008179647709571513011618031230638938078082497780707533705257677857490032953060077787216369636874404414374221669204013392415020589243809032029354099164858433449142896502418151069459347668463956806641570674791683148586772345068040010265189374698889740337587702931542987084733824843660026135771524467376622387386134572053020854837953215390299856382229574667160374633837216074524866412179599198094868887252656068172451496209103311484071738078463793534550209168527698427897815669475817013941154185082190040968007432360191275418906130151225684975653068743389122053916883346757864539664405729958451168448496685651965665589057659927255144411523279259194057073458781001534275648342025164307198589137085964190987418640467467389980490715653097992551122134541484294012355535605454099553520585685619426411524086931285457097216676552555441784902977723873321784281354692852857040377650697738033895779747411780426744646733779723252718860243926230324585343689394568336999308274198611514248025610264242637403495826050501892041473562964893393099302354112851540535471233955439488162477558367302451391919441938217597936021173449688024061758542490975823769964725242183112078265791283254215466470616107280764100160808903846673217699440966643368665474320348401604609781708670333217074114402795184878747165690073725768044975422531006686653095861963827327332150896965697807284757912467269156326012682899606397033144924268010819892730337275041522875448231211979899783194635260414834306074081089183843318635788060144320531470932781962840783631241949186005459542772747928335536155281106111661126637025545009626314665253838630672068303758907680419600008868360655818484777312608078482285956933783237457848055283986929607202995739607114966222517449151391131342601367448398461147283420282839466158823219869090526469720468444844796232198331172161017897926424947204893665948555772681751697598189616638755108432252468074024477496060662280218846191246942065553674978559740556445281029133643788625939316236333030839102364116142734924816314682201744889064636112394493663219262918282959687620448073102155878325326075839853330500272800123452531380528034977759046777152520731806953430147006709730826275535887293902073567803138569981278194028291927809257526876715379044000652321002579211126380638907734439536891811554427283171702787100313180654345586903714295989800198045589471675925301535961929086080552081549475194722660354529267532602530609663878110002498566536144127529996936562458139968971853300938316633481410527074037274102741082404359134885531840614115505042633161719818240147544511708957502478530908844638460553151426559078115689349387407738012415764570371422897008074763462611882768013096689633201230106161349807173733748806343453001714772680810635373654170242728221657787674956821575652680133650521761979534216109947111892574377763811486106719286620659009918411345340118060783432689252336714332518813083141878105137777080851455613971672566934457776644072853903359724355257541387797059237460821927528298570487724860925979499157482540023293803980129914747032503615441381764374260318363057929328608445385237149748907793361769369303274251699530808901254021858000507826186934069857537632378705741809700384419324612046615329001261613926966816165009184708962782257257673691491827814543713347409357479672214547060385839831630717318869409847949172818092664282025390878914125974259711277861446484168954972993485114846223272830582136781736048669390721902616375646083493021440750378357652445442045860656433367567941378305283064457131906960382167983433236275106482749059397054162414302829878721466509504831374210301738589558139604677752616382233893076021745493515823654057013070182171476566810519728813295881391650234202873221129035186316972483967624923690495153402013557972197955563784349254073024004188887438043784265507955318524457425800848728868351345080542996510771100507987575909184764126819522604542594575921380306972722286423199189670500073519027418742300845148757054046693179360987657745685782437375111461797247426343959180884166555981776697331041526471090413483842187376261158633964801961901110148038873060020052525743697921403303636383452658988244188053663670368083546649759541253140409239164539217874685177698007162586797773646191888724974548606029998137597821445985540958656455220673471099429837810255132649978441210110771055161190183073699470013153727702490098009942775033626506739342506600242105151032836869791613511226097651310012592559817787120019409454596979799818828332895744574919545958816564640943562718811112911722161237717726116545123589629434732329079571435243636268884235272834894138888046838535898833727531739383876831415935241376928121942780569285481618814445281694809760742946433075534348120596959487588868308399160680561660168475184653441939471559338731978080385614079816908701700038662499878978347544265264872372782556478284231861967634082002702007060699186991424969174159018058525012324754639607555636887365885818414644155266625035961600535771994723832727667829389240802430569788408358389830987683779682186518210916813032600382879377314122031326723830169336031348933412090763617371691998484338915763218977390808113831642796173680427826885984033083766168362648467703925654345257844607965584304065316728602669189174921588344017753354567063767360216691988863379748709325271004504893141106862981899157271836604738324909715629365165028661142386724660464335784002381434418619707968529684914265081175760317983059587184420828108263759515200752370494997843643997456365592536277138835951924585630573900568254831041159342418130129598567485416978031517261040384082333514946319428623346048076861243743546880396451998949441097584083158850305142145366546388561152058659541759355211432782864396187821586320674907503567369587042805025722081363084503927830716447409499724618017843618557744543161288220765060598316538561471316120496095382114277608859161802327452721976003904114465149551969009771781601597157685979238806192360551257625810059871242511667050708794798401140970613764552904036954376501530226705654721133938892531287720959982663105537305182761605953942018555086893356679451056192974778500815815971055809643618376906659484206456543631140772836000209759550783823772913572909486104217874874952633620425351297134359481116159137888849629009646438167877139501672240382810412626062179768327211978385713651070505874325881185940334084581698279847758894060978102320479127468216911617110637854648720380776106510601622386139294114833913269767828309343574547452009779577212845886071726515718559269766533278321170289775804009681602314557006410125792451328685583696033356185459895299459203747970829360584356690030716883113457408146208325677037130916367285984464696903476590121069865252192070300430043209162477182685721361849759901053381913859278799846660218872036116968243192300897287222749572426219509082461702317122293692782803105352159821534695241291398976517091847097646448962368503320445500301369322559923523341430614736491882880779440782102181125896846461358471827708137581934830023879969310395776347167775690034436658738775111218552432198050021607977987017136494287440645743160325331131276629580187720577967035586481506247553947987814325794499174047595045536460777822641059827660969517118449351721086697717480822944124296144023254254915729953178847637222408912916703887501574301513479632194505295892306610288055597516002670454565752889933717075139065556912070247082420029454297487577270771441239898210292527335930989807403302450827988533724302979845845134537422226379910818669807711754402189027289489748323544857319748681352106006817317044852907264160520880256031936671198072551493952060116139155953725555488546924902097241842418350800284662201276420219456584120297498696488553440430041570699425743941417108635162798338001619211463177177504233904828109733070842887201547165980106640719903286746858866389422053366369895632809775681634196514082662410937882405011585201179133487719331040359293960397755216316309512505409217400876391651642949602992720527896863397691977314860704301293876099614317290300024721516958960039496940643418392455757439794907584643439369043746146505590447382256492691025578588239668076117292751862807981094208101348365801236994587573755494315807901769670705407147519706974100058444030135614763409105809052736922453549406838072295010005120346921962371019189275562210872338775845083195519814045709327771850050756824791481334194739455200995834929951721600536141868640891355872124830552349435444736601595688373550070760650232950908503142343111833720350477059678376333001655213373759607551003485737490467596330912790632565375097829497375150525972729319204333908180420761703056808440534618858817500671335543971106599397600004647853340869315597572046372875355140800412051536430051037549148900962888914031116863689220797479415121339862591472690608628809366881246131607526411533886000605305233313427442457874795911016930301671940869400423778123805254698702964170555811493506137777427788775743503244717602457985507973485596424350838337066306382147702551964664095887055924898205868259362394478787416091277450541971057332875496895349165125945671858396070768693061013775101190609058033791195654312764540967728642103964820424083200557979770197936132169295442368369905018632323645616479056052734820183976520953793459920162848812907553292784165664562366159834129707638902304265090617869613767226994854688900050311645668832686670613300977982052143669601391534785071449572480811986136243688674175873870381854367228661583681211563413976247173603274648410551468036186586930169989892116632030483378649831566248392292852602273460241118165097332935685385155517288316976704640780183200470133606119442956011970992521309748772075459467484905649631027445390099574301078617286377140858998648298565989323479571821348957735812093657343056334763249995631700876649942993291136548946745661021200339806042830037977702186208712116412156301217664263514114326675921979171814237133118523461691947239882935732838253267061699937527632010644730230999336672434035001118004627455335531365502723562063004670434531384822573756924299983105868260268072625276746886679773910064281969919327733725321603709055886169024182380260193563793334193898902060184076569639458863874501414991836801293236743781169322945023642224996331910029500638201317897476865488758589031547454035588812037177034241091203347015077248987671096988909131461383943762379527161213859790972877295478710469274523504467120146747965136405864104793741728767222736598443388843187064184726690667396399460523945074060430997528819949466966910559830017950696213614248728940299058942265908106067456819780521063196301978794421943820020079669404097271623825782505996065153963805659483717410411652361359410600370737111214654454357226741777828409743668821361287528011864625255603698392691334578542343103426546620000130176142599011548322270562426046627911987481649589542654533902944273078785554823270187012100376742816002339090387034990839760647149630328692199417930325188898453379346314838732725025114245486295151015183096287951761109061081620664743380612903112528896919068213801133099644804208284255182493451977171233613865973395984424851839788172070846979495297625255871575286089411821245300018184070070991729456777236032241309422020327621444105493436026683154383790588003209769499685679922091683464459033308839393322545709013548330471334364486619084432670878446886704895444122664729926867493786235879007425386541800257327747631047051656491961279313191118417150949155035778273312996079193411456522624031778064142030596046796276687400217758502981359308081996621809882483479177183838693257853305654430543745726338643336913557514760644593833260443756451191136313914457700597841253788402096188083413437041457344040836071585745558098389110173270252732484948724013319896140239165439286135468901362310019556135446449483191666530605374780980338373254328111140385932958304153553622574791168801210124948474857762594045365667381648339127035917006710849011383665844995205910338063316890711160534944399148879838795777012049530406059124793352720497330294335185845075352880396553956051320039701139627287698782305551790548671237311314015613348047716917105626792013967674668276069426914979639099931540323277151183447452482788848299230690629728561108093292667153168361827635941366572990926693944237201441028916248092416750700370841837691951932278448068920151253224856846918088865984173636018504813154132586082720425042713056249201708077140099707633324712313268779453510267346997886044698495497130591956016058127826658473739723992082655812951251519968311802314478853404444264842057119850776684769261715519807684881016480071597798889390821194288443857198950952875941398628297472159403503571281318610537953799445327943074283422397915512652450403485668175060581544553788380969797498822829757621460962985069109298986323818884197003999227172524369874193345394038716178473307910746796794086773960715114024699720977357894340607691808175977298526730860209998013205185513249057763706259264675448196889493739213716499591859596338786836285113351221580790369821988647631278626690658485552857739256031921702836903711539225435285001193134615511932535746795164363786938509190159631403482329732549982621158267589734004307087398935580229771958066031127347452893426327704769371069635970448261351711653928707714265286152155086474615507101110294142917402331595919139704053004559487622837702663272316407490827273818526058753028697667528405976238167471437530382167775593220194944041863902707292161272884992477620734449599003923295473054513199240136153123820976893284845380010926512523384942589115214390605692330390834106979742414450679345735453042550430049487633833218079196684333013849976556172566224450148910581372577782894192412058604938734786359340242147921873281524769360956084231059266503165718012475582410958314455910210061195868696404424299663819390959935370031632486176411341858770543426627612062355752026636221438070146751375616392457700154509843382584746998463018151310983678916435517986258900160894334704824349358466776245789634727725541517878268365674892151372697349675665420393463398544483636637412259498586068458627752601307301751610320934260657959569476119173455058151740347313531702491713800848924124111892657397302992812418810966330941931514938016573596607562297713145356741896336971813629751942336841031045914554395053374559452982033573393653665115324209951834347926369382498044882050682825930081992686265797680375135324336606981543193739958868992941207040042825620781088650935442463103652070485744206230410877856332520532632459345443491514705650441752081870224579247062067696591079464975830240172866379502474531250807983141045628043803401098303556611890306940724584993533722977774802868450732948439520017725822896037569810614690050483478906082851034656945209895785366363530634786945078182629837160055203613009228358401748865083525663865839803901243553495181506882513844982663457176543666308170206298683818724351121265832059592802972334394753510100484649654727944261528423962654263011670666262741658721153943091914718813803597006018915331694597965501775578254228787006587426027780518176021441364572865857814714575385880302349048283195995441928425880892716229589449577469561157568496669492060182126493542454527982150548166722949963324101478578370064385047611494168986976665489801428100348412372721736024650322108919115942287726619872093526854155261252394651672818393352237694452904373465030552897566837277211943167846113122622112584427188497892799323562969150319818182792594897759807568778873582369732644339533180479182559942497793047635722392538526050151681359713915426283776736029517550476718746947002959600154770708486626290391587094998247990196199798823417003723864090083061012632865957640437598533599818494373718736112335114475959486266700476047235467444469869620557332098847692868769939312980409901148743378956712224805517769503396862335860951466155280190539334286961845092271461530436666297536576892506311435830836198733905042916661378852847754126364165387267316771438345518367004247295091514874421376929873755904226513114305183306320779777060653318402669193362310905685802796950443103947580141065308374244761973053520290275779280680815162087178288744381086770592327764046692959912529230032909408566837897544221064932573824402413750894466139560524651173805030524260893641294584047647684610732177559854243273678822031543640584244306279861199090509059712521443749921181812145319793662434036150982198431480882491233099812291531991851827932150953050183918845048989457953491966088107496995792294196156985673834893534791027161960389571797637829280905442413399204059486341401254231227013297823312522094451825487390991262861411961073580527897738563989720790842975130629717565328741847265048265507885205326525591453695821474215735877568406222225127781288160803496150153193673675994618443199607636477208369802078421398273059631815378923745344294679577493269204278103418070581019619331553381567801084529913948542009384406629561895397151260440006953855383555900460479050709868550675653062425253772937731398055407912033002670617668233751784911166165139932626206943115583630893262304821653565349003487461732243022110938393279676952297820118776815447577154581912575465356571824566214692974717932285198272146249653364936895044033845599760705554202313597971470579536536875511367148846711152600199649589443387988790113328422801464124516601969875012634230474656337956091150279177786615382020945418862334724798891263644184405638944415692817474547561460258542517353805421811124578140511675541152664616248021229008189936914421240590550444515029167094248905647512210216464520630980947209381555732161396568243616062788247524979225150288674710673815242413953550027246473043792938132389041368004104230787758217530809905179268569579595000430856476769064498214074653320973180869043426317958959427725970917039693593250039732731410609375273003405109160037266570216982167693932281693389526398774107341258504571603160674434393780557783214126060849503573207471377145350739484960060970072534086671197262781260256515468712294485414347746587494174498567895497525824529224847867896805533035527502755751580214146754108491936627397884501467689176031975583927948899295606041592217794692685525866927589731084865259907371201502642354072933663729122041267566501916521680194289896565329799862734750973450811466793256660945467718250004483304107302447152231091024331498342367317904977049673033799217009615856146143816337347660167949549306573327829592362150636865731344836182479426069664945324733831162745062911848183103373177414722194868929812418657947310905233877895109557446968856798999634236152954572467461675419855280618461109664978698310716346243003326288920368146589707726676362246872799014626578053031022520195628129173761260575894666550554758054773536060092142598459900415633187835174390020903783515673454066660296303648440068017274402043597919322028227070457311408383504276981930090796003601633613075207772424223560150319681837890551235371236447349832426162324624381337916198929018338090671976134436884213085916527202422809556592201199662213268577905828473564462802781027327179202120158319213725554576272180627042854573541388670806238707758032134462705391003694760868982617278239638811693396700284057127559716692648108703251409201019364497670599419818583726158359226256180845839823735550315630902807745444023993731412391215971135196664793509015594586652067490852591214963470733169097332871291778039439305025797086733693881298228079673674432422375614787274755199396763750658259669775308182171185018476351300583298358588296037248371077967855462818548507545649858154177017879218378337910023472175254255047394319795276137151504752123527860615476753142516819458482067428960013096768320525135464227859997874697159329914060892457333324512407716514645242873797289360491071306465596076895568789298194578712933994197681097035179012834608392003325200761263747241506773042164203325889141885937947281907291055424265831672938736425856041376501150329672078706647194736774409195863969916132762775447709943979488994291560886390849610230716011841060128548692780260931900753777575017554662063039258497451909267318414061843938354939459124358349766893150031164134367361629677357993045148634499201219973799513913446990089750357276954803095674529110493329732807261626705605844867966556991573061178252956772517974058421739039042976909935868088955974556176251999953102907785770102939695283943615680989354793554741253771293339087909321917679876815267817967370031409633043338648411181120027579058834801089539063030046119681772314292057225559471700685021818799295082926568158309693508574634495995477101147759401026351478223686719196437720790821748437469061514999643284831962248440092675352498501378634909477806052882412346131818631121820340633108930356431049989521708947446120567409768021690605241568555666404284611097006576210777788384721865402531962191612029722993487747898542859610263081319379708602535164158320056604717886171316247864417527142205327166581598532406493842751598644446585176323422859488554786827437051397946123182977259318645818129029033932105956098267234657132745404815767426595266142949940916009477877780546779338750109555409876650106158806594781243001696458357104253632272558152337253458516971991501260625067361062959991992565335089813095480053810746332423834722842505336942100612111486377784391151540892110396944052221250498519731572239295632681568104150240187427465694235216017843203184495215704765572022914060988929227021298641621336573665700729088991718756107106933629409945021422156495180062599527334552388229563910430794069092794670052045781593947451857252029581421794634332562235125439731393607857487423496851257182846977636104221287653794155866320970378549334775166881517810052696930357480343380017587934098217977438559815820061092407792673199170522838886680643163061772939696960640797088842892599656575479563658723796652346076467566357584172061100114790837807270102786982928458476566986239493733950671287175074190351605948567580955385289167826840983288432533638280096807889026431136814715894741505917969200184372926912682918413117370362882603404409804180266395958795771415209316111056705430991404150008556694424917833939532670093369741901502220439372455659582881558420106773400854572909446796137284013611661760637001918225570362813940446481450238285392954476916736504500486385881501385349699879729137910679433038101675857046312767584740144651534572923951703431354220092009933051120135573843896867150425419250749834109152710307013388434533082889904390446894972452448803614160698788928844648433014037672500340176957550393516945015609915390670964793230087881958412262805446146218864976811429463781770460991000098398460978932064188781872221630695317860906883235627524093456009283854163334679123609622419170153757926870015396773405558368062871140829031091717444447349668228437122337665827530791234534567662158693706867548183108166266782431865736383489134331452383339770418340771139670135750812817555925365767595359463975501613387197704188931983518565969853436765687170416310876357507569771658986617861560383553354513586823853566670104089284352400429499475227124235358360271144479338737051100399373687325269855676039459390307905699716846631986044186835031783545971112772270584825333836758585279115800420637635451078212823067239632317185077106981210857428555268278416689869079676510876011357396339418953347012603909078334576696408710200142958271215977679643866467657944968445347150459733822994734525713940151663588428886686758037493498260678337664152322300422134649333724696593127838405467902995886450280297863424179164236270348116377079469769726082888045968269811840569297955406455285221571379295132347712759668153076506334946508333974106432936608815724254254922851340868014096318644511007629562791709978978380699770752557864690855669325463986905413820984830786619659374856562614201679517345081533420741760101799582915660347455928308204425462824548485403791651766908583982674448923246476626816134697992728747680145743981226484335126654055795222494136786409203690219431585781744103042564786389064513188627315523883402314086844062067906511521601486787642533263917383686502420347153624437539832827682443871978168582854362245402508782971775827465239731551407090091797404824488387508505742455336473879541172276033429782379439492013010846093061790012757275004479800118311118330803057643775216772188558313776072439765494236532091488259837160747797589018457309764720761901847027228556534125129695671057086592119926928215857011211579849466517353816757138314978441868955530801423637745956325491857500630980672767169098045395395853401062098076666179701364708698489505866735631744267693242177844376482485810852986771428343556060739610608763300941775791249410933104446266234631882528135684545384639016939655577797365889094732254821547006283900519199611284107555910237485191667755452060984981690893260144970077063123950313195130504599668282840678700531976660764930784205867570415719735917554670332887725340611586706779776353463648891179303007254984958017464361713589687157928712824742364609863807903732126602359925922674771143124614563192571950350313097047902240267950124283897097013961960236405379736219142188059017207965292091886571065608154047639904351165697841733955688443238932324179006789435343062151297625362209371517262160795716544030768067171405907813161895764379143247928994437904688098478327435239892372608092228783077552304484398954016872937294583827946714983642573745719247558804354925145601260148736361970903457296633737538254813661464466226198249913193009476412920753373398471079811044601788366186496578910039662663805222907850189066930498930959905850723297114023407881537987167316599355138063002125039561984872111022940555141591791584822618702870413908060325728207664831218578255693801111969886240378304629767838173503840699429300659859523244790944031695577072707849549463560365510806675489812520160607282671023160553038026032689147156909395605680696207854294056402054722475485182787367023721721524694119333609337724729474925715700923920824075418818101865514455909290683870745733388539375559979666159337353261592563068076863091585636788176409404518774576687218011923563293094941450622323654081776929724592896726637798645273282844544932998614662295054300970740619090377385088031792266956741272794758703656064856775178737602078841187300346182871397183340863593933423245788772992807589887047899224602164740694137450344340223280467048155281913872738802213957791668539840041618794201262777843731602953716076207974038549503430060800003131345343609469951403476604825080640437716080110856103954203775030178903351819583831518846273997636138424173668163887793989207698905075600395962002825729253564916644789297472761901733706682257763295824234660188605411964312150152582775328344690878835324052566518392957329898428060009228949946746480864537994414442671557807545776197226799873315805542086560026708571058253725063100200193184325179874521569286427192847721700682651996178292170955664550494349959461808524291178977369616062699241359756422591816621777845782560543888623167193076951996531715427280611458409379604777828294326779222154526498134366994614371228974436986080122320997231302631472892761753228168677514309197300781347203799934949432658593571088794155772928501456920488108469501157582388637993547516660043371800602820046328503163880798152747876693932432220752051713847680288584199125267898790487679785523143304205225711024207546718239057741498021237601331833109723105478231397556266499721550210903288706815694562117761026048323815917566437583207044935712146772067584549155182022227164591671043133309602383751581377425218202130345110326993344920905156875513465581348868850889957617543783582658585801185487192095349786047588939421179101079250839695545989391088040900046883834736104828975052564539623702933066742361063982132964201777122897692370676748472906309687861813549604866645499829132877562682674231916864058277139741910130283197886766258706303070537655596302174327300062961179142138637484916567614064060059967274921837203801822328375205273047317390510217220437320768937801862620569648563208465727612609451334552717849023360034828977562751653687052458183180462169952773558102183721206120043847648975609558836382770044636933785556333491584764585745078563097688243890963315731594373699777837666172155693676770292333757967101702765253661812438018482893041893702800695845193213937179376211548988268933493166837704655000521707214899252512114679755526435290623041005956142391526694793457843433987634685462762832100653660784699290941364610338885859222600489083955158127473842896624066381476524343688362874623930826878627983847001437501181078453837404146848348204320056801534768155766090073945392462953642260174713109028963415546614425928222391605590436087899508179549807373882672897229502143160049135303568349343931782120516017885546847660573442077766219030040543464038492849313469359573303399390710217882441974298310299340728489020516701827985754739862746254746817381669287161590320321291791497618741340989797636879541574933065752356909934959677246411593610019014898191475873677339335522387459242411846027655695377081888236989299506769825120281188924141949111714879077767215583593222445480170673062883080830804823704718760756932439219501823566511067523325918341222816070838411237831613802776401844922083636509688177480220354152236421906843006325033715183813335280089737812200261351533409296550136211326262130569756752290450861161470519381037886649978742827450181407208419249162323540479796752777926758040458837075834309145721940903315837487819948499083364053378233759383382642537062824355374300769150569049435174204051190879286577611927405632940921833590152022009047131741568606464987149457325493385223380346323450538097293571650798545924504546804708001017283693784773797337922612785631829809623391146097523857433732580866852980949012923158419110235927915814264667237428473467299711306421976118192926932347054036888672149200006150333322943286134927822053672819479744999746153072382477750026304899194843892100876717754235363132368963055361448142427870928610780882602073698802909782466111918196896035001783882374699155084534555281404082434095971121796970595584894258766300491220591494387471680498686191746796250421493194576077268722481238677760383829993296463515508677497063631769985311548530802074032954021170992026434697477944689677240050249865370610643143974655074407413676448561133902434173314693686789209523237011590571528417505800139267325485882557182407289642337876592403030045460963491431700746060218053214681169106961512768114369499049960938764638447163354113935126776142139667397228620916678853006978397735964790382886305831413824869312929690369636267164167768640943789191513647058497645089037181086989293840523639008308026624952257221945010256165380279541344999321268389421738296423349774470051904428760439087671290814608451908728346411963157822084088949711794640498058180016898793120771297938597723900893998254679639022456348933782050830153919681969764549865411128146343399552664789072166341119326428326567709020316850122442054464339504905893186197822990439477663209989682117337688984050242893353688706369575714556755276519010750161155602289214886604439475796547248404997608751413333535730766454007452685170591647098879367959917916027599028244512875336290403067806287367954646337070720007401433060830832666979799302803235662396470416894805121734699741218857870579141550057707990897505897218287518792948486364167680277762435983833621920261206741232486474458560099865000873939978925767297769496954073768813458138314287985906093075926976887222848431711931898004736528480390059370802492346471822172047699458609929077043837946123279178869016907977878669932655568034107735699195464970566911185030583677899787341349405714034963569273224603764104216748668121367772439094883849909341779017815831721196020843418510596916967336364039362947376114330251276974524073852552985622532947011042902373048385365731663446567864589323444774194231576824671691566264060668533497097784433900837093552175987166765146909458822022525496563316197467732334074633817611029900157919528234395149035396356014567107045009991155352126622180845585305257874684068213179564219176467370109932638196163044057326237834839481359869653512731401220171689382071949004106522758516710634943336637650863883196273109999083930938248972679904880609116425354465766028510990308867566065696591497237164244117842315737556824299716951417315414082859964655809742798555927948949665177425095820511974505691251945745808945037616715097082525554625070172887845147382128728063066169158375095847721492232623838471674169757762212700592999096126536700589173041461341097430111402848282543267759110029113836381212465980407202056797861657761374440021413919562422500635157083638094312917610692709394703713856833328556814451268683172063410873100266012232960447730145691092559490332160989097198448783560128576006100595593289142340558621992852550841151745871897556879606660400170871284245711663952110906244217427475378565571604554528052883431527121333859102497120571339313099918984619534777731512428843432229388355164343724545165056102899827676174625772213162113557754769102654299130596378759870750777411375275315614563982605686407647427813043425921572283787759168668245285546447116408834840940690903597147984089543871828414132864600347254455812228224732169514592237178190187867527151081956583362467243464767786143625930979548764109861172198782171431844823014957679083371800238017542195456267483190700077103421189722404902109697154430082022118098317837831148401486116485839391997614022171572442045090797282798195663898068388472815364172826691968415206643596728390059845468395127042146660547319975625265306595771556788166303598896370987226845168013734785246544971420360608955255402288746031079685194207499410366668187827246251341258420650473235020084015259021406458525116380352918493492782657603019897597882553343469420079191608444447902857887535312751089134509232030874008801503558467629594329434152684296529082255406415784920021911770792840160609690805788658901288885433538234995653550020485152358621527435374472867748422684659158760074960690760922747457643387510353416019338603135211288855684320279124716843279264178980625532499664513551519547004122286364579157958775406403837939041945885974276243449727695764758553974889292561816214705756993345559316365150403480286213942610557219357444644211969680122193902768905334736478626285794776886718102530840376107976612479437751654427567150186459493442065127020851940768320205041998715128032284277644550938051338679485135259606017096212529245847840230835881216607657492187765738338816417179069980229506090284649423761684483467657338883471910351837159101397722528978724642421630518141352439865655325947671030858424158880302077257142567000724139385417120527598233943111745771257957758137356187450238440038795767094187905101784010830814739684450679939334619675875663455289895981795118000967532528900468448404420608055491741728004960937238819388297351649115902603782321053082153750070464809007400075717796928150857761308726713535265779846944745286590679833998525821041494350275334631951760458030758793408046685902095462305461085100309328405155816598066316968513101492544413012301360198808111629836481094097480771234949267899453927022100922420523807956198173404172648532857230849228927177493642651695260864080274608108706086260354649404732212350825901743582706416210082935631473010376905313724570697922661615506816587732983968138533633484666414090428271194674061805562811141924907375736240594159541811903440637145440816548719556444861839529824287539114434267723211694146527827190037019796397573824996601783549406700412087825064742657895820109955162705446718217860879037194877332743561568916140736942499261381874914294810474317610514046512840327829053280101034780750057879692447733022625382881400589701587678188144423061278222207283347548086917361457043979623074818796555118605321146684445584946957086551278248562517927745212752067260191619104174396056755550192567126590409761654703201413231969571606986469426132254668291899610457016973455564196692915944820037479560879517814272451046598989397199005561955356700646900565109177948545889637723665142784954923120096599702425033138394396007534027948203254019440184759117503493942967911446007126011049140547052970494978314982133267116292188546035517572089607149081128867599169102596736147901985778469706917739228542321646314644514146118932159396913915993179946129423833777004029496942153544449253227711635448118408933359783308084120306498590861307989702623584888101471857311215993538952914394444237692621086638831596903569298249489775083570949048067180983936023435436893046355738247241688379670650826399643203557182953147388563877477339858794538062687113584509689648485388565314487367479735316731038682676544617221436178077055276472348692378525714467526259928589272557125471760745596010238646549262916498125800480083116631675356055878794336526181328722938781710263047726496235748525182725149584831952718086879066298016019123988855466345997208886144374083637898828907727367601399144440523257677047569274902523276072995910083992689371497507071239146818921818975453767353599002911430446302319986069904378779332549237468420733219724539190952073720647114010378745995546399044867315837988045971777674418484159123427160064812253473988110961998144538196575919568179744407450848394089747788805876395010240173478492593276356514082783071127349977587366636741215168353924566915427895647157837419721034089166622879234865754628970022842814699842540022767673763147017263064290447567548163355371475981553782871167408727912173109842768810275713831025318316148814587374363672379523187924609873528917239740163889610121724237063778871044461645767741118502309636908689251511977737634614571846652017489777164203795675428204440544368739837891817058991009246706125139175057433124490464798478643855186344401481481056114790603020550986907930010004559663622224229080634460331730408998878134302065088057202855243916730225553224787088583789323751855002058536009741990797005895519191423578932184163903649361891558613301486182388341894655568733295197670912565076543801207422898085723998156861709897513214600035790426960800865778737767975919692699771464623128654477268030693767437660519465096963511797136652629969247578273440718492186645235010655510286305052889368504698509120635284731446618052458680375747825286457908973826421315282416461842684061032830861420560093833021001926035513009256830919439611428279833882850045806403718809967365502161366222479568565932538700136569415207705334217108620016029185601654330124397756596627864056039645962959402684499577565825348391694471269763160299005454382920198272593278813868377199896867082355834825831185683849912356970543547863432193989886082494706456311376953068662018773889475490898298190022578627098850817262675091289856477600088505583299659849491346221928434540324424077926606031154466730688258754233234441610972273873874509769731827737629107794920372942778545284023031188492779928923702162546998061054154231618003824771231323465199645614342314700376208339707936775173579638631483078658842451601491963667784539419332656677304635379973646337536648950264846440745109276611366222483532094392158914050196684315073482849751581083570175041506612063014451826538876361599258385462964489833742507436997733102419990399063011286488674049865947259639283059752405351470758798167328768126123622300758519604961821569456456550386739669378080894188203749575564672420496399659364673997927929767610787859801242635117236322433731803704580039690088965060896411508005077719595325328444802188848804252606091502493751334241221586790720086536359083270413266177103937550326768803006387683494930297423531593756801430754378435812166801377697955200320043170656697424888002286930075312836868616103503748438721331759721533256146130873180982318191322239306319047907039638359147476031377250722572602220515636718440672837533884946952636190053165730411295134953903372823724444552480794390273723959655252665310771925213680793034275388200191789782052781735242651700897128983507687607068970010143888898988813211236985238819693892346808003348748669707113922737433669321948692920230857839257713722746733088236265554634540067325188422911649345469204741887016407179231559095978788686612570988272971759067929075746330512975599417602989680552749384482757137855555908499291757190794334771750602095146679669293377400268057361547826608152739999557441102740371779570771473081951709820530677340353129547135647336030815959407088232370910513236714794750637443798923734822520697624968077921310379195424093077035679694134744422329483781325490230195274487715612666475770382343692828028325418267025228807018376697751767186219342612953388785764749400984017250263795458099171142388647744038075606497829074384373922358770218966526750697272678101745683431987955966722424803175306356989662670339689504470187346714778691640900844011041808904831228112326437854228778716226289514916987315560095175334952608879279805305582305792740940045720158652522983789984495680397846415419995229293190241970365320641325194204747256203611441217823925282002961758526425884229547001178419797743053395607091208626958512902391890748753126530575569021112366615097097453769811367581090521915618725440505964576085554734247464431755662039159308851228707314704505907755315018465453629380364417100638669255692283093306750136383759132610577904754323420538646101109440155066739921083844656576201227628277732856232072545438691907375511760900604877113206224692262406423458275823276426933400128122728041470075104539126159657743148327412309372908772476951286001405115498591124200414289193220562225252310771555787311108721867124573606580725623911028919103038286725522588470130767285344457149457627159255459871735332389121070761011997073424088012415658188807161277203950437969271805335690828036369529640296557580789401512089075193994281498170842473718407175258168347056494685741940642305753968794188247051004856471013182065092508992524275065056713070122883941641763882180216212976300810536933943393283779098248692056673864853062431795262400068197621302495037156412687701276171769992354025468317409273895548304865330953275140714593605553129223208825462722319309295729019183901938876171067916444868429672133307994475898983648173553531429018071173447329029912958976890288845759742520170237253687615534349979132519848361296949393869120909729136653746041780044059225934269734525450094715451854308550174559884621936180538659131535610642989397866518062164775335760135862584533335130568774767525012316368551735955704284833220240121131314795794963075459854584928178850088709097029434151839452112327712923330399055099476990069894592626263023372073707190323117244500559437673096613176023214204554378475877454229897793177300780666390401831269725034182843597293654180059529811730122436180046366730208960347848972325171632790560653282304192838082694585350951909574806187816365707271167213874884376459347152448418824891188052350068900035561598904089654853519147485862365749489328290415621282895539402840749232146506308264561055025892008115286944822238690559675214710188333668404371171462800372534087209149242666216226126679187643887501987987400507445727843144509409213421898398641694739596463516875037692936593764356284430177071109761497120884246442416055821339731103677115949952237295733255549447512551032948480566171703658680697435020269374151265682525086875343985433797554285600142893287812364934610307740555619124004478579744438747604471196756631525112218828679911288379965051671815001868127565518389489598207368080804943255629176258960959080889348228672458837573324810300541313637467807553867638852806994078748715571282231990794659333701554488435614485556252288992067811783604930783282800158714120736360184378903775750408332419050571802172871313420923939638507581075755880333700518110617091281176696466361493545240445089764505659910666449199834709290423351456182995441751426171644154609798195649456086172957979871388854346507769422966166189850120358188227712919377174468020088611990004773539801606665106851716802455352374377886137226626888245978821360053639576014004649350329953074454372611751970325529998804653437034826074194789350853465557181666973014664209254147862000969277162885947472393818464132077657646004234856228411499542623873399430975788666055266138197777318081352330392680861772119402243482447318550714238339517410141955791690694563085542638696760214880671163384072015501766022908387353028768754341845088300259975635271202003443832056749675136422068730105979025636439365883158674025776897208936291166551685037619659945555218960046160351113974393220341042045133523667151696927292670949423969283634452629689313860392128243242838444146956801209803974482685700879240391700703452665022856277561332245844236554456296632678171837541547470316449013601986202885043027003515971083923745681665354495445451385962375925000297158844890527699708218749514257060133494289570856485812136531523703789810830756141689189052923930703220425265855497565005148048734478373509272579866449882258675179378973218178544066737243214342646936760366096806980275073585578848885946793145826321369424411226163838312683647849327686397419809294350800914056686541230659641993648712620413433652151264974034724195532701448413746877992188855463293698388787263574059248618820056764485090847623218434800231282066394142395002104140786085355075730496605993277154557972419594797060375378463293663741901068142158671224945578772930329062550708269963494565309159564699722746858996460742107606938837473770768629202576433317473072493637896160978933169728540390103373664104040728892036497286493381402939115676539968682934339729238221969688122110579182645079111841309484402785372363856442854929241400798366438160491632626572895277669493899590864215927884384974663207987255897658736061174279514515258045258300430255966043597628322926258374557091003129336732379708241240596362531000772783418606864897351886504272969542482062756851135454437313253384700557669348842301571100532857724471091124524957841353602875463236479651034256424797042484727220824361391053412711390997628572028075213405805204494167733734742010268019826096770796212361719840233152714516142763977312190164912402013418401266928519122429600563921155709951164215410377037663999261922999668989829291415395663158527166289778696807304108385023426623127727892234616340441696528740369357836123167421726922916839921314976317485685434550603451494200807697926081886941257372465837532145972347785939708506964541276543325599609447434641656261860184324022080364751640050903960905020692590563750474550533466410539487931200001002747558369485788506158240143933653562077795489719683954036508267071691768465112052414256197671332570685826640010067459483395099601405402961463753773844802438215961832250792101584534742645882606465713622676754836080886461707344343478184781322197497619089473727056466579874407149964760827997078958349888088900415264035071952399726541926819783571265978359983619972866004104108119530400481133093917911716969248614993800222455549423654957548597078868103584276333768939993224322158563006166599973063840980147556354538983806454306922234664782019616721122233441149744944357538263445704292474339483950371157648005551868393252734411917014742474473865012804695581551575987971508622554137398018791940433997429642643518068868119290281222234338489704911918192487784291733603707691259062190446328969145611742574973019947400230852842585546014367912381304256124767946428374341036176273058280656599323618343585426557011138376268454951144303836606829466949264227045601046536622435909791893193455229575214576141005133424654742178996579431276739252430650903134787640859271988318548460230310142661099157235431751438042694925082128652843279905677306467998025061778441367201182819505702010218797737834579374432912405425433780509813166419622820767548049814843076384930226336354591010014566129746990826371552318502180531300564347285242451062538614425408548337092822767636521049716701133451729116133149079383328613689345498602375774065259930365534317983480321654928779431494339063661250896344670505913474628690610432637498744367410091974940543472365872027048019471164939562544507086204456008259144077424454934463621994643630580253161530744246333350784334740811449643587829746853509743397173787154320983342740073527426422689929436905440690145489322616849625598538244174851875688445494722897726821855228725313439824173486885878844202985649765699209889600231018338997192199504114352421855611682613898570347283559559495690806838754724067595211144742643562805748730103896083316607900431404923216534569143842683494020694899915545014958424569419456735270445392316903754821360038657864944761049403459912338808068834398498145857428653249349477661321858311020897382045659080162363351573807473719310950228379246094418172073499029659328223380588194453573793983062975924082009887415964717124889062642682975348942874428031774472937553779622091034327297178694949784836958479133686321366093731112144472823773061040434180128646430903017055030715068021557580506207590729371953167411089147207803314103205126504530828518912319391394940327773797450939555940235475460482720976514882940358136931199951648767161000107493953866964998686291552195610776411043808096665788770433755283694397115763167177490194383069431545336988542128734445968005617486942928978720260862650673278509586568282454324461465704961150217275376411682476004678141068016376163265608818954168422852704601849872319020518899307120076714206937987177758999112127776978365397415668727794699513984617070349543791258657750975495769560602349579129448358098027916469280126138631134140655339384442122403490827086838229544769979684362831623595138639817853241237016130947768876628279080232902233581235823808738471107721304982279757236276368988842983220584691141850154029441774909775177940538240654868041291402127179228832367957098626061260456765231166700691932315076064809321776072025575845962887431542425784224447121936234813673445979381372793533070072600726013883921215269484688332355757345337827005897935895314592188810661862806809777527426265093217847328902009260221229687251522481494412190136179799329672080768876660286827996934998131849548636940338773144224441813733084303822004721413043013819090205681032280365739946486878330795604263447336621812950528753476699827921759867076650268737858727550981727896287274227504068178971489833332725062862911109963540059140161330447852287021250380019426820782996908803003604834444582683050333918404835662906852545002746725223207858254602601024258703368333775703474494379311054603934028634523605380145535859138655008426768031345981609636906212001803073214446572355339257108871044183446278642905272288477142268154665049068979105875052499465196211275559687333348371909985268524086058587981770018677485967202120284838194688211219188842944295583822757079285682368986257966943409484716724369550798875079963316451254932096081343414556561650248681618963803375309981561104517167533069689159970914077429581244486019083418496689830294695738485394188636955750473714140145654488992951627936220189304493988908793367475403536798221538926883137206532711842479929773023219216780619274261086477313287600096502176815734671772444163715353198743617901852397472538892244495806764129671213073020103003688910558964253675250933057613183999327245438882541419890559633408749517445012755825484655841865587228167410868643983772004122749557692193867442008007119607025197917546350890380270082503843434667664056118682359671121843748254044473242706662724437855738729631481116100992430210822034070369703318489883114895578419702562299753355560783437701074663353803863441401926448707496316164339359778090552122255361724473685400148319982138608632836230906214172539988718209155107407707884700704579022898175171623044372474484933891135090745671541552803689730423782520210000801840349488834926770156548928457082898327869219766707316807313240825847479638321653550648370556726755121978719328163212740858880614149668680633966249694794055587939800107728523769857913061313611942144230624817130683260747719163849660654129323801202066354835005592089561574952504332178791573960993531438461519800858975124839887079845970001504029177171078012709685202388234404919058667108858118065936738389406595223405421130760341209950010964548480549928410197882932967827319036670637854217398367888485172553204217809103266562541245949335113095981905102308832868110749585458542505336284756655990653617983010170333057391552014903176203084621022111486393453776169839286033363828420720140804564572789062640389121098431786252213306275598478519232815000979167504422692126838209729745598891387049065120589482949422102005700419722026607748480930585430778502218622756050052055878893432741866686676121841791623398914083833001836720915749006557611934630745384463870202494412224552544502253151378086749769474036800299541562109813082599857188813977885020143391869448055367395646485078939014689008331845790035097533019894793134458702324842820389806485641533399486455596072996066723587761127807874853036437823967008141184166474531849017384976970113846532939675551967250687717101023686970119370902615799345617866434385963159198619747255650071954150423347793036400916568347483470738268198119220394267152712237601287029235174721760217720885862594489055054833679517009251215852242990541858290371205405850153655032387671515025957849658468232180446298605215380010894951234327755552460025623003049891919859173263329909293990291995933766735352310579588094716608745373949721176349040027232307095158425578341860387587008591440556596403660604991423429608764778006704983599114919329536992387648016722074665964511682702238995904444302306635194255086894714891243284218858319619421013975526108980715096759160026539594746944786705963414807318928477237551873594709086494217913687370473623684753681850507065473840853389570877420493412204739688351231841504630400700157953319741451837878902798140269571768008283629272481777883150970761276081237825559584938887161651885895087344595651607701084511236816421241327324155425912535981091919494043136800554055001787447401552721038247776071685242676458579311318759867430118685599789226702302430719570101644766371474831296580156137285674842530732993596430279008689067958011282068770242735697573206149449773773877693190900104275678580759369159889995087974433128592558549906123398733429128625741147863544076171912963039629116320329931823817929116005775656946942935637176123145605482834813799699089449941859405992682142218711625813019389104922445871346773301118746678795828037683757508079445597122849307402752019782027130711433394962588007338206986079800904888720030098202410211791421306965483779128288724012675788184158104269032409456663633813480158862418391579623010292983803926868951103810711047347994434509455351574038032597341774894884753017130843300708519340380000497750538232797287500411999746811398519215935288946946438709887662238613439065609892993363694565261733219471863403198658424806031624174257385260156579268024804488859300997751390315993447156148001076260963162099598381099383131697563241887530228934027838134942639820421476397879132761090748066712150060743015910938861153553702447173003770578418609078440501830708417849179953324939980585845971413861795534607220878673536199848008749110263646443972142238300159314635392748727287216137451424225906116576784529442674167662263555619101424916668258784196927781418234361135043300826779515423313032091206261451183355231879947629275257635150957573712599126180545843206377869312534144106015144337877263359817718152897340059962818776110442408677411911021053229897918157782956743327744654676675043841111103279649041575944197626911676565425636051459011251884407504809207872910846916276829660472787965305638980785024085254730890605783858317671839714895244715410246040005662121941879173600989510187977324046508772302690729082443812717529194000687180407364667903089353550012819150019942638861698926914879025290122695908203835778325533237764768479114155741849768518512967194191225868829529499832365227689680831330804897079927703857094934604614701116312477098827007502814619778705798270588524427230469219935230874608439897051604161930568120129185512347041780032818710478102717208836824708772672729233700653589149732322061960364449713473620236254099911534732708807167822219988184641410930063018366833215644707730338573813117997680957580384078229326546356652100336423312340354472871235472092010349454751913770138173595466008715404053788089271734153940297466219971426264666363282438011385325635021044045763693068582599310544952554096539227301538268729101115635277691576419730885304874614495642482671898408872133525382870566707786033060958141104508739958982069406507257211464390091949195903493835968355707266029233354095106616078146247666163399182082953252129265860164599707223972332676760197672204839002633376864417824275459079578574108729552434723183998859563106265637878779821401184310635698512597931089211023057964979454208167528002648507780636778827462535991404806625492266284837381089491866577623737660962410414291258364582637438670363434411478258265671339143666113557180164303053534542120468336676859845940502051914741287691848657175913017484799357227753095130032332373847850671796837806980821948474276546931574919690173608013846209908171933748358974297335318806591869673745522101286848135318389979810624277543091749252533066675250087632967938270262710108329196627576229826320592006569621457535554016266222730286935612225512940128237481942267268177807516624863324589941914507637001397574041094855055250438913542808532298113445193076024200123654766492418237092986587508151116591134906659511671202369021255223528205930696192710852305326772408224760815199976953491902622768798659271912313553830810790741913465026804035057663033995150710635682566969496563081699790968832319553656887244064563146220008377219717203724519393609890831953244076711114106473905760532442536498413070018207808278825655376233292665511100038196933668110798385795394252195257998785771737386983066686903644461262266466893940007884261383881453968755076799686365577923200127826684282909668524239267875313598543036773758646432149882831131050396364858148522357654062157887764121517086849480451969359984205365306950613558379606714823279120085000734204637149941729213229136027530530273792094835394033170644866796232959206039886057278190506453536924997898988940018413630997679401603862772475867822730027110963408739461312136861971377984067067107454600602549758808421166927918646765446692224402378983657059861149197953534994116999202691823729100873202664034092699379941214479601866294877685837329626629758295783813192969288113020244178644986175355315295761147129363237168132182203352283488037195684508830188766072231492091206373597896433022474884573163442028628509248225955113477652715728639684697173269775902159118481506012081672521899691180942903510355276844189175568867556622122306757981519492955586196015688698118816447041544546663950633473594426068497573950363232543928924905122574896174794090218104679890762305531731220082460415324972090229858118684584558057683444987995558818359458838722757134807827940164499989414899038830970883568637432681397332213709413144436901975623609949826247135460253240782817983935735499743566842480208540906970508360461903848169158697235311965463809401184591729031166078542602999413977568710515120405840278182153440892516030282560879744968501011433415343594813911910996267473638096805255906315463692736042990048638403432097678261273899941587935211292575933785603161546558111202272571913110567343761152418581706724202192239745726445109197378332160247233919646861132608920461742270989073102019432292189798416706510134495519996383627343641410410094206653955973841495752029257146915997816768809300596465127302266918983338684171616059414712949094550214679789047800925202312729482989904194471563457013422373287945725792862599524522363996125760920483888294165628476190546466545504308881901235374830831950605750446181414182758926610584570870327029839952981340999139549285279087556606136964529204228657640970084714866978537873564210973736653942312299786972776169654000728540767965335841741642355507203371043287875888773795379985393678377255464500389161628362394726552531670610795641373424555170075519695920022520305341647500786010667077341813386338876886970173124875785737211355321845971379665642224047384284381729424497721786358662364364590817598179709348469257000236553720784995785175607501221610086904774204901944201772646023040299577960207635118992695076002905778175012470132334969784190044441010544848764282007044750302097771121470031224943198569962902034948802659521729300021389871305448313736910399287199333670849941793728145664802510208964245544885038636879867677914911850325577808572136237273620999419764154846769443122479702764047827847326486417814671439546597746747768956164098816805408866189384888777750437018731140690826336097893431843895546360026864871672876198768015035562314756142833547638033389389899036699593367803555588068741147803186398343365460402352924457129719437014032268810517403432591114103850665372510599066959045595351619513365194847910036922285482575011558562504598306474748102269373973114072529673018686946607479014918611564968308581823500768722414027960904641041871746264505987241243170616610130309721064441193589585337723797473302201306617669108166371606125793455918904800535624230492933749186457742676210781524949445787893604347427435107502763631978708369587664579416669391465040437506514607817396548948035189681317046920639852615953415707179430857412718656768383110747667317278802313053325143346594472697587232727084842427926896362871635401830663499729283270973957206486178294068562296052204719908672436625005534772362252541918912887162087940752377337018726306374745947086515537670793793022682768846474439831880024842152066694207834257216850949362815825668154050482503291537361044178533099116096628877165135028398780007987754133720388849026257569451466961835900790760385154794572519236153282877832131945563827579773733556685338711095534256351609161285712853120580652687194036462761436590914713192083210822214212753981517837720128485866135003256042190765713279893753237486915217321235468530594861690045441348528180402428451043150333165111406142929699050111857106178322036650650750573900202057534271699305935509996182598733364547235298670312846954032656636825695786393099011488553015814534020645779211844541117799597655315233926955463456161235833938026156344235461771945503617577424106564497420190141042824733244379898572174899285143785061608254293508890767536902612842845941161298670972216013744908279309137822594899233111521088414444562358545344430055726005813907638232115024320691057648700547241892453854869035475046474221207309746939217415368002231859930588087873515766585870148683612670227798537483012766125221359431082671195195124548523854315753742506052577874126084505215249028965682807829958549247074218198720656490289617578766136353884832374129864859648459440979581140799256531283836276893012853242982424741459653900553958171784893239348269086623829792326207406454531428646843836148642662854777296416007571206232598298416738933509605188099489853138351036510932770834674368260863129165662672855404134270309269902850851611578429234981667903747052641623736488567999163872446129957452211878455129996151672045631614068975418404653934767549033371409315698257319607680934012444722174114741949566452127123166364759413818506273457157555504288254029462435200172773960419769298719840125182029298113551814278803696025950085931825882452773089665795890061569516185718296984387223411669466196536725962822826935205652822930927945925254077664551661493182863572717736250761823567656569784931023226605729267776408022287576605544022988423103983980026115831052065837614307845670002204820784148086095105483338149315498452322299766264023672658428655539780039528754854301739880313694732807375952378002742695236525387123955599165157763365592190327239110105909108658712717556278835797971861504644708121973682686762043144630536534080880524165587327181816764888812063345970633117461602527216751114379739156447543851502437986529457562931490352459369105711035714500986382859708342687888500072307047095819704803928097891130367665570186807390016654363166998885067978394380063794260791012896734124853719801402024410558496044145097076557510137616455440876112003152918142695194514592032614098985555612649005222510777798282893487737182002192856278372974202035370315466696122017011057723260768967998048586579790122691081969319947026024954326832148971671582426457670833324471052869927337932632189822891301582145495511931803168406082751523674555669624121854631867667767469014669305546714864834366549639588721176664080849305808825895645736662235058145444164975198932520299145652604738030045692643540431954858825944573861043515989846882719356625510765586316105475071384882848271149277205239826721965403725574242854696197858587215460302509384452217332331911207413754721452959897187239799984986339557487028538335359609020795426928093348094163297924462001317131450646210974169508944289555148276883564745567845312731456935570187949136511660858163409223804743959628614302977498440473721719591421863716254584607508648070408636818247822114803977233128133039392569554281531862441157342825510281760342576289263498918976934074721356229924712980666776901368312170087489811846984463500822549651202275656891740633406733466158173373298819491590872921422975698882366114356853234875885819911050107493155890142557668183471548254063510411067198685474123536678864774635241788112551267821271661056727752655423349097241217559747084518684667536595833586295957789767875476143422425842574003112298395122239519043612902991046953195281573663539003884877260721985992308288051454352430508408457463083537349124137832209507150376206676892312500790514040346728128433372186378137655259054053356169456223543187832742218316454493106725027865467556886190014202162651331285871368927604651632142306016838766117921620544288994058470529124070247662073543327219141532958570084756025216495007457794316166679908489799090872610202060146895857677477926209224736733682091169722610757484035370401628775105039577834745820598299501130754772687596940620747117821825284427629253305827345925148960996851618075431589291743885311547821513539398141821249501269379314733952705681870279627998974143687627011343162752176095033184926384616658615949077313750294890656363286435956073335212553147308148233601499310778359594417271295338506561983654875985121543279045810195666870934703993976534991127272583522019711454711222002495905457797669604203300306508469118551391435910249817774227880129753556579801781208584727544222810349240996148453415973287008531090796713462321520763498868962419336619506937279200955065189016742536188613358681958336127645273040001306257271369394870590204912803976196996649890455176185305167636723400977684488634206498487411201319769395322394984025834732575265038901518494967070490064485032233276074508537339036051736032190935994642369305804834225283968823214890736345770202956403989113076673389247180177708515523094255718759540564788592352952643932944441339979878813376660164396554671315150526859994704726795060989894887898906628708948324844902022044202988243339421440697098112397438857570510619981854240093580450061156996119427668031672394043478275090943951178691109339241385620870629689887985670167292256843745393966521178562730418537936977435087010185323713425093349039840676290832146255992248522788630003446801498240621881241579428494566224458538643956661866552884224119992843251720576921968252466045789568337727143691479745853418022384014691764871132667773836061505769256214687581625382707494048687956903233777015300060036224351852823385681696493058489269198973554106435058505946323183589157288890416181664792263870554410103437859739219009440928061105881790317003657518310444291357469753545398680382833412652220663180955310257626873151345201924326577358343841878953627861269260505056233197624887894138293148017097737870548704165688119395837316944062431101444678257426504927693185301948557556682275492932703687243132261058108658685018840957533913386332780830156935995939654765663726668172496914020226342924145580632120951924721354560470314144610420911112592374983186980625138584175330816691277487980552735392921220834247522290701744074800596371393466272977066049917740527892706374248728614639792654306999275836147844786975647573035684203897755454737183190187906472166165626588254501864473164934654771479281754228671230777401629786783948399645747231747053007250004920569096532223318887408188622815655243554082157178939604088223414189487869013209345141707227538825608796497076888820124488330594508418243237466160870268833113959782942228812255985833802434905327417365377796278222066723347659436323713242955695502602024439763588260144757580309536594293240059073452253227964562301054125395092992003270574428313101694397396436053368512785679038976210892637136565194933029708181622146349996335097643627691498929471651948077567757991446036962077214972554308931170360035111138113257515501662804080725725897201513710913416959925056691025820025262746819554721980537620568461950428827420979846463436514934117591646011427073626172120878175066858790713698740127458441625678885653078818636580436174223588754536399549083696499362641843220889585865732587310955151897022120222407410137385865334764511757748687684453007576803349768287315218375409474669046795325390267486055457578830593943645088301746603894198840321164789116927250319366080878839218911853013028609240587427243300109174236442055763306065237629012548626861686547992081558171493847944146928322842893555803405575290775399966613745732157668928000853476814927230059171118145350034844614489990755268129395850633031677159008535252068890746796247423154016010384527185606180825826364409704821849602902807250706553373082381518091152670958640850555528335869466725750888598885493951383363273233441329226519395609858958294045788397737205616249347412098128977613744882655455745110034310391618886278091172736427078797949499533782191057059153117421943352491207289356314691674775846768186069948106976162889586613929987461309786662227312837427824372144442742671661385601686341234918438952762486203698459568716469384290607304234411749547186141707274470272763835100849578952521932612770320238794787279499763177118880518801722815333211178484598984553265175106361521321248441880323217710535742179371096558411562616715377997363327621919204093835599175047941889481536300547452895188786851604092180104061620138660383780352426007763815954019088045463573604889963865297777147558416432955104340716650312964407548636368651005633082486285922119345828071336537474729804346022671365469323263600459851949633491766401331814826497244808134030079237090484083282755889532605344173768925164679306068208462532861587788829862590550904214183468520642791607303866489771974100814385327093046033643137033830701186482608700323058808301838958604185911710194165290989912297346739283089186590750393421026435862547987090805265703312461541217509130774343027047094033150492095596612081254756561300276908325797949817716711443843843309773401107033721951553473605482018395392047402921540927977438067722656631034651945481823325122023455893222939626037397433160970873078639769182701373014984636497725610407396365141168676648049148723871161635147672341487824676354087313434429643072633507849374449889154705200652776516742179864725366824141697090103280011644260312514677525202562577347446799604256652231204997295817017005363449157731485225527628443350096869717019931402126752726595429868792771613641442832250442744273489868859851799926589719753695208209313099244028864654035435725253518253498672982945575329749164677735523551075138949704572853569075488866809106445483160663686424300690373640966280988541193649147926224027544331432280408546355943275475647350566976023807142128337906476208190533912725502768264435465218919619731636229482815989729946793911198273566584128784557688237781482595602261579606274511958228370079903327761171143983405103307476904176864046998134831179556323500900670500658133651738026744973759951655364962491993386338644628030173966953526745121237397632359751891200009661194235061686652900418312417213588529667966446941247656060057491831860289341015034948862394499375729751569825597939584184902098846300762577683826084039756077081982784010446347246534477271532624753690267257254533756039783827456533980777931064194777703540367851500605987969289265471519773644532186983082054323513129586013104432826271625825684672185446418622059892670930252550234368621299727497575323061446641119167969053863597897490573412153089203785226032133325057539963837034465316587536167009580832755797674898883451790841502806911460592064624637970991194748515356857585702461868238683870338512350217139308538210558399703133670173010450582124314877568352568964651043986512184547166231257122870253787680224439113045566814429794530884043398948520221715589535549210955569441818832987786430409147518509361106037540408920840267394254624594473323311178911809031806910131767727987007187881868782605318594168511937600482776723437296560910481658511864726072984417852184905457990142429956288715080765970701482073180328195884560673117092573804816238738030472761510291385956686481980570628021802847416493603058514578170811439444945832313052962033291426300918297826269997753035197516750793757529739174999750309357464349281539726424367833325731256820374622083703386821856410780868762900615785375083104355267562412036378598477350853442735147683903260894534090230056007508687986015360027295348418672834390383143104178427315600729614265850373678680845456196716045869859156473414458944171695261070762151614210332176030938337535497806144849831204363133577796555859832122157996648644945721543917288331743188361664673321016378446907329019675581748360768228999080271641879526687135039747478809675499800374010427682111835611111923832416576019642287474895863198707988745422185469732563365644853074259192566017039635576508675679578236681548997700447362019339002707450235512980044310728421669515518135314854116555576135152789895921477811449366272361097512437880802644413382121933256610853211186867045701327257680689521122421775053728787236100611529083486501761119192328037866659177193846487440124180128956220622061911239110863477893670036486542932180846964808379996121738285561317968693166918835932520319254719926508602934011581348681257241197096000292876675200121630457945328077526018637969299616314385021872589466124968805786269804954817524501576590285682229715564529570632503376870586624910578932945457994426552641379955702361660983326222176734983115197545663407275651069342575131687746478485325303935918376457942798404229380777511608494843186181254853058181438155030913472283477818697333430985898362328597496157056869873480638533244360519265495785002285568226711360274478587028254685063693711554599739317319876432716833794301179884491786612709478128846919320643882068367715024356149655844770668588042993841504475169448013449202101073545757928035461946027171560754523782812151326334891416830795911404645330165312025889918398929188442124516102101265647783924689046378317496397627473235559628155929269738004385906424590012152045928291987840440826225271773542323986891759795138474702690128629763222538401064605968766739296615047657299784445985634998315272188525006780589785636621906125567441031096087564574697469262410564490638316823993688092844868107543743560701820880614313262701419627887705721295716875808810336936255714113020324387413123190898329484250341948886283784253558462474729162124504940981653195020240824337489622092991118291754507001113641959082790222075592440321756527480253854800214677796456239118354297311421027026393837424935691116087871692958929871021386020001191517333947642746899075846903896947406030488811462453408249003439179701730503994604521362198406792106400826201272700886983718373710783577473847791988244955545735870131699320698709666376388622704442537954897899215275084043203763158269544545236012220247861281294566151078785839970926191475217098822251383765872500981148050232129352303529536474483830020828285372311206950292203260068067980831340016199292954988095483894303012442194175492897208618440333748326380683848788953500257792331213900094991301948451111961489976974711279807561489798931894534640956635798255834515952950846797428982076665693008120641377749137401174481683784672187227913042089968467364723540561349641133981531720520819066305621615295655866330185134240781944615825576702018209201445969301300298141381871678561211699851281142255538542471317975149377620912766879775339810467308541993126311317390888417444373808458905849924769728564669661529166819179064913275625838651181791688441835729586294176259861630438341217441017511404204250356723851492437590820092278893011691078394963355239590218824457115726763096504541112362693785754913788539534162458286819420543678581096283629527915611337675437155167920375238205476368424139608679702674497047294686187650026585514870725652023813634044877142370015193070686894919678585154428549462196988073252949612523485625865860695793533493875039490501269614933533922084208835830169614720327468499301121626816182895643254600848259710773438178181420624318835114328868152800409999480510508977289369431869474225706083082986918435992354160020283197148915840592007879186632181569455773962250928817076137664504335717106891009187567761241667722967239877549417118641285350700181415871964000381511157458144905587078680529481736536488691277233136335412782688703790278395974097274098920635323805085128188510658207466600295220031985036965648825645418149119324214277709926809500533059069385191827733343652911853724140127590977786518220623453073772761749969545241479667906034464734482930608655857270280739852375190458589688098452899288921786929540747011544446379883008620745832602449644303301179439387462106390616712001158320219614995634854890127659709804670959579434485849772665917035626826040450890289626231296581838315609769402838504293986422735311859219289291383440019962657931507781323096023408487307489651420502834702534606695536630881978427036982689354594331322904204776384801338876658729384787509488431899994147330190035451166844681939742999676314496400849900222948597161663529228094934713930885084355543138222438800350237190145385203219468792208039814930604894850553486210941135895572268355661603427644716084039709888556904191439909523364890588927394590134671249602715128646800014184133414776923133902733096938357545712759498261514441080613281271805960291092350434721655831922405155477746436426910323712728586338774504501885201064568988342315213071399572412562542388206217420749135274248686910972393536702568979940027241026712927740561008127485704024466443321441405189717082047271985659388364036921551420383767397877343864297672786476201428095078790293052164593865179701497872252781618663537935286631451119243997738871844250068987334201037070579752301479789230760987589253560076114299103637101163499013243436665916278132595347523394742590926231681015727642685535689796473570445609723036174766653441548421482020356295764517899758716978395440934949067694095961676091160269829720202296008768393797711578459210214704146220514279601322177412857059645891935313769944715254115266508314884091907737267174228387921122826472426459972907295301391037293058673799182376500781770197787465449112028929045679301531940677422747170319527676407154400218185690706002144008190471858510030460273988530491330871127205733162536776157004915523169322520518025010308651046231681715366402678238644951918276130649423870201251771827317071321636458939232723003945519367266128796377369903735297736070495585758774821017391369312781956333084697183122890678164980297012302866549241968912329686989829674477256806156505432822291619616137511740570655576108194880844166704473197678670936045001617208531208470349122292933826043154031853491605991817645485807250662018563263971407266173542619025714245091401658337160249150540626290498194275005856245935265874293804588374596279485767827963271590009443154445014046320876852761180111715448102900369559829459691358370990881064551159350913531615950187373555475419100983459605176843881578181001803322559255951022128398315375156457195887576354310254466601026371807427144992390867500557136940989667672042188503340202049949166445530481946159527732250984732217845220031816290869638662880945239717731035442734532542081300201574298827200620365201119621925971473776284214933625801528148225329796233299548010648943681731091093028338764505326105904871235346451365523077923344649111434476616008138058552399589489090925255557440582759809844657006521351756052154462052247130768133336514610072497347458763465567673954138779359506479729717800106034845264166481944700825761966222049764864472983106430891891948714953079044993750533357986025397780177820378760608975645384680762742982625950657153237234068789964747921702107425974736876776708596266577991877008726711329248684155499387556093805170592298062748594809869414098103046710363474483731567732920461296488279095131216633895337476664341062108663190245721939944080124748930290637076687485251830821978520131793457425405750977184039421738057125741411237492311574372599034688575878000550531669784565514482491839249154325278170578926436437333671347812489598371304685326455918641974103203866406703953855507215205789781960443754202912778926638073082845195797059912320015936694968963484085344871607257664681227159945776803461219518777759444877840225407332639408229407633544040450052429938514910656018788288675321831628160953518111587963863803976125166538843335421369101699080216894000434069982632757106996241485223612954703139472983270541657848134962612491851754289310013774997349994347344726069560953065862033290638063686245633102184501865289748491955136432768897634250987813603682694309191329949050689484898652386725538710884556562101920080386284545808638172700949870029873224222307512450176644116073587039738737909629202032755395695672344147591911142415118255619312909021934678828724034114378842183247433592951200850605386125948807768001528595761310316916001948928741094381505519172755408273573264354602114014843238234857055097534588817714908202220945217635549953000881286820618131672830005950388294589058654754675624403733541384703912120016309159551859130755866412522109526424705942875488585252885906700687600076180601338843352873732184396391288892432670143844769934474951475356081601483880991028390209112639177445046643449286568330882795394201255139095771311876074223067179067501154605297599887486305965735512923156573730899612110087118792808276483910978384437376097880855474471017903683562660495977799819200568319817269755217457843646906057482125661063335934526130488718697302625102589257270661633345860502919492661603103515155664882936575314905324056251823422478039400609960637730070614655186232044062478330747071697352605301469042406492180298107167912956081295266989848792628290996763708660684499523799517825057962560697148354212615353603882970305742583080315542656173376520071233664560658700961803608089880917387626499841156225226255744107859131280519473844963235419745313937492586807266889978498960947242461894759427027414694538493521165693723642825405409345138269977732887096425040195321683140967408119381799227357738784969745708439949420336412276144257167676549689008861758768464083409398043729881304576129172778718576441207286359451271631715416674632559845114099684838989404608714451767963347360119846124472174197722178255832680760870578432458190381857254736788318403207907900421518140142859864867942728942841524249237541239978478367300777737650325197733197185321510203578681398105720763082750706538637016595655337688866870977403764286364045183968965204176560899588856444977007608675807253446201486297146131718858523358799674218083211118446483528108588701972487010214781908792735427120833825366819531881414786420427777068799906321308378429875792992944735751478159228500268862371103526569240320807771979250014401113438348772111517458453914274145979350151042381090715955871708680647222363595060369118277913700309790379083310646279976917563908241326938584184146316388372429681616282857352096576880808397766916683887646015964517153540626308464510126173725712472492132535482635905751615456766850178701550082950461386254225924816546109473761727639005896184535844877329444997481601556765626434313496927800968214693580622373226500604494646187832067183717136515776035367405739201735928560790526299567081934937539727669248237462358341663096700695392695683704736576772587325716300508926569956074321618235962440427184924772533700939417192105889708259790337813220084786428201568686242664841772008833379318767517175068583648339918912721855721433918486695473760486969254474214473102186898822499105977300085144765351869933128106398665923190728441015876038602882053281663511715186829621968516140767073097401469874487484698850675562443165018347800395088451165475974346739082357296328074556977643239174032508556367516746609893797628314754147083405570039493709637347319353049637182394208721998507838370998375475683292914643465628187881150453328207141197699244388310386676012356966053057544121575369265817873323019000752993154066731595141801319216080407847078258784811508014855881857032487530143261566182376546328190199662228083199611450243119569605914202806972963410112511120507440008642270246487153040427393781673767067388527644562075196413031225737525801760979447750575886434255154107878410463049133971976771189413063399388107911886173104132048664426483959424508719569532319938085438892794609847616121580112863769315138850639192175098797080565511529361640670909184909389032164288049507908838675010699081691635810845697981772063214852275736845802528541258978535130403604773106173127736623999314699687029825215678115357581928845990580057918861676352976733500289515285689849815568304689841259519906865293117151819345640784189151547811412213889867791139775808814250796809861159769322619652650194458507636005290615206394788770696219037297157788124175018955646894279478450792403487926677576869788187303940689493850904380562387517574260127782806794993365517379130445536155732276611338491198820430666464787602949277953375798313335992696772622111523832219903928678358955684466067491002488383659314762894849332331031222464551248170699322976458634288090153936987629854479555360831912783856776234077197927384442594028954130315116609325828660810194086630573106454589044754375424108628881084322626623828119279735623889348849352940918352865723462343047647599187101152204233921431231413016867293034601050058476042842291560490379033801318181561741441250856754446129164655261953770996628311107487532068508481199019478390239906491343080970902001236699352681204639325336673590956266171376382676415707826306546574310946817885010985111829103889134166927070161194221701831383991731002790300387832422534350567400346670203389236560276144492022232088060176535982346707387042059570247121411967304945960551542849536531884327173593528984311185959714372517265033027272391362001218446110180073334900568318720269129205500643716701558519704931969666737345833060227148334705560130273102637293760323858471405315707690687911279610755716956474707716941534197885026665786678921500001792633255410250345647850222492972373159265778141395616696892737872399667723009066745702010542761095252521192374576924630860731625191669142643700229680515459718023418034658809437338088607793778845604418263809034859305041676815352687505933592629999030264501215863196047339897110428723228531600453341965443854801890686651666406042734498996958556061967221972509872010120193041258246926563539758657761807050976894399444496619216327234580711134981667173900390733314282318355193516647980466949987271540064550295417175282781855781068340416250641279470535321145729681669643054330799452813569635985220893853067925438242852348316255242491155243900452570224559800877739224494753362695036321707676466306881015265639010976844802016193152249583199862577096411914819132017529379365112489646798573457888514104553071693705263179264278645152235499801175369306258353751232393360500277582299739622950690345256822229290289349047317379099545487124606663576034573686879706824616187084752576959192548134911088190328885709481907820885531846232768985007475535112516467138948680439289607924446940196859191768118595735682347666910662841634601417482584084444699320404948333508673929900350745256331222652982766795345869342324309477723846033125897429401399134215711660188986040252634806746658625356515234424047186827175135110241566565636653461677854394155070013862806295588458685965412466737871996860191761748053270025524939639628381748177403227542009632619851867350226132234706223725196941330024810978030227744511753846827449253618284505490328728853169349038264439498968268820468800967320185313565870871646227381119855453658749445729677016363173047809044524424752106728411996503912274333532381575946967309154826712896896361102563919947076250795161504561947127423759686860278936230390135521945081969327952502697890560998389867726871242093685168469848087356392748025672315061392418283839273436908795374647879949747788833657764925964179319481115098269225840519612582215355598032225383527269126966564689715390428651859763774196987946848725384367920187351899177247966633696900732606664712631777447852506113443613173944768560025793725451751039214414539692414654146763713875974874221504550558357723811405847820295043558904533244542158555416865450158960532563122232623263373524656500035557339579620454892503783874434230444056620265753185745801996056590397142726734993447704996160056562427116113091909278674252464452363119010302844758429065927275329161791939238253221158889021054726417534810644522344297418177983911975681693946726863127703066960426645363743335133191084588115041897992686637647914981279487783844795046269922880400699385474346408477502009212905438128316211999548101156344936054207317911488152789745977583902579406480170492817579767460659257562665506426573935806358444385202424972760374684710190271111618413141492731535869745768037789819506482683837340886816965861802757173652497064573488525199750697021044390237138096968411751562870328358454524480484025544234343195666738115929964597750575048979610563114248135440057385893404965610747757216429342498674548256254612182106756277487341198462469291590776107992780007336342513850972150862599728382280872755554063434892339399821693519071701244974182397561307689019337491185836446250377224146366849087326663538287377725053010400934768048814642006564939965100078271553570589602615926829806915307465913613411210486679177346384226107698230571408236611106470036002602928442513233436867797687713844604872047289863817279968587254110783916271539849651692629206765266987703434139308661682272879752840215922506092599019396276591024466017859039276902851094924082649327211932532940883598129805091630770215162740601349096957263923249824050507645122166023799569099834620196324461730300477782941284299724985339667848413099800221023506857199874618721619299455971607405442855052272800256253172245927130587308150657972485915631749214342022582258227933533055069672810404551650242911782866591514337189160555479044022478631276454016330961737563900314790717110618733671499631178675018306476535361843166291787139537183077137190452708937781131402533119872345324710800967894079640421677800854780904689733732297165099440170502490952689978788995927262451204829290926069721250868444326134819180273117077439467005662408733873494900392385065222466088711220267322631526335592104691090478594881705362003160760549931597490329701331518729667495546353177551650791560928396305772095463237721775907121312097273929087297044304665344928159672413868359657318185121035747706188948022459325671644593286555549456506337756160224863139818962839678753213996530611006874075262461756187257970139009111437464331020174030376027756625483150409230109400596110813538012321252116872932313171298756724346786708033883723748677101560781763474908040113764249341663682233442192317394019029891486119284397024395954830668726644769468586446646213803149059018519840490410798487978939636699332150016417999508234400033464195738794997375525570193660832595481096012569691230370475613369511441657584398639886427865562575038630388717246820597033134439866469982387385343842890844262825800066207200286005269418630285321023805421950883147296144122716598813057984544275657089058803636102169722026325250388556279433909975944151331215176192762883139777254160334146126077551738447965994701439776421897946530422873313031625264471340244109828162125788455199064402465084841760930684549265175974367074034175197874732525167902606536247362166190273193380221507762854723823416646217669537604600357691131082208839614338588627362576470796269378758934651521036912905577376777304364143621379508523802343620386893696323793332004059219354603941482452666139272302258459044945241196345910625744359757722763985449559448062121890891672998711896463340016122070013580905463698012632647681932627057353315107098643834175826117816372928562647305332569264586607685280188287205624469244229098681216551081621381282887243882826178097611863326617087286175140516562044389037121581591019591831118089910831889059881820970541755416596075415921696153324283948525437604464861603514467114557349622447399033742438900861059798589564854414220577895865923470387160665618255846254889304706544607533049247175179141617290892571897795219533488602085992654894210912085638196486767415985145380349449650667808545891052147503581059870850740875149773590533025475650844055520249687381515272687335597749607568331162394167629002164798029144536477101931334793997326889196232036393218611897293903984842588062143516841342105082330149310079243713160351117248098854491519113044868020448626351954146738486800724329467424822542843139909820554754594041936065773917543050164007001767507112565767550601529714019950461992959828780417807907735051796287736789732001031321217884737466706407491789735981895709793152858783773037436843666951875459657110425611711057913341348734243038106815808525601748046304648040422280180101503213799236743701949240426787739911545734843474431532789579314856437458684595751003354842167137122621079602060950579822414551527533645618507939597546631497624662027408124051580236012503126006843384063274111157124236696539697133227000047107108212410218057307105874932166263628619197841949665041197322584899902683213653875539147133205804340079733364706392499535299561836392255342026569576711771298436977978273678324048535582414376302473395373382886394710623678688175574382440612713658785619835259300551131430304015205320650968577131512182652413564026720064737063190477210867459832175459644363291371483763712907761873663651237549358570451389962708814278445797082280164613174201017158953377319808255412030288858636877744240165034923894837994911804853327791682141577586249885907454033035411217548696030433394663674567005060211318592477762478149414379757898059272211001897608573204845400108644525268211539859877949775359740956106146144339867293107079846057344814481632501545006682527289793980051325725173719323567967387984894354817749225594738789138248960921927006523131685208381665099831487936698178095466339058560590442669658163426581102659758441564835733026584104463598766397866114197673252390420062189859570025580462560959793382706975310904573327599485776774942105255805590920655705117324916725586436146112997515216176215541461849020640109093219122440740726901719821499773238431078236819948726081486491716299161189269634024772105219262399078158951523600367045268243817765700798124836842782013479285862314737607208065395526943478999101292286089714836408413000087472681480471152539108692317029592267615482094972730262242397065379935576424000251144889470291237326662061485373471371376831833162753151590516270241120058956375569416425393288585764514848051246108876327759768151586654176673908006394761121542713950305231152022457981322662495555499358456835713868517000869586685245801557024390511608237186826436545607131918665195254362338030237501473967621331230014763788369273287831755167899014176361412181442439850210227137091477987184238007560892104257354653143339998618646628854638114010046105114952566059249788613666663211539997314002206285136279928199769623397799851962310486338130754738857020162014097362700874305679463639008767964343006107538943051132415772778643820753671613511920494007302262961120438373711916342239891382767805150799779797795529490540710223667234362305081148219101498736705866137890206789270979055259388085661253551304231937372017152285281444025918114245930620993755351762156477454782060436919067170938804100663273746614037795683992103221362854774968519836614739627481311729153774423565331771148541653250439426050040171082436634957507490034185776251344483836419193166181278873226902288192120809041983247142572385811440475651885262930842915314415838774270903299306197901228637940128012597920499236244739847488560611069465149164575159948317610849518536343305119132135089787915322111088301565326725965449777402894222248240346247567715924497004094567446741873722650727597262383265959746309800664934605987825259272256819517511886391934596507409524405093311842711768752965421443115647035447331342225554413826888728716523884321218016220900651899778821332724447869733489297801523490235571078724173271197919725126446125019331189117769091726753286509179084174862621863154967990392379718634206465161130345890828169443962292065922129352669296885535242766613284328899348529517511265260012466063453816770126963637435494146936138004441080084345150901889273813961042277150141889621994030397108481050631840353606578833692510087382087356393667208922502048657908560672995163235595740844550721509359681145713678466333252491861301945698429546560242600472547258669497590047365250930550579465563691993156727593806432582629720929094567665532050172888873143543794245231864703725858133435245206078815568846701111423496996801449231773023051507762745885099924367387835061724026714208212384943916503069787851011359804089337112464276401602982628352882334244884544204217636443489213138895837645627184252014689329618911786453495664959536334572059665662337027131962691684873546543530001565066591032241622627558226154582196109297005949077512304168662529220749397091601195038163225857342436164125685902024714331988778398665738581727594476794900506688777217709443721406019934063882538663858498976953639578801976419835963069665660319341197648269505536746448318256065501646932014737993037776464536521255265027419410200081584693805082853897070349622843572625677404104716963119079361637201670473981405683760357245103662377977139521522290942092448019827753037002419374836345159528734916083781358226447893183009033586797819430406351081743095537607393335997570129639171643911443610768281958121504049022880530059306842227087786801913752220949479608437440259400831570512316159590067153288249620744570963705965157195269964651448134449232573519060080971495574535461945336074190813702202703617097862243585925807725710536187873845365800617538421188134376234610324652522632912249132912294986882284788757212774883726763910555892296360363681890275510961155067653944458445188048817950834739461876293789741595894869397385879664093480977204053842046741924168552740105758481335850408609090655076512263642964479827635404167024585757270771425574804900612540381623797016650941313349366819286845323120586349241359159671740929667628793428585315538095283908956879851709479163229756504990520681926849312149033043671223231888634605355260697775035301630515291795081795783752911543058846062121075803200343038634810545672925030991628603448056682411778541674406975035272735257343902410224609592680644041128576897560577735307506655120874974980519372419073049501572316744879836050927286846274166210029346052028270091865386675829184929964914294584739439964938731559509566582808223603168837991231685831209243507318039806200733937875633257675341591109994989160878676878912921139458395440536142316225911512787296738595516844944069452921890591368127974490057522454834526183998390521836407954379956783267327474378562669709235636164186896018397469415166020448096554487471687647255258215452445410074234121211394762498919721197714947279812405610767138033878608136727288566409776963072827593952620185939841524501179100252614596524636007778381424537443411118961135302938807965921138891171412387129358564036532254464620581361650188794853455838340716286213367578442103094833554470311628380503022722360497236255412391086659985360761511841236570762270113968165961852061992117145630991480008670338993115477727041208684199288217237890308193803251432395583434624204166086990912051264061875688098215922359333231921592621557055459419608475598038265306626036806244824757740683466130366061961382047368281776677592603700364924516319121242629278194631963005960154732995165650207294816200478538717742763306525945494200704307428834812046996299253160579519326188643962189262755391070139862955793941368666520384246746603815342044467603397545271186995578021106401324550238705617061943703304885791558292955146580974883576117082970416180484925855607203398995489266872267498403604960334662155759708853748079676060886185083692175198459893399290280552626662464269892721614598057244702733677305476750717550382197738665266992460368036605119044541648298816120117279779579203830193984683940776697347101633336155306161845044885047242056304122144433195160964193060785787099741420069116121011957844489228026754809602529304934892343260555313878649648955509171589954494687890070058894451629160348609333569534855900728585735859931869759573344239029538481579854063170418457571964700988842610131872775860832207580866924612118483009270182627732772910481300426292550579161500495488037659197938017532870712887570469455982878068432047578308343796806999094038424688278068353153220778420051679351866258668159962733882113480223647336061450797532149984894050991069080763601458327892833233708943016569928133076391125409378971031762700084280018610475653234237978095318740368686978274963703905856610171290320821027069193942261154100840138178580766308656581182370854562544321934324890853297814294021305499062605392012162613966667917500465016866696183843357543959338270915074092467465482913519048674713916052333731255115277743655860367619827238490464357719107582937728346979264302131133972137546152165279221499570568544086540467427901985880311723063801896821352476012628916915977956673812215546991536760646168134821459117705119602439116601216262450588110746195996688443668177653839884164976986175539175984586992801409765660075377336989274364930660340096698951592025735129148244525064617431822594465374935582998999716774920206914454851946077146903049146901762837128070760497795678982144101548070472386807784631200418217034896848890771894213968374206151444963678944626276679102362390683579516731608231475497068466329449017631932247344414514601921258163698181508858345871939086041096798118025783230164784328104523822370045351035092458613807434785747469857769486640213444248948582877131514228043877324802050091414752174845722688782843113163845457311715729503659986513738942029768862817346352176993161539541306046867646033225195941978497819681533627728287668836166082012087911303303889981704223184827608901088377387305320393744091949690265296805164123549415333791496124406075266510963275245266239773565291912096654883389354991503060532216195445228428764587209041051639197068101637694781171859040040274139677781138509609027862889004167980832028941012419196715908725882128505493519852523231693638093471047858087808950671229596745437437183945980861338230126724424274235666825027301412020424852513083237163290520974611349217750003373243742009274700688389924207016519263312713986323536964425303890122368008105534245715736623424231311780842239035024711582664677721420528212572108114888894503703681926676918817951471832265201177794935466593144975868132370930075113093466153198667692730694600695663280884223024921288584553134599642283641780848117084925479287806731482626831239849476359134217003224606857006913003348915628340971839315219172645715376283256402754137227550350118539960264768102434823912638955093668600551990193737135689510536863717847693111532522977872878263591664946738865818051273340082473009511237776377603846406149754076936078170337163237186779821794697646153094215702308924605157099012861443033992413654571801229322175016523461732664260192209093219761070291567814724155150668689871167169348025864097658878156762036303212825933640346829165302943285695853012245774914101815419483964407439122051845180573926581949379377599507173705372800489267719851219802001324685788953130987248157440505983031833998407814341044362436524322302218656996778521407990094349545386507247329217795092109272833421104083857709864410584719958566366301693462922325243571003441850541094162506504076131050365391204150683399804550814757135384181002102886101520119985775050604972076174332608854501992209867583764884789880701861944449808261993741150029108579505828617342237237996034187123595450937322038463866675925519359389416020503087248562734443095448208804259814922592896898612036721363420663480285418988683239461046985161893587824527913631421792440065777788784264512197283542513093737693497633472282400057403971348507750506656127361363970512701618404959813810221951867554247820083192774757035284399916688947060897095370152893121074318193933658806096333591137476314989984232792683402152982655082056567386543985826995422242280423791398290196663510889839408523035807490121028441122153492693509657560813842624267721676979798660259307996629755311108229268584209362734227324063169181915371672128920475835241938940119832120388970013390449833772374995524356834933297225419156262767047761598652683231532774502884271693251342566540555441439411026109886594126845094944088146386390457796983540801279082193856365088021443840724121491660000766716811194145220913809359702379932171721535181327898975775442574386311873964659338753857334313440611703783633234066327800198280234229952927340536552967267093694612292373502319584447602662487272286952351801512805604759840926557752402712866920774884192815138839774425698912073920898189149389484416377318186711249283154997433901243078658475183547766779480754104460971716639425377534653635564867497639077151637393103957091037000568123422830923646964058613615892441110405093326706352878695818596609231243316012910886924767220745031040786943840976944282403219333530322544047008135178650186845377497406825169313507089617490036478117503096870904260685318720583238133967150296057987673837055537049480228402890756426466847355449408463175253922224580326546774488199638166575550104686281714871952827683510090488184189345981483895375779879518354624441984300942961476592752682254463973785149447579979379876814109132280060070274504161817148384983554343428739164243638795738280870037728436024529720435479968334446816040222711686341716367066876198022090959177627665542584270560190242955389779087916356611402866014366821496598916707769017370047768283717689734058497691893788938645342872530215189536269837404594031732939717368079891430931904550868575101478382530964817655901912223323548081326122768012731823048981279405333128571278540863590823516388140082777927234146703866760325329445317858821967128602131340332563050145921840743968797805544645425194788774994613136161568017390210236133135794533034928877967023886006328672852765598424527062597184163675422370170153964820840159039768706668513103374015718091354267381612208102335918868600661316374092326669629102093410414160743717400422993367021154894696633390143741250256781729319905462084566781888245157860422437275351991558260380708424140767496901941719230810922498736810943930240465201737687312625162960116657209125314783802955574572761186287502332560225887188734784537196368645365355816563336744192268172057391665308995517080286141878114266439791742079181731649714866606641606597380566515681511690106591964581731230867833909575394438914173979525919239324547048683890670060455666333098211863437682314848381631511056618136850575736829299383562343637023862385831477466190905296066134386721097796648749248377849539977364550206898651781844798740039201420790215420747882201376705374259093810388627105856666735073472290154661095108265518896449351227226081142857186369778438601379150346197241355781017994203155210000115999047636673947184586234881589642780108225180176070341394498163186853759709149306101175044884650745365295303791779843632849650860820722364040741085939459439869616607742493618925325430713890471811841217900112635772397300463835206700511216998206187005388950802143782338170275848483832297317759302997201429339839777013535818578326209760886655762623445472608169648341988455423775893864153970769381124439976552345130049090867243987985527782253723390984117742316905738610262689727798649811276408128273994109977537148513794565785707202151628741825963854006844067496387896725167188998144411620720863450462198897170459364148010410026316365771187399971268156448543280276095532255394677277553273368126647622620018783239882223492956108252010953426378081472951358144240308210312737985361158523322096381832748635276733577013445700194702250749205223411534988803604833886955193940915574408188952463935160633289038184441141127165781933099045830540478777216609846477164702459034798984399498267374743156959498272903162197016525787909209631563916760818814361098969861585076667638567510719576579910146618849835809763193209819281351214053880831627498916023908799956846605982675403234112385159723482370563202029080726117280844270291142226948607135413533489549642765136882331647269095089058021616641723193209477029817050154453219898431687362759512458537616843273935409289166084017462835215912457760198295723097589598432029149294957506653347573722816004575124687750203494976840932539649304674408995155743492298536136958562300056107193952016029928611461202050033707349612225896912511698110549895883466655731324414774004662885729042235973216728462268441650993830682554745677435100602446600499814238723230383555122470609192922570332795432952001567819830443376161798195369907532438828355074361892782895839302020860840320600184751682383073826431102660902068631071035681120375127308224901408487918563674331689916700246217488027720711989518558838187253513200600088943218588632292198762663306304882585070226328567562554967445950174550742742065995216514435910240998022878401489792278065292128569851611638090239598964715142536694192232016933831345759845363918102663126518730799243594591876030233218274795394798940430629703778156784811457986178870929613593469477654360583643578739253520278119113858331638244984685024252211285634855236227033873322286991428482248823390549782686969114373501703854976759372271395234464112954687860593547034244897687468612530825750988652142793951212351306203560715866081874924855773886203852366287176516414617152003444159942890692873549279517601435269790897637311933297604927848502347867273601710323608895494874949172036540396058662661593864754683609111371455772725754182649509155002373688074175400889473354861660382090900829853076743880578714926927441543351702751249814714468401144529551366005006300080098086414824820829775321520271111368368192922884322990893309294306108488797094477216475269908865725588422303928964086925277819778688614452623100212052650344337060173104124109467731277546412491928635825034188116183815829398329638515364426204297447010605410872869265319248424388290351416798111349804704787324351052507975059161512815025908953132530205801364771770414560173551063885617153500170149358436355222514115572144467822728751073173349763186428203240701978034979712378463126444622539947954644391996372549855188048017594131178084974678945085350958610274685470747697659479644694772908810151717930023063460282418598374552119812691976397440064846337100394081618479813563448152966714012650947248821698397288082790866547911714257731802334911269538295060471981771338537032878230825185412856900516922881487422287501746848977706089809626806065293969675586345526807916998443815819903768406659313847948217320752143747277982979370653673343290314632223324690075861221306947963889172680650883901914095024519434524352232303338817623793561805401636489746472293414916476430502271785985374686542066960475586940014164863147448276324241251725167211512220221803074453227547017225097976335889408203515352660910771039853126977938068224414808302944925131706134961813920267188079295506165741302302881463800848184580686494736173045026642577574957992579460149937639638785010801792062527933816166528564816687702422754756157908485196525801399323697339203654120314878366200005975031369963966814199360053640510354958873781928682568045905294226695727906820497166498245286466844586244193883658896600141930813095579534322614934749936188306293321923843753200585451545675994062925527010045680280633849249868004334413383761852098859517826281054876183211057606902158200209683509900446178828218228237578400523101985865571997276140794271585429192481903418574282145502987508127737093006215311185682443926865150999831074791109140414075655957792714577878358079123220745637895408678233216158769982696453044400135274247810880959708605214872324851354883844705518693001775215334581642693007191570332530974155690519850327185239711294383354046491656392925866551954707923461424842935864487137343131636864574357322279677915110780964401689963165678346929593234831423773125536423366012441123613184675554706066746171791297977956443884549330378628345910125656079482634304906903008835136093418836108510604446021140573028863407292732747748887307599651990058633751684343913713417174748857426432771036523530841677431252863023872155849067294438565671191731687899590915323942874839079972873582409699929552449611184162423426380664678261056315353900390273417744564985766597836791060369258630531230338933589259694993605842245140907132457443126086671592477080437382667781081953017415139088767315242424018563125915098726720213926546554478484374788695018972259154040650356005849389505698264274536637581037896353445901156831791948571652875437032499518939686960680043304026492045804504963039839875202087270104257660659823430003232034866873693308242186939477841157378955040619715600515673360074822081337301079182126143413052341922399328333716564295470319904262254373172161290210210258304906397673925116642108326683532184133964408549732246240995633767603997571207318767723539809518698589593171755103614522212053391201271730612197958425348891965284712443756799569231365219003508973376284611097179537906406750329320723464936009840298173098171201616217472292488712207317422446639383572841021085420183466495941485298773813765094874150272436618201100161625756445401008303720636066516238091110252262309400900284015137692655349333540921773635655776887677465453020902075870000418464383785018769009555161674205491466767090558817396646831214642573145530801806675482073319880767067791427046193342997891956228612702995677302508588465383985101674335329544349860354885770074241492489009271069903886858713031118854725211274256597667942975336271574238094772942570438365056123982495571752402136233496444254783834210646195970476529622576022715331634997811735114298599186236666126823820823213832272512399071747998547777588942389650086118920073577841411376513026859063475479626106637622812804421628376586923176084102757622637444442974074123203610951031720314782317827818547643936877800703088713238926685581955457658647664088112243348795371693216856372048525537897332396722186398404023126968659778378585443964585174305712135669209145779684630996236865639310075891301213846029501178751951467649816082694320611507870783778609237336384535055744014699932784827897499817310860303045110945931515783357930224903813444261882418777917599535817698266279959305474904705180522472508362271950123755301750817381880617781434693420012633136064266759344923798668712704248863748904705520976199551646522731236964296490873951767712461292363454069682370636427198369063903834731711737023189150653087376629132478232649688800436127190189591703329631859568313694204809869862033567025357225005202007723217396167236620820844053399782691631513533998096334765361446977218510514375377645565650966491037893339942043022158792646693378890368803852488932995035099739272570338087671423743444206275830996238778071904257459921334930707358073900489451467517930845086692637119444087380961079431563750260123316606188438095925043046401358870460500587099822805229821577644987993782413072469232527138819793714080735055588430335446563354667008303879802170584732716388254533233579106370955473519580499343585568053274614508111355273283265283236494289284417644035255105600164940580131943255115040708740267996178675302688562545688981223279500142000134163866370068540849862537970693607112105157393166584424045404130087398036785516453256260896654298179881311095316241276030820016356024259960965356814157466266439787907500521650160737506348990856129989270801003820834298072739226707867221386616203140813090819253552769211331347555438251510551326448963431217596195395163304818514519403035576107713528018530845363285719892448865642615989652035003201414834641768588418673287246308459975320581649570005487432313495532805837922872158016309263048228141881704240566237292446488760600549247676849836237707014199346111765612309544968779137024527395702461368284421224074724595226528431588877635538984840273173292941880886946372478553832681324960144091277812578840194129673284615407824372252160706041664913232550605385272276888106575718302446446291684408111584239457139442907188807844476434604928944816471373839986034815052249231311221586418724188384227738150112504907973733717286232243256873325546820855787970864143541338335365603446492509436134137011995938459091580278587461730425552254238288409999307861490252556777238745831976735657917698725509975106792670593457952453796251953668886790066976905972996307602613976394210384262095451395224012870754116902382072149181027160502872320892816537092201431434440890136659787503787690680020718420000024243197680866244505418729826552712304701073781496564835606159189631799863826179921226374900386974891618225416654551847979701586254781957875631556087068352695803802730895869149711441553945995871330356723267855871355001227364479290805108354432752982389278843574388723296290447683419985133296698323146789636932027890648801095309093566571079386193811180851541816474521479850363931936416886041759003103785450641641015640229470607406783233624361796724075937477784049412655693090588631707434028107731411745167739440457810361434870632895577910262654840118425094261764724408603689344501399921639456490161830599461258253972226326909836929821785484260315098395546535887566050325646214217013905769100102818755484308551232921506515433432587741023974377454826524614779042187637319588217960063568710762146112799173050861526571975961869842126674809605912700378921543933973627853046381740723381369190839892080499674025121639304862166755384887836129126599735625356990143492568199980888432025800081066256298562079484809066984764019132023184201053605703581647222972634481254958832474082833561668946212189057068262223223160335312952171304078119592967963718198642574476676462911009095329809932569934121819486646957313744301740625515793138290163883484487733192945168350396294839932341890666954596926582724448280372554282907481112089751756806070035942452930084083369108334999057887479609525170421570077649740739235923792825083475378803890727369386076994314300055068423814290513925584718312216127483119305339285183638434352750139337182961763643452869418103269996856556629322674072510039566758858116787521680010523282609884795005234629581928182067393838345014381625855286461218576108335561553093109464675466724289015692643157990901229230889262941595822130726116067564648736530265930913199940358632420794965054938736333601362101579469994009835338848730951854378859942816053875174537344069521502742952818111827507840502653567467010802073222151377427895557815720566481268092815844426323019938464238321616018955996366684337924606899702197729544923140574783742819127529070121751511218110495552887856544415523794364631840654118328623037501832503011250513265703610923489930767305845560819502443351583781249798993511025553927096755483423366079094007606497480292079433199500611811635906360035677154400650148963307225105884756948751020564816282458265438320778958230149556362351661355660086038593796649657108457717218874524645034994344083169532036075605683304391593546675563626278068414338356395890063815791781949047973588415670835045157866956280326239288430834517672439044774666909911151849433854415765426972398420236837590368743695664796798868591004733984195584088598023455240443540999855916423222557008343635873000401540272628000111091849571931763228327504132647893403063710726466490079793173357161330398282177738677077823802273850758252213264304909503654740374660207015655418068272829445348708154557477717256556122153456281446556736413099146374103652329453729775467614636054897917713496355128854763795713464579256085997792481729556662505498020605509701577898932110348863786891807493213273208389872146355431671563938480528876812348034944095687467227977534671597959140888624639861513124456627866011898559895264020485324570023114036462502156747904472385682750201450357583371732257638698314764654113551512806850734523568981923877747954495265766566114902433964690923497816780151700365339921619989863469774972305578542764826184809814710635609117887025973221498403030937831208924215300183873419638840611917699752820786087013196768909263306985668192574742092139403476643422228414125045765023944319732669166192377297989833465259260528775362882278078720690866181357330273337505226411413701244874490322524746242667419379926079968428801833163743721784601953837591476637590570541149231590359632238385178701664198194529581625699162902468067932109339944322032385336892961914963677132495843743662004328602076973460490037953030774480054493319350741509453457252428213783520146657625705915216932907773524983420249632280706127019478382288335841061479660215006276442890979819895692316537703166701284432972584669159411094952868339349074224103462613370311907184903876338139882131211371781181270915694918277501350936713448387130638453863332535924116215733003182117929732095713310631105117931914907419554372571901718955324481708674777762283215682037908362553771019853489017569685955439983456652667788640386785379635100473247022322063307812888085738294731038138994934078410033607980513986905598353283170090765691681690948661855939196214311399777060865271679821778444281977252631163181688152028916804346959782480937931027210978291448927105105093663749072407031552920730602480837843872000932311093483148979849598028614788891020629259888283316531898975190828579213630648152340081598971950083249200044307536559517835517231091365712253095940897101817375549191009154149133006804722286771013538986595491242934473359518508030047636698321715354633770516705505106486320138098313962231942645703643270113838103225227103909876292620665875376575081954314212888433899613575678490652664670897538380814468198677922639846884438197824022463018166811270326030628156881190089975283736905505713866574580835270468443285637396998649231250830670105115454326952874205412791762676359945081344749036474430882061917863717229837223772880866737277583825087832038233375429010960049376295573844826728256177029503754750889472389697086215428096314532314975671697124563855307200411853436131997899478758763996959157203179792939276810170125820074034069831901355964634531460695921039481886609759392655906411115370434934687014495270832059818820159827531754824941753636660978674391977735990290147544859260184315756019472361463450558059898958879065842418880208488454773224079006641191528747206658144693755771635358282526155987436676069172537771533167312620715006177065734600581693643314415524523749946541168293334355773398990303964877633338496638704403534387567149757823229561725052297660780772384025076696031985575747069768722344493957191790080410619357528434217333505354480843789336939973284894434657441938710056027195318245708767577144414472692526818981128427637651004819519225188382563284115074547342653928105445311599790780045240840787977240663490672852779154775846762030911491072597106089687977289425209396012169627862895750291802493501730109735114014172745603334960544781601551430002777972804647664956247746464506209949037576884403447479336771997180507768713774844374878592623669973049244562040312924538502423750855567042305255705998710336385641289426328802792684218378655170650275533936261448275004647328740293050485351178097114697615381963958085642213581044946640600251310944073961796439095767713236248810929456587808795956166523054410890375744169303158393258371500941019633778266227071714388220596403347790316990187154716851594471360741011035276841660251401055456463865041893791105473695486210146208935215115276004383563005471447701571811848032235749209213472553401017150264760887394658353701186318272041415241729992438315527456173686142110506130987468720152991689954602212781241130254561706403517409728812032771398627215332936268017080362914383507020724693488710623771659460455802397181988916700382644071610665386146842593158354826445709908514463031517355144084849467198555881907038520439285866529733493874247581967717543052295536781294504159321954913005267691694555131540707319114089428409198322639221151232980195798439073781103671050426321847043377933662305377165010657347317000324927235600660520465902174501990277639195130669093897556951562291608296884315135053835210287643088269475502785505957054549037602124263465891571739651119716698901024540031248899426879238012517840478128367674445103516971386595596910725483745322887204893803664340664821367742729082086521769155848805289852529001888735371848715070960494529372758875101052804409643597501842718224296815338641966066686243952757527935377648108779795026667984776742450714339366553774250323215597160346412203997491562539558706957947756133832861215577146860654008533841323981285763082203715319152769256734870044065551378450999979198355761642043549657293266187671689504730841672344257224145771547302938460731787920868550952172911069393327129502286564481794629388843571864908856005532325651472907366259178689691537497515820206946822622333306439809995906251852115738286308016809679221789078741902739598150554091886524705142589805150966548192256680272830720504978328207321230954660344843517001029340874851402987386752335851867408247938240913244550113553660726389207688137989222190028142812686261089678723418362797145654348095291493910990791778114080171650691804630064135263142069645707116479792614356537610708675862294141948588118753087833400124353124363245285136871240315717053033060763834095661479344263536383724099684253266048472263736448189281294582476668139280274087219429848182081188638740347171222012504352619871120176194542890815534716701468729301618723661490890235191608289186860991257849610474783302046874559858463440294184844724067655770746410125818380921090452253994444342305355622081035533705907023740155575611361725993158108875712058966216729475092938284321443406682322814026104875173705888887060649163647090455277471508026083620826528891568071775048409714457507176554936752738160289967775565907184777635273129051874344830683409702682246214860160942724180722983583661334492407239240726746097135508114482675991422849403676765413672358050527937581338744856439344607688977348416826105247555385473648919317378571825623362839095782016948570208124788975421511040858439798947181928080509120228755861826340370739380208319267877817967562795909208821731785111128250231674746658684093135462305226353706537070969965363638889927225357988336774693536590820604793960187449595348497470772136569056715637218338742411175921678250737441445221279342163140119054575896837729037026020854164008787058377479071701756534038353210800499367230673108064205246887231739675568761614298287189943250274215969713708498877110002419829936470737092156014762709200249999633909254245516416549691826169316232970273469327206040593934261067190108844680339562037303071992253100518411123254333486596054454958357766048326546952408892783195236334705383331300278565681411126035099235108925322082479223680895756571815588648840601809758149670892344680944273729619767019383931340688007197593920556230778087033242850809058754498441935840324310006244778212020443248809614360080009945604725673433380127952921265144739943195123524246873121548582753806564651370724435733930362741867603420203130390167983253586496386024060985535957136079892889932592907324832498195571392951185667622972097711515781844787298847157746884456800264741119715448491057179464926770768739961588727393531491661399004278426120579536101492836076695897524556501204068590577249887529474129752788769790006287192227692714420413850784577354933553534398404697038357455513349852954230513336725428762685473997410894574719658082344705251522898341610005974188638495478032031570519008377346172872254800617710012512129743304739119894415532769677106401225382437895120602464482244482567157188219896407966712752368751900716360163665766604988827466992176724882047418873205424328451153993048101986359784143610317036909150108994888712274496765309433498885310021097113903834611376917321128585094547814993763888139800153656771169677651565881726274395348040424807427958989581282363276094217966868629939752819533397225426932987120385370592118964024881698451371226847369646800455761836635862686361447532516055300996355764492763887998496779048195339070751621997617015379560757837987202634141035576280572359262658007376348201688266401810103376514791492777573380873465715900633643378882552345473374510495335022718016866311260077806743552107941869728129720669965783255016718394627383949627843623784159631911142182355984259323151778977948993966134569801682330565962062243838567252055105256404078084935041946932603505567229841607097228369194296052537402342346630901134624626914558946992692004604587121960511577008812229208962223734375018645789937141377351117376425171865932469542391805061312658962903941366045294198448804651086081008899680128117002164985313541549190989149385618139356555846161971455904781555875009197757764094962443890473595964060527870333775739100507431741819164619523740811087277592006920749265081431687346943127837882162701696690145124120305238032498242059739414607879162936105667268036955887280901372750256834246609785199802938548122182758826687418901250490874241436226865072387834657340509596593616342600464155563718807155960050961220509761928524511224216752845249840882993945044087875521930468611004065638705778243206110409340340805905109965202778109633280993312395578170381694387779674390655552201998560550953810237559309620369790336474642587181348727109599423932246447217722392645541211161720705491437350620406207326141905860176852597175263140476476408738578709253593997059174639754519271866211014180802980326630938685348301103325352352331121727998072491986776796835697886158992246404334215376289428742066359981394120591334755272245656410540771908064437497731298237039203502728089623103349251410245871457260395943359587644699816216067548586172644714454574856001510253124568697932633813233487899329098231778932427378103108579109038262228645191945774163275811893919377472167279896443283092116870773201846981062396330126079015789761571241138422575584652541859496059368037683338683073263747371129213300053249212000110540207765368213808832583485739265147767325417812275180594587803875273978758318742883625330286528161143575673602860572400494875512545867973885002476714033514608791970870787742153150008340371674437964182174991197144205754430714447436678385074872665843453130044324027475263722035741281555309177268775642397008854636125585760424649192270008659925476292650466174668645039961049876679719220696240765572098737834321545732543358604895095394136350317225466443796599950996769334806116531264699432106472844057693748966438279431292761543894928060214293117320840164328193200730136748685103868995871850289935550106615653431069185651006557570908055879691782166378723342372149752933652119247516149344332140944375317002477670429296572533010211053242138868553203535174250133338938893398653887533725252130461645930320172632483027225386032277314639826501052090388527676706712102095357984700516155234724400757743770643755719259126906195872135810318155903559315519296611959693316567227345943928299533252918146713434501594979698455661023512202805736746699163772087068767440025218854504739235225446239050414107604031364981625037597451980811633090080591391030715167765946518022968988919872822907882776170022962606695361658470266928818388763497741098113836664255760159974704565855586864144744763432157437634250434468288266435998402796945894490117373725518389936756817774894508710807699030574845833457482112864010503418213321828588540073522392462449075916502909303754176908475984564893121750594831904712622561255073866041127690668874817015462667334930110932918176090670090702747824362604422240508462258930486481644197638258285690790470385601976357156215430297602157547225311071504971726176129268871179100985271751464024261626824733438136416230330056697262292703854817404318433550897717436723800870936348826429610639244528535084770712596640624073074684626337800382228735577385892193835190619109265776348271329729676402317131051078616748633020153586406618465912814992842179586651814846117073955100361875723477702786790678984981638733241235213469033143612621723266966640237824768946071348438950438549743460919573967027345806141808402562451820024184260105655539944106350371074933066431451599492663620841022305944801058648876454561709814799663278628709575626479161364415904321422941790926973931984952948673624267167069796567906340932112554820369920497217587701093979595911052258047383483352933441426194064504759977095722759010945774622777090038596627117217890059295813234590684567155776495245935352079799241713343585728000216968134922445408138971476640063414940451577078385372107680458896797024463591808853761991617773882212947770943152968583047057061600122456473383513844103473125651814569397715919489090262020630127478816059598802254530908503064174232152061517708561901248447328784992590632090102725291193044099139454056714570843660371121786297454514475434504931502595049921631314562370463728295617542067581069241385052357797427398365382593998095960996068388682660208129409622037341539099636460553999056956495094034218767193363375054861878652871948768619544740265703343715482827577588208497715525199842500780649856550115816815166331856237770398228899267315826527341707278693781054244928297417912068220127303415175112855987885553685748682836118316902359030123314249488047889493888179163873233475844620306625004425469337808432453020580071146889866198679711905137056922563035704616279292834970227128875667019272384789898254732128766766763890891322317381305779444124040650548668558188160441383729938706174589957872094672556764833496954789779996853542924650521189798872418441053794623596114064109476299006618069934553012379602168978921653093894770025604006496375764650477614400202549664468637940059656443843155350156409300505419402997669595591618011419111625870204730251920362494119244524694570462036193647809039738075188648658691791528278550003178087583667644897626282964349013141939443265529046043382416313395636963275915737070923453835493714620601919688561273474841681974260883643083105154348384980410339061733318535123212461449629978312753236338497536209016746369695921012384959399045580718296443230554598431652041269322353749400149241332457381922571676629348120974320397032299521508512056450251221002633102927847742184857404395333244991183491868608374832235507346275263494746860141133434635755446753175790889511751812488562336099713856626948903871551293352640399397161967612798263144155240724644966521591227855589799734156465045392239371683947723747514113428721146637642746816899904924170641147013324951959148820829968884270667436517322051641178622264855627152337973878353916016339847391962339944372070293046737150450261742569046530077966448453774888322574159427068268379469752290233266963428564961802540009901886760252969072705424301109702497351952203311307928637637721104731404143455668493495824695793277142067344961939154609603705015409750065925078868022195456515859757901949115479792080221106210726018184906489202980576310269331025226686437301341613800638848171016394029963478516201071986022447809268026827159991917417863647519614009477444537399650534090921244925952556559949668097700025626590108865591340188368726637558690513708669492540140971477761108242850598811958071904198681825437147784264311986920008468715815426736854711199455230937292577075487400154039715083512263471814453504658781596387854163670292135101160657395077948537525868841864014789602429836389160698296698130604546688523511703837237791033747573608210161073034822116310677787821121777723296063282409404843809084433630282022374373575367343026493425179196497613214029329165195843922560293339744977101792604276019070748221327286314707261601670936255100184262211504071100375362884912467501420579844547427040217420017446493547586121289130628556969673272979379562065422084941660950765296551329595792822818422331379083520717953105385474143582472119168209179821302523650044713079874894448354495811125623346420314721437671628208296861295639815413153787761153154045013209420885744319323598962043544000608568572374752122584201759604763634605743868008765682798717601063370385891209323564000649102429357684529421428465221721033415291224970501817157832139516884914969794658461466124808808443016429200120726155046048080193903010143392023010173370174997572265576787309048018111002371174161022037512086865409848288802506585640609897563065738538930988418723641690078574402947284255864886605834914595113730635016361137032457150316553124286125782095818525793517117183749285648653117882868223329350039673157804962493628018467374172192739293264247435397681297555301740754608382957179632591695865068509251317770205741955512083872238730764381064983713638494743032440156761429285476050989260457980010725888966613028681167209166325328687101217192228856508795667003915058596955896592583278517254164773408080912116086970715178547858505773437799809989175155103229256812454925167271852477661601890593660726944429962467741183194817235117897519529075928303983756046199268430929347342762236701143626616258982677254256706696462963480923646974252287399135236460955521961738062549900994392624931236562020434557067821770790162440432494871669720520917602770117243483417979529855409168676551493839081081522332023910548869630657759977596793703481600493190389137369572339297101912504281631771300394452809441293720637150105833735469975631173706481003280881985540199711348088944612801468378144917657423413947352601911091699344300388575995798491042859758055369120805558308914278505467011216098828912395782887696619208427720643174559347362088621848879704408181689493098255757955960560585818965364461171477323920172449229459711203111703993266560116095873822300522095641841478519241315608588057819979939202098513582413513516908760168673435232562051127860026220584049576810634364401835916543517858532784701004146673140912104753015225196537431539459791149560982751442107121366632878508372708944030522363974029992885380976950458708136978297101686887026964783180127008278803241597900057314198294775515386984095052485521985949802029802847849289181541542775411903905418383252401095869012182378922238860121145302714411528486825780228139057417407130877407624832404285522266232438317971562332867842874114680763744843952520273477940244434608720456979764921830905941806185594233035438033772067697983485847465273179556967335678492937281345323235707781412112333222022257123977824101070174836226597892169217876761493146430878741706933509327420973104526058089272772079902042220970904731467557206873834272239867678480463024977705790227773313619750477986710776955096951442895554810355291336509748489964703484160188175377540606374039224291652625504776768472586147233002462515631460253545227191236559302887958412699024085784927908708683315292867427400759907836881458355769833517611425675458688455853516488186992334438245448957789653651637602897260310941712596514138760038257673278048437973328795429558625276222226017911352889350123810983870662582386901379874163961426981653456539064128756920213810290962520255960851348740255105203205778000155655522935695037308848018718706345292168369302189193600294654624258756628529053732850820211560226817945054309733076666046228463562338656684102447146571214521502054393955622029758541270177797265961640130857920584591186798255785551859311282727068275337192580710251165761058590574348530297756688247267013761356955434399860736930038064427389143188259250016353155304772754823613364201744635647266138486677398821695677964351352010942663513459462853519688969633808890383122473420264186405650194135320285978124041854239805735404864793158679748475472979000234906960844491336057786751496238069348600649359477293303127374886482420036354765775671417805482659198559767552831291414150327920285865474768415761047104184142403189856925921022566155875243959431547703985447468354817171694698635488675853741203592928067002531041364940746532240253369177732867734861211119879692171924746657588891620211572015868009692179262969197879667148371710075630631029691987726727126890258986207321629550755878709773096341920767613363275208505596920197402187819721484106114678634970785520037112660774066107049423089146361092455556945080805268750069920153220224699814789691686191502701819986618170589723390434877743058972523485524520500910384962683777868338384286414852696680677100663565708140235194049294870922456161453285581657338496370489403394443581306256925943292887267070212046199747343200589647723988921054085100854040822483159342469559155983462153498357331672676857131293919617512633825401271431190562866082524080960637488719779559763232313269669163081112419431903020456820733958675129040528028416064530676078666500722605358782542629773241589830680711712660838291791553813982951860514172916183860766632825233679978144914247457923621782621354212051323851808311227620153996249231380291780341143850491019103835097193039445377450494402919048494407158776380192177816730793283880566755324465102096334272145505240580370971657009140035352729831071634572273857774859369384171891531705242614894629560747115815193276802918915354624676381645439554284102955787650220045576949503378840830275653439162666280120695308633661666779728489980023276929114609861800245459572733457122992992933521620665070666277803999425475481314385138902162152186037345936217358012185033462476294981510437036400829393414052033930656469173924250567552066292972340700525354577847049081537682628377990865482704487951270892957203201198190050619600810424998600848870182595638176435912768806799366172278927779316488083879958982129346742239377589245437414005482404914741661643237545327002188607118964794061303039476630761063801322148534726622983726349158055259897483612002248048547052359660109128958801249637233681732988474649566379659253581070805866323541297602264617530548925717297531929650564577079849210104297420911190071447826760087004612482763355072602726630055393342230871269992115819527728184480438466634082903014193908887171119842472445807164602432634083751206331887501900768724673633254468618206219944272835161604951780080938250445412627904724977100094116154156651231035248372407651954927312202194708282678964484176971158163716531090851694642906733558234626653981154209985469515280474580397988535633813981904296387964575674964409943021738657208766459324538588221921935958320535539942879058782706968745072774257816873807685145658262447705608019477190720860861943179726373429330824136167388846918476613997708135469551451133057983074765487206156656118754337362109602712636366589202378813908509943424549072488369608965006292787292755772559845582166013192500842061987232151336003021804933767133404027624695719123341156579495421766883801702799689599443493762928596115386659171051783007305622386752651297102740956610456362561358421751423080356776716904768540512754011141183984792796158864652916253728502165143140996233967902516113782930317279366938059037400431354549703760826621996361332529158086829548726888297126097382005968698739741575550062154664460233860558907734727862676434170943619961531518962056444410242655606464519359075964005614619787125847428658980021955508014498422457554367245702702249381478540122625938214105086131785301964709458437784468496953495002015509475610912708002529382367906260178263412667739241260602724208152363718734403077856244922337764627974239873550841971210378932017569630745419439499499338367359037139062349378042317486658924149454083343928515810782388722235073441481184109587322965801210323449079851310948751902728111862554888432504282432990867386003783766840426084092090913162329523931105422086640119603155642404546265631529224212193132894130488102239485539834202139102182347637994086421150507536993646677328720548425463175761018427037599430152005586755225202176872403668938427531096402183700433285726430720566154039121995606180364424080029900832433682261986611041226146054273810555068733266824626595623193372542926733009277778090258324697650365624330187186892051542961381788034548194710657723183856615792036300631650457004245004804256227337842379160172024680250573507924099784702202392734903655811681495143025026680228034689926817589595856467975890622014015572609232297413643467796314665572532293939164865058832082923851175680925852367106027563868736295276436896891819410697933034268509466834603648151873861888867120602091407237989065670248793444969254014441111552245340664164522454484646460696770652375365335031377949071236880353136485401047524622174177872883725346765975649923236237117892891747673971605307413851382934882031218788292366760700109214997062005654260212421658101209651747172394526526554133622856508542212148094620378687307683625361818428031017595054726107735357052415443187762447666771558366539215867186804037094746277939886253898426486917841661550667571613724582854039644123472992711729987986314360157082487247890348109099253902356183559181372293633091920254379823386378745812718151455099843097004168801059954036797376388114296254110439348228027307306103921961399831924636346848668992154923849291630352356282030261030210504149174589873358318269315244399749447071912076300358953073964077197237804333843119914286464166594136402139387322465784731333498081379196333261851204571341332690612276798460258988049803363424503424728417998577163475604461467379204254673098335845642276061183572505210917982141151820792186611140852130735099314129375092140662679569483193629293143376200048838501365282894014922866899290713007509583004540043278726741924856945116399950600920283832822218193417642723700317628690316441464517714989631944496937918970080031587780357211244689878151641409699967113709701434899331033542100852213786789412525267693246808487282391530671950297493461967895188076601492662898626968654300158462529672497132372354057865242783800512313416589013245157135449169494754863830006362180495617231887725714926018849595991206025352520998469482920810550276633018241273975759099736894917120946784764674009438606536286784079826496167840523640933999354529614956847721152754366863785248165230797972561005444627537620935353350655148782846244863168804202808713882525555343925666520323674626619403970139290200128723084707467195318860748359179622761310465668825755022052751167572733316241987622814749803505501493785331217914727192718556544817227980470963639394891382019380514846062503543370681365447226416317996457383673995022941410503147036312887662826691095544616091138759303204689007637709805726244670734182964307420128282281957631462461653944555006666464911367965821410734728347276593657230169027328861791902816638964351427323266286575291734506959092962178647765816683135186923581369492629673951353188999403499932124035250212987055517688519930722525848488811390652084927505773723159313543505725795160960284844657720012918481145231597752769987798401498834612508709867569734258475816908898143772880800584787993199079932317254766829364693368396171416355683725968602126566085898539461080039064358278091867276378810256772037159720018048454508921076500068905168444818373676684281709678948843615755877092368167936054498307543607282107317901315418461615110129008763264731440313520254404958650706936072644955281497544524146796997834981891722868690179097677465365214067146482348364540936132841736023583321962046167178350882158394401888496922735479751792015087817568682718517454370748509854815104487556335035686481453078356538582768700428960613415976578575904862348285963526941936377861654419022185687523926614918660955406797288464455529297978925840458427539670111919507550492230434327489743401184486402123486044199183328447742778055247767654266300179596503253248874808357881807721696039472911187656756950455500245369336588831134198505906531141185517162177224174284568126823406202903753870436054070740388889579248507225562159714385455123969905036317664138589246359248626247778166382569801545280347528203533901481545632296292090583137442458264534413792613115935468217543756182263305903612686113632378230165978959689199490438633401096693163911594698261691132376850987217837686109313804033969146127554193252418044876040722262395840949477292283101274297113801512160747173693662119555680823585570097688336492275245794897277157360082321533273861459487525141459852829796064173717791645964489171490585887809697103362746756535938626968226445133810919958442136034536106117787411182566409879854753157264937946867643432706870374190649865037217334361662770612493760323226910703163481305276035484338268594684278225817685905683071343778275860356943573279491305518151298968612796193069584693274272471103255797647624988675197584811925882907319450011372974035758485758992742738942822544486215077059344367921000121274898702782186233820822680735421638793229848516482713632851984449258404861871890186606406601265099593638957804765089211285835161088930600127582618474237494383478545802124584020127605035315946097598741218975797515260958142184120454760753499638528885335228516311790338265236170252166365395876556569984538231784058939818816271272981519575190890844015116478637455050693675402112310766117413070166514325356237750637742792600377138435681289738117253021380999995318072060353265403483564337885324002203064317371199429410343844817856037473439202872027935603650829819848263159792024206674159624608312151896684804750930783836932128897889457651578343500137087157997307455239005334409830146809685142257033504999612598995482376709776753768670750404509794803533777972727180351210114498440656052329274136556646478640081391387815181913580593361701044497127136687825701557999638748686431991435833100814069619143370784960748001578984704968312956080664655875761692818372363399517613094685076612897145109368811784999953302517935791626757809079375545125548459729249011575675923961044612248641076978161506925542872782671464662690163033635174979541415395288251546090057715916433727193761595375528524448356456201419652008946947942775919600502303897204636283676075660236475370023329746019143511722433952184398187884664108181432264352303628845880979976272891520562866004766457295465457734023764225055595506713141038982868031991020357828004314421656017972482234445770433439830158558958192789599788936125980004161385927867395745127400513165277187424492702211584182784696477677593671632970305683901811229596137860478991955228754312295941438055580490248893595715528939762629077984742888012315955644314995213851475077321138327422485328841592684465014341119217932638292946582018822868425665187203770128106120419798412440189029340017404281766439050063918828944667549386691598443025792841738308775236554206260826634171900810452393924390455656579405829670379097131502333118510408037396514306664052759702843237777986971901228847326110867836077482388274855721088195077860013752883529434936235676984488053890453123302599270642893412978198112039647239213751331024917485256248431338544871406519731778969326861835328424009098502999934078143430053674064479196624409940140629370371710904020496670930787288632706498760586626222634959664254783511541124007259822743895483752953313218187975159916070195426967447567975105423382884610139189051799215751097774741007306678782223919325615024280894102314526372348963344173180172838022430935526731602656817248231697724041282712583986919351616233040002428579009187778869376607469840247017803087635646470969442576889771957271552144218100293558978225303421671628143596321773102012804740553131322755938551139779861398890278137552267704450608085415384792342860238834650161169005926507079905084655917548218068686338490971142895980863665199219851996654658498929751800668180752076651573760879866598131018545605336606415841364501600311081066763248094490150627283676376248693139622484755376010802890828262530723150065277625755958973278984698510542654842325897167822065388626056808628359245113424703449239705721851007519508581583553073123231070314408226234487777470106568693824286158330861372009655599423224374411872861083078688763267781689563772920766601845211570550688740661741924311131038439315145935823742718282174159688523369905016799993882947513759649345190560693204445471552221850308285002621448410317321349178631487285171093620581196449587231840112113483962397342222271062992126932256486966319997527126523685620266330962410793617118292905016953270877354103012456930770998521420900317535707476799942617405851164431081733570602306629346643511123374872126310389938885141078674790567715147671641154072539153730234273927887408719054660310012647184700779742333143540451718229475618249219174332058517202856601555380167044202812300444157291066619861617702804942335830463832390600986712252057318894757498898878113040910470447172849638999322923869291377061769219991012173421933489997091337058866735265692674126868640636942881791709680205445384106258474085351512805103736186014921406384417066548094959745094706405126455137184018101063719509317086105456038060975097937641101955399561130825950640478609369833096332250537493724730544950445097643931884122467155756314645810346452863594156960311897241364562389098135147767624942262152459922063474140681239158111410092933859523445970419012630113929827171071334202022602384014454526145352084927201665318643245830459711091450246219641974471620142157611366278928977738299895947676741056318424270897525484108009667988009974943821020280363670307813880357051279247846638505684692829697455810928609152869840264095160264519023706770426771587708811906279201945101606743368541072187540375484881220828158725209381051890532124307811121641347279649619547684944008807736245451804890216262118548561203512604980216070398321086001848484731729494662962316089013618460837057690856869728274440876327947110306264511255837214162567267272715082139992806473354772259480355480353091058108263099881241188289395661600472923893082058529243180795776071770073064538555472060374568598472787721156351160840209670527299373378532316431590878799332306458338758469778249934544154786486050511176826321590236123225618861936195247134153314755971491031386076490250927944827082535812180716424164096970718913530575923659011492741527672488318721265062230038206578755663638964272600140076655762321160174405574765875322988466955613645171202002656259177622666741738964216770688257006318314333529487531293785273424472992580463969317091601998714309085828937853880200691626385283878370094382496532298525851135286943423828185295786574222624482568109522901288581222583399496654959107457862380842580065985783340951455221588822457457123919135480118022901523112822249879847316259249888022226334883908287452642356923377633069219371347452598109068280924982581944126489564727464003057871860312665554542793959826682224804084501155588046314142050614642289085198398771422042090417361034007782381871982829677876515489624406486028688269790095982133153928938001888192872139299686165826720288763823090386148991176213724681377371438019871494848935500097205186476444454098691322296943956822708079470424653804265163580674838489225509030823862134252333941927904426792405773354873476531434029477994444680348141065070344856461367532057975201637112511195804549573948271156368702060466108170279349516594800994436597632889119814781366315460218964268375371579144876381304919611049219613889449146981021388004952359672528995368731966058934941099505149576897100522696084128014095293801091149862620105871960557166208803864694164099324651064268099012092976005076531660301923706039757147042472852042709502492525323420463963631639701473288114304971199173205190104946935166865593120179527896259460886770535839525503575661141629389350693278074890724865591853935779409244153124150200819333880938947059594515411943991914803566213212439422125644851868314929864685888693595135628568041977396701389692816565306186690835746164921074219266004959082727252894978072181999666279419242963084717128593122941252735080743404166410877442787094509001796215128725418704518549167537641925197250566392089215144546861478043436230998394092049398573461453102556032118151830597594101675392273544644970915413330612346948637566014544510941878545259353883706886634652529838749720518868274693720716128728947666512201121799456778247165380009722657426900737556843361084014152590095279512691431626924945330930291721357753365152445743094424353525576003389149032303935341989276889129388452726484719892194011316629311527842021092600961643779050356027132510945607302847478572665088493115041874656972518460453982803784173087788457464598269312933471889911427978938390303065747736730490318903789778565897758617704301833498942383935773497564623692956866338371054542808499488598314352814258197154134746682427066396699227435388299308584432132008378731098229373324958076735872146809134716427031447360836706191065114381606616223136938316220416772181335878272170407627891776197830871023434165249057682398515162490586261636066283055445939748504267314838388427911672851468640513576784930187517859989028691280396919591686574580851043946312382772605039462439808894741954011215338531582463048434588758032155984637454953386510464256231849191258463306444806934769450743160924870563028320083895514339838003831033517881865290490348832440292572776268979165883470444318931303330616823559082864025757610402311503439855842464991771088147391995176017389526451131611932062546957479466832862059898173297640889846263148466961783673805031585581575248443198657850881791596725210917528751754209413829858670044642300766371654789687458578415590468452319672238457229578148943597858983903169937256265162015328707888272132973531671669870091284998392486799528395164849748895487240020104014277197775451358410582938698896665898171538383406748529649788491788180776591355494240569902244718705015533648605333616573683912825515468301214016436487891403522257167827479885040579225603767337127192793508528520526044144664904259743911908323226623998302232170796335400341101382228300171397907519824008137218634917943797469459391877555726154335055198183761928487888361147459412668847644028724310496307100674473784265386770673910843481483051689429070918295814644066815643563291367781794769767516382232023551943676899254032881569298309436628774244382618127119192008432100077250573095166750823783752020181168631097363127897472021205841042997142005693575064874443422221006391426461311451488178868822925313084126676249926488312153197539122242215279311252491621445558238163827770249584885087319724166261965564024159708780941457627382931927821883801553642165376411718035654354704337555266006498041547688517064802910630825141232167931992901585885175582108714975386345898478269470419517504747494413339987832455971804860302271573550170489892096645056162659984270156960537142070397924580803359685599213526283811700304874274653451125028263202623181294262610523744668810762150342810401656574413443914091775951791226440057954383575634783657804607329743615320533872860458231346606541170467661095889035637132584070506109743378930720819122745169396231009706821787621945466038532024843184101130199995714999639611345639399510201045379707002337518762320167154900386886546801246527594859798964471470146132799501255673853574631150711174152538452626680746217162905934387540499324248049972464906470980177272164725687259148498317962533137902894242922824862517109430407315450201924836939740906077275186056251060614892525636501406543674580485323027711656491916850397813527851959983287472341537266118138818939502640135387735273741762037286530227777514669413996661686912232833378448801668643209050022316477934320521070325324142005699706784941366530419893172468244772308756642092683359901955583402995866412815422077453239242199029937537814900386505331358406386577111240534965279163881308657344717330271976585696022855830839350914741307793764195828245028511892767341657566087196082648902682620581035367079591914408479251083249744856010926270669342447189014692856173344418127180629147468734343977072988230184847484916877465924542653268336436423003988823110355618937920572562489269920189063942204248660111820525634821183253617599963418116006509704324876487549798217824212896142249065860452368900409001340190955808809517384228688721091066664389661249764700121476068032801882628140720061125554563331852432364014469449128537554137806685778251318064316472562502491785516400435272818537516603382032455018480966562133806028767767040789822718171912426293833271168358973040625980160978389799968798723586665094338875329201900139011628899080799506351726866903487877307976877060582708376920635514810518123427683936217117253471853047438782296947698151525941130237411512377674528975333247832349577354257564114387866292886643430045637840544708054899682217637949222886282197006815580536305513046360985686825174859237967275831120927488581614638066763635491080421699669188001870498056877785661609959933533242406732686706751012610491982057177297143788330996236311694302482013533345192892076793011409028925803431555573351964241101023444560100062730476143913015574439260261122926219406945266378775190712309740743144022143134894563103851199162660100917288352654300567125407985136559660274330707017324938826103527553037610621772447721051929020165454788549545312653720603807115979913718212770011182318283928146343221745272494385492139789821684230560227175085046451776674362749891602299316306313251824172397435151557148035013483134801841402770554380051654595010632020336048707618289338269195192900779868276162933693882154608346332523485033579768101766054108357085617680823533273679974387048417778575199486969340022164954000367162286684743651052360604828683014707493497164532868696827148213858108445938406119196579802591787126855790343060582327232251297505069672146892942522487184622631670518037042519497267383528371761476884815637121525786852277188453127567601571248918808989690968309030067343424904381500492170467394072330703884236592422111972842052251127333297471514420829816266794542985028332538927420270994059873342270689176507212346718993490137178722360727207912848454578341921624828274617867063680804166595696855527253128726162838941597595786237576165594089085824057162621107452498901266324441348633881977924557279397391219449878202614550802241334348832840077916530091309936466065499613779278832135964635978467964970092678689638008322705939559031997910698290159622675176146718716079090635201051640653768942464240532674195452685454398214217498710033224882711551233383353477922880969464204853944245912777025173366640574559608748488314447811134422919454374014840895814563792142091162810234045201723312450798476631390393418774016065138128946850115117838478462785257314406341910742327387543679896838578106941404176503109325567650215607245286409319350121527352078066634588630331456263267336597043129072287117413075593980607108952158337794319812269350169644742414778792692136375456770290897139489273041727516908890939592127705708910264545820733672381673087780747800297479228725430101239614466723414808311860592662830564284704836145909511649508766296908061364152537433670548539064995151941264601717565872859786456197392344677223456777286335742063314855846079231152809017105427220942727165679092510064340355742065089711748877836767621968820605066783129530757744679349066504688184498905760937911055021558204561117535387669765019189826713599559317019945667738925774795729020181159622514470142534315601523553529991035668386925696602289962519635485022790095663075384387644684904191765505565750376618603770263137752801484395750265466972997554468220832440765716113769748469466155461119362209792241052283879039276504972406848137454559013955601564197699405541300204675419240044557053283306001436231801456485924986604279753229607517546290197997667493322913960742226478302294616122549438867403534813580470185043678316602001799831918719008369686566077250458665967409797231829945248029746923950303902227488915276787666554374282910339068855412587340340141930044967488026060328519828913418862737462530679242396927575853643916561071363634305452147177227248609870373862845273646070006927350095796321342911345527463628275280192526241485464311582144381996120009954217006122475157867816325721568920344500938660727693398875556295694627930740750010108876634020421265849311714173410644826226398600283196169530649677699770347759151261413680834338193982883763019500647126581998024335070136857031874061986576520668233381382376106434770418359765805499713627238566649118397251167084560464925360815769735133716885517542483576409598613858365079711946417614110837525231666692700772166828815443461329278865791835076021765774524016030471019636119800941560243290478547425576653492330616440422330564487406663027628243401095838293505851557238320281920276598722067538042151210700925400491654158444958321485444977796677662896060797074956669747365207450142214032113001432913250913613709848235605075425852747976089395864848360821616868928895269432174270924096278251929976795335658580934558274366779594364138122014048109400568331550230743100640839524075536695397215256134805192245485483341712887300694456134950217019925496060791812054159560092746267886536590395688143685767536169388812713618506985944329790608680789763237208497608924217189739825418334902674810306632496502690706919094499692243173315688459646577243133728238131325089936106721568939529774345883105076753651101339201802509626560961906900307042184476921670704841911976751932251052486350966884004066479440902658957064659945597741636985308810004149044546832752714112836462777114215834026459997277763489846570368049381435539146002686309718820838573384225552724595961976337905653244938140516902770962091405700754333662999907723988433917273315849700192559054112613487383919745196783183839082644514717908686792517291020561670197069975804833170146066302880575783541756782714667149457255043748482464091865544894415153735339395959960436497019120387877387066261761857323165379487101579803837864003915808004540400306072181550057927785248113841754364506669613630133898033201390656119541776594350633680672292671236767730541614294532081758263477626381309744075072749533340745480028228628274835235605254712361565983314037309325286445583340191848660948024067849206158253406637629558473955241898498868045516013629266619616021519132443792356557563144016718462225657791122273196265531220840173418125995309773938398989275207489264437811854729730417477386705336969813987288691814661465783338173649372518724208681534015969419846879097956450538854311161116919264304151782292391844098159945606940664098964337145832824292067450280550921819366968478382575384725367346554282664284376920255459558007992263076412067706183525514337334604306978338737595451278699077109623723406739045440707457478845184575578216018849341455305735490122104606132671964064522976452263783077196357564211213768951852950987688914305706411452143898387365370201537234533732951900815100503010887557480816652387919447765906349709063309796294891740878297649092446773763065301332340627431334937589262782042843190579221366629946702027988813579512697470746964523906275970917359803657524396161991718900081494946583988308289141485836883205096396169101546809904709383747996761038719150693788696980221327572322632361928649518689981678084508022659303763998002588892761145305629281052191858903863045839616181619694488773873074493165250567414747111637636554395609803314148315482401874613168443241601547435502782020899041898691538904483361463455297313714320988656824427295254640619603454327646550034737702120196016336111824713969661601607454487573963261509749005447507661117788389850881675371626033338370734758914135338391606585370176662601500142208316578465285162938095390451993979214980525407785240332995251297202960190094671505408328009638670266182212710523943439500145916002687174630305831335770583686926838170113458331839704106320587618254679374765889960825568392218422737254412767370490487463596087759446901357488814218103111265152141655839596638718656024591246871702313823369007061611784625543288200548979019599209666566900892382246267166864120880340237632563541380277409548057900506438448108339103177491852519219076328540438423297943790586600633341545454228104396963135945364731989629382648945236538488312768333049584753892770398110441958431758921918530885762729019500117390431047411156170160524478118503041439442459002546790134175839496244962651058548423890123863005261321147334262632057319399390494758399262338040442192527554223344076289394095062158341009618980254722043662901002874975976940410322411109871474808209709086402883827976924590481758014377377902738598386840849740158468198890328322319524478861366144332243579257637172695875665688286236483855811561247678789676126552414487593431985428701437604195986129770927844693716053814050645960468744956290028610722851327481593585629875422791629204797056435067211754641099006406499439385692059907542570894700409654495996586794602076647641271764059990052800406225676965801063182592681169022012676502471809056555803146406837666065475247738629873216028766841106068217831227680523977889589601102318249520602091850499356691981025879630124582709097676773741411630046145726731442911276305449871039921400270291531120947073502618712017470308696606224107449665510971535683448365683604135944111460693846052552566052320643408146914213666408509711879117976465432817968793284982263897938437509144863442550519334082031891214065225356212265328377763010384127222091366005254887860401920807814234858171033558678774600815457124630783720758012656437937167812802207195879576564632215069280724945782574349347484924858377979141826016702170271354064677580372730966016557137193339370681421596958096194751063918052269299550658607477184270326068691125459031079917349966525360893181882898472980428669130937914609757252350052543860127659500876431902827945841620862336456931873994126486283631171808268779252937443017851219431657566584969211638864900027495802887249716869068905062480175585106838775898870312981041394378186614828893874715285779150655407551923514416489654371222507880266947116471469805925937507675231551797192303001581511734733583059025077949185041738326952898617584439387927354903021671317126562280637870784611393740033828126669965157636604322221189579780045292998954666920758309822598147826711552555289465691981404572261084052329489433626634164443753780978878081151883744859794037962651700692577130782240799700611498480253700107455021441931681549245457603504682264287269715128836070095120860180243129970615572818874398669133530446728949681604900983225288460134593417114997859021229756954354980215486867778974931517828827898116160331533504120882019401709261396811768315686057293438652141176211268386697042315594699976604301897000132119147778053107176214744067043841032324612273464050236432336694728883842747203526862103054429206608044550164401244742412048640648510543899380162233157200572424814147636623476933915347078489270811205335573629172937322098090491349669423345660216423647096208772369182143283670913281213341636114945258258980373501905817279476346892953117416926609304482260739034459654196485694279992720072137784315283622442013249815657985282225358330701315936502707848654871715185619009729472492634586781966320952578830582431323075117668561536133800071520143709202935487335167366888527231190365776323975434784214704689160520941555079073202862791266780653087033829604041457845945452011843862083105084787171314084115206227574900681263894478365763619904947873857283879488785284275411004537217047352151318430082940605908900443139344167868796791791562282217584306541726164387014783871304044632041384904152481882064355630136540512140937876195572681463657785141624386680854066809984568468194196053185399302115408554604917400142532894528439673485016826114177434852723497937554380885705089559408397881074520615680151577150873707569843325872504329799363381007885276792390625976284377177138551141129646513067543036974589758369451630525432026440615920041825984518169665363627193682824928842032773793250266035857105129238610438112696794232323939987099555086881019975024684046591247830626465244934314856286646166547311000223308561642208057606666398817389613625989765447715462836179747658361610189937670858873784988025058658257653210256982872400802781852569548126714404774270673746588441045582726112984877660654001061941752545930348626971729821811990166012236225468271798628801316781275989274912892478386506793568754074371261275730913238894393822462047992090640345136650437344224111444526137345248763177300539120008929364603445546151439090859269596543062423237692658409945082402775657409822094702305393977728842657613840313663266214650385677524314105879689395517124025728423556927924678509153363265468331797846024001773398258699311673934556881864862445599638011553505094322405933066111229976429113659184934806414307068394174065852980634336611184499937712053852379083192583857237626055773859391132542863572740956253505011969577726962049210626241479318765655071000614514678348093994740021853114016673763584801252615419017957640079201531104594589183356443035795953685503298534291132658609602894970015610300640067158419708599155007910303431360321928521559612727580188862323697773175351274130401727532406856955985195828207842460454155418183501351173500185320590536692944109629072232873780616011120191056613921211105514777823932422497964313884605214208834020255450152366093724604342884134461425335772154087843095553640549369211663710139420367987409997705842019567502342797734098383561635996566355594023140267978483133910548893598150168293416067656273918756152578521968309076261625392274230812069816916376812374242682746248064938910324733236525168569584367459633888478039650460160856935258800128781126367528895734123799146004356297956566619364604518933601727844146014511939767056089211413592289955530393336770522233115234961566832773922510765825537886738128247360594696668822826252306741985998304549148820076885419972437361595660367842997861789951642193101443955734238585334417672082581139215586489383630331675739329162318381165417399599235206521760020513739971215584568348796133413911541872658419612249513219592710073432434902450406115248901408581144456827687605967737374576688437854343132743614136290894862282911799362735875797361709159003290696564423153312297514388363251549115273114013759274268844886341988298886216777417849436478426965189990411782013341879015659871380055162668207968736269316944639674723700340310370284493204595332422839687552650806252261822547016437011410164968080556377722638468534521843090046048789783898624903576695209326256128612959405081307978649132143723725549095440100888142647871896335660991837591775573489264311449868853583532612102696136657664103159460476516833793701271232200984977390111577246615277655909024440115854625640142367160452965874959429256819085857691272231415385503692347239624052002178959849827631360085268286609243199343845595339039738446688645756210725433034567130407924079456709758631015437485469298027007586549565028673278554521868192262386708649104471926162466144060094641122343684956765281595045004913856425466617786552099844716447714322557119237671423638300130391759149328324891050832140067640849987711675645123304683769190911553350010586952852146989463887107970782021746102537705021866675200714050662858194236166428100260888115451934975423740203773855426328783549549250186084448546180631366593030755345082443463586353615867102828343180305748219750572586617273901321682753017304030580039426102179776886571467722535286849123045931911762058899173351652534814444369157136580349229470789331723832658820420971491469870096700989032054037591404651370849668975939943741831246159626274698215221346155261403168463827338263089941251387006117539166559695033017690176622052942820395939176229459055859319372817796200563591329321495312871711296435012716432917153321755839583682380826586059507791577652866171983409996361780734524683658065850791438377212326973439127704940713705676950063496614679709316971568114819453712592159059995843197580069839540649762904171762475624082174124730795408054410698473312196664768489198123924835400128755335235505186278017901771400906896282463709000350829432684956886532392111975443859433769480950585843334001194563295518430457135306914459190078907769530580894824320066196569283175676453351504126564735908379303051617365444064096521636139011923108663185947943099079626629805080491368121673600127069881607507526059616050967482633070075413274648337041861063093011947408835520467542572604040738663200918065979026611574912162956617983003924745050410783774750849711489205506892162408035562243654447568320898332776025503937632945984068559959187466792031237699884152396548858919317225212687307788117655079673522623413315438062388275802304457110271355732698648163405682373280792638573003225661000436436936684751160903591399866011795253251965050429998310620839096807191622836106206361915528660899587295341451968357382829671654136715790841224294373300061927234377558614712280256111304023078889695095976620433388943545205889314134819742164118786991983607011788273693683320033786046995802234005794197408848108986052610857933178253828815833695993631661961977365063323213770721975421548594426654890175319836321633274740528213798451564902104644587285063498405792918413698967401962700078660408623155649370907643992208010252032498475772978696450864938978682387734052489577768611708446670906216878274690648851337672436685063506395207611774115707233694889439143295305732099119278424219509989965779718215715134229879508086098462650576031358937968821045023671922084860567700085192472940964075450053928512619246095912635608215670842114004759166196564651862372367786170967100832567062205153149562727397062579444122864054190237239284100710871074362147449994695227434443044931422565448564821779030777260081128161437888638656742929282069229098167713394643378839560281059723697003899625000832377956782471218052149934192884369553020262155341208680933829028511041121642375816202003265805263463201067124830829139058033428620588144418026419004598603831474252867041812482915274711186499822567754417947994526420444361677812729442143424842284539505605004793263139345308472929674896964102266755377182047965397110507071967771248368579332505335806724671566010063080642095771004742534019180579488165026914006798270670673011311705980183088801525749622644672927294438772887718938576887425530555679325574593874691532949111146116838033524186435797538463929726583188088335757542814818589973716777518929365289980683126254855989935783835499303234005071283376939648602584418939186841136377529550751760820969362478647415048702951380181340706812218200730303037791040534131851724752195509956700654879587222452004821765283462210353156707775922284195621582303974892271323848966639063277376684974390292766346093304710845764475985558238849119089577326788028000398436681096541088045310164606411853645068052335504199036194717813411402620115354990173142162876514306768891482389557366158795891766451550652123230038630272268720651790455527967143471008153831744366888869322859916766262097218654689905940356050991818748494957169333716539538116259341590763622620744698410942947778623084489294735470561641640623130487308686156143063495048596476701397132727376450981458592188911359479733301650045917894739748819019282877001824947129183408131369446218014683964956666810447315241694989090487797505402090640932284287503432850423222758076522234941655597953769417733767347584809759467553856469299765879057133345516701848099756166180241719921481314293593835246252561667981838625874610432965300402319586090765554004260619525019768375250571607139584366479223879014946143787729638593589049831788980829502040981406324663187274413667413369125987901855949875668900499732046636191147681097619290805268002903721203462457267167079836822283891034856275456297659554182565381679321029316563122483646952764625362108858560421829455002013903972574962892024572145626882408356744392731835830465375564434218088044291916416185692585091614993578670712934290903392853558569280046637471359042816601612369128939143347456999794753333256549073778761719740336621512939640408644599084825417008929216614786737390194881185147777811721685788835137836828678930195128303083012368564694623205358430961361090053997589090006460178363655214849232058840951627278509365074369623796571398594567529617587668631284387109880068678817927576836572054585185486145213825315108873081662700966483439523372536013422940347419019751445350409463048183425427797257796511171967276980767297999266245354499893779663780344822363870294193013704131562360166934744062202233647604070036494169155284862637800033003266567759996995523930258251448675812845572085923148732338231337719093019043812583016785948057233608314269404988781669889266087127686144021968038524504778057737277828237780551984455609522681947466746922989321826176527618449284257677399267764835308384980660979061876759855594499720787112364061546728102453740312281826367678430469535508588972696044752778474552893119762437539368531938788894938927781851920480402574433063188227050153121668919394839271310370137156891836575863762935308667230939020888733780078387474393149819736142184517302130024250711125124268459748624741934121055428408741480124598967691506219385365664786434913658751377919040474144886765567112484209813957713702530672322491556212753060138660025583857849410427584267289852286862645563921714026278899636294992642985193123930275475436660629034200645441897060878790975238929181200391250959714049402208768334845066124596339200615260987047851250709031917721751669001069455954638964513770483685767589723648745237824596766803870770663523891920599083824612405707583614008998054576448495108891875207770851493710915969476285542370530097469146223200204030401619453217963056670617288465110689929921096022378707823332963258146025245136591809104346332798259561826287315687208572153557569076113539266629552139483447463436200709128457009085465723874718268989170061322843956985868711721877751212779837993052274471007076565833944286979805875627372143924986749648879893350342571113529927538831751356723187943021206892065502632952438556279625109994028430311758936051411985775200396099542110671154123194033025858249075957289796103223198429955289051744524039763047394741019910380993200415362392904872754864851466203369051911469993364441355033503399824310975358064267063584272140172567982034176657421569673176619149039417643911114242767681758888001144518865184324400174580611321908756676377440908828638864020860102136672971870416646035461386460493718877549740411885990042112366006465147115348598568451346382170645369370287374302556642690445752075518666682594249791002251228497628819193704587564533214208922644658737955907606397288229336617835346349635848676240465245474920495492961846737532948540545605591007382812029597274765660783392043088356322607130910591418969868070845295158818081029602365705788861244401439741678951007996303511649116229642343701828563231816231536377433865867699565407457930922170765836184965046691051005982686794262445381397504185901098830630939619972109554321067812623359372184073156410315622492395393215128045799521987328654003360041916782113135908843550985346141260290758808782093155769494768860366722362751045965769634817770746787792313521144223732201450540768028513026009164743164721374185036988962946417282779518335913487802707225735992963617548834285159012113905960323298343531435599377865900851126415919295550668871013775497547607198825754595720987091598936512335562863285803728576724836861796691074485512613903691667376808876577654117701669540643747831440310198240410371129931646455166980059607567427804916869239083116875714940645664754763338908066004458195856574220139287139871291553568445262917068221361028988255525374192496067875200550792049199004101037189658970520899315698913283794750023744195275664718463501532076287158152871839819389294056458512237158303817198763544412280553910531381117369775370037336799330979689618757638232351998366358055770388555926523693473697019132089695547285778528834980570829078858117019666611579603442436891485225446490994469657064542997542803711182930282230227529116425572790581722873671249515258099232063318971287061158253211108518462446742086307893202336394867555116217865412266579607157917402121836538828148311491353051831828106385769686511355372849680384671398689298535996848747195135081806685499194875713029053697378637474897494427542118718002489802794981277496052530977976698390795230681486892222175849397275859539746702526071992246071052696182775966478926136609939701360217525134320417745476379183750392682068065240102658947999141154783830758600787163587712245755643937778052696614243770595886036384646833888378049508216551383804043124323646313376757623027529826934214569309983915065970467215200069755646201150241013819286907249615204632534844741888055344056643417067058952227126783499498300626185122615797053999255850697717492584729266421711108725783735483110835269985922132860380862698655734133752642735817638824243882590524997501403866855803714367371210260959089088915140078786845083423505324876647370495945154764552093412689303260233764113212500185711023095850788427706814705170330568160488471489858585468798560262536394287989967255256200221706426527606910878969236348237911216061516906011835120164995863293545071785489579427310222723154681237629190176005898339065244233364245219443440625088302087676719537322279085560264478665845251487038167278767305241625877573780268158709067972149700003521451223252269797588302184630281699255566220302489642276191331862105764248889368213405121710524579397366139690067537081474094248349688417820132715497682579372978307664491639833096598603755182359939166505576408697125344445015892555049270261945323640280107434405899427407006067617919019622680333900277848794175525705278279242313092700337134268218400460407558562202858219586283139031766488634619539054463429072137218569330073003559765419141654989110398596540960710924067711448826753106639542737223513146944674393935429263366496685496284729100989536767227409653892966328172759068212184011936294710404275099236034240009445051203884916923591286553507120932688855143713576709233374781729796924236628721150884891186888950734376338346267265646147501526572221670176514618084016120602288837738913791670745513195170829482246305630183889194119073526966804960142095501261114247908814856121437599564299229611377453651836460853018711528170204229323352920364581368655887969430614709060445079991596058423732198762768791887091107510512668266565260699115016553486665002570880685222341224922731964268189501929069234880043627526123348523207047091451789074995899043371951432168802795614697652790726161033752765038234900467666895344984495430210486099612362253390053853414378290253628736029363803471057261345963802346927063119108547154786796245274042771933278403227245153525432294426362172567754930379948720461890993827045151224325040323054089162770581551834467512371838441196927537512776825829160909664282901253291672357981677714442237161079799561652280086410916573556003430124104940343419933548435256213894888122535255857681097010616087937216810818306427531526451313853424287263193640214391427494330276382606271160045431166296809375829834583380201850320694138980881070099903688815894417266064425239677897069448476519169101084185496938032234229786913886449227702479578281984795813487907464857889576138361588745283524442662007958449834983231585304966310496047770964034661660718598872772512211429688608890691748429115107348995846618868077392676648356729591850235562882706838383091130106297896249672811756488828526581018707150270584738764106216473933182479321171364547281291344728082334528236251784898376177896358796167910263463660232929853793684499398459419245746188252990973019112681141743930327563415462146123092111792287114560178292099962991811238687377964828401722717274826338956744764308979303300983862070793439425958368696255306642454972916496809273785340573225247818930018456782816797757494144314241956186244119979587837480285103026812811526463771746327047100586244885787014804045760061707002476105545634705153840293302902951100205490181061783487467405838076510405170702148979972805102736273187985488075762926836456267684676368865356435109838327304486297884550040743463329336173101484934696274508170164515882640830435215041588945261017037101724777979538505593005218146248474650503525647874997147211591821463966862069639948932041361627193518025848760191064253777123749679997099764186728831193430865246457281738854973441470413527527780951776336216658899369163343994096845683936805946895935087340622328309207306428650673472420591200083055714956453299880153500799561390285431796207831480596896662929613143815690904050836163569102860138522993959913617033193918077900320513452360743948719724916327149795587048485722643474186622979399270055348595455565635342714582786524045083537977048170017697360431705361424574083342176733466902486340220863929819439516171098217738039024168574843631879629453845502766646433521110071518396119541110699559607788041571549858357828452775800097291962862308919901473669151812472934572466841870368941172610051112758413206325893672447507505926248822894493159213661163677398750810994015901543009557556926934119374554585929614878108904897718800254126129489748354128396741041861165035287420973381887590006841822036463323547085007551151778106874362409550331440626915350773092442012721116839273032490895500226624215312232611445565005544718021276306293098981312616133765607965206876722307855224432942334920630907199836454193589678999341155624389457208074769901969849368790670266707973953868929575789801904852714795810102457860869540371111707866990300193898168897690595595544616086802963848726895296216891007566509278450819329356186633547981395180244302677387961855485591937029402527617522487142936809248670300310514363214983391519444139015014905232272849292570509447899056115973125635903681356647163815206914989049029645141801938274796391901774776960482940705337979479588747176945806687846451280282379390151506785791187427742904993131987383304300513595633340918578266424055913637777561396070841976508893993918995298602131909908598833195523731397079112796692653837245243216851108638356862443485525291305287186612707964426864221660334762010212424169518926570721744924031285616544889092580152547427171727628091827130456910854930237765252383602634023082398268426628864416136157302797676914141635683786980325615448341141550006434784776363403610212287474686903926025829055090060103631757453103739750596435627937035571494995159770609764608932043836804171252393278409337646500952428673864398620755889078028716433879334307778613201776339845614664803060026368482758138869375332056449451930849150862296542816753568264780725774520762187989801950489464685028082634504178122509709123346010085162493459502838213995446084409322963924145802293888481007768031798718792323858608932361389532839583397656382552857387520218389303312117478309315651719869930627725078595274878154527801292242541834046709349674119351389229205552464840435762273711734587596393315036463963754413872991927297194224720918465787271732902832079223777741907692088533228408854237905623930830152756394295260292395344352755224692139184068159566470634923058532204428952259295534386465311242738289894938346410072556537160849975890553820301301787546046821734894902714656588819962212904040234042878041439964218625606727969840972244836587084368693662314718602029650207665119065897481196779929766344678680403927542315916128240192010286001137998437727775723436424511479570454772694711872809594971151094449533557276716815614353832374994222423040037014783068104061605026891234013304377086151934185425336715681194157715215028120698227066057393738597109547673823962197460855547591910035888152775803292873187318184230374762620532086613446750052406723466806262696747655442604770881611091347365905269439158095317616145075332645603504535291364255131215148745808898712568464499781802717145504807624751621840991363983806536115740602138811105027800657403489527274618083228326843676098249248737514674361868308998926561389189852723784243897740012428640017300662902113400625552824234726237251644315997648327551492470609547388389937830182695648818817714311042751316734830308918987798518354903293404503246589317305011957699317091994749840681115612531891000818259076313700934165450425497171442625260391648280096883660975291404522451724827936531597378843759141798186260325391595941663816769608340312552273811507651524937310712127787891938346917661866693726183046734493150279428303495481190350007174559294606535842387467560911068897063413294652732257696482891750622017514713310520975929288096433541336261303062663090598731663187519083613774638569369742851329148289756789399405298294725152725267263039926088495353455059132806717707139339979028616930211547158684393463148198620780410344652841775064395968449213023458218604743012813294830714048875530138044500056965930304274228278927503805758456097757206350513234363120252230347741866129096104986671629144946707655557588558275456666578987320105997646980077267813431916557424606591132452612933324574380945278837678075285073559549097948670979064788483264454218055364673248054292413262212197030112653076532189152363632066549603584443161904675559410664593619334869883924284169659388539711670013661430100877421279435291065019893032670900451756595269971378427836722742117720425284842209048371317404082569561753660167035091171635498341154314566059070424891140909438717971077193758843448938663469227258361740276249310469870485658045361615757787238648219093688702093510321242919693943790183524365527274671153633558271882158132046943256834930261178062533218474322609717745538445679473612493898809288448841341583232837720916077356861549679798819156696391418221792313742721408412506044164673371944850483424976893096314642231523153397709186004248439372400883644487468885729568017671734611945225905358813068012529559780691298474593258558684306174628005283912057319669430180817690904228731709439405149866284937817485111529854373456013739091672511583738550591688691708491907968052250694523852603932961619942071268732908492617117612417436546318655209733560532934675909959900426435645479100957765898805813309185141526715052964197056889517751984351200293233186979174279303103162265854735927428358626338627193928538881826984787897957163416056856851511956788087841127064492596570734085427091963128025490703343509572049921997885192242100015560383706939327094386636824386482246356428075936435796145965033217178724624821704413392817070563736306548101515337652811762551084963297480621638259751230615663504184847319493686102215256017779391747084061496966360483254389164914653997444987454679983702470610425561535551844235860826030046381448312165915478870857773901863500250684507850843262318173775232667753867371466530649336677121733830576605656146051746330696962629745526058788105177460806004840123933503891057887658844833251612877771287976562886015488408203326200096221123497105107503696082050200515663342538859347095450721792136593432933707599578900225149630392094961633996843944642858275217397452770404056382923783353565660084230593561871535311946168574514555050677321837576484468890551820639825058340606162201053150618151813053949446368031409101874277485454185249552464042718001091321101031380691696790079513506400385211795556664264775223042072125128142826574022660761122005346687171544521594057410512972505465414615821199148433395057963884048096892256512892078495872761706404915214381290179421898867887611841007150953856021273378254326005829138757392214253152852857338110228252132201487725545954248807380536272078100571239810318682625687148468847438045351708440457830843599760520321238515077433740473776540118744567097284453587642458020608230379584038645260408303768232597015192327727988010527059115924945080301083857195541034728198650712931484323628082621795943388025340576549610441374290570163491650989811125096881797809339911962311376741414866056727044703166957177849661629135365364257091835444458568144212363951980546165137622644063666151898314779204248459421039082530060439618538259564089786297504394254714638779960841352356267895919700623854902190871697508487946965345531098420961124970802998034110019829261725443069625677121501765450319876770463277123688863890794409414030117132263531156523235737491396129103876283098212225025575944272891494213216336912545401712209166421388906488907551803181657144247102575484206849435923890126965159987745567208778353523275853145130454183023555884947894069873975764887448872650675938370476184739042116759044436977768030627803938384781886135417828610515190739626470195031463124041994428293202651477068721570404128001850853422426918074323325167176240589671474207622665537325755663661574885901985429406947700587334614125336826459134430129093961435393288557653167973982053209293212834859363097921578475196591701483790817956960960057337156229729153144818647927469468203408847556955012193600411633496503630660351427172109036398225265360239740046014351979561853679764152327335113503833043331256839218217500551950201622623006850206207456158637876696040504981331847261088587477137412504547676778885017923419118775334759782018920001545043672137881899632096764621187868346726891765679218748387045610239475525394755677156646752414851419676582088939292464437041741720943661160002146634950219301205574047754744045511005535021954206693306234986560474791374983707140102462665965629782211663018300608871602548041465289385263481872105042417113628961799332387250863647347778224075637475140587530151827029703566026227979062673847166701515984428763792968837188332461336478350228996977867715295346224306229869426044496662052811075309273525246162792636035524074960475793438981313354661066834247582617400235395559097591487863776275001730361136742535917307219308093163681782333403461157921378145304456035543023829770824542621456697821202097169948911579742855137067190939448195646116754285738373251807417066287268535862517721397442116062121236587221080830999771549242892174836471630641507182403341574382257545236741657617905141710401902215266299346306687977634361917724057752841703272733877890944995554933731100414230951613489375991914714517897842759037115462129601193631410957400962850570011385350677838028394920845967935196523610239541476206694530360439983210147642942777853948757405644042940708172176268357601326139750386458805436495972688700761021084669731577318488117186000603729170351432999479458434339380102173427485623979066188598021937149982714087687168034583251578113862407705055815217581468030168249427090119799344727981815152168603789183467377390702692156868089658750746724228706330255860782033596601036400004332975042156205753513479788058711503115466658219760811162244014311838775283203122442422557595404593489270411076085558927578896685102961705662951279067020410396041746736727909464563297292468685828033429738129878964370913763224687308891434673276189546135378198598928426406165252505926466324283056829472972321034752527418928737715447258966703478185999554966630861659713287302438655972311182465381100536933726288659833776672646732979359654790563190659467713847368834632742605535273868077036305021071780833907278765741749673008644520044224254676404757728259089280037439091622106591484862028702032197143545797008293677096398498749829862203529363913940277162544727029286414523769393242858956453092813055092239734266251962017056983393922465368153949849964559104230843314399620070729001291667269478114765914101141387629837291560355642005568416288795268933540175671528126294473812311639812440382577349860559207529397442796251931753357166889174918499137997359986503355571191000242272692397153202135781799933037240438738071856841141376243258500354589051094253591355157621156530498059225532474257700099036652446495483562587296634531122316311817440191660469633590015130689312507718051699609253466805963076538505993282694649529607920964611404365995527554559071945948586099853134605803878541849197885528377802417172763772532793015751650658365791863085498221796277617366451690701308766799619636171929548170903753803463383721490267385759369102670796143484118285823924518502554880314656820622983080425613078490302239145330033886640870530374015466785853956809320180918864635510352640506227869324224087080447046725211565557584597982444536507734415101806415578385977337815552402516944389725968254523043547879594253630107213588625664969564019931859827779286603401810255399752808395345105712570478645965393885317056035711352279764703911642134007764937813137335643032207579307364192527198883320438285622811610166530561427001209695913435861935451555965222691909346640080029442345724122898139337797375300290684486986433542929451681973706180716994739703392130408644572424966578299521131264489063323783903389004118070548747320190688374906096680516280728196231483682273922845056280985227898060728785865952175680039822200403644062210037591444016956030332170626606253239973708693024397995246824843979369301567964720647140111906075248477526755996109321846612947298848170978486626950234904383623522268515623534626686126061056781219772571635076345222004684291492914246598035595073296374109380495188416131025785555705828579398602780783757083055513412663959730881664468179027655372675342540132538121086029462780980566284059380577785847008302717569807406970671343441230225145471738474142880451283072385047905210595365127027558600905931487091918848986971369901991312887576190323245205244895262511282526578330868773036497959527269060280910842057203091224088488860609990205501377887216280241818704851157270805104310660863119769025650301635427035732960421255926875053879812561191043184457818963868909559566908014714861549740122727486612646005367301853562060294844017349798526585842364817819533438611987729933761230356430515944201914917103896746474572440129209493628819323927425332551178721200304496525981589937922133673630671562373626381728532820640502958860961248761693689158781069981881936840529904772481227131251976972626394667982027558377559614879875950466921755062452722698403973483559026626443514335980258625520568914947969751889449790599141520052761041833562599657672575872302908857571847711561081541163245841010294230517989080980072465383932368929839406322991398196336402244638877231746764405076319055364291806344905467804776412908213091583293239047612667516372626779059038300218167489064855112515289217701258241965944046852626641643870968647262990098819896197118139884239407465529029984909801108449681618559333699514256709478166843146222656008617870332652430792950254728049250081564594914599405535017015875042281700932339317068726186685013918331443334121910004324200308129302906715765590167408551116490458992140307615305552786158414079221236593001918614340396556394713483192882818619342683829604472144249803476805747669969781021643466335355386418401553965554859070714028353505914690322273165013282658009239682151443605552630473258029151330583683629830670334187976561489339499972468655100377129819422397382488618683294870226310486281259264195856046942366700958991999225512930626597471871816393707827566516163007367427439596479842819917508137585220247193651543889519424889976816507184332281920952504728443044996851644083857934665054988563058217800413441715631136761975912165996481998196423168432581086940795920876231913265484344675642902354675875724981213527941983788344214223387998643029092661449593439032697398808339295844131811971147801641594187145299862168395887738103651083116823007375024597186960823582350214506442659392495354699571908391763120490520701814396619582898085383984120498677679174324407668700089041387932586188992932786844999436953806354305896063885349367528465808159759805326290763287407025520395161397541207153411208395874175874407429893298582753466172455903974695216954358594873438850679262282398898625783818361236562770599048258081175471099503005682693020082859741327933518491234138593630612463659956799242658350810096393202714182064309763679229178530662740545260114938003083241349981049481346437823590231172026022640992190288636649402377113151566954487315627834145187190374795418892400077553582377997900391739287934783125731158752229846371888951830537073777278913713319269895265554150012974172591240776589199135868395971992432534885876514516538550045702686503868096940773840487206422919650457816530914655985529512781571904049047813513392156839968158000812513087178882087808119024017066245295149474497279823967767280513324029553033298620368465462629245760563689192136767483591347219037493055265147842667132524246559416471086547625910372935799460442401138308166299821053833858875477877271166085979188588407430721333279579457596319182610180705548759637290726004113159956559463871596514029726324750524684773764401437347802941386322403679795787318398025293569121116989476877613811150248642252011003810744581442409353009507819546161492007489047433483808356993676664931157263020858589543527037390840391764132995807318770508189663058092846877983474554422473545178230702883384756632051445416092270432580626042062215972460076947244595813451804346324594594467243336453256905519782805368983340123822011218881310567064075678352837239281009803569216557131438289778073771325295144874556246108005803061972262278654409526874864905579869027787397847683724445947912855223347865911562360284681800885826671418529987899381494247477188078898943156969660022809938822283991099851329078141343378302075742869864422765035903011404251679188647581391874719709987804915580792651130146767416695643046783862321008860485810518906830555946138973964777693493780759060895269270242399711813946725989208099548997026398595376814304895456497913125779145508571353067128617553142140657193782729969335505302913897504823479781842675249791169894102133474256364176678679121641416239043683511287852247716965771758132569718000770199487446127707709223632082108409572336430791943695215851524102497093238920167223500466108641472138340897006539090531748055120256548854147676290337198409572397278189615706220786375222060925985889438008123938767324621124467374104130387331068100216254582609395982746031564949113459512392963870851381986903113251209959918099536304820607043484212614341978248185161637696752239011662609109842522660962173050261331023441362591387741076549741508437356098132944822571372266657270683649591267446693426702483150628560789791901075385906492564862105617905419358871698836776560629249516982133848710640990952317960785022656532544865891423917415654870892325944555843589316389772801810860918251611018277760761347160859682502299018846864854062478838523394437884389618811719332084873008284253966383675693904419235398172563331313902051809092525184225190158216509778043722367056863105955767886281341488422912116415032084776123348860936124185100545368411488889093720543630878536691778205127789986754396030493732910716578134771713857521900508981526842043095326568749358606305666154578079033268555249771778234041259974592078174534817508181331749667487148933764493171469458487547243366785871863916360634809140714996489385028512286352603246109071861547573754487074209205292468931028975371735150560178302881410308994279797864756971660458852523638356731710392273724910166481141536115506361962039348587319882714081372425844948144324767626112281827380771325163639644418045335262867262603371343900478937566138952187019912298531462458104568251108050546565513522745833959981414887015764394132240607217990009097917540270636726311857138065277305365321941386145134936764820198876121692778494817952297022028516475613185373642825743888099581601503881314653518521512995185112983802117886056747313550231592409045910942765145541245011653870922168297550875056350041655537834880598274912500418624554978130211870647739152868997655661967254552751679389209834832599082170911778169837351992061475574348350327624185488478174253398376108102499764931294147881595959393001381983267229247931309148669794889563873091227104174323113157167978858840426314042170596570761355923292020718681808275846583660963393111125431736794418122264183500257946777574165201591554153406833727115071490991374027320757489019233430402793681454969756479779422612333508221678573267381104443872157943991492351077591261260966650405495007668000713671589239590043975443175163991283703319756231443792342922782834346810975798979285131244204446706928792043236583276503820311516703716924589069527669780597960530142824155643139698770642243256073697286243266917626016411142273182886891345012373020208135020278745756897414770901807747306543693148206739615345971379632289794773041514123782159030105178299814966246590765908999103942726677909722480430276842232426053641780644701967739529719905181775005527723219649044419483987918119131837679833463852728637381969404253835416909816329776791077885636112466406091557479451185421146740971526316061978396066326530045140871125274007286896301826528192405895407490900275064167771066249962434271775751401227476906214489394732583101018768716574732382933209011472401530691898609872571846521909340433209154059763702109849388782183446769677038841915322454495036534092239616834360531658330826291898168147792029643787360434963820439699287237479527749065546147990761415184678846983547547852354008418255599355423560309677735222117301592132920975477711050095164140087186574519378183445921544474314970002980476645364901818135566410468515474938890986270531219674954687386200180754711638968048698942688016758826579880992736433640916512746071151214592406436835533871953353567089039063741309370078140930093755084821956424210237358883195895061329723872596261676407256736735777281824858488533481308077649874496127316082133933598611503701330321455613876008002720722108984698897184705224999344844842537681720256266606377703264345175379950391518415754951461678202574465099728248829191115118081911785292852538195843952935576661317098405051685114902912465506731056990733195508495275481818690226438922901265944246002164658045839096084091549179381501316926636748255030333389762645797828359971019462056136334815340881992649739184827876630033763085205278927664494704409457935176482831520851586755489030311382995418966085790941939632803641467498642864186862904101038476259459204268249264042381684158448142479561048434968773748061008452171921422833576799163817498167110672705193445977176379799256110309449409139268807753983240612273959568853432614394664974974189354842411774090789489469060728908160447073527941047503800245190960397916866633508010193282015029489658014216258125733286124115975381361695029819297342349493092315712325115697080156336281451871948771970247528205840031186550571062491393042294486960529146145137988071345934698048090361419819191318071031549658873444626940269181337243665711924622979723293910701822867636447179873289895053241585165744449307682937478911379244223878083237937029707052170436195831532349762785047709609279391381854038404764808192794402135597481466061495356622393962329176155961509066883606105544184805995140454955112616927756424801479300813114465186584631538237758147685747195512156737808623143971829612333872206270443681624886780769234867864687519399642692814591479593398432746600850430139034510479015601574843701830941005370748569773042558925410754502357034275526602897244813135392106296345944993700203001607519245835042433680068417117177278361866293943307702750471378931912423441325373915127085718274000441423268695350333720605442678750795419404350292096906584046432259706052046407763331473577695385269630376420769829118417445017367165928733997381565934837639602451342092124320035173728398491194491431193405319956292853959753187725709337512869349571888149736343743738276863613834554978737262034541120030097715305413146657049310735321251667914183239791193186431453231217699900326107481296560873849050442936764481015035628522532550748210933639057661064158699258928091797188162637692762703523621093516678642568057074490226039857505558799099597572228066162715670323808621855996801470454436858673555350547052710193938457249309848231776748917742412616596623939435987535281110715652047204184813847045844016261921476057820527133359338436845553297139809881896295238729656603194230493573915221984884561485467950044496044863392021977110550641498902346100499872740700250776088261598957916563983729424129942269156017501538452273672633824498289885329319979437684839282689158832762025284313536390210780236177055838281463578942698823376732347414058336808143280626671098485919044356024807640236212625738522076874995470044595806050700308646556172226909142482202443294373390274466574490611641629976826438242932666456600090916371049579384763896712258671282841321054596654329696244649251902611532404616897389425202939694429096086851392694332328989577696992310345701978236087479059883746612256039349382083277517135099203488820185714263027706308022080909793431445422856240975154443030500444032194887505878212859993225464288638289447725758543345683684292860868707634968103155365274578005249560146206025237670983288887227001213159674999832315016932091018445964090655730417131738491848630402737675209192838093016695667137576142894979807000635270765944111941110413744383469889223815747036795354021600544530786544847063228845939949200154889461810222332492383969343880940713087024264163085210228279233893360118442162146733675538966013931303286565459452220414355169996212565318494305880601514986288633432958797590915965206120771119081629233789586594728771429869194778805301817552616813156904970018178941727862053516917338806860570687135220416716361374018694235982796087971080747225714739121545637730894767550831895013116988518513393877280118871208718311831519566502505305909257180999069384243158587395291979656618422942334278343319537215163443360242269980032367703041455262635348192621990105303280250923830742233367373360823899089140058691069241370829571928430536675396850500693218409172914154485430912698603474882457079039684672044630933815189434506575857870176421784653391439231392440833639771658913079825877060996173520544128185056487183848199470772561028616312063516293303298981155739764598231595024995178765490057827444694865606386466237985179073437204212653508641898133200390429920919340728288927887911083825589907503686955832352485984634246168480039775924028291706298900341603458570925841586299901009292915479756882636617502188714798153048964785382633697252378244020271090157193546333167059769386667852843027298942406868808111417836976999448013098707554877483795239869895628286323660221987023123161556123302572429508786168390044960370767974783806302634337820963057619186699379172490267039460645908459043941228936058475840885268809666876773707123130090277579676488346252672827772535217363914840814259628710194041929442194056570597643759186578054730824883056555061552236918445429909048134990951720288992728785294888516657266331713630774061814322006627974859474862738598853681201053906075907539498922468601386709704092590427099573010487562565875170691826414824240230259412145289919336905270924378752689633314345092340528769419278692526075282568927762229326572936073130888353784224980976120167435242277890517790340901672995027802000777539453277657244537609019065232722651049935259361437790171542199595335417977795878555624624751881985415046032805981460596062328850691915718256503783444367583316402878368925062941443061139021180940261390380245170589910687166481417495730742504683626628387987025808105692598676687173950772391769175472393890990011164682052605944581985477977347355397025393423365030798017994651418500050766687603448867565531765086360840603941701621768181551875704902902567728189146841381071781065469404098785432743498813649242607611390839838857163293267562414411884712912203703528230793147180423118840317179888706818907730870018142996000248673528986762884854450066283901904357038432887142603802847415576480829257885768795482412698968953268754636825240637292306871860321705403776570293359305278890468091475192955991324280243838659163716060182194274313617593128381538152603931845500865545868752957223225072100364235626543314072352817872756208979678473437289520942105042965921519827565580266220874567880692553058846469203727595455060200173431958548631733274267987978836069491440342272801737022437503367054061460181172566667677943799793041407563072444721188816955308097608868003898322679587620945640118468550095408761881670185010370126582329710941008098604365105045728394139186024290634563839770282355638457961608797365002789805055581659227184211417018911653838948805641271956430486457249122922634575591495010997687794716264730305895750992876809486977308439447546632962530776139019316892345679886002545652913560632939439843988696257599864667872506202997917418393481624451910358961649123789461637853159603569024159243091078273847679227530086238995525117022997880403533122887136776248801346984164168333069823381006363485324116607207252492245408776351941265118793110843879184441208762759654892468757670187367958393442679510025279706636683374005412548352222875894729131332121253181399238560016401844660954648101653789743918485318924698309768780186261150107468859664241458129310907290120581503906137893693973390731734198602632400113612055990189301275689055867709665980200237884136814958061699371099504717732169856662593855630464522948782988390342305897553712383755811380761142135802892346201007351577925992451429821105086282661704539058297525683699244069569737346765487378369550818647927419430753342277343199521996765911412229540067943761829754880678203701141711040907833817909390331988244524361227111946495412151808267912517420491701784503898655096654780838824395620997444058764216490600065004846078360547589497090174777656482503067747926359386814885283882342914698472178784917455226714367149421203086266543531917023164829705379417081834953557943718428803332233130322243540695575121657217725483685327258497538813364172496327517529400689376477189703758168600380937897258053648697560565822133587849844054079209613798053570174526299532022854621645035730499434074290731144632431152957464153806415834781726184193001318760760476906232896815542124083843867363408867079493268542148360339227679170669980906185978408153150921767898588093515503431140969051203337445532925271165515320633556779777237105710504219099859831798402984476472473366337802644529697062972751268314993760575784777755185001278973270226673225583872369794395345308392751736713715198640064446493543229603466309312923003036793710448245009983195713099446258284321692064245983674767012848177033123308951609823186591380044304658608937549103840767103454452613719456429723265036478021155716365047169005262110561666752612842426083422459578062511012361702755519530788580654823854715072942601360549751080843052356746373225389565955181984637961172087821606259995751567403662639512618654633519155341933989471397140338628539435853027029905069242792322944776309805608962555411309229711586932579689002203481837750604685396908763143604371839756990764063795386054134519166532106886252773431431089559336392088840083703005372290259382932430778435671317664603196598815084762247093408962576723563323465396814483895020091661234322301296603744401552242016804725454560072726787936543741529667190683771466963513116379774535018456919295980571396029750183223090418074376736798075716681549435789871672596046286594900142996929795484889828355881037395916047274777333417622687421253559691019522570857381814029176940299092426739213028254370913365537134541459862923344925739030247906843323718737651135634988453354533617109226350289504420041312589997925447019160151995818302202833818018101879345816201147042101543821923363469713828520484432245204295224399377151357311857686058309478806664732697159718636020919913091249586386918311657326476927484758630935020625502273794933634037644261669621926561175743003667783847696695925258625319473075171432156673396127654709972758642565743393981184845913187012711109205071350626394328351377676028022823333869450065867131070088453724171122762348360913165384461886517826796284273717940936406583294614205171847128129670584749491083009475312990017677233909167954199936695830348467384556742933943149655999675884331487158671445247451837526803733106779657509251521449844221333839223218012497165556583311858369998295498056172901623532607157144407111274776571872354166422327348973653143207637395393042843626445250112100512434318460124419869394349014359248427204629417100395951271273787696195554784970003506295063689271908979314750492164421075581387909454757996157072006983882291600721241155981594031746052896416496675883612395819901788063211773296305166948613043871089876979443492902260431552429373132515163532379484381439268322473346913784850237641859384169543672919428523021321948826925851362160751652124293331389718866459299630917848421690910595636011888043598541787191812943016432918807377262017309194363037011043500494317674601954659560590411950002313374976056668437350363496066076071553531382631397545186632677898274706512576352033471834976928112465485787133089742304968918600134852869420608620130465212952380954951917935615429763789610898414969425120751033232589753307357288369473011635904958520913310046577897382900122157529570981309731944029547819990441892535712789919069835525664044022915973765171962523309631601649816634102423141191641084044883067023267149897239309800721896590362696106069048085718533597450008081335378147061393774295801158004101734391337694697881125961904349286189018557161256581527486853056184875797732994469087260065673423838759093162752186512265166382899747098217956205612512719554501135397908348160967834923743191964695012975392798909255686306811616241110225505978798641214641648910335450526770411706332873505368617565731809027738388226573547749652872779908470352090591936030860434104921530639547904354920804358844615233586033290660500104587147090951994041961116653001118692926453278739726678020168661685613491714802312992225376417142639657578765289052585250751261363332500437757936467343081166846864566013100575631448727370923949496387009998480462620984987387164422283204470470832447175606482145488484139092593832082145952798150527876738697874574732473043401388288347351231749759603046980090550394886512853148483915108909674203516679054148183513963839865943417679786283304298212471173388417812353860569044662012843475034863547507156468226515122748147745654740536648501127383603713133632903376956833876510118357312335866248604636472419256081040287409439410032663560317420687184392201780953149631064822134568727284734416474710999884080852036106611894724749864045611778392236509390069901544577828016280252605426082961862436810622092735081720014307323203640193683979083072237020816809676520357439411453523054894047224780888893563127790015723452648831522066841622172895636835299733142217911506978426678348451450128353670540411784180560751612313771841858276564746403788777430469674050065832474235606663320539442688367117614015908982517362458003210353269129473881328208263322066239872640759446240398342252414598250724892600136671200655187348493679872434531121635371476983518577527449996131776568510199036995006853868359823077104868929261825131934548315756264588728884069472721293777187696702700883120714998997304284633322855301146726016992895150606752932152720747789504886716935074149766248228893283293250363739607148168541343560911343024897831278859379019590784203118084018754979290375254244700811494727231094049899516291945702448559654065446557850673388311887656594884703838851624728651341808449381288460206499165414523985317491364796211797130856557333371353143832967244880333220009319189315525562620565560874762613153849747540644113373977459058879534928810976263308620882522846850443765605079315614378237578112926798576169024765377099654183571357496969128321585757598270828748484907359470629887147571377118717246987985948152024814913296939982015759121455762434848980310408614484681549989940220120453129037458975107831571896556567286307113188767418921423876928884973814634909078595726040205261704325979107144585232649033919328030257256811722464117729120527120674798625319018408036747367872837809717103848743321541538563152461101183853350868447243801021715578896680318257774584743071121621032305790918285764421987272096827705709977964696270075105447822251140704162156256019408120777331940892611842969990214070389241350604359710733188692749428291550744909821359725264016647199251472279104048685528017835550119013285647602897129689392359932244214107505907604166377603896093385242319977310293882491016497788268079234693499134055635540688548356653129972564569437395110028057736585975088753643955438442168951017667186153467676041788594126888668307072426349326531969359685088911341911775782719405458112117393126732126441267337782814259038210488649161577780155684404420421304972443653196104781908929505123623400549878547063950272943512488326948819095738144245255390047483866094926079032102801190690169369823692719162312462106894336076908193721778631281840418513816721084899106253132694050857545315608456646203311702088220166900345499270923411607727807846631543305987236712513118516002904128720111445628930117855493020326397796317122208087687476080661425260124715099636684927222944709604768701386378871443702751553725719834447577056464612838246651005498485012735845734794568724495109547588027977017064605060198324933615957468287587545958247569940674121587580756655785077194890524684090411082543687928462075555090783859328318126584757093647896883397698255176240811039921358130428385883616804436723233507527786391270236619432080234757548312647861392170098180115127623340350263855170275854651986113959857756763797826982137871155957850352653473903679215011498001337538959086849642706480672990889582817695729170072973132157682049630869375713781373899403908059521786421249128907242346904993444348557885499687809546015758822939335405573812667209888206903913858338180902356740834127385440411001733296430741939623212365004066857643529945641214350251804789005997964331460173857300442786391874197020293901404168312477687219292495076157613124040676578088712678754617439887264839430320305019842221428493678700890182297898078283746950428987617664807507783768396074583872727178235946211016658155888191085143989971307989988473341481444640241361569694994478609151383834782105481245533713736548491385793603355521365073620178558996325104929122856205640499124006584754818626770636942130452416815041393316645846776288570135658842039894539132565067611633720138340849089159868962968798372471580058864452280631424533502647016804262189018635791387579807212530641118823056779216569309483539816130912922474880842152864661680810079542704832185198548137764034291853784696298670779843046550290152896915597720914064120797388493066766404809769065220108501418235731219574889781971509714623592208073155404169792818277937807490142596777532680011512591232880223860354314051494086665583997474951918195248393582520154044519428663395044296131668081425314930549911170906565611387667111008767488809665352705710849066932046311254374373307119842088858489577008134786395066710582118087262965318479207984856194759439723177093345853757519009415561156850995189949191087775240582471745157705444750959196290624692558404514652929599329283724651199380302016016484972781726551302595019458807862868747744385973214165777992733993036780416293334545738542662808103657086015169446455968727001154436277646662934407799887574342590253052101630461937545389739398043791771084497091748637102915246346013051979843038895660781570817721648179212483239023976052920038403322331432568809602041065208084998747296415825401367953076433147776288419610035093183471789620037470792272043967270109700211572286028443388457932408513974567375301723934603731249404602532920119457704398084477452640172171415165820289603074603022238286447809805015526656548391489966901332217215373208956737826688624310820283281479172360017472589293776376536394783071952311890585188019399397535585377446646510055897670765597307761365705220635959319789062533245053071554336588094359138615894567963886164570373893803818241370602542122705481267653539606976514435345192708222911913320750250580785145347802468318085904872280917113565987152661112439112072659028897533306748832698834597409676264933588575236640336299653275148976312750191161057741785848801519785831957832739294306477770917667344388663106556968978078546694083572415275012918935772188164883757244430736449295858880610302475224353980483303225791807324222026076251691857346011307610183673829345495035767190248472602759831670550054437561392851149025984295193836722546080227852224206437860368846057072917655301300305842508501063854417678231397266125586316258395743922914944029539959096654284396361512551762011862827326982699376571120639680782585925163680369042063245642817503787086565544716331513988693943220052947229452210533861973174204409155944335487647056843808608618526443404699177965998802209794612799078990251630751051362101442605649412774079629297466180001066623838913691529608223806426794299554134151804537137310223374107938056356781375601379659957653823495958302874338140742300103690284908930990029081569330031918922269199557968926716712626530262222271716370644138272482637241328601267457807411184628719075773038168658263378507822048423278034756055532782042626109579145301942064293370905870903187332868300389347745923385879208878787832573912676555639837698344444131918487342922474415569545158893786603425052704038291039840209327004488353583357381815790708493341372776086489746751593735784382780641703412998669574154391725483831514630246309584692915375435126533336166615590508874452525478203712853782021542015228607467810724703597979232956785472032608757294795280402214531292688444018223169645334564079168213362968486192304767288572467372638273264270366781497074035268203589716543419274384501367665680199707812814804372802005325130372005678420547071004484652227339976677541532237376835291596107657271307120050422597472410563355211318842272382955601018083694542610681887661998728799818989973467525720915800719747167632512117873688613963836497904067603571852529988339174707924695747578634647110799433983516166444488141947173768912291267262676966779862440688855994077136320392111523124723205476312120089111533448906603719243828627666533154300558010451943044186135709517801489070762566272265301800528248452175170291617705529453336519624107118605203419689594856874730848897997290738963188569077002086454117253180470336777226161502867639930380186078026132848289580115949291779400957184577596998233478575817262830983528405447041221416608315808131455842308693698497738497654117669899623014861956939012670635973382152078098977881728979279984765806038160794409483855754414643847739009737136415079928694584493319086971651178626268464721899891716064961222844874697771628123906477701255743171057954502346949238887335798444365982746934108181799353559645727076197583916301939109567766754380776782630358839140674486585087287515128086444200978393765086581759779605794933209848914299571956880488765478795440558629831824146050676751520112414856510345714202260953345512530487107135378831972628146057347479660489619263787679728256159442037741029803119367700940902220225293158977966837171956457205063043030852528868075778089484274464358245022434729991085768145236580573626992587592325585256066240828163531504057826405753642634119391728642821608813463813899017850735184427160340392674617294216854452255191619036237620818284373635201729142288205904931242101674827766084170471156727176791484926288026874750549006571343360517869323129143939837963994443951419479679889307702929308322176652313199083078170456754800170216608064661917864037119840330059975424550871766693821641751087986725464318168406618210359633363685816895447674914354969489346960409437949503724820626448817335460193168546549740202545213094728469379287519049560098622769506804848775169627691985250738269039575138704667567495558087125888618597710512200563204158507513234901021627837932348270892294112228881964987009259978497150143732673903128724460910025007004267752071972114396229738112365993745868343782172238808730526958193746764814804530691334448122501174337771464540785755269071345983972255320663290179394431401553021296888861775043677188803939131429427399350361563236959537522901619106240655434938544757340281530683929086656117827316980908014625847114828353121681299346410963358010032900003309903924276813973476843549984899129130579106187299002288751039175180775400141733199787994176767169615714284366256301203621761844993598351814004607043174508562904770288450739117020784328550677642480720864124642475706045054969312930249117816310981275008499700444773730606668122891479703234496012362545731748047401219468199962039422277538920673401396774269963774490105772292548205265200479513705950268850649027444391649772993389257290997749483632965728218069451734805730370985415171239645919164485336983669217756825680452813231551875430898593502926617645933012571450097159578325354309614055137552869194863741040290265773398179083720242071470190505918349842176562182133027463088446891574343764203257083162616971149018713208788409341471888487464771709162343154000572411679872905748517288553510059708040901713295105601337788881597168220802107131297819679422457810730225941835444827108179850472081297616082517871647443241591996713891993047560245575736047809782845201809629902109262261517686350414117234293057966538755774068764372432374501535019645510423857774785386651281785658817032563998894342964535850428067672374995985968458511219432553181353364740793730069813130154258493838300614163781833047969406026194374419303452004592368689989190601971722599846088692577877012457140590533946348274599044604579192951306050573393907464262226435378536094339326296837579010178207039473600850138612571250243834203452534604912327415604851055313107303456813161465102921565626727355777256900743014298889484991166870962416079089035269639691387338845204552233057128350209558223913094698175496646254746207731197362930764931559510372684293151460990454674095518389867791743210450637074048525600418072598766088990042378897529983382209487654187699312206924398446685528889108086939131021467260844122033386602023093562540239635042690239463050345270508840991815407916031972768849420201252173250793113465824622329892668445968020492101311071946264235413521475664196346379728515588870020709338129170982261291932464612757933747250224345567640396111069664562501256499831248604540094845182440001669982614762553222046543432594687569696049665704167316855698316424919694274273572629825851163902330168747122760575421337913050846284118135824688016776517638680141935173454420700282923760462407484665716761293752421916811170004952201830078805043270882193626895001376257495503149766177879287044545253957800821534838528988980779536582573751128458288551774266846719491082948374550796062727333790975750123974121635076855771147462146646104309138787819881735307524803973402348039891336647177328231169035212758346718387902850308627910020338952690697769789745632391775468044192420377857867662564517386681530254862942871503399928299909640084204150395464172279131929208598222377890054916984465886283759605261999428224980758426558268775425692655300798706540017553652214376092730970888735241964780114033999844887547628057851154093178381537539232337419601421414803540184834937716485607520797756137607525338694389622005661045476157755823451855018846671566197176353452118869669474309504219341437406146880621112654250586788389740027190005652175043185169142081193676068468219971340457383513843540495754620789930532001759994634202931784366040120817683100409947156883386300505869186277949134667173683857488090816965347567424655881457126204161795093588443266279615216445529180148466255016019618554052665077323730552792625733494451349144957433698423865016556193730759598143769407473321659133439443464752737631643661846490064091102284509817783676930156897005262904210060296288372521356013740697541352353052775514544736326831423100041099710469773363974351612058716957116453748541106501708301683624049734539623670543895880683735875052163493942774195910221526487941062698323428292270713150192507608984539432639169949337399081169678209708573651400003567173465624152629923595960042688322650644009315897918584701257841177977794581155761179215478496816151876387411401003097000874918462872841936320968329135146793466437364906374412775839948708163188039554003330143756226715426383303146937943755865214360007931183704517956657765076993825484322481403933337352045470552742642037676141531167913143766316498969154733821187223087526215867677152135252650792662357913887361918335214076113707368001038876621216387354621342461462020387933997397529827576508645825767722805650756877249795013392271821542969300655553371626645029325371897315151441759914499318284529303541108600371269776286113197338457507253796625993551069931309636193756121362512511710036990336771940579016691356952341003266312826645478838946164230183395926151778895103895155322665115640456659653254744651469598633773096233563369901889065840982125811796095916326344120021354628232274064883123663405236615809355923824157326860846190187567228252458188690815148598348593356231598148463147047038385214320872987462952879332275599713705413502727351920652159553587690718278474900269323916525123879436212942864760871678345562244743224095662882264130437063664780607827112069059141815393910138811639109861639899344211750733193581462052083341425286662629560123956322660997422862275144642898451230458875148824173063867986522596053897344681707756945374941034855923690190791563267179895088744835727138474479318259965006522653086543867719237564358817121535642807735488402696150030409067427355931859166842842899082292106222926927175467082537810658557076819508463758603829475648658316079280583188646642283584513203595922416031061150617603902701554614804456595272493576187078369338540780492334161257776086458635345974292712109967734469396350918165081970585111698944240376167446765342456410523306474746381347365850155595965436636725717936051623409483176392906950527200479524742971674727009244092423445820178921615717083116117630076970115457821771705519181970999890054280019661814102107032430164186998294913158555214627604757618104931032617889972270655601105411805136964105644720199100970654357291248432290390451768192543094022004156782965838693652146965842605591473342758001939597080254718442030001982902209587185033187339315913985250409562191258079506802858268379002791113812968082966107010333462030484292439323930925761832298306086400636597768820175611177600611134194384212166266143215684004181051823248828298350857753860690810555574992593416465946720077612442846000088204330956676368162538007384595551255206261712080311760660776101006926270737753624308616685040308868677515201434585471155916616388322873358384167836124958085392115012425040725256544671716481469359854294008455817761585715512518322363928853268479793363231943232103730725948747824236577778495546772804291041406356340079755954273979660631862636834953171552813737179629011663798440345646181403026942625014517694234166624023996789005970870587820072179085890855640841370774524522930974790763092742258197047245417457328832702002573267061418812008478169565455240033990628705209632453781655133880174410766321420937199708027054274110802761526613230323451295942019968735768508478702550335206013653332402566259678870994297060858493901293997189592461942056899154781795450249736740705344925060667167518395846967289820803989153192271918777755030031425524182893119121055278740660816282706461586481241517507630686319096704628368441691792337984303622491461699866573367381123668923599238460251017601552894581092457395811971538055192721963343863105367378354029633666389315110029895276258708833061399514840214909561904881436891394281575736464484806655999981888450462588284157639376608586613917779268572576052169775704874937516985728630730855102164086731122645782925150825362803318719701764327904731813569322195902222550280800238696334567021014861525404283697591153513534968973369631623340794778772315193957560933960768279935166247177077032063208299233161576596375196275857555308421889470899673260424665663610139574677563293450042152908110527209850543360412804609273206790040176518854624717081586830668452413723882279251441948962362312948163596458467279807774436363169969066346387873504531169657665685094151687384959103304804934752067722539500442335588334859883166756787866830364499016381884647341812407024838844504737812198168832188420467846175130572325299629251394029824396397035562794130204129751708772828436123581204599152073621622853356699829773527235607661561123397895287754046355727859213503858971658043267587673436290672477376060785989182671130303350993829531937197121992776015223558873044944451465157972118385681971107250473268694822165664744490295971648342353532163491977408228036435236561881835005580734163591142638320964640238035682671308496721978985867907956697125293707753439072105036179859760948975805130309827290673248233986749571440308818505290848922709997485694502969948825084282715475784097098552725878334338775719181735009473603984195302203341263415290299920917313958994020588665383726962591977308486949432380619132082194192511215132607001188858072155151118061091317342734129375731534060208164934657263062867759717230367213192979805023680489687730146170760600824060297226295562186944713243601602423203562529164475724634917863489721465595150700839894525516884773960252287272644629137816869888905973619055275374669245529908320717519476699469614146454374155649182573450636639483980640226537722806327531900973158268871249726877193876907575887074343867993203989463234211962517519884323034604960894881285874832826911125988699197984270682773700583534732049495197921056822122255909530828230647500805663079774812205123878363406249362258015645518568015701951282527805016304273832345912388004696563704429123523105903619886581165774188377406483588495020982147279372038990666493535682344657879455947185572367015451162572996891895376562193675808547613819387978692976300120206683748128980272865694259726404051039115731939473870034158031440281871343908307874856258279088058449007660809222195640125637046313010756114259081942976588605974973636935542989829697537863349835582702176350072687749299571898196152841198925249095794020402975349395749102266330286613217470877219092188040688339666258891706554009854911252518795382891973276660561273718627992517008214620320311208606116182163532247803139321584652065891441636302190805899085569217062096830197031182115893169854559544237822684476545221653420299976317260781631438592897129955003683649345643602601640196121507841887803230856201668748250008265295295133291637267736796230119021206564444239564311157967147091569941085505613646423530473231060622866810117709821175163418862656516992878125476583952261773261321485462637551888457945118703014132234210898407589433794401616347248374411232418164517861283534415129703481104981512627732969392830739338306393407951715123204102012973517395633880225301309849020108558643336231599667004954149829207436707793565155538248668840149660304601077323128536605629223345147203871415101544668872364335181637635715566924283239854539481215798108241154195164717591426031530963388017382045386909343292922626043564468537363760819239418673983872589715797595164433837137198404141953825526216209705626007902967841397174364695099604345305483756877552235672389642500758150412338210658562221092049375490209799988595150482673045000141125394373959942648364876872218125246930747401747305373411114428208692111329163068704858225690889292292737625621983477356055657474371913525602335824215439646429756421716551443289398521588523484320234703532260948020356379202003917678082271243276131960675449352665692140099144849403217539314057980000135789850049272959143497088824819907443576693557655656684484114151912638798873227778687539132921097958204863802167430256579261886819374043584242773565474781913418781824184551362648073962501155482125910845072880244754736328973907246960920229740672493321502564579644555142445638431209072586367644131896397768574878095310753781947832275862215055712511582505632353202045640854616257769400876656441325800449035416252541432242645073094448815102493323861802610673275407488031540173351954411900431756175692458025098395557960344229325978800106059762643641385172144033611184879725804268673885257611038049243548542491409765306665475325470703299750519178397809238144230152023462481274574076794776426820828796794947124815345922168317448329269252932932273951349069306183580934927713232303705373711097078962398563901510692078582780451171627238444624176273980507003250148060751161400631172414448606851732545103171941482042395779632692419981917936388341731002945329382112630238239617698469445294422530347662410780593211478774123838064028299015346161632638238726352961359937477537827007490430093221452836203185210900787805856326889706130499001040258519889035080134473938750976576359170222775112126713042726691498892068988188497965647268386577778374807491130122003898141101293561105252150220086984341697856553896556251319086027093930917901355901545144233024738478278456360997634583844979016104502008984653549049961581871929626338411126253950759909539785461285060807231365257853730935366418249873370056565174531394256158228418907854658115007923724112959751911308849421514660051548294125404861102976196201068389242937701890809827267767398738379460622570051227805749915642851933037272428552000045076172212678040244325760594387009200779911568345707608635453191068304287150393077010115504544264982951548548974295280781932334628550364253568115481453358592127611141615035878862876657145193562953812175345725520271456521101689661049214626976938539682180894765755634896031140957149149506101057692141983291186136104312103543767722279922291278038869398997463946159834747876550128582515480860763956254568669254544797597336185278084853139244001277421451435033224519693646470950264471135553529642932761077564623727041094281589497598900295698582368250334480615532067677582406145524051845902636417401849160976410381036589578910098726765048766873593160439283422141074008742948540170636871312345736146701841265009008475152862889474263302175994544209170865514450283715990392545606647881464115113153296789704553526593402621620012497060379782639313691962952818805824549137318804868751526271260615979310059035809672044499987716119352140064601682540779409670956050032472436615542855997148456092820496094919837064468033533475995061959589435395531597073489705012919068017592452228637103000596103213452523658487683311862841437054711551000978670361081628591946520936835692940511330266952980541331621185746588896660567568769900006433727511015986190426675548225337530143917528256637095329019444743019444574100112408194984427674040208166760676097504802223234552838742630974576490876004902575748846114234994167019543991590834094763524407998654817515147467379753368936502220557226080170824360781417138133391750092089450949709275356834003883500215952172667175528769649296587125500123490071638649345770337893592378310184361011841787856783545715228301992355990839918472495895116368142494653170757324246069473946091983319697257751081736636335265973953502936034635667068301559956591048862063288414751557278174396886515819080882404141695687268921191836424030553430327715847759623114810518036713482841295313693555803436079785986855145963449560803821846575250625585483885962422125678561572331445822406065817806220485554223026351817871706580546040284590465423518447942348752095008423336109915462055446275824426105370017466166610078348753149625458733713360085903972961552757439774873756005004292052067639007555671836646585081571467228576647535422188738648105234386591436069261095158724203936799115258844223437843293815926630333405447104416182723419300070630952416658946905985824698838303702249647269017081270514286018653393957846358400213385293644072668993757085592249393302849459201086748800979590800127890653104485495719517739382450443424582479891179861303765975969312753440356081548288165545085769867795336587935525901968464489391563823537836053623574364232270479069672023656943943867278683162201046462512835713973883197853413813933630355431220441706519878390403071118439340282438608809569103587113785052767063017382829807284828814430653524430723855463102333638590784611783844012885993908330122300279254677047764507494536803039826344593890981884687548745819173481506836648764580799335688302823671151956773143493077700972825988171660513344292064566700708360059437523445477078937206168955024563913421990810818890201312033248972961456193177952245067229265909061866086541985814513002619535986482041318223997262739890533820127461666996632780414335677719624148981893554220094334019900618121201150204804539245965154344745138265734778188914392403417988380945942937713661524037137735940722089213436768510678329933659168894508089762580646317455200401121729599747388997878667135008239978221712508479114342200137810360625279402076463288242477432929288432116072240601900017711783663372878218251908205684130368564566309223308299819159506169244580583695686579909399978605113926362944301712987022238339731861569686880240111054979698718655952635916508381047672260703328769104301186153141424023097499066612793448526484163605611224980890906399395971243778060859843254053898974543845901469333323959677397079086849289809115198256925932486436624074818550697522457397510620108995176748796872448073794578460449179851659458700364881797075546159144987727880000878757198232597368058654750495269154546166423380463369783148980241650252123122396005316114712799327696235459664365768624683063172941932249337990693457455535719099518310228559357190956765810250121519572277072022607199547557501872340638379156208116156780900723562465063698177199335058680128386535752394148526680792956380560517393987238828103823748702739677718160505557968840207266503170359257323615902201162209282585024299493106850014261795270216477828798467879138724684263349353866634871797844684089632067048851949330303066404790225093357245848255796955849764196068442218462416087454299911384150776827967112377779201277174665339285286608293825787649610728976677034404881049517514181143452980196315899468275054787581721148050294202657236475616095292992863907923104998931881825529646582965575334307636439595696225495260273380353818695596361813376648974910907098849605159579610251127906731790637396486853319965665064933205199689829047437730369167556913801588143775882651601891577185711456228539901033198178637885823588564945486602310128753871732087577625606987783928354404814032385223240310889943466473064191991018561830272075327897629832806177645141264134431793648890168635367653982259230510555473868232367127273679935498647034658699005389029201338469838273578921695073833499038753899804298791277886480477411296192648169879510471398960668044741378380218636666743018782487225556487627948991238585359809465032137526754040773398968862351276297174187585798227154816702462173527466828484202122926766774740237829836554480642417229273547276771212399989085571753123222876465468825131007234311723263538632643245181033972236674744149966807222335038139420051724240038270840635311140753748627939303250416921847430593970736833689999815654392806582781580130440572972847192254217996292323197255426823422661215223612940425784925408655304867430685353906039964765423996751966708501077008283087346517140371364193117900489735042107913019053170345864355017587884038394524393566385562403010272250395049597903055555031481963505946490109955500344945742210937110452326379227267518785050528985856269537248211103272485995380741161245022711953686071520744963722444788267171423674222448163932914152691597760140391509158839874852572104866633165731194562598196716002126135615332126170679832079792073904768205369319416213167424430259806672346501613577442043287898639320175632043919972485516894836760758229216180216343497917674293799008402179716332097808388630043719020719336623805010159381894983564495050831374415490710752920244570190133006675147495210097810780751965252193104840312086966564113993369860849882566053507585742207911443931061259020777028851261066961748873348742456432960325268127750275225698270051761248821769057561874417472549064569314886925957308945486453598552709362444897490721265614952908250042984206228680176943828002905703024604823595524924010932583166018225824107257746989189324900403773679656363987869248686028701101253480469377206772170888869332908621008420065324504351102031765216917346540310376766783481834692353615331321576178524165423146322053408450139710093624131564112240844004881786521350328747235149924575365059181630084024790378460206727436799663386232284214909929656133079758829610313239414500748057326592052180529240975162547910648930078180231199526634664797396339302541177552685777626138133259525584513887862259662441996245793456042647949482085168009410922828391958305449016157681988036192846013190619339519885348129872568906894944793001814683181101266550447488296598411128939298114507288930899477660268992273600025289705001006788274525866281369025016300326585326531850505702315482308224226453379147801321264496192313332425647260377667288833788912039496271876425316661934526250535461035436201424584371628973282670659691993151271185199719256918125072844919634224198165304395712609493166341536744317234300803171461711774187279703939993928145187092693099646080837127449526522964506607703128046095159925573762976274841680700707293361949362186745136964483234543592508935615291272441605306585262816582898870910601136896610475734966240987408164725469776443213916258752242958671743325727062062470154387597594188398128358091459400311897978470090540690084592377965739286142412715823353675606151437156082676533077756360502645159915627378316881431950176371315093545954392201398649723011077302025353453223365186779661235251394428969740795173296025380772458630766092484184214724929542180039224311314579502594501777645815956709749616596728498774676299315137957061839154810000730047733080696486322171605909256995984816890237639015728039805955790875150174279543592371250748903339268184502766145598490851103903006258662353278883605004181427835685764516953594998560629117172174892796408091181820687895659545713673925667658530029839135879681247201917920521465257444297908014141024865424845175286570095232066273362701012761250381831447959978029182945170436864497728961371501154140578966930752138288671141012267509044418354130993127790982523973264244424272387623358476927403633970632969567244925500200241045770102208965286954208572111967736242831464581401699121843420868261999689230844293785275974217664916714096066499716543548957049768881287042721455079917934014685097119410500512990133180728478803459750830234073800408702820492471534198845559779955448133220648067135367663587181991027628675575660085776947927035479962024314902027721337632557683087038355220263403097023909970812825064147252782021769365573938697894529988685615159520045874206942926767056983525072164125580359384905500246700607749068335685224124869542114991922419934710545015570481439805865872616822491762658418106950898435365696673925886380768079003603814026900708938326612059303577915964861643381129614727060521189606128463706742388856721472474694141086569351694029532989177107093921719822304690899064797288678131470299621381161296167506952710140457293459232773623936035228038250695751811388222136069776209966311349357095504453891545206932701497573583161798662906004012006459910373152834453678325246867759150852594815066364046919853858361576890377780470308656246827216719417533903270710097322020135673114214998463961181036705556609240675298393299927035639484966503668064097935188420022300958491100681081790088642824832284152117102027036799873561264527911323762921808468724334236237982177576033076886004413942835735733440781284986358792527328638062486147965546421839445112414163587193242703476991045304471216969886299821013517124425826819604956850950672013669502159767073427765377508712596559921448100546842367473397963914040795099993305697304008760524341235853896657320473797749560415535462517158202736501221021461513425361333579088525153795454032037191104614124438945213535057857486234286396146155012466471849646396632626791575249298041412124602876289959217769359965389142388167926704053008576544624862638353858327116824621268450069583489359335796409295912919334901554397442844226994392646029949689818808604684112210743621365566583828620138387238937130118393383951428355995859867601528825330998050465763161460921705257669143515950675858384073846960902043072488637396842733719424312435683439057328859390216388168002004166786413963830247683925150032613055037442317440488463618568584598796880528311988929502961347037972096034088705122228373265276730492695423863819382091309471090888001093469961632249765554898441821983709794913720267632085003215113028530537003166973108461128109104788276983167880878637543159033815213988478704870170682547439666136740925877467741489296693988955867586262088048140704883146680181217606941049999000292480277478685232150461801216245252236422145242029863203418956525178241921072602203836530054033652806797551946587690258476947203308319345488352985062986558286646507767074681003211952957366345302132719047333440246498830405517902955541013403475135577182322462585201526412426380435433011404147616805675006390035237922460244597869537383574067908765822916677475402807531245505200971084201629593888020932436127906892963359780865697811217035368097583961372447250012294785037148112577345198885006128529441850775206493150027544066145759764602053374935305819917056381150383492349002424518904190199013035162949053528222543608014029319777217352439756001056756243966505475746216421856991002492557909832849815969675073549647008412835065032369696767841956383058077477970674104310246095565013298597842216802226886061388780625626733310759931838080326667411707426252405448187124949114335928258570192329432555930579281802269930393269573148719929876273353146890190373725080656225440221931068170394237468080860796945856138135227792833349670326651041165144358202344480730239652998667354988813851471052039003009893660219253022490628373172848154030814654121626027944866280032906171063981815748175288382574382647600348020242613501994827915763956271652699581872622930881714743617442199123173798024255775520196210090208362665179504265844678430880879779811352217861703590003716587069797877528789572060579855316711765767868992317459633558717586481524147879977766018524562288079540241203278927348358194374596511722544122215625559582879299142729248336218737605927341426398710667792996402694838570191948010799523237505990209213491145668672634027034068220035274616615989404516072218620047144280298573272190816803191696125258519954329688567420150123151020339633736067718326196275976409786755838966384776676052335460623792646197545015346101470250025012202760479219185885951564742839747727663952639270185526381985892070188567795003679450473983449116030548579310691370525031727955360449135628318871106968431429508404766628409617637868562385695524256276909190552418163942569925486401988612713545890872467206530494752079137102866381466767042857943909372709848993624089833389652907111655155761890420008067820201875294676265090647467978957166580522866974249070342112914365900839780623568155853798875607917645870038824306969182306730132220768136683030056109142775826766043462770678961484238189582479628290840388224262067124842480504240969490451416157245324172198316622616144131433038234267249383609438928550454876893200741597273296851957249067591197279172802302144594796551066046683823109962168214889220006707167850622989843283380169954554360712051368279800712743805475875586718098213140322576458831117423212433166163937141136006372465426219619920304130489462111361822646454485248273266314219725824500645660624173753118125528662773054233734223628958356681684274970370227305345196845028719918780966014882748199664136423201550988420655049600390122232699165298098794288587424185309900661378286753674101185560733006010628419382859945488662475366166736441763462342979699944990141620612406370004360871500431425126365909630167281532354121274698584334300052711226442206788754469442839480603763419253710095912886331074318309575675918622045972117536846164982786005897944756004788322174238469454235912170284431298585569507967906082622682564818518963229983755276329990527065293852975968261115110626374823507129295373805554853349691941756844408727044424565986252444935801677421616677075875691197745240994030852077528510143686050839994039396247949797243883838747700558625584069618603593265607576585712393548542475736190201287063966567684395853849714664810491075098748525814045727251677718405955597716001848466782950493183360744103170469142971589108597635943063863749347789912231064810844407906342732779007382368086935625209039190892154947446427049701465023458913037374200910898587546545574762595957267576994331167840908978842683562626381463749635226488041517380543704861464934914298376300675882531433782241318439605227187105906983010964317097328280945394320164160785401452520135683865247148745409247604675692725672530482434789201499088179404593612622419913039490808013177951076982404188153170227489062889516084478171979025891663111276381426730506048599770721681127525180973573236965289642670315733190170784811132574279794441029918590333297556508198635618045840398761463946666477062737133920468517360062534667162929976389794822737238066014848765342282986839243084622978155796270346706905558861901749021686834999963526277083387067676767369677959061914230999628055076832164768896325772958885163488953124103419979384835730793834202440983183177089813868089628227968790938228101150704457012153867419807145413950207382992089673045855560821664388012863914037991094640381597816081919056000705890834108432072784840863193139609479150004341398345869995840872121862657038787029102913719969069828733067402483020757517333508561823881982603221525421301430747989587150732043781122804616867579674836766729528481106846681173012428050390475065490050223249715442271235850998289614514144207126603140360869658748762432449488205439987577613979573132917065421319438503751196027940402213709255336616843593907596356878224538722750477898627489310673660685986710655596777040765563877574621359312857068437467269382701288724823194253350828175220617054960307400460243255588091803103563444791890983883227268893644824956717037200831050433098795147857473983783715441343457720240615042256738555249038077420386647033103208718488669954339228360370114177180560383899428077709478029884199771385606914848202374010919818398987108940730493633225707627035852811170148804551722039790760804170735683042385621209631787887605356457111904454082948055672717645955085942742667909146695312833173220450136262343454177939816696273781911210269347507093222680118284644895213260104862782799333847360645320247062575020775850026545887766950484456909156545377315703986512209389993696442833456255444154199085764002206506871930858910207147841541618659677889693082023553705008782055629228331283091036023965905670083572166696487556752322960491690245302287189121981235044988767988513573994702767434970620967872847676455985476738378745183505447721733694172881955008488845574661651649397724288596102823596228566831822833791530651687767946572093507029159813361348674860574062603559771623205680472132138586783099970838193886399662486867670442896771101776670412211354291165826390337171235195500812848117652002016694704056799178650376398792900413112019762961541318327859138044762616685471184825380757687455898174705590828440910140734353614497412260447028106628089242191639755089215031513415522289646997017836265776544147927527691959640920347589743188934605206307374790746332545154191125917565604211216056069493882624783242151957678084307958632787631381054096302602403460456462329605862184613146650631165849823912511903410541484990134710164563862231984470600981620600159039379599475607656394171146047445789300657792915255223296491122072592253545642747451300229230725177076549278837786761963012729807418288086531838606534866074602201859524211632228169977492045695019167272598467026084630408511758965968272168744004889007819771461148959736200981254371281966938074050907596528760787230282113394379669319396404935323528638520024447768664504531475952251353453811348001550104218362256878234722669040226960963843710609891569150432699698285612658126773653651545307562789644734739879138173664766457193228244780355446292866071967189909752580720674694324118897471437034385911499729396278627222729203047533969163360900250034434938907471976367528637178272035534918112438722731836205878145368497223749570062938720962467933276007500028782631773551397083933735188429500663685724259438987658589889140880799137100245522147014539426414050831198194211422693289887865047558127581944072116082284405146848492653618168415099720810786369921056632639995534511346630009852783278204874246647723381567398425474890304410940697210278318795140439207092590204869055712836411581795156313319534017329999806775474220774458340949873446949845025492191672043715058907558457009088358193865698107844699115533078343197991020633222810213598497204504886549933231528688803763968275911874867058357564598940199698015185479784603737859147428942699971518720317381595496560419245188185206050874243648046155884886858702631386183541428208913291040520376608171538987022826634391649974373398895010778377982758829797890078736280663616026825845214670253467474108515923712424851387135822488348459600696001052113385743216076865047381860971279275039641149854337230419550827576638154876047917573524158103337818839378554988876427126965541675133402929752360222200291316752441578985410132170966558231461554897189672357347260042634119938904178554768124669190778305447652181270976434232416986933862731446619300274900908295024234072365128626347122100855321005391829155768260392394509418952661543116537167090722182044788148996486301554627450513136390170912746970788225972329847895052198294602381974673144740380424905367748300260283334998427926312784312720859058236027682126335123334730289257865565068051574489555812290901273726286985710930263534037164105630674205465510299075581119912278946726006474159882755333468832905189598585269368520287067572951555554905567530813213861314350839422167426460310272969803636084038816800125205776128787759983673286383630378448523066941162716552363913789747746071882144711186990281161698158375398460777309100632336658522229699992643609061316788680545049592912543640270502126055995612833172978810523732552999656283306672326382731874745766559594616943318543392253457021677798357398977419855456648428563671495969127163026529183509310319040999608399934111984064179766444323910971328382745868086891190275897700442202848392482581626514218756805712622591503195439658345402115289094350237655951331731338550859048036467178210046326226167925851137969257991456785739307657556980861674979068720776685134339829618196436386785746631126834578927873136747164285145562168713883248444766439562758889732981507624525550808524298003483929504801944401966615292509972531991695953742277579283710263740771454808219753438616485104913218929792666294479375891768296570387430169522542348929126636735713775525743214622587182922994267996890941461692181232487490385138501222823131645595086726954228591064853215636407128700201429079250109014499173281964785321102870537170632110670832283458708190252536423681554110861330954773856881876433577716481334812080544589409485178571410367494938488919859549826152703570277497722258922475934809945887374668615138955516970657176062667459063337240633445711969602336704935388346607396148808862388781639591315681555807818263864952658365031624572915047205461185404394260986659557258065978789319671178794703908449980579349330363039158104193635077600976801700500801481530544250910390189739626205481696216178672515189945241726460324065382418388916300950823571182529277168743877473728077311760643485365143254163748130414434429989031559443844166285760557893202046003286295410910797427897628386875858254747167437387525155888493471620341384899715442752663721818738493773955122286272462362492259455678497429342337007748397302751795999912584981118693937178623853244144242722871146876498602631041236810508239718019456261579787075491424242367409617092735685107768852299594837170116701237721147573763148756680983211714791188931208923503114326903449720634749578657165401678402357228118377291169269019272128414719108308821169319068887385167627679053140636087562220404898638688569603011273504742168803919296355564718844409782778149459643431150232855017016625092277242883000454920635009305374383644642503393977331583785750819363460049036433758078703736434053536351976075120639977990257134186234033426758357436537897569581190665129348032237209924774012383939606041672496593217749712285154408791985293060562759985173883191879553555509549052629406425784721823175473472260810425663818987108009857367569195819523946379388801665565750137969493340122007077775079994259387385024179656884760848028550726392083748532930340069935304691596627150778868637827415995079207090105578921743714697449762422503623203094464801759787382563582899746216720801029612038144059202615386771043400617376859586389926878484438931865136554395762848840237460739610771960759943730366517833178169351923369971315157375035931352334364767177387969339145091820866101692084603427522892139450093622609087462942041797068389863025517245061791685509794724177754969807426845740425476707821541681674996963026475685129623724629780859126229649721163558731151785066075613730638077141130901636675184938869180131016901770009066550977396883944763444044497611045353676474192571788406938599558800960063267613663793244882420768841270331241666804003556843505990186950471186787056908500423302254819340359334882282264778489546625964282785937407127396067956981044933553387142683803432124839526418120025202475998237151466939428192998756302730704459075254850307972018615702863291832754079645074524256558232708921565841734551009384560817802026482482123845985945141731520100103905120999199411443335792447820998065969701968012935474752517984792814935406265557068614722769234505637262355552987699752691956738460280123419505981976556482416928057298909270891287527033399756470638453415637188888864757752841234016414434151996535081447879202836207547688436282925826529335015116538811857507900144996929898028041512481264538298903275164566585405103582535617727163655298509164033100980808283963643804580689021571411438334665340613932703175887336033544131244907291890425172793981940756444411189407117423250158350484499678731720210133579933968201228580295658558868846812466245624890473218221126781258344596087858312509040271774372022940848145529605353834837188283750973631113095202256217229444144910976412862337113923107498131926668824708324517645636265086016189405611639375081950743837468036144247791733540048659952154823294406251100930638694509482348866538534146488697232164713994857633927887671882250254245918701901559243569685005077118597697877066026802748519093610880568392257360068801179526150301084724062783062193641081904751712629945276349018226567959927910932864694567005495098980103520835563954672467581421822747157546568988928863875686142859393651623110481859478399280645829279995896677174081632357760471240072911202597061706753562205454316318348674347850057362012001192371819347344790163516527627180478152129672481191495666446823676451994776596588984025512412132338980288148327433937394706008217205757125364805604052887948626402848587503883634844237650057641643292426101902057601492611914834729693614358661485085261431825153792679164133455949468690133323803192869639682736924815720749470828264320458087049755642589970766415759789171361146458972144380715320486678669486849069196474808950489609114380180017909899412497919897763138717691016166736958566001615141573007431702557053348489315664993413246172332301757812606997027578688433583242552979943687425440146370695729653476300244190195594401985771589677715764813175396654244426279717038345492251236150659663149632697712378133958256553987872443617370589545522485778548556161229997565376867759164233051587593703294878808541639289465368502178199180680432621220928202995719400378640897701501590906099087657576457008115308074037303526436329320832950210255870650005796989555034891344990220001595798049701449164024091193771467671242174492837003557544540482552201523864318612179128776446092690461142689496318655727899376827078796776852929563508856683009637530766275996069697056440161718594517232268929766478517106800694163242820800998589791642954254503618290131422779796136549118217496120299068218703909102511326853462392881386902054554408643135199578009608235616534750867029090026331805248021241304533136122613148167965500808647950994471469072931681189696677802269745725896895748699515465605679944037526065530721442884692718344575614738201592758134805555032447273056277223137009933979136507854856507873977560995897968258048230660977456779980353902294866852949224205306282041738766300625231161252587250168959062144225406521631957314740244484007875367532046113920099305277024785014592432559736754420448051905715588875324768724217988134831664418280214871757804051987441613225355864116573616360331280694939291464788737456792225064250334770764202533038765356273829282464630431336358655677719065912079877434334958795802443885420978802158670654521234261047406639253222164851199920161102295424861124061260403995225149413012359713266941753747921382452060453752326781978480205193356933150070631253409536580095669468352545796149165556263858710613739321233892295202264625345532390307327797292391185678439854704432685750559539671566617655940460729809462918037957804028699968477796305510479869900197523183177816334049116553430098426352730972343280640395872858897322197774345840779297489880389076061215961901378111773714023473750813662473663121289158630317759077357139837765186102050239323642931976019972347611132865190337967504726729246746389602503935855052142137609994470843311787619567170165807377714872694471762488569924700592759575604086458903139066233253584337827096856203622409751163330287400790376699653285379360114205360719148213790983775420403189757561092255920954203201927757148188981235402747089049070735137129097766621295198439043932740142315200427337459809478465899942759223595452291311697221493596164977001655606064326286253478813487459339862273507112145137032032191372635263499473173763163840272526430990063548755043352478844885177558315177656263142862191096896612761093884881829951096352240096543061011062272152092821936906572822607306138263063595621014290900641397799260271853607365368162895654419511347000702588702082352015360247945400619984795429869127011228916685669663110879763994107266169837015993387244134204381027769715079598201815257707432612384656418693582920959283509305290342663771198299815441257424243990490542997370807729056626221145597940908139062204474348240217151499677204261818325077344231195321895726300246038052218951803041753824878834275917614090314476300131154806408432398439208846112499140460447201814064741561444268281377652412746845165352765460562490733562689981565274951677966782492877342021234570841836199113834654672707932511289736892660494142014837469825082261271734065886355529697378509730942395903494101545624573064114056868224658486383617210468950070638969998272884008949711171425497065130117453739127802091355298277212760542995713272121025014147358071502578865228406386944028592651915452303910015357402810323538120508736992459016966070111357192146752266481010827706533856892212757416097616423246880027134025335319815868352590469167576109106619446583870269604122287565247980489805630268214971196632775993888810797602621432343349953915846053462442164672776030609971285197045507866682015367311200257494804514179791357721008318287565714368693797589770271439565103131624137794485124422521000787320375608949790608340634575343238520237971701408549883300725358910085324262352056171473875150139837172764956531996156121187162562047790675240802345767166191582215202812329117731060936547161754507902169985216534048512398681215223567316755417477473880102913767033426280568075343681103934198913104328243218167766083452951523389282644370228463390499326693759380369984810389748517408085423289589580794507914266038112325327176747303972328528026246557952074031606887551241567541494123948056813720109543683522097209206972026683462119942500536256298012288564079405677915388825346175167888504563691127649461451627427246539528252468173041888039648223584783306027462067848890130532244062958997508712169011510937342144534060701850138230421433949653197251170270302845163908138286815518871564746096530894796779479779988491003688123823744119010401408651941777364747224973913216889988177792325520328478815400847520376021268724974619066985569098688068862448073209724950946331919908890522570598393823191338075323763869689361583931687406601912079880083799641952188517777639903987727916280945846198360658457086338195549081703072515911875477478136328938421667428243771405738455468803954902705009368740838249297476858732401981753066815974411271958104246157652454050388224487570340963545719420006943713809671257056591642881128896907895618364416431763133866483894837962549988513263424149390978253704156992292844402481733391238669567060165732465532434586150476105508876665591914080777451985603360510905407178658447997561209011306887132080060227718735366988121931568626371966206909491267660840517122059530999368932482695465261431568150256618704615492811363087826383785881040373594919643901630233605796128676797436359536948339990143578764478490990874386727894202580634865083399134511281300529934188359750433355875286971954718429025931877703714344971154121156876328757279077902326763006187825272447160638606194366525556638084775040386931857450760321373738623072416164507915218035071890251044370653454475763091829141370318083854528907626673104183925231930144694873074460789198355792479915898289743272154425578175540194844165698741903730160410495510711132213015057788389011280364715054352353920621978316466892413388635982316449566274889899474281400282170873275981426065861206382682644489928537140012219986356805032087071653928220795857531296913445323929952443698418657760442113620224179111870924461795369895793071113845919929744675538077390763310987642081792983766859619934943298017167014720863720422792603358387454575898495476095430999016596149683717564631795328869693511979606275704606079134145124477062643022277660489952880150979841613108969049906931574620870968172382299885430328008549777508180734270395633578909559772529993469488906449317271117350125540987953685532588945386605695039771302028314825098819955907024788108276451941680611815440746655750117030754662318930693460355026034596175547864337386893665444751935710234511242965309741970543484624614766468603418540327849050457420384675975395009565314452398149540864568286052391916994011914537989499582742364281169016785316830695309833633429964690941552952311398646974695940164858794134284265901357398154762791371425539987890983671784814999719712609494929664397907513150239269903816340676853159898740121066497964757135211743853683548394017762972191247827146688693665851328757846324967857026300662385922215024504500921753611590904216118760698664716633862352505941482439463051802784926303832492612776100727299553424461291211789961334843772305810729865425369088237048736191714360239087248200915273541730443718225599314793897875211705063870000868585104188765612740364401742196836415633888434522442308982164772924582421555445548308372320208079947692027560351615065510629909011522432645851605716969203444415539162406125948205773322632042121600193079725559397031931653656303382758966063161133810381609894345611580645423811406682892292532931719612504971890110563848537436415944459270400544883710203876366346457438724696097103707513551573628612227183503496678624643152467624082169161680748770950649734822188142876168399974632861452756107613423120932628996336810286081819542472277920251090925704415523302830013096796565623900315073588915511894781349958399841065519869143590269783296960408546636212094195357595205136828295158682889733250341490783226220440369017048775530085285630789727188094106143628880718520566792377890180903469939891832073213856377487830826622753917040296158827020879858596337434241480117220543696123859718448761525101188593695487344010823667596860678102307009275681757866463008028660231226416616675504878642080312570565246997072289068580786470915081464508932154939981164601504359249746067582710668790363506317118437183289558750605815378167617034980925331828518540538593151966739536159481279256168129372639675563672924505313292944461162641718131106203110771899072090335124081951704087578803311804276309381424851808020587614985156917361024728715373442191761449385445269644641797771236778256695895472860758787209611255662052977529217499793429533519461863078839036604835641402031875993494427091305840666196402844930299509434572413521206173403819550794316040196814472477268051537394094262452952892480550118710643033099233617780106500952368314358560889225773014185594338287223562787658782141089452463441125403810816912238884319704753375870673467284170207210047339060361437389505064386300829668953314506859418406590031853157070442834750802279833755070986383180117532705391938141004163662617330038354813924464655302552578630819468442272883833498556689505315526760735112858520721537332269566573232793718425761379663345164162832752697617290910296152713014232507912949420387837737722361381981598843837410081956395326905030540612281847457167040915902011411642437883472299638532811508087900819436875058156672316115988068770233397606675928756011175069444720613856406154393337160709069999273518495876560201533345173143678900369698714079236176252566798920715782084960424533987238982832398815492576662539525861858227862186484253326019285757050283615841618192523310734069805463780062471538847547705829155060173142222582051063368461753410098135783548058433037141690811067100054494393815840472660497612402522262092264563159781043361620197872008314939615578699343124555240110182603107853833530303123243153561240082748647840636895586260785540647186882991549246713700535071513618071068889296979478145671726030261973358740503885835669755343661259506640591666907838323225649720503694555145657689539145600336746722695258004723015452391445809211479128276970452988160056152515493848072784764060511694835542917396379418144673678055788646849165769060731640882706060774798081558364465205639013580524222017362801124421763791193384687085793704517749421827689938620704322889549040935741557666563358047881582402369565711959435065088691893306623356540201311193629873540120362128168534184333057307870445141981637367016586269120219649999628233572228761732828539446877535280844949846970930235476220709598361042372407002008471100533002748815528602181872612652783927536645407964365175296015993883646429642211903134852639603550969460312647599837750170135050662084968481750726406536713007869212800594092115197815804971849190617128441490666952715345972196079005806046889256562216818068458193419915253354123395707009909668674501248611853200537435292812670707837390737270381590104629205515560362862573565534939406685674940699491469619404468871552134181086148736643363397212102028174175986829773946965352871817393536800669461449549503883177379991886586164105757102897103656911467039688717554508143122146495011191122391373345924443382040940457027144625889449952030941132657139041691583194567705970802321817749143428801207441135088636945160608085478029509553393112970218973838126724829529449319633272981978900733108420393503651170058147329705653055874231447723067722271957844503310621399102162787421201220200154205369791014047181286599527010857269486179302406943392886201310211588684446472570147527559744379714052994392458120131128796275557495613959020761418751438767358796507484010932381031387951436405334952870293941854259290417473357731527024429082662036080396380217635844647159593688057601057971542287554561050572142303911852459826676085767070382192055497377352142794522577752733075120360617314492302039219172750242214194102130643494880331636474081604331733006804058326769857841112119061239023315610709035865799632736358166243597932096441217651508458441509229166647300017961175460637380001916516885575743357377012717723049789822718134583824670827976220163691167243715118201470890109774587738915074386382012360510212241304148043530789788798427909381541143563970782048561770472322775781384211352255764141423557429945615496762668909127478738879599917156030512458077592261063744406160724176353796172232392148839516329206585788848320578655103649910164484317791028020857558569225460548744432041778123483846823582862399966528749166925855193681591274357087829883303773411119125527344526230069937086021925665935649575185990515154664880367844630364262248329376061846105054347496014538588490717032911487740932645285909476666902154691760433955036568092472111800719790118064250545100686207811709973332447635583127205462711086506632987921592566143197025304416141340493004956259770733333373504331069440092179113790985493147196278113594893560130568320383283564131444604090636177700115143620942282969806400954153644240405057306145624345267916518032701339354547931738104390017538872879769634545715414534090471246571639805723692001898092028500009906442022449034223454153736070658966739554590736955059696819506167245420041522908924644080632559200991852416986915314013505808827193747823112467533985988324968724813409706042608699795215020243188177228395051452495306134605121865228102143657230678731816587269363181733931321768659023551545029738939766943797580016061215894846880024400406062850437047887861163328353795183677823322974831654408388054925351258178032919847206429749515487565827787130684560853477396204505967228129375283913267346727214406768812878874372559140401126598534163020081041511451299986508361460306812480570158652869476526654281810131168344038108616595981700888859112036197944473988451675251540840335155626158679336270733624778544162821806329013885102953032775922691561911799366139830516625786839588340000061964045194131838316283853682542274369562089964913579012585881294996258943399998568369686441030238369574654256073185221709423230992707991152769097528026288497190279381211402085799697159499114581956030025658457291488351364587261436806050466360635243444626870738610598867713239330170659278268126979267377651728100932441623527759898565362677588559356594578072681255484400412264423101464874044278451513496511039935092438926529961644819776652881546145434084152090323578168207792460216739088105667736757559521911104897131165880240995908300523258696058304756663815016651708031467661282603753194807361163038587857688837007067515002836650419095471661906078740580202630879413365923926983565453190626547353437513908750259493396139818224231838102275529967125038432300164775645685469787191693206313704187082499483711899746973698866671412894627278183740165520005694739434272911121235823784341944128010929106703094650749608526574138538403342386959362466127597094989602242298919857286668445552864418945961679180842343338155916746395786318552375590904453701357952638010542132917901161664288313237827517395089346277298218765564509925765490845791859853593069128426496192046209403553097331824946226907967406290363425825933346315888215079068024920366805927236163216328739378305858280122283921949754545451101735517197450437693300363232367646564190412396379230647826184423859705927913485865444680892642160284962275080569269666305069596989533591978403689969199171155886660381914498665388450180993439096636685609502657314980067860323976812449857545299273948631191847227549606922494115193421743082645411955662190055707348136561600353854100879526452271183943782006804976400438280535985886784948778256984701754622897712653768662956497783934289956354531972602983615844895551150520491473669672229042297091451702347656684880082624478120051506619708805268224574625558101698385312134307545969750473278312986915664937116426147168246854466536363387154726093697244074246268433466365481733156818752842106922119050485485875679308069058304158713440356443962097877838795164851779776018573402057320134263807056257273149414505116686257287216203977191709406437428698799682899529473583525395455139975477905681303574720397795046980262116254649674395801816527119864602573782050712357193778390975014356051084902909865724721001127532983843839064324404094632426774587962969322300073191811713037826984070532476739339637171344574769259184272438549602616597717581034288161395305599015799621006066187691210438801239861568939020043765152692104934465527820200353449250477012249848298684936026126037737036524129849538821374268239869736653961357001035422243294487434580077323134648956103863232213819050800941055914989973845765149147545493183302792427335319352664566646189690134364754339798177510250248553661472184801823027784849176934874051803645233564523138650287845294935349832983197764770073323281000032895684917986521387383609103141308196799275232265942202158042443781397518454435779493302530321757458823249340933788692410741989758406531612113089319902200534497370655142508968045555192595281898125625954056313587656395415462312180728228586449017214609548393390630871070543279390241692111375481586896327595639894856378340322982361857807270474675702945642573867264428525545932073850125109574718260691144317409352189315589603180409681242096256047729513772567266395384172190590427115015773745877798875166972854747019288721300562262421095103621367739388460040278153519384954682906194880609305787102508676219189271337316829571301349441171150565946813475499093200114113982055549984271390613158527906626832240568175080094043254920474453237073775602014801987454501137482969745069465639677347627768567773782699378021185434233045938275155129177386065477762566968823855990034833650874717338886554130870205868279910576440852693432182678180112564450994093559607003847271517532216140753422633544457217074239831411275246836653049261947668861706761542441819456430772867128467266596964655808992617560365572355502180854881688826946426217327922466456731980593699112959542655941040719714862046943061895063344558061070842133661902790051156461064296851596710235016918655536827602386036242675611857425814119004770115646450484281940062001467773288198324217911590891910701173193217196645652145359136199436960835979629966264088151973238531277410601837833237182312486102815143962377730022958521304794085357510232426793662920754803961280389656918826464382556672404556569995755162210966318112810379646336562736522761127085651992748342593668996465585983108599762833906227619080246273716558658686122169313679811083626959032287098168217745805142798173564481244014288372367048653617087718412808703936956519319490702035368792417640525490837540882307485718885335916251927900196316762202675160773224395431248675419411760708382343827213431802188139342130545443799068520211939119993261777955600588727028936663280878398417327581026339703699936638648335581480495626355892296027836632444985130638418787512647516928134780973370858141914013085643385942401642832509521617301874969686191116776924203734639392040449646463126641014858475155469108293749682986466805334144889380260811853522509220513061626838706864593247296487041249595758118452810727284507262544025766141626254877209302568066460749981640626381727722972696062645611598048038234850085675851334708948296431667866061039157467795879118041842461815930322333455157991856367626498541193043153928579505314435948249554770280348877610957109797502910645162598268658488278277162627185756361956742686843373123631303098548082268137210821544198924882615395080613910302087873995191288460789693711801129690146850251024529659262178300723751563728493549998722587523913101323360125968983755970162106432408597936043879390969303439541438297462124782331566102933947006716788754543957782827488522074702264236656867442417337767489539993039889110907664876321563982619691756812686863705791919752739897193092064729513155476932286813938159291364686805083948537109233284260416194037112847885917671469063761982221303173073640662805649980933533405057275748362499251278558020563720682630609608801987252186945503495660893999009983103637781294726043880310742854716605518349174146921084277865599501030179949343481818569122854236277107919583515399626806471134767654356968591934157061034992468150822029827976429248410598962765975436513382698530372066314662462989474411536501695107126763978722571808873126872972321378950679928078770831339154994622985069109739653267195048078745457301110888396033675427872742813199531558556566062327640194833293297584306153840514286355712993003376786047042736389705003038459775044587128949714127428998462275022749640712613163528919016576447132659299604868912400114687849022087035596555913436713825438846807047035621401570912054767992332247691944095935954267294959789131537525169353253865078374004941194314703974291554672466962573252385174437812778539432179667446512916078703141744894822742654733715456964412578237366254269947695480425064000414414746530040059477603166498139504109082565084544591794244064337910303608257783972925852972747128297165094364190893256467334202947435382428474468205266455516015483503799911339134382259300285390340054148435642431999215952798181862428857992473113374056838571114239812076181426241721388339345899325793027729212782829030121290730924969145130157451522080466885558605848796147446751303128843664810373157339955345069426563360156327010987387309072497109528147162998780900898107138915633508022595289168815182952204595878839691278358759098947217167806002551699297133137062392885452939916353375614676507894279085392350001788804790278647043992978379818254292080524497630818530737380796198845947287219441119352772987793316757603304824921934960801472864625003940906542664514565604603334247532704827144239411879823317079528388282534536538871765714637783968491451554269107584704565835921393043090055462135876874766263680754073003344621037232887686591001454155518651240342686561223877847353711406616663777265033845035450375992182387019613822760001666451804201737787136172813665528004816129005382381610760528253992477461575437740282468006679005880943321430702381250121903283822765263358359083131833135280186523953161178017162304599619354847407439743598714888527435212548253255928939225005700556137277690086010667181789293897359964354862103310035843986760286330615630872874853890110948368502312065384592595634847986810085816342465267574212229534622296170430470617404617746581160006957083431151386955786560802918123861755589767969800916755965682566958765298784490608167753458221830861015137060302725030956864257586808405650664404475272493730952562001842243209177073928104553838292547279451375247261752236822087415597121864434293508927353842494170300072299260644445045850841682880543116231272298977784046765605610248430607703977626363208542447915412451212433274096121139151737283929099387598524456848019738045744986294630383302847894466672189302189100302734691397332385718703418138061158577544637933289141360704503906188429200205951618789165048231038076863994954822271748152253710607183722260218836393872187719173863604519315593848928697231950495101005246738085542726884252958300435911281237740189656162629823959093355197442134982069351983537780122051705920342957483880718763402269101700274870953953525283075449028593167623017347377095408921461242713478105208510126645190671023494777089798323857309535854477846090075404011887614853455347517650049625469233624083541586167890839624125479236617267488552453310448910408459398269233007097840645522352301719534760482911699156871101619429897047130697913684334207390463332309615323379686388965560911094553489044429989118185839830014194802304523057860062361096281696963355389734441266950463923623422789917372025849977907203423492399828327469709344541409857504097431731970033880462289346030346299276466116238872627356234796287508692294585033751875100492946971448119760267323210311530065342463246299559208826220213304849163516036887020114565157127272352556192054816237378024829248295057254275065971094668290257050633889818158275093862357123681228530205905461442309384658534671754466423817290514396049253457369125679470761046478512115068063735262664056843819882464003215910258173006035952433362624228270435111612592856874286989856380723794324387135673426921583527716011628771430508094461797534973261694689577800067734553933558441347458219583675637461856671389534809707806999900630883313007475235909904157130723183825998997110866841866046966248125009702720280682717743308549799416714555386034180363378807230229178093198657938676596150296410654065331423890412846539873694207402570335139908870085492050963813453714447128235817722335025929848099263538365411419405576300821140541316665869078907516912168448810754566870491542999485145813795438326991264626258952982929713465947063878321049036927194925659703885444049413272924758241158841591519923517004983413993563829874920357417643193939926383850640758122003957336536584762774097161828754628396341761939676776751776064348770176787019847753991359962425042830934699425006416472622416550643435568302397928558925321126706476340696204837524249319001124797271111919231555467972001731122804061316372294456379867308641199993562874197907662235958932956477726119513603238689972969337589271398687988228416906135391226976995072796208242094334024815033695164206281580753271951892894521622384987023662378684202113561461869193444879926385636950610740162312790487234041090980465989086703865104182172356960600998115317157734336536352574260847961651550652712954842867137725836251237392517262333078126028665860229326534602796172068319252322140264570674578319931071620088793201446228384956523290127880067718620328392287753831802951993759191799608057203245480300019425128765864835554013936154812855649536347856800067677703266315087683609608730681657390778500221696728624142064540234962240305413837169284931606470231941322159051650202759537582117121779223548073662242284265776234720835178088676639260247202325429754006493234397684154052579201143687246994569504375735702804320246208425748853533114718425809855635747365432778731005686452012417881083809074844352574165399425049310533306096482052191858834372452404611282112067235161029704192828637623721024274171707086815941248962276913023719167410727543112728573199157980752770959077019841652323871302915316311301653933543247627153977350977926863596753333369437491081991839319669062981852407338304033990225416011014124853243166159199635168349022089119378405805344067427536687396749207166881743576512677369929099244344011340311292941505302713474573240403378754358781359509666115250973915015409525220472599850723416279425025634018050488445464002781265895614208264939038767403761848963493339466077878231327797906188507736766562521448855169882180475340629442861417502018471573971000430083221942283248630992350886015724391833133210547208818906949030317732184262948696514564266082173134818838510913375393951831280388331216864832177146434622360050679082491939687192015029654771745870992584463980641585925093641190115048255199708038880427894377853960453661671367279161119131400922034725994906505137528837407164886232894813799196278022470733209097968909548620780082664119828250032400809267218153107509355439709791966572256267546628617763004823658663528390133439249703965291169289051243999007565431582604046281872044601703958214346227546637497032589713613337321350965915019187718141328358870128333468251181558854819302382836165771219456707225997776653879379769740513957418459486444269174555660010356891091684962720994642301786655536127908628040132068960051156812402677931325761996760586003545354244561233431807000022083019264220094339837266452069877640726213362749996713599139425091097157733908419719105655592717470673748982777598290856714484070061484088749623868623433111410243161945820153213190447445127004570943323958837113780654359353719621802614381891228144957633099538721759319271012326429414470202627319358545696231771447118492326295917382897375987583418289031687195819073935215671912133135378728279242866295345779874342272216220161863057308379019827804934089212917516387810252515062137164738810224149809956033216273138895489735451518975799955878359568322004247389274093405445162741916240590873895675997754907338920853392830571238969280895717486983197248265072998758445980631319370206251773441531678178816976512913410992908338739388248781804522962987039817103220768975259657274758528559064607975825164548452678111717730119073480391377225876337018260512762795373926418917715242214746143580923211164508428629642574673288484436272281595600986097053539847061638421179284541750285485180788798450675016882532708716947518152954780693751283325866238071196530487028940197546187887693484802097325108320352885659657764888953505374707070589774495679095443499769670225230055077214406003915857361253072577547521395440253593436609349323524533120421722862626319459882679461673277992731676858304389847367544769450809610650245493583302221618838708626723651469941608762395504284177261455874598267850219840210125193026016251043503830591453351614280335349365963617612961210350211147126319853510268102383274576893436975413406349481661957211189551858466086454975619831251956064829358998244121386097526999998506432830416999779079958269307106345172503983599429598474701195662279708557325589556995765878323489734640461977289624685509350324015296877567775107003447030151630858349558464847959546103788852022873481230750111931627382889116475499727704842156381166381307706757801039585727989317622210668718829331761641125537369571706536198729838725030523792439824353322069742472956979900283113572341498822304580660855800805750861296833145045346742654485145499716224484022233607427414392591071714197169418258200708174009889632005725784725598747952287456647699691079817837577309338672676429271990390877260151248746706610813308943923666569153704372806149955160392632222842808296650698022084114067088630474245893787104857536491074026256551132969918251264581548134622003950681654521102592877349828595414162334916038138768595744275938421046916595154904449247255671110748414108646678221929875525316200822270011394389060012902033881052089613486045657849970186942466638047415500455310826068348942033743693604926632420867806443699032627087446465711764528513797651405295535246188349645495105545084170788563619147805999620213109837896784537024968528662313357581492481445807980562691224345124211972970295141945474221469721112780052946842452649748287612605449448062107362754615628100676906825304739090909943461357430222754095675130819656527727564176318587603564031316958465970566272857457626283624548756654562041677276238210283801232771153568853538630881073884755849445596895829709870933571326404139025607346689832199579582199251134459888208208604359470726436000564821839323365167222189729504683857203914447551377624191851511250121569976811690282033800006929129541792197297904930090939819981216376986618538011086834447144594726434530880969928533316335469115241697830566304670652318803677757085513734119154104347285534088425391552008002862010318525421519843761894703073227951381227618794416361032358893040680278195297968454378334878582511928408465684833564658298979971779146697646180555868179435467813402784965947651055332735955426294838232028464438074979467185624200203438663742053821735398424062538103140781011195892034173518009884244462642091164441697032477095459893299944305569158556526844519884696876285719961377407579594570340591946646242653177710012540113573426098508327818910865286890088552357834073772702497094630836369721372697013888036431297190192972106787621866113423726512680969273079779599522563396013672857722394254352227180270035525545025259810694315905329759391659953176631119069229675720355612782474200809159870642140793056842869201360321109533133874951628828000604941354152226184805682766138817474781683406465928888658245129884493393275056498330608135305716302605073917364377849810738381966867140109376966074925835761843242588763911116059438850163782283880448664927825759841731011965179192254677933042288034082749591051979072814602049055608669596927115190432770858643816432472303053991424111306425129133653978409904485587796885174274426369058875586817142323342989585709369533546079702387082186824942277954592183023538545877213532670736906995474834975083680705932205314744364796011231743433823175702708847129740177175679689509832402847801815482588058005646280580984601472751275029779525335214655024315544398862445123424697451715077552369569234975450892733534468827714335856988729096071117457848573106514303231749195890203124331947323529648853277615389576173565451077187939142528515525976851206709354177239310228186549897881701480905778875529107253135194100420973922587325936140318923728567130327617031490758258239746499457390254099283830639244411079207496265112921695749967843544488221010144987903711928037503548177098305526365373425868640043446193171918056174433142540269104900369611101932587983396377074402313570765491714369619990184081662048417327275940814058852978486196350300586707406520849155396910572526869274861194718891145754486565897176616535577881630624872103794216695696070746367727519576042222705546807146958226795029789994485449043486436993015472271487647099732398555983178346619619159284636521970413206589065541145798952820678406485726676894757254939678603479405958190446641896765090720133180854091242190673773383708123785972163959297642062087894216904729877116201662552032246862605798481039927779363189437219794488907979150027210268963160969076349624448166503597061293737117363205037612900217105787111127239444606168432418505469954624132404275739008989473306460587011705894906646175219297105462340331557279250914038305005996490116016538711097454795840913498460799036619326359173560915876775823085082101213145507308021217648488443284206556092316464750244581358574366528301463384670758020321382556927839969969254784491070482996702294429826094189217997823965233858948210577596555020225808638793515489509767526341682446284363273484373468898321593652752463598794829877099638735679458607065468515469089129476118757321167712266989718202550151907446189436758731100419696183798322430710396710380832962620290438277277973132248643971317077820970370049371054732226084756187021047996739716292074363379288169917200244533900929263099249159389972720898340166898824912427481587879244607609520176337337003262258120535847302120810721149094846527373614625081065617432603390433948861172362534327870909256862800953684878119585281699821723797435575463272622362279307150421242370394546231364414213571532827718629369810784795949492919336163067945948487012058035399190423818878871344692118571001420656257011027810154796340361228080834458723904824651997279263763815476889692190431767505071532483324168868517538416057711651719857394373641260874973729314484601550984276231132950974442064486081154325147994008670258022474779346758697597321313988025317106494089804922869393162358736925325641162932897089425150651137283561854505766531609904246633227891061069575861634466943743191899444930378726313866501123180845100750306646737062534937297044832682348655590160315059437513268083518101472279244104860479269230819622294201374543470993266298014102075291548125814957339113829230175610869619590825796093836523234586123425145084948940444564641512256470779476297217953061841446136721494648672848072100572607058790570126990556661102256726777233722285140200284033741737349183914285216215340282667174148772355962427720985812454587039125958502540330580333581393899633472445537306752505294724655532178095302583016320229287938670244273509058808336837496521747693328888038756707431960090613619669850258121189825509815524491835616594599252358857281896275198098201637027325547264663649957537393533924390622132735312794158844814912261742655858600696791210060381406330541024376551832084409163468879259971444300488342768022078841311165382824223966512855513334810363817769979527329586982071543709690831404431830810204001997035824859462646177615801910712480070279922123745225458538016338597588777298829093629116971114119230665388168074627220064918784620929904159376127356617807649367515455543069081477141353813433436529481723732008334373248880931713073504248779458662332876553231138963013236757872751995476398371625958678219105616564332292286298010399703804625820369827580215105119597460355775737829362040520502831246746039842794704149964384355913803355430997647748404583708322609963654556988536492430366605258865317275066717106868598564759365251619893465717412175066771455939126279281483779613562936430070138491330872619485317062727941351313949390307208756210424984420416756428780256145445523246911816302288801465934619596501556501501107555565996152574334700458714368529260547369422162635831253494442334425215925961162299065023605208753760908020556288099919988295057324674207992328890042831474105997502117634760216905394458980303525622493276597113484740848219450427327992010782659085271902450226958042695261611746012135915080109123954745055146548371963329060520853290979601255164167719289614661990791023226691387252719188319733292842715753131427060143406326691763115263636485606202764230308530451327498247846224188570382763894701236908334778816188485379577596372638974742724041979950782029443803587730604771310497484549780499461714936177058764434863483988031948515368148647662119714834034521294818797506702701542690679974464914048397408974069030083553950079680036720564966921315654051925638876231301897572362841245922634196965788027532295996526311706051485111317968356070827358838834937434900176466650046039130876380753323962219169827932553907084990771234630941904992859077724729003897084568834062539198448541704927101342010384521941589803860955090024703365538591263109468024394293367882549376928071367002929409888697730805621321439732908155350390735645588018906667509287881669249228881090330379188812268475923449034688363542236302456165864687821279845537597747075307907697809847923126013089693538848857691254071741798840092864232786104592987650384163994317590269425889584132989738304768238230725798149805030460418605669757514380606939533147968074302893657942528289625861368255391917200662355406208755120296310147172768126949850981589580885971433555932800830667275727937093157839604370636523045289833898900833173802196778194337609565348674559238759821103411865722812119618056114273255886080796933763728296865635493722940577443007861205693908674325823615707449054560640325874965546447237054103228747257699312545965240358351449441066275234932938483932527538521730420738379054579792174051715573478668692804397955470732603634260829910851879719851125654412655932097953378191349842715524696887146115025758954826318676862394409719796359725599628800084522551232024557066639353216388999412043856929201289899759883999750685064938296822716401503090311645604422795775069769009384293363757756330370000910628162936445080506887062477722226900059446123761011579542288112789216540063014367657780688896005711569050109844715698008577862047592163258102460794495317162548104189010715260892146333059918866331811007873863625160548177068199667138242970640585700065504520172279817945996248337854810005988186988628378729865971335688943519643009018891623642971301183449068526860598261281167159159915983567016104192045934445527839593325472653568347846187052456224721711873052936786895610339699412103052584041061663623497420024236085314987067875457938728093097562569325737983577793690020399728308779197727588567230229712398824485196239476218788400544440801557922546873006253941114280122939035485798826254185092219744684683844424823798256217005015750564331019952747018749120486476906083105819071324927560556666654164555109276075876775958682219976636504413333692289392565555905977037900648250590809700132537951519123771525009448232620737957375246764998427545669090608167858006258356532669906427345811543712880086125689436150632781778795802193801629935647239136420472392764516392856511936625048181849000834298277011370801564759959117029972738894719363339161622778045151213473059331940810679801414257118937798263671209702240969530751774353495312154845753652219459262829277635724756445827964252403189776402268542519446717467525415613654413209348178847684179462504124399421649356729370467589883439598837986381215054631598638442911094304984242558955468328635272037079787710654400255955704782149429399149942163697654129299800032878521086547891825927046535422415463636624201491242435521063639993683628706595391997466937689449123743286748661746485621916781490317230765998929264796809040839450843396720456021585611668958759135693747377544774588306236146924581802378655439064541355149958685673982685673115122836574124115175214346152743004066958566853479069868822418894578098817890113146720532774669601699894318766222358712247948475360585093778476222020154907333784658545347399781815889041987504916590722249979559210066729200417862645342382407959297141255629848591956730728734031825934590158640965830995765268693172730939565024427548947888178572832979485295574189247177456252797576118373941147932808158911616378841405528757768475843902891135831520283086007172606031774209218591921188839372445682418635110529602327942228015203252272682060089646552739854241066633764660899093341249892338111144394970428462378247181985111535539756581433749360434797531660666245858132884645608046655947962510808352506765318158304661259552095205868178016418980978462501831325096397732583965201728929283195382514823732967386830556107735909067454333110495104773259446266886328148800084985200086593592005771329388349636946188550563697896912290498347763326391968592284144023446875459414467089956645559089501216192197777124215405238204174623857499875991370888997740896589162013429180115206816076608649263401766601775725037617401997891872496239224534428227383521735341366191913422088594803469404308742022217048545546432120823974952647803768102225807418727641027999316918577866085792734897039216806016612018582508760773541467449232911962018120200778400998026242966823692005074216612383512468283295909257808799609390317159621046183996853135350188268828133642648770386145696777642527042191438354581473125432981836432403101363517266593294279573213658105775355379760614447501651802806985831928925045912737444854768108494379024727324622946703851517949759864850655778005077634536468958955293268610495417551840744261777897156362980566210796305644511276486534782488946323536020066376733826577097914141934789836157134602746772630429331570783444355149347354736968588949013466368645331989538369652410185537371661529222772032197706185214902802678958359763100999758496334334670129775512851767796014791024536585859067643326405761066659706789698618323635062402297354300610465433193976149470276756268528784594500193543391851801439864462976229017850683657037415180480711056122004870256689011550411065232646095305749601173928756948170697840916911363051706407736194904343941151800392965582308484910423243624608863730654564150890404914923660138979035392599417832301178097167529749991876864909141240470106934590096470711906741793018104909348968528640230428437402133680652547290697630472115993627890980785119381801934528392013733136494605472352990298092504038256041926315481757442475137605935520494835181176618889025187260895340866781309205065819168139087795039187758072714386448022091342925487569519437886331784956077991274366002920470821321542601870774306972386615924215678902447134816698806889658889553804930438489919599909489995073235529350181814162017682654634706521108589887010023562866726563107021908319566924528864004221280423720029956961038756599090705482332760821121365076982816114313056106362983618872895400093673652036762035399097129576004809139879609931221901675316516732480362518678340865665529713551123526928319272095520416665677523647838297145681621988419739382742306826293298604696181412600585437081609987027372566244846038541446410426975006567249840057416368471564399437724126776139290221610456888283789820625776973398160674899616524759069455411822169488121990701006968769800561409186809473826412699794115134909643260464031061780062576801862754333716988420830644531251831870275672007501632863530814266909795274590989999839218226635290509695666445475041327102559967582629611269284872793376863675643493965087607896984766125345476218825722234090648750836306519196913796931614815520477352776881402103491141654814330423771015401393699596087615439405200481089926443501102334563735115264103222094716509658939684841685483886448925580944131921092376665266872243168599352460237416706786406925745927510038306458777227177138908130915919509559257953879693208129290988341494098767228302260637961579270176476479015313249773690361150127893164080867290784145649899138109287860872514981727698889351207902910287331941350835350835917702101770030282456184244749083273992254164968964095008165033049320685518652868860529354855009077571196646325267426402489630363961302350708429649645374257427585469953540357504565621091021139706978284762616181381604878246526565900259347991159117813038983983080289313777445880128637743741360541057912870225987573513773606498602831316488011712337306529557493498886358260616868205737314629246119487004639620911674103981637469172675762693779883925874231645803946542901627736587856351751191068532370074005916001322416839618959898616861801110618627052553664550663620767248892125008270714440805327180128853719784773108285993218197461964346768532207840630707122865608778837398435723176806670471950196362594307516225701415986770264155998546001680585993594743508951228887184010705762986662906991095236512724084185551535603766301076675983239796210781031113048191416424570612941327421042555607184430906335118055604895932566229312611299216370002506642305781245936096512021981606107663786746292208684378665694779051903515640596347267583449081409204131816177269965772769337875529953121837301106613067052390993035409645651055727517042048015774548910647734444226441916601153805967159346199875579421003578884940687864879591143340312947131473472793442156325430260203958877892526544137705924313943596041494728539031760715888273616108149786223690738043075550949961358650430646227611580670186728179519981375427334900028487220001356574467615521935205301319435937427771704845424218938974005474970348049162622770674816551673239473131859330897600371268488176670379778953117418865416394800747217235014237157250448134257323667122353112183467690564151273512895720218129796697550324551188303884390574774368538190816591751433604555404137260108534914504463934144647987714462694338500291558111405608957963626485919023439911543579251181738631131213000230555124594991820085017142797043319210874377618495152495446115591208596226426002375794705156117544500795516503797794319102282847717996182285324189514870811137477131944019200833791001681801559545416617450018877326912415024980696481001210818567996465260892047230967133281750072230387898879656577600366668330799594525987290084325964606828253644377847383777094768064381044981385148953568232477877244916953563049361077092016675447910988416814197175711922687538782001013732032185847679187484349849790760070001825530437533572364654475337598293831519403031431383707713229570796134338582755161162072469670702208774879759129334645830720596976366634615351152605253878030597264057326872381907742551646632165111091183417500781915878396036233187052109728964396803138631291759170121255750881289764633714187683148160894494655373983602738606243522467065980261360214576429096532913441744418421874197850037854667856635705029731720211870998893514711574872636029911514237662211236013962685976795371809828447895475826955845808863819121950534636572887885209952509700131036193147940180008423202527160017456851122030255597397818333644894335612154750312013706498711612230064763437248789049440228191090291521568697527825186271879961965057680858297968228581301056680433339587623180522305073510984468053124149060443103929434606966194650960126851076081341148686991351846873503802736338067739146303912344776499623882650728994299534941395568765803095682505457437109857637312400070235022575586591047874391554234543317473997320724579822833975809087788171270505893501424871732469930703297216375743401794050361941206443606141709101682919720930093177305312733451087828985735825344849791278075078877134239547012276966755262079559039866568792312721204367957939752957653642327976713862606394910954108617489072402476407114422659500200235855787588081134302323110264898115158573139246929499602659616495303785971115347877365289271451739777532963046518742035439567278588970735136257339822741660169085511602260968534885758896919449271608206048916194075922929031689711571930741951308001497062039327343538698993212609250850216640669954040931490961926204503789259633006989134445550839600318062162586463315771550890954681868980671264785809157603232515619760192800065902770789249775456858173902064077007466046432167630755585364516071175039590756484881905770143445011771318837644530427766508594740337584826571951604199762692479681777260825024121017920105673682621212611290407842256402695206751417185988150167566804694454083975250351086990282151390188293030024813643632140716878532766011996110099003641036330833827199739710615410130692470799039618659645112314975968016480767318936873603771306802510790343198053890067928969880696983203242912456992469905356563636038736908881814114957811120804944641375513199460389553620053761902936067691411772639201408500076305800056378104511894965850576539883001539878321866851267999499368181172393190291855530669893789665310067614977246280157001185213699443122771110375778933815181917685808507556932203649381883923323597849394493913140942290239865568590613605601659424346372420653709950641474337268260206315410903065547516456953080247814160552059683379902724871316981647884167421792610034592546965620243629890544961279106137904329160121785261847588946641106128821876005463701625244878163884684588350306821652131422170418424837630550217289417649717550981750977004900077017383509757336888888656638851912805326422957574895400528521957256804277882405534322999545736546606392396441175906826145042133533136109525028195724490786220827014946044008835948378145155144625527863351266881627184943153506201373349427938420357653916181149818815013483674326711834944828391168604533309594830802268703437728190929971702728723494126506452447285301320603663712542835623262444221092208700744555240300447519723335703991682021094888230875119218803233877724290370462917665304028050401269342455178822138400739790723532774463988216801017276854065887694866678316530618910858143260327343045873958252168935289631579577746713437443970866173286919715589439625675302999142886465236317368343229128642561379903097104643240009590581720900253976449776487822091504256363928481183625734209878995393510175347830414984606961559411365638546500726714495252230670536783369833845789145184766004260296456349306428738598257917597954180884446958994421005351636422159268330423378622046427688973709447761936973943126440800579393057771032123044573193920633879826013504751108785876421033452448097989089135684003813626764921815351222908257641058147312487761845154166374956355829086759360776028742111102951328734036561195298175544697342260389844935529216435917860873262230350662752978278994240214256086552533239615630420350396188224456875289121332703420219014108131419708725023383200411698017556536072298962475026954495895650797314121353635802406744344257795680363930773344852316728649787878090994100262267227889535445607297603863048322862244260132360288658500848232076745801331974622700663719738200248423227727005674535375029781916928226532171401534272002397093965185939835699837445202155001130203231666363318020852823467340500960334105778633809006395325804632128832949154586311537800984754539555918873214985537893075450004435835261134342666127901796473884221499875543978285176060947146160702705343288977576818525071818420075335453723959811369741329224916785988022500942021078744921543373016093631631421196760367132471663549097070474632480573122250475818921385049530155196670240097066160957103415459362084396811841071657663007689590122314699692942777293738559020807860321034086999505460692815264898712980274440670713136124057048648498156248339069774586238518968043214841158010498745311019283768610171764490416772148498557748399018691997412415023200913616997471868924969337424191630064294816779392130442267995375019427381218418651104854443517130971066084772669871405544683490255491599126825666420700764436862769437926969080860825697744580914029762601725192015850258326065763874247723783531774704563195358321224208311782668868745580184427854903406392589036725693399626311709673888160463103957341187512633372035825727359539895569167385981124058813688945166483155480775756182502793619213676081815459492802112413747479750390412899165430740710536848601411686256960449204861180534338123634028322226631558801667370474022623133899630219384949873547756265477815700067411222047543409768306633265952665887043619169321388218474458901384364672357163740815258054847557724172149183774304731136294458238025950269542517668321405528446306660081189317623035488085772391140535780801191643966697508145711185095275281680871433887175133121161360145946323358169707364276334040637163210825588491511492940739162462701498388660607994203854792895781413751451646951786942142235649227525044048697472182430785075349738870198629767735406172398505573431384800388362996836050682109580375588075601962718801297237801198293492352109556774885613066447920390856461321267632139058651540253951811042345599068567307989583789404244244681255122094413030191067576083149682633521557212354577126863253372886670264748235276038427229168653876126982931187830120238980158213657388595682697751459845345927964888163854605078996389989671494702447641926726957425729406039335198196876904433579828603022926858397698642241671700821540422457512232204386303840641826876769734194311258940868583863368287637326329220608111502303405187121258495699293878230638848719422842113548731448432580287576559266299480770037645028015726666767720128779435878793838906395822386213759646311565279956225010261242554756746905970621811817969355455675353017740651540309160450850478264848313584701580023941409920634273154100688709826952433517120790306460389785183167529850399953480262734980211366820491596170402808917657221617763299167082921840359303404266985377664384515496351611738886428844396895957522158716019990732975712028238396341239045577971150325613057703889044519822041674467360571678070459001329133043258017345587922938467815697800935736409038426442982950291099451194906053406557453805579369654763726345058845224700026302121453612510085397421429836011375402031259740067863224933897868070349449213804222695998485473334436636782532486753154354863076117346166726539451247201193769889108123356019566444079431572159436510643794592653500372554791271396569297718318626139605663790296885444999255726329350238647688219996350231427490094464334062065108073507181053978138990344231622557477105581416446153576896310555806011601617266951808599920000100108697299250053788659439517719685295477339610370670014460555146405548421640880949250158514304502979768523168640292106420506813859145792085840601424799068765035502186724458459523871836103850171373701692188480066541273957082880283109038798163001776998180475340258481723197838154282580769814580853806491101426388752119456271945032349116891207984915367278434100749951052302133274731867786816049018795082226298374335381905326996195627495519049336408459862304588224711030985727757261282224007976757559546128227302599151822095658788174765878099295771376082160164778664317442994888669794888981934533437469172815541866916386343551254017931670180629926435427457332487719621734532859135700527765166945134784407183655193020646488664432097657777661710111586884327864934263599806599239669343109623637252436536676222649067857306253155001942676233863546484270100526122081557636527976110268551666619626736366392700221976587492435902657122235002583813759210369484769274246138207809517178743533626953953754173326621932498043049144576056746463210699943173081103555497409738040762240585152555203793466089956423148632627604219117079812242050671863544914871053579989700333500571574675863460929157551851064695872668996626761203207918313388068177217257226842445132062180182366245081895641079167907201369425086773548874549242425785791259438738322417294225370240983388569324205681299572270129086782124181309127392706344241355556532605505795231075288192181929026106920983844005643428433488299646702970414910099683193018952300996566470813126131631414906415053742228498104992871183485535567090362733358432067985068301773772494203491401461712467672057369298701411443704500681985300902059177299377227596761913398660654094770632536218148293224749434754270181366807541976338623858947372262177557303825523466154472485965249171527244174125352926671729211693046868748906779064078272616562305977309063703651297782097699202830473364432623752772767603272519876571556088740451102343738747571655909996599856527332110642906917607136439790466212487213856119004707203999448349584547751986543362231160919624084933964006693245694029698851183336264846282246122003070982374844024289824812364530260714996973456108976273338306429269960135989976349138589101605400712806932971580677333181731389813491533066300779435264251482000869000359948787847134740920384619855371259907551686598660889317280667860264387101921574099663706710951718203870580503294790321549956755204295762667154888217209414019464051223552391138258875607158886920836575095036440820176729998880184305550815671113331504966272495703461369209608217760787107694947349554679924360947203438843037200321874573349580718460448289465988166741092735676165905865064945218118222784505538976900779558274217757277305884542558672521995260472587890592641054835082090083294460994747911588209062334744680155018250183920229255048420038169486515555059948181931747984866340092305302174419296913843846196635683167282857898585643312246417116743409899360985116088926029799500682262289666091439239031729469412958784882627319840182412535853547009068328004157480383514410138490044350090455064397022845853508910975924769339357770276988857742709045691931338217408117064567660590781457618184000724255953668396147345058178392034561829499806476162988739367472219569564854042767346320300825821869941988907585360666124710229027778584630859574289063177282446570851735041208113102278666666126517904766230290806689708478747588242314303627634060551509201509691154483941480112953006947705128059444206068314141315165208023723397439017506427530476745691295781997631611760987445595972152062646791217925894078023777023669849497693321855984604028229700566575892429717560103166669944469453877287648960009899200065782472890638028335184372697826631344079485353046520414648414289577876165103584864351114329127633534837610808342944548172855875636210370129489932459107873894128554743436003368722920525748132093118911955048515360007737039613062642396433325075724753016980990243403838856804266299719436697675860161885757270410070052670032121039014869793722882774865346497187812100741343985552642622556031812854100199078425659239784355481472140852001627776786793137696760568635148745210871841775124128725615674586040621616224900376773704037860538220133507281030225018815804988900555718892254171871857415792448224369925983357210632354126824384766691963707509442772347487235615658911874899422564605213836103460802877625266041756986775615528410723327733042250583322138812416744520696961899769879330928838932084876113321319611079316160458368741997750704667680103242774513062977946107596126463025884440913514815059201256010966809576423046134916634104280479941783162924827515138053207127252763860949156814967680373835955794633054517658604110877646034643777623720720270759313164890343840910176098213854207572101242082471616852143803701731234684248961489997651140548436321958639601933026515207247207680960344609531585967886737205968743814672159788522787118530353575485107632983592833219293472529264555770145168822853103356088309854332067733898280604478671126795954380537626288196675348241401099211873424320398774980538281666033234074178623458470848353087078299646905338070800074826927691457575963622795344459023624875334322017743662090090895875945124848357544813233938982469300296980664823936663266111518724860940460232195505150417308410896600574382655302843776433385137729695826428442536863239747776121254212055590238109931338990847394231517370706708154503018801873642101082780546114614354959530899888336226280984972720099722574999720608794657190047963995058148673531730870250512640930517169758411470811641250236431502539354168800129166228856046656710028301022266892160984069128939201442115401369117768472398879533439487334851676836685462887340709390787631782809448128165018496544389552975557682877288857445665477836239249389663619039714072295712560384172796873361734974149582224668566370056479233630810136338418037585537298308975042478161476211867103960955408706082006537413140245803823071851151872820841206468662621502568894151844453917608187951370087297838471969272026183657972107702621986769897476099487777640803538175841503777564556906222636438378791633124463947831626310092839726888203607419201935688825214283698513278248281831287611264532173403714753619730183095166706532501069797548543371328034843380722735217414804413894103197148933665908771290509681096889474037645082496447322306361187908939714201726053358931629827017691662212469595940700527447863654202059697112534510708781726176790957101388602836717248297009749276091519285325740362517535409345980085461753287323246173416611659059040744044359405809754808079696319273495040083146534695398203971209473943859476667255607289014745422130728132369432798030024721979170425420259815872073040897107337556094858559973308046288444211158673229573444313088423322183004998166683268990598274438955470861693687922850792081100748709509831640667010952068873393062342387130068243506491010788278047858573524948198717196791380917719579458438139167497448484273186111561750494874651135907918094596985345490314136991525787257231672509227130243969589868095451777959529996614408903279667740232339165773113630429692184746854941832989257761288018832354286493115708749529562272288445265809832989306522838797630478440122220160172305985290229555473808405491077616592534026044944874305323100163017205383004976139953072383086834407246510456789940394248423741458532058616030952942371481961034470563903177601669008333589612521401777618666207618795696344477000923370562188185065959552668306340201631478145104569217161594306133619784343641370178120565390792232599159518404960507738946301797858562762789242090342912705841212843296148193320785136431422214949900405822373954743826917179232537344628315072156177549244565316455713713067617259474053546406585849268394848412057375704676216453737297213574069323066162826734032689211823490144387507651574646707204931603179792644036312300785620623449924710252848575794294579738704817199859349379464687968494542533655318069822233063118760893985793851564315194000312123102615508488200655018382621812802344800853293475056207394179141916450881379517056118294546094521608333831324609117546192262515516375321669849492205706580397411786481957098341887010986217601453097815420736109184973774648695444199208443281031768491970394232459034723208664617440959790846060376131452239993921746184613007222210348944095342151795586625948729062461398258322184398272762263595819878155115087982959550997304418956959456202510949551182687823776252784181828928085689091401157575056798241312383738353399367448018320654506757372514787175101772587904667653176669566796994086650474491928609973628496681075814169552787300398116978095540396944383135211954202441656959123834661306831208796056493137933155728329190154277253748238666674939732072414237618904825501570480405626105659623422101422104365303785851703739828128130814954284556966389054144790175180854916368980120999111245224426312474944031381558903455638692368128008580201159649563487629204958837847759256194500509532399479971016530729012903532006134420561497035957249380885017114588205779469806942917456346917484598010939210158071209271663835706653822927985340046356839775543753492063721192699282126509401543914592951625848879933590736696442428184739452448142089953058411066048888618677902694247021469368745465341586301213664841413903621969912848154725810361838480240765208234133783515634377133202007289340530430220344851595993034309318839502748400302653841177299143611052984546377499066641100226404033643302004706663460344971581254078360122218004856731026017841699782523309848999606939797532119381752445224641635684615542963652823549575873177568869102151064757930326329107695696368501611033561929127619132846036245886278774118682764861411339355826417922592294057598914288666764421047594089681723749122090131531942831207249989660277741457260021065747544220316086033574050360714265614761958312677917033450315747278625260873983413226805678561332533606521821396155181232786863272183788951386531303744902856406498028266908963305485565144132177660979102059461830920473647468950323893275710401580378264823764314194226366519020076755701298450191481152676148166846366640737433010010677752143337656326804763127071544162088042493563302297262238805720236652746623280211710444502891368064809944430582424197952026990089232432705906590695142156270145633931093960414385870612984664836478541948028061410324886016220898492194134241936610380945615694854252886771260053813429225510062563644026835009283592855412760950484074099859211343071458038944997597082583026291145242939491996362290112966501847476664682845329085543453501413718923127745625043742586209225540254417659115066997978844869414237066822868652109055559419488565799416337612966070091651222555535388692375116559286164179210742543527535350292992564507329029868298376968096372730491478019330426770501612925050464684113965352849535796674285429223215541627017874868719651466628341707479568019464412282355506145307661516575726829008698620742647907989773484213245278919166884128792833415531899423976199201805981185410925404302058389103365576235423665702360608712979896490688571157720944600834825374793138258974470923388908331886061294607297677509611080780412415921862014007974077215615096508513445007955904358852214313244966179516046231044952108733443782261412008855791323835285598617325199520219035027550360951293540523194908023051264105472588662662527434503690371636458262143084536932846234965620942397296469511440393410530885348548086216092029042685809359765633618259071871913372529959635091167632873137220310157165021760440469813613442996528450816165469827306542052033469477837634324383912452818009381926589187464217417232751675542016823172247321150122133948408271715479155743339137800511329538385179012932728614186565489039782563101110977339662484119798255922980462618882695526581096427901679894843369750205600300079427566138520801767589579996397170848069773434138222575330011671957287649422473075672244554079769722374896707756869724375513734390537234557005628772468337920124433927135059931196200992186272410567852859073900221900478911242388918117395816719145499050594657962341526474947476548658895463024256010678402476024147167810476207460556198167372285932000045699885158297730076778135390530778479955037096239305488360797399182071729175818094180192656403505196744134885592778855545374764748836336259661979046761166149806219626434119369689037783293467762861810480203208136020682069831254880046500847394565109048189593656609152922656632687245475252785715400746716609018957506194467007175368884156360615285101786866434924930509480292134515557613510913637747168611341247781275140262653311238056322996029201057768542164938319930508995551676156161991871810442936464919901431088608175852236750149705196571578923953000842153654338375310908359585475110605875776298057118174198696396429640384171818276937148059672389967690409040722529861789864436165452650455447330392613796039596118013919738275701534133193070016756438590310585066693880663805849309181440825729313467953226903072503344032922973875296956363111197883958182422237894262575471685586623859649674160268187154433612987209823179927070723386423467085215612835806701826324404825007171289329590311831157241278505684532384016150287919815424389251847636171334831607064718393634322673949321555451677263548721068028203355523317190576095526825722656754899226540251217031853191943793671473284307966481922242954828835687156821731322274732628623907297160848984084678431092018962006705484501123625280690552935394701973780090237126499151043627534016078239579340275210992879095371672760715468823080530460778673364151557772150648788825881727325821944073017096374155911592083943569057217723805893876133450235340972313475366254321065866141480713256169809802585856455163630702840842998317081404866131436674462974971141048928637260488843835375888344814857271761250372904202268838029399249923600158031836772221366907579820432562441028441740348226467963647122888555020917010322571584729997938498268729462823845648080145240825357426657874586740786990142660917691278989951456859867151683930309773516647979368028310091072966435034852674711207169765216365881973858107640041444893220677939944402469086112108664151054592818805850765448082505123809899863917412423849250132927509628919271961380735396896321341293182518152476497791335974029427668029635913741217203780595714085410660499655601755517568599562831093363566673503461849341203124244991774893618483083514519451874316273256329408169506645660743952640996953600607017298105312841535864604959816636581333831274182062310481055354908705166998755879884794696448397541595417611386149834029513586413004555467466308049496727454803548616649221224552137063779187607741915754183110995808949686249596625598760274847776282538041734778870697381958095291513067523394147527590003126417364492588312083623791677528016319611681878767459260256379526239564730206586809556073087847271903775034676097470457839101684629940011026028534907167809332041845761903587665126608438190997673541429391659087970622355619223418068750051297687230993373219440841925130154626140258190046017320003730376603127766726961040323219196533286017050293252348635343956616120184590883589661671185736826992303118727569469425151315437991078983762668685353636965073066889210043705226091987176182930782346486031793617604000474482877473897983480062171690830884084727655360719301110365619258633844939627254726136019346023734131814491944422513317500156565098561027039460610529603378891916663900617267558147355528886100682652665344706588782415905794364481183081069424658157904521020481575572497792198825364772448421373375291600988922495140681412327458850578269223135159926807951551667093009658975857492762610694724391936956526430180451254522590611655423248084321822073992463560348292042388002650767032095763297924731855593780377450395866140685506444195317417813295311104288183745343547011744563902535338905868192653134355403872315312002821463808998731719985707027211183619584200364724676963140695071526939496347828409606556678435497010965343037532589125268241914206530715065204912967691854692635090902105078748357607749269529876110249568871779536509527314627158082295460129609234415097835252906946381075270855508425427182407495124295189648370465360313094892506538165062959664267906812059736906802191236672974076180662085656381863767250446741192511451751470934934357157952353517687567067184606636296706123136299451396478524763298106743991788437767942109691569838559579579857384797154945944601942320292678344454398454176695264886304452660874372261500885596741135188707212231141373323015014098133702616390155817292161096081797713183352425019945428867564117250290473177364661621617679990095328097210819731109898381197093190239780416662162459992215996519636753015907453907856129451403808089961980953178163301048656917293162154361340159339517433957350247425111169871278743960898839554277145266709709766013834527735212032030815388881230877620194380822762790688896954907856503438682982288360290380052906197436941272549814032955882581884257885743344746765499033627140160883520507938035600851044371043981074236570022171470029215696555744555906847878501961204494366520600383884354684669000245548829499065992803529738941176214279085162636125535356353435201882669431533047119428127664066823386900767908951995085090731081594350251665567054022830781089994279242232745556876146563547872416124028163789966864243869606656464523889036828655511183165488906578452905780974373742603991574333384714583452820204311762961934213113695141074200013807293537343618068944467024349281773858803934573386071194110529249771451014126861007425731450433705239734100746192763210934365538037855420106373084713972871829928465159519217454994929312378213467845695752400328301048090715765546161706323013963496262586755099437637465121473157956804509062694574173326707387291023945258108320802458104669688849225123959524082142574070466165202656577311471265011827874921382535659518435848307573142205690877090378676784405826587634769923924824524398324512958483472938220574125458698235385497968241094053507852732144520881328135897750396360637150566589659686381663206846674977764416984500264765114991892800751882380867484274396679609816327147469018030632130707431182279275665855904520989576318419433163840607358666871558623597711751768443429392958917426522682537570384219112747087519825118413920621431114445214061697448470135543410584626745380708670170878318162624439771970710582539886896422103064811129250880353444330280118492204649627915378909949724528827257905679825264415545722479392858024890965431097044906756849718909852607303943170515240160376603248623771869308711772460746316641331011137094470070983893926719271289595300075674912435207837255741479205408257975887010506865991230347565903608702502211751774180216487506509041517322964750398838255826097817936321633917402910197317689878654033812411833905018676019246348627872893958467857225112425002897503444804700447798001049783112632741761642342290726082210184375632054259388856944476744905781690634744877346050794839806902705498825757921685360926950365289138197442574394766638070733568375142921860353500281712745952088925230487568112542838478872127677771653462879072117498005859387597547868376826653222394151594309241135435500176040424626697515026782126830014432316194748105768036983681291138267889960289722899799172025038568978573843649001670349438858477060237099712316108363207290440325536523883538634410716886557505926382137662000160212625101730074679808051742410683899051225967705586996121245636671363738662319355135271730433188620790252727614803198563078675048910652358373761126522732973236058533307319395321297765925226647493218251809723455788913899998322911400728038912945296946914969650940419545464085020741335414952088199776621734009207812596944032489291316451279556922705471898218546696507533820417721301416055872264744559617063536541267108702669637689233560627063572363856066271532126382784889819374044344111212952290304106261257874230758011383936866138784619843629914360171964090541844149402747069191707819146675687457738936959726642074786146107549875094345733306470004004109516321929425016895922001331913294223560282635550583419369877011888482939745139657055757814746135787886000849646500297336832805472672543426218913862942078597900540992781222459622021698884671746697105500126466307788081639167846551954310952035247959248822474078410057746253783538046822745159299002490025048597413145221901893730003637085323718366653033461004543174187003189507973176654473572476613340059016474654696084417517802836162229011430157821369865513646244261908976527349440516865402797451201255255774622965890429369013367266848248278087630457577699660932477238259186581071804954093658067509685776127471970485252687466643651779739424667118233305328242428540235529135273127406176165716720275118292498356014021406791662917788482345055561199011852538741321838284662594995264484307269528872018870677105496908489635959203471963902428864036783583929166314616152899124369711543158357649646541505875995667931520956963772565006654759512974841285000192870895245444165186807918291023632046870501410393983558338538559840874744394475205400743625454931764302376104783336624650985148774489963976481724941435679877579543202385055669148182164104122393632859357746199493153541553570916747461276555640786765936233331582494690391123227176146967409104613961275716970084856591377006750229457635450673781357359291585797403295698090366777707935848364148783662705872063457634095134668737965917430282696091330266139895882479218281409519931006801790773769176696916570640826787642868104721761943442090690430371349599133667097365328874349922258277534505212057312754588548829076288916746970359395781274995514205789613343911984940912142882296792027128821303024355177269610461634317272202918847265600866492766478280566360125752671233459868201900600402288476455490646312204852287775302021014918907419366557999038532398259402487118555181894760452816828872165389207073747439611358886430920531174529903277001569652246865507587199627454121659427501753486113891810629935210796897427220822325270157900169107848088764931147427338286538892681228328071817973381368178422077619837930903566429976262036581023748666170346889179445065961210163723297310244593107532681905628467699466099577437278535393605724154180451118804481544625327320463460269574813156331494116684920401151442958389771996898777722490028082796528857927648096950138208062544429004992350248066585517310530554117029620356198503993871741274665504924295973421726646908546231025677264232931962042508780041426558392311079266250134631272732016132850103037181768802943511019139775920582314291021521253035798107843799071816959356577132070266539218732773312774366602653425165804373054595760015174812135931419933344587833159793068546102824526730254476751779864669218501113817105548793171201042515276806796058488951711647500738968766421684549417304373600301457316380316856793942062534644089720461317953717216160477562534112472703704776684194704525785995559402765309702935304824240631186317496144235931407088152107932432739612169426980143620684526534924799472122775400107816240213354196464507722553889804509825972316677744685534874149779610502048760758468925338902806014797112552515130802518487984588843222638805911132439705164887203868722816139065229548933086387611203866752414229184124592792687849975436934022550872135661397204788517595027472010666013001108441111812511777368644709829329943734627340187971250474838443514012868903075150594375837664036403465457242159774403955472696951247488812235297443135589643521917170916380136106434580308332932868925111891327344105931255064330995718082783329544720899772656152571577189426906142805164310022772878712433292234561979572810475321784337516129680519114327136122629114769560649697801490731622179396239219868487337952803004452900588495981795142595356115206610581229194497148914808495239972964038643659179187664744480711819006349385082863308446255013736406388952288846679526653725454661102097460913218008331673114991872920161799493646091356064183291994196925200424576396297674322200392557350380307631697923739952237423088288386630890685595913026240897980617508377667017991184233800955455078372046697740904962406057111326915553045401957360058693486124034056686662367096216167801006922909403657404614707739140856557566021332978165589373744098860440204479778696763748709182195584001552939016140300508946595672582443453815220006599307416876292407998430064036265957531239738645834632199858199086552897422604864429544696168563628739138384690311547005308881925821715557157267589484195668546497713628812830271356625393573000977534374599514366845068910745090924724727715228269207895616835153143830452340816695547605809280862646597217049154330196646322715507876931272638852096277483268565125054587540309128090108077788010228551644216296481495803917826711271320209191016816011772734983558556770251053966323237867099067365006711712600051801016846495635153164584982443124436163736841878452727693173128920351958088648646912867064784700193993504687371640431837719735694490149563938742680776433936331861180472194389697211665954682277004806423597875993443438247316083827533153951618407320903280274049347275772397619040289682776260187331752486812434580608120566079649399474050730235420163076573323779575423314607070756567848087967464831490090522323031797855315817148552049261795672226119445324089890960697691966387640210499367684715810249938577783500745982348051764503126023124208011444030142634480316414883503024751065074817722625306142726123171779053326638323992270757561973950265282599471161499645176429917933742346986057023460008192356631290916909181342854045212878862828311162423823568671318820096918991046029113240312203020590143872641123807643608892648929624632278882573492550639314483568782222854954308271044098639626177778039230905753734407624620179712974653142813239212812947441115786135343093594245139856814072714277771578764976421288324704783157189292915166797976481831204549563885839132003996628171326598831917002951644588012450239745190147075822607940384829163762043651659979276720841456280807861308150841759394902823729493448416795583373452199805946018431055045396492194030723877681600864445825874943871149892533172873128800397648642733540227535198202897484549055402543104153146574054429708112123847509662702481149346256007125100738283859694418608044905070274899075568293684865626781308109990840947646158719897023307208185697925187500736429806527456375235440820009313961242059887552930842414144686418811435796975278794996141573967118674294854166413501377201672104625710156881853629013762981823066669808873501122492253864436702253431037818308859533434808666110894314476349197736842750657730510080996228165014147295759682097514680046938199417696826817888350857883722840626646905155400305667205037370956578591710380780461215699923886054918393758583846354210684192707209572212797916460621175503705251113802138244107354475397314252366333374508298198058219804284943162386694838697377434898790771752705395593881263554482455417134610638359935991156153683308686293213419754345238131709535479866508354271916427933093715859385692149212868070301126823369775175379347792686313085493302474693244215506006815071042837737499066725824679787898197423620401917664950473075869176947454085263789657162613331855982280837906309007740793331924409281507640668207924850867020750654673570766137823822237653143394094590391447191863665657579746101511594461432815592059405783138645716108439142678924719597367187542926958505451908873987209729032490653623426680289336850000120024676017674999551199823445293771928111587173993688005657114611738768931899415090762177386472826259132698071342765253759448337451664004079182506533678388002033691189034864423235106623364158179209914107036489829668068133876255304061461010286432219628398143663196234217758650672899219839065663672313853604326534377791686717302433108181107018814773957325605618479347166176443161169720406203755079001978912628877644680811566162310754765872317200233449274761341738601835525168632502577470051547615281261897278890354546772529958144265018812413756942963687285950037925683044067111015527284984161491846135363977995830988048339922690057157719009639550797333575996961038895360841654062875932215462376561319557790172717257052022988742647064011797258323972420873150003202020218337068101862145292583290927952248842846324549926460984963949755133737817954929823428872181770503763722607737073686250170225307771577689371269058629548059345007637747221898844897474869573317084800454693077334574372597450310748249677364936345940422130335373034182996839259218793319978870956858014085975214738967962666279669536754483376750119530446369107805608534805057385312374567841186343626168503928899582973424070587829054853952123036468129764261352386405584508042206372269446579655148639975930950058741073321864475066211011774607506414091525892712494700118378537282344193139361682364291458176439443515325864416158904711786527395024626274731238576324189307636580601262033287696274838080787841399354783380871193839866403539803720037005553743262705478614261660879972949004745010113302912238434957081832831738347353691534575628707887428442441222875314325701056619891673496428593998753567547604617735497710492714106433714536952776583942425252610401881260042673197792300870889535815354418234509213205176332081804442540318537831603562910572849149469605023683582209841806454866742713866580906491269305520067710046082272016494617895674819052416715960958455263259578975918034399683939525233050969037020136397314636871714923839676031217821880330881302441409315830116017203412839046660954686827053195707441158681857233696059613329278342308682536710816166836747270425797866039188450376822632808256328267494438743053990640283140533243694269150562566090033382830554204733099208317283281270634388711706134325106299480310543933622325542779285062503931213636633601424407821876498284948310927758989941928107810400235993549402075858996921654293609746826328608105069878095398561836921562626845391499360122990059343820630354391766641679160564390643772832834008748120829120580307177163526042120039165281150227551351924684960649863371321356684343830426690521297067023581048427638135919579311603475685665128056415317333169107644874318451685894827537332504422335348661367911671578983553788369565669339639989167578582011288520648482732822443775456068175043455838572289555982142378651278237121227324989035763254305404312107307462339946252214538582196456540365689431866048977449477817985628788919833694272317323080178129729444393357664067145571984984707412462402727482052222594166892701773354468028891074094916073824427636648400985589095548748482645325654610342661656675741579799942293933752912192571247023603126927347663038455912310828046842525340078764574058950683568905768238989631761864319597511297788552405172985321379563106300171446607758955811960189652901923283690661876662253999311263937417475299267990708852861358682873900878664957181536342879367317549711679441285304571055944650825973243426456309812782817810848791900035361028420982818165461610712340359567642604503302870803291243701798262664567170673014084693137008119343759508113146323487788973991858227036847497958147612312629526711600552503778143577148138611392596877429043247509254521215094839251216562759469752201620970986898363184689764792197260324743104477975002727486811002506565535031298608162753136168968687910740250881545952480288570279149682446447579473439430985226185221015174375844228543134992537166765106238690874910494022679927697611677359657743993608621832653140377005624632209380764426864582625563007161612989807306629247762355840672626451906894851949670085077093743849853634335438641579023158817931205911939345482096269073122595902568901896340141187266540919859436724829269824004398303570115405050711757487447079247578113802146752986956498638809255200677193006256394882780881234901372328978839217562600654685974007194580813347060289578065283100499213114776825896928690166856398890679004070386980497453064711416671059203120843339786358101349056142332559510018457282477638221172315397397400230414913316156074796072681092930276584055648696166968198307416187920598575460914113931526436779251136558780669713309148796043851304460731021066577794988539552134471300976572727727416632341295159853639981184380083083279920826111965769985570898181403587092213381177362342764064948383932044552747620109070295802664817420487697507501278641415024933212025959730019805327866290683361029928853088135951270673087058613749224030926456877280092227413744505570435988643666708091006134045518902773125067356296793539482494177054948645013889586809514196254973423311847890392844283128478474760025608890578928587108821391991564489914215113065738722959959362977219873858896460917025531554586621218401304502218476287019517278872858228401720463669584994164309562359470736904625661311113727711286256640677943689220228043255295250623716010139014061527483394128106926033921674018180913347348921994486262763418131935383088085915030268150646192254917025705128539529739350337972555559535366330667137564932756297518037359080668965496227636225085294733551496264494113082936530665692148020529195487309807444821913969540918943715292219010125155076205349380710672716811902674244735705313984692468247050687613553804321792459599284757015233693275800655349176246491397214035566420567881502530562952856665781140756401652454992228579006327365939798011947077098887334762027831909207644704095453588943814489638010651244987449017052420698043170224034150623440623319572168882699584644868131583803516178115768348592136970839730744995953921218412298011256666623553922145356060024957614105718214391874992503132363436418809351952687944634635564730381156507226271873179926358850170775675796256983126231867921178751709497949529844217295658713346573864224810853236708912719992189388146570527826267373410275149466944052580491125569880162435435703350089799903934540307077970803335114106685316614524119667577916105500921513996541859658536426799791156860792216267250271425873224975388195585571422922492930877003595723980883882603314715514112603002158189661442701031626843198468116907100057442371410694319668107616922180282883176543939724539052045744503757754109563071826776422628599027229522467079355506214337962831558773651029781924732817506118050688962347399088572929108917319891494980066876211042784377185528722361601093918496754715856078216693696867138152778103097888822796796389823374694425993315145194750771757422944893306989853438900143755896184416093799717521622900906017134637235327583798091137488836484775118978532654805143915157552133479592069533190870135781625907151387461605978667283437365634114865765886679692744736131890084979121895521454278455493652557025208407799704923004952813361803129038040911508001231710264241786279727758965262834605286727259288914503122300666087190115906251479179240299608783713866392465774039289973666299435398977012931797058315379083778353435896037319445156172217184975989273291718802559723457729026887571789474759598899379587186113102839536970851037763224384900866617715520165062560838644902646954150560768045648425531140417822395932166648571351672333096360265799027207363224357890469231627203686968690966912867956058662154091584691558563402283769563478969749468178027586668019932995946110349426834390818602029553665144253372712826222921704417488454590951490758490002108562807601460587397132549078399569823302504583732995821378416628936121466222407699350973446378012233068442284242248998349096382229368482483890706951017234722194299492794855049065705047990724982587435687418171344504797619607025484962938750744443443198016147050233637509046763433405304285826498166931573276492757333337955789615404937105331875976896755655912628854594718890480941411967360101650745323708305803199049351635426955082583236841810070302602117034572194482751840367224260716433446518746577558347449600526692093485296482341429571981565311165570150509551500778846878939958457519870048704379558613653086086600304402164976504207631427005182462074224384411172004891854956426120916506579942949844804841658332960496657258055565338457765852537333457629079193715503694722820120327902268153199409775925233080277061639466051957373238863132634922825035181580459341405709380094030992019062276305921812786324082284490372893132610009660413464603276715250027865392346448951921009899452797302479919305696122986274922967973535180862271831942053160447224545540916708155259771880882831812301317093540873180935129738421537174844933913145693095292501376142786041222252422902271117441676357112415266521598428689443897693201851291653735968858968731686085709424791056884730819900996148585459965294743938400532454914436444091463886850222704626522834946417678769714096783938768432486406016781560671814539240757979664132055711374353093292687273452941173322393957710424868437071654715432614487916918338819427414925775882990427423233737861621457369064914171596699950203536587558126830607161088022705349635142405985934037941963679276962679519038695446693504927700067342167274816833237626789289505033869555535207437156533021626215832068122425874254319768276893078064187311744963455685437453993541830288893233335496100720570669369145148773745082562759450984148994583058567786865110282239788119945757609163235987821506078335597893970350165687039942576988565349659791244754631655488269880362762996573823675495850134947366324291157163335665608157769094462364132847867110697230814408818522687615513744283556616995450954984593321658879703570149716175074847781185732822036439791084820781235290381853262270280667205215471864127554103078680938478111661994388432418989290691550928424348383757036984016115777525924576958521017735647668944234514043330431622648181352607814002144694346757840017787207698606433580731281321526091414536523183996500425913118052386848596024782601655119652311903287527856911935949693381498726279863965062211520438879496136071597897291614898537919813397671428847742204934943134711223658983982842245913947947207807081212992444063275957935126290385432105918932556530089898006421073538256566084462276440055795614949671387025145168754233836816956883983646501566275265035058223675932578280717326414291030700341668729773193888519637894822461984037068574576614439337827518805235003482482549968355565075262289253998687965219991680486287980207460443721103021447056068647422659988908826385766106116515024612078627239209357962562174196993523906686919785623188908921111229052135244572488418257671957101373118589043319176934372813507334834604304243021202895114244681987147437843739233367706993201910290834898937576948519494941062126819668850044129087203758857817406444908729426679820297405626999954495150440597287507350004428584644090622292953077120535003946714242368563638851829474554435744147798122197044545792395898499496161427563862707821131246532932811170963253493669991966508523537111257713343943872759544218247992714843787601399001889416596781301013137501691643836617842780854701118731721848232200521250162106755929280569064283578477658365554070668942564732876025088307009502901928930597906292836156503532651071648995083110566196099301888353389294182388007921479794273149164333067184468710075154737270667248812124241016003663329089823926714312435202846359593534202463360056979798089462484553158735689098181217972431772148389603369138869882897614229863314077285686908441357985378337237202234248391136977586683144442742763810305017087554876784332693712893318482317787083846677392763278762404591275889107253628127852082481427051392045784772379994812319871574287764620966730820662321608119654948887425867416873188183988797339933976911237959383498811286020554059928062199851391453924901078866185002861554149075363021216970021894471913089483305446598312725765404162097814756732263289325401338988955652922222457912333378437632381250504248949828360276395747184639666286194656213574721437529375552505612016901227251980408488298925580080706725068387340595016241975022134730764140777701515453643936166860813183296253589549967780857090798586988820245705711832436070193850825616984017205557097801790919312309879269046334133599242259410052288716779763918499530251893832616971396916903107060098866878492133552935361534147414511888939973448660317938658105193636376061004446900000486275931164036069576274951954438745801541278335184240218261757983794691326251403375090195534122285134786448057906700365565668225991730278908674115769920063903827777963779813110898094764559098192418560461057450529252828447926523050632111850656043985185870128471276490052210286688746212607255363185951091287627447043956464916248080258467783150200290724082216255864345604801534487376766303350718451663405918777816542323537446176615234301090450657166183562694598131375700571445176570424143299196166269817202647382164371159510350162312913407883091352119425413531050803135840031823921700284630733651391464712671537434902612715969918897652912589701010840332668250501994993163899967075239435255365504211874681272465485759367288783344591954314258608735646197237807595896527910880980085043793067108974306551768035964337837660488508103168234214416206606446084727601613675615380048130645705340716320156064684044030797623500050758734246036492821302348489750386107244966871112137149001723384267049236283156688543338914494476032852417815206613981575836972911665054469134443591522191557707029559892767167635703626395903768810814682120527834406038771064633228725323574006332111312363056580111476100982737128971794695426994684408725881124544391690503301211831456897121377555471784738770108371351589829623944805948876742247512417292737149010473678902768361560618726334327655070184899421035778661276575010132468422051637422325276441086695625551564698465219236383222844659023877618794026992381996493760065322299629634438262258914543902632946095326074403653741954944140200386400663982041385684853545356984641540263572416618406533881561818577731274399794867824127960151841869334115983024814359067995455977985443748757238013711969703083050637507296491597190535381541371560589859858497080574699619348955917140915401440944226030793227687111176005517546124526376692959826313334758610606889933247413636856617113732828881832192829575065828382030001580013586448956941504790742368361959079837062890642760760357812780312172728256662952074014988103054478089203242511267921737993635289064776325071740963299250167001078948926556506083657298804114076694836817174571296294298743251195941035727268342277202908485825225965639082419444883516816096238296910126690172401032275584782952158957313323243753361924187674112367130438595688400693884322638507007515282084063201762152027304870389215037376775932723170584538355472176304662280342137630085432960504149875100065844932630385621014289592517719074977374478765428255441582587004736122279470547336756830753296060483444673848003646595594311284505794749612929142971297346952881007789564501506627315675094651332913146955477379200969077640325830887277152870792757749497740765219888043369938216464944918124606071567404259683482008932015409988982633852540482915302270018994403298216368585541380340483793650201140319234777651612063278403216569215953507974360589982782681458842668696965449006625412987938564638413737725315815709343832774291614243597824474812036831412386939702182412076095126841267023578569525664992947136414988145904133082967482300155967776455014559000783725678929151038784084337523146237391775611862628748909992877109170737341632205577289896749871547129248624049359807883350113153285747293076605994646923381033146882042669365282549456033950343760480690486859636087043042187684228168416167391364551779197991853944289437920438559599761593907640065854832298898917338989090888894539745233266263522972196112336657873141008063305609831832533680243317327337103749905889151640664583443318424201035777172445631689560322358804681549400318087333241746894935977945570400406104178267118585668274738202156465653220178943437280458139668074508546627857516824849571792463439641919465870180350768086021915243769294197194446507451420490917613122521562746074281778096124204766570278347167981825598494862451833301631210744808197836051018263384528504093801765151599138277051584750608938056720775169820403644487951194269677614024576138438786703757233515982587905413434763411215126622203456344378386819465056208510151884981068865645139087480654001020610942946517244534531340923230478945483916265596508588428786360559857279993774445147841670326954847961389402669185488533279406338383810742249439965077773138613805657086846137716183053496040715878618078456719424315370335733568353587239810956921002632278311217555551599622281274088556520528947067924972399418120042180421880856453549043749846721351352989824265273361289786275263968560981673589415748452705212513287266373723859915919250915670875412838634785874565202202978231429612551222953110322426375704460643429416954563220117982495091307691131973821222345815248586285046405604773303421382070600508980579087692583952703027917128463642006447145572023972394766837911385155008579061457899109955898673771212916573168560287767577039325918409414374971323984865104671561342271757709479405096097507931214088136191837315193552775659397907015305064773049523409928015510104019464335631256379896481819007734159682043945978555348922059398885896741521627088570249883722361090534207046081421273842878255458589617845168316646147354806946762922327773049228331918242961292347583044354668999037646882211680055316760052858728551375091556236889474661570944232247689640443355767633410746940463010310123976746003331299031717245649457588206747803305009392775128115219654235392234109178231153742531156632726009598120267488367101502370146301014953741421971665462068446054855271685590946114465313260666155320530115789157268543574951197915132171180462596067182348800344143150065445994010190641105106033563373704227444764585407371559080201150908419597105379453486389526393719368910431871637799960688080429625617204656609448867115335785712961001407469018776372612227272641026670436753251787160720747669829096648293055232140835460121881509730120120254923725803438799603922066514512864028552865909306655546566030936640240269623128186623131557361528515439601740830622267639380791581481943927472368999837039651922471558834131442040703379258475965115227653452953605117061104283460366444982190384984419620240887174431070137222872614079093814583393868308342104610798254385417080411075888581893688884761906993636222084846037450489166570062048459361716559987316748383474288391493670930443903401878566231558742259803143934369673779716497422062321807221417448943003813683811377107862201457486056623998477380442684327428634596978487127640774288376818885762701378923979187837913358189665142837750768952321328376765890056030529262448207817386158275657814260905152370173460113483454461343778131386311067348505100791599434372085291800543121207717811329489814467091871959401318449222123546649863563194180515835173273867867479942831998813051552433587789316766575723949787109902377832944251952764912466397977285408355515655942152105175023364438752330638445507779915273200029200529361405352427125958148407020410276378189425028486588596306279478742335881226503729117041248233521641079141220037393246444775090867918241653054067845376933408524913348089468017909759725839503376162759069166800086111523168236806246016073476764712689284428657752861467374829605714572363698013088499799631052052538789882939027853713238526443937371653742897105691606363073803808025003999221388114616853054837629252326764612838936299806394627583648353369765094376818126495226670265252376058691083066981574453153527745809185944960171315208263707618186369637852862032846364531555212527357100296349296459653914442617585508514213698033417505805200887858455237702580543096881828376899741353192751589682978297136629079383658968896406357667647809352835691503453256919298993593977428467100011342822236790328506404590322515478918422061655266574656508081735534519781534851486660471921917126774731024060165397217637923732758456375491481680083955731016450830908529293759772838998272740986585269692122825877954125849531806802945007492255226306459395492529139861236144342063440384290517305414556233496812327559205656692813741582940654988553635250565097349471671774333501259045691264629140892810138478268267247571606747420670757504304700747438122647568044980898025557299231407045144334026224386428226693505312977579882786708744353951694753118645472622914438319137848639300893724991116787214158239050215473265421551439997148858759071408617396605915027517721733556845541697850936042275072950176006836394028862134831700958546236545436551390648503291619593091397281685687230843887726207491222179346912380822388551175619688815974337319543809173586511749155330349045211046726895207711935164649433889540404600024481867990582205242714028322247307472149318619796371493110184043581429371998589972799931460520665660109235605542375421390855329562562190194962551030615799320304053774393011923590230549186252646869420302275519776230422433782383632869161024267406280645613766028024887950058591416225100022046710384820310473084627110437795174313524656653033113338666621301759113114309272320631758225451792344372432520660305586755751891176210755455241586018904122730371773170431519497402076808131161618296950367956910742773146709603795046579357382199760774419106400046875948528788362641867014891151705142587166691005702118934512729184479854895156550830319617461775733770630951375206705937324380672229917531953384387092663730647139891386910867566384674821537456694411997456487347414718457192281437531393557278929125438490866427106289502722365038999451364819754294397585845099431283042365521129958746413365008214895769090729152681438087733022753704620969007890853284660485185710565434155457339317788340385511158604477552114396897193917534323287533136758729234379357713068188930179246968925548172680269134056334211061295329348818964866663348895264796064564916480381930331626590082076102418263008145409674839492374968650203527630321194165916394347036862602824601398223810825629734577728337679415283576022361416243757613980505592081082938948677025762196740493156758669596904369610996861185006785429019198086672764600094212562130963438541168184862702412095057418148911032265657836435933484097035748031372592163062615037197544781573800137838612742906038334882556760309217779249854553741853191023704415289104114483700404009571047578519337715139830009704480039029138625456341193117176977196172546055043303264664102458931951763540826240080165772647917702797933554610047132266467407921800391368239535346801324265445536813651889871833069258988192198535821222741907734950095215505072903526787986879574136531923320905399488300281491624900879225894589433296336443533685500546504838266689553510929977486980919088395913128142907395508004721656957278275563789133165353323851265035192484598463952643581468271980438877567483114301488979877353591878322799235203026677626248141305615491940162961016750110002145456347402258056458206428975688095368619731816565057913827330746901573235172099377973570341848121033387183225489201871569767993430992016964677073148187957264774221347792253475502546951470739649603744717302772414830678260482097930365794442130982987784110634778328716804713656531041086156869056933046316461697565416551721254292619732660393823682163000281835404389193399347283445809994588292757935455405797295292657115698608000211266413351314390987405482102543857744303157705240313514805411921759483667557138552173165014035908947778334949826089332177666457576486508426064740765564822791367311996242344284911372017757231385602063142485097915576827292660929231620799216385976203303780055881122658043446581077013515101151106855820137871871399556705465641188650547163775651702414566121405752838231065946740379542654172608996907387301546210329123662349702943748744093704866219156516183245915017426153601843550705102461922179005487703230102172775691344993731174184278945691456085764485197922399634862972132723611901236109708495987744996204186537596527016843728961887036402277331035903436165231428617893130490855877052908235890585689008547678498257452492779643482487582666900911383177392401702179917515957116113460989360606909408784236043524876255791723242179891526102977705003616576622039299460962449739470963736051810890889556049585556647169297468735381846482822974896971969742521342132329946838367111219696092906544343563759738236328839947185949273068220038953136993240795050209138106972531943375590246209287724227477171374467506119255561332513173551985292296429954019412728198597254838268179566587727275302248447913487749244071526585819156485509793070719270036881778564691109509654086312945887296088807617626005475094743775450435604412147769794873880738061100684916317124116317527611284288960569065622698103616985928768581671367094640012175941104465995292908401074174495168411542987442321496290369738234336095719569482970559870645454888163751907196892939318289576107002979044445170647982754419804187473044771073002979747451046156628828860943756544682283005656041288520755312785036142411998609869855824532668285216042442417064952957414821270959736680883831080431440916495611908531557761246222091366193388316303002418122864622184413866188296328680522040214247266399974907796470112509086407737465342664076721687939707521579222112026077665993073286139639639128267127708645053798432995627778652119115546259308712000107256842267962145393987332649655440951913136369412826165041125353397080701092410420527754303376058439827868500071685656480620155241969008618543271818599186214864408410893788295785752829631369886259520963759949405766026033821757245433561097029823853145543802428265126599842789795156240280910140512330409981504539228600797063082122617420529993810659249785179610414936783488521646844862165821229464184460897436333446740684926032563299521683236587506454279583815680442942644614623352549448603882788756330355807073606778538604706787951027944656414310558652678546346359374122589806791160840769650659882840404475407546443637154128685841686438266922951541151200848164927838573169322088446798124101977746604237195346212076266305546498366868954638443101352751489715128321101428519950427504668247127871593373978961971326173752176364730519934182873914272824917081015508495480270474482124318296391527845033794658563818408218138591351172613726797940436479343029092637133992320888277745643982176260161134628947384743854470858568338065336232492062955877906609923860567165218624075489505275488777423581974872006128346230781130937243913482876108288018491863383105091158464527461545131078437892990265715027503887602596624363135535696071675482362960680990540611198978588082143311793288036439535853030968897448480769140374268998707308528851930392354050761919816457644960113558944772070476848831081675494149256974314358289881344077054388950442651851964993568230913137501627583165922376667228320837766888397678888538871156055799908399612446110534244726948282618788795433431596035179400336744146743995328787952862406273961521557116769058767820091361744115438469838704567183658532958883269941829755457478119336381541099861827940991449594667256237049211731532841777315120892909760466384043120440116548475452823013082373061546895386134251358491855081827770576734634826620126832869743259802979212482628828007354688562580678288990926246654307251077584037216435904369254163601599650386627064007085355304114698209861531178815817079926942008308569162900510474659951341736209761173548619216842752624060302812214538205081481546429445918080355539777369745596628640856352898494393765680859711857246736328870193100495005952805483942113529972806874569807105848426030436177228836340852710189761913890601461317098693681654389918499233550857483866310928008816274382536691481409468309512887323777814987712207825904379288031512707500354461037920838225728835267252660377351643299644976531239556392826149389078575402820200199755644188074934466876576941769079285444951093791928698083268854851785538639474834769882905100468013957653591577330244462797859827663266458851920127582021556434380191973397084098385830725176556248823994438301792339757736779001181370450040672792160246631947984809856386490989262750825926433952100318203606869711171220243360657641117554106760904564412471042674072024947037989847959205557809387746237397802692906772844641014007594996879393823840817834570483499167250167053106076579192051347413444706001015731548555152933722466865629193602278670385389081418079582225405284699988736093391120710483456849652681078410536486326980798131744193548790912076154802848165189336813661319485488882959797776526506314146114142033780528879637477954911669662520657545603011583277372077767149126159474270975297273717362173933843337160577089205587373709794105630626778818505223120583858422679593249546524146196682343926474602609863418936768685577098965770391585841225058725821916496646971249987394733432906751268310586585652795793383575598508654941926734763593595890327578400248126102602048210514779952470784052960348562588876132823629204550672879321887860954418124361457658845417924143574551503137829240869696419178749412092393467066544981139883338781604762029902156862182644200439459620988662355329591250568543049510272547802336806042757393455731458308909042777912814319811766686439896828478060270916380233300311905502239135799831723062843957059183073636485381568886986746670831962558433056030455171321231065813374245085597688913562394228284450576626212356205746161222799402887759608207939643593535591759146421112423369471671504108338399959070425026238110329062226355944141501594590818608117158078457901374103881287271553385659577488993638667112072360509134680755255439035732830185251586792391071397699826644629901490410680586570370697795331171807426437660324156599077461417772164349714524773323123811701235051484632594036488921359670010280436989629332065906779657765584476801602248267249935873907935743645868066211040160333730068638828972158008471718725761158628758252151559663292784163906254777517573889574650958270146971140028425260408238126493173713658966559775785475805595385820073624029826399347662572008401150451870642948252630992795678789357805118669863467249678509603692789323097643478148095913296358717475762383487242847553217236069898653329681744794894722448039245866300504723495274527982547817915063579992358981205151733064992995242568853170324999793981949489952141134096827319883978661565801702843299981451131572575600812361544319437953062790214644589427909696435059505268670618110534832807760564677269777288652399978513296722658655384019330989788290719768025171966676110595503051717395375328142707721229103343642683601376690574326015876359171983081487887412252862145836746879104078825672765222125656049873412953965547693746630893871623372705608251895363669949310699448488206138591981674911870823678583550425148897998847300121054506937422228361861239663531882115195569459557710412660439668752172478773974751514487579159958195316309021730728534592011823185766910584976418362065844238436715442903875115493194834413370927923960654180333429151584128479346745093078635558851654199302563819280714781597542328914403088131307356994040045269008531961599201026871438665292919074546316311333073078861766376682853141430156107348812355055543402386306202922269854653832751066704100323148180453247000465184618036897142434181940905464839985053564616719448580849140541020514571589227480012722394759813670278436034273568666176471125139059121297581367073893327690129792400664908624365713815581709369495118362936409789346754263970841117134760680896495387961705602082563587312635319404141707743502384128492145753256675587514379231289656283662782211262039243466889748480750917279551020088400048290060679366231234254241588610033150982415012641346545551480903945443419677495770612809101390117452168082433152385593246221526069546966557409405466731330461174712145711911838269815903035413268159423470597415670986235809874900793335848927929215153194055827542608040939974480986552925822198247872201114820806624451001668173419327024163606318733032198312348851101688596683687790467810372539210594783167175447251742181120546952743495573206017296534787882780073199021861933765250890966215264763016031774802014515321190022800377188763859310369287603172608195443934911403157097413770841644186405210817939063312785381702695406076982970131113845245740039940281548467236773087765489785162582418236773413832174684688052780208618984316870928535560885306394839996779263674442054249169865684284818402794713908714789951102483137635728767449893567073424883398553975701638469658587233532929930023661414286880533685363130971133638828760159046008807392561450535067488802852788929397542152285150149971480625840698907804821657043669184493254607135088696768026883522177953058950336728494049241073057615410962992781764400796025266108838189292170302130591255072686614042920578742802227320649218220793880065920176086642240219655078844211086963318778255765518740582876349367385075505019810036206320744433260838167699157687821005659888071942975532696791654740187594155726389307313152195027453785873054096116200688506570496800752949222656615879276721808551766798371301149886515638902156932801955980274992215807828826966034667462142655302458371848541615799748728900947716673681465600914418612451789150365961339364613295723856977267378541792342775543946971155669107992454933119368315962523460036478740082474926817886131050034884170829283656485772352422103928305437603551258211178774384098411518935111991089339517469776737667469052642217951698075386368760671537366633181528339026033837254796498381482156224737979368092143918278003432347507845463646641940318571967951487436576796098296757555045705893751089666554969541113460260284564292248829827758484838936744727600393030804770305238661728605010713508725952687212814362067836078574847426983582399091973183413809847862288899056885756651188939282987402646018928743791145070859400505728949675483910909990521358782548088924710616784446516480365632817051185676138140977706883088506975783440719695218896391183493814024709610140890856039141702127593456041409540880515173551656488143660379191137688610418622596243532022681478187946947370681528170501920426932190612187464095893439661371339677051983209508767625344645688018996093847063561792900947182916722823601645024243351219501206656079723063509232719437049368976441045957066151104256167729931745079645139503256086034166091018262135754230730592317799787506414575800763272456972286654285352505823904601799478416586513042203995383843948319038268247220216127899284012028224797110764310945948767451793621547044668493304715360744574823958435684181994715406182210454083783639988460658619888195281264773554932730154626099929939952715031604187702827470408119367610715543431768485760507581561463663093526562425219938797182142315446160723179402245518214341686009364359748894266418373649659030621348136364865008586773302450961814654885415314554742256572876648084121774586751838477969792611967628403773835307773406895539745416984271482777561034346812809398901343845914094193363590020362300154537998048315351199427864724889001389961994875914897476476625989334868127805382538903693870128915885082089848061709441243386505117988522559888154827314747063252761040397282598701786787298954283162755661506539624199226700302560544460304015778469278326111253160586482890235458580825682189724794288203314205387126867733657787179873039777665516765459955288521816884848835938524018227897306262039143642784437441594224330360508927530177774216795087679024132879112615171909475938938017476912809065327481873071179328090215809648151573370021144459112062208980064669169433687400094323142710156514937228584224070519817048341725970207997243309289628974567524250055396917097306098440412205095109516668608432096279592389725338785990716615448598351773976446061663006445538657366084330962965722829186265918368769877900297586448284890356876503951333629954151538507467199124179650039443552760248829512106662078013232811302681421732388437485818220437075233457112298017199286942280443965316572708309908630917871368003610003806500497585593344732821157080168228540883934353981315023532068401594881718633532547158902443569052761552717816012059170182693862763698210312029550712111188658431749725954842912571824844813210718320252749687402485380243898272036756135313374737660292982728578636344796431954573697949292669049699673383361080009901329325084437363834765721129082446121043157269885253500793042795507901198225319279215027938202662246197056673362512408654600578309869445505893757954747789188978270316170120311560340129481980376700313060152528126654065378103044539857475820713115765751544017301304219418879383955166198296769793356435053845482475976687166323493085762899315912988681209228431406172503225246343500451899926510971789771222114968271833024027940058400871959806575260201289562773264119576026671158272728946192414537518223711513859744516956189644115416881358932825661928589895649073908838081330484404533625978159225747997233596294512494275208127070946150698119846769152228350420907237256502347130580314615986920987232758695823788044945648064056711832142158961897819118350729121038581779508555236412132444350958841688782797543148664901598472048638847405353524141687513258070462629496353569293989113507947876813545647942578814566066161514276981753166193338092275151328333553261934902836997230500011389596548710372274570909523917384466269088817330909339229941179439980258379195014467462726218335184104270643351294105618176694298796948104460809129852821917393172536867997393691563245650524737719111090313543419455087183267805823576973038942318645747414201405197212514778499904113732715138036299904844713341529522371987847765519568707333756460942045695150372024040612954648900436599274602235021514519837427259006320563308200150287165246448415701079507086298751499427156408316227523161043366034897561164368689188434047730501063208820160093491891393076006856466031084122699380181743450292322819135351952843257925471365388796845638722552952360808783452573802267163298290358990660626991286399645180808498763582571412949940067107895073427133418101086723650543183729166997748521317991725071722451130426593552574361868632425650306044192528308252260868659363557952241453510946168422672262975342458684172038636371147103689523572306861174396590230993860304760439370967098909417849565863597408971874076869502703214117418241854663874436874185220532083394189215729966217544328126831994157807958706414446049240190672749511084091467898785685918858472396545688819715091490765605040356142460544673001946240838027900618229992003972080164547346111230647103535613462941031164114873483916802271171994074518389588353101156475924122826819371067260547286199901108538096833979168118969018335009107448289462886202505612895219988989677957016639527988432014987502826087265892286712917153517571134281753326055511701403795013620094002227127983799498874226019630400813477648440420447151973499265446649142588153555256421985120745257646563811446722727067694085414555738586450556620077333096308839989348605312161672133998592649110162294077199487735766469333086463524927574723843692426837832836307421530423162555784914106299137903493987216539515252306726064556326645582568534194922131188442403910874936470832178198958304000618376155481712360025705063800072891369492947137068702981910317089636842096304129944550461849770982849141560434442518994881214767293120645881549901824608861188346465495276596538385921740314070013610089158661105743080381511390034654957988926547327433369188057712577078961529410555709040810635140524341249889484308989266940354917825066645009390544138085172907925375789517859833350499287458763108121489623316257164608620203869826439503894161298500365036462171491017353355693967260074786360903110159357872873911001051402499331814820083854855602225392935979790452821069877055307999038927659282855580529454301433904311881085663935975364529783332506608911464859051433652347713680727786739954841097369523873950774880516473292954342776640247864802067174477136515364961214129201129012740915438444283632038923093489024466055034492432696764044880440728761936038843738724821854682774910343302802700760672008998641290000891193524919372769018801010991824683644285055907008459458891204743184641320162728898990160093909913155345982446891457547182436401956151496326667985112978315680391727637225324604674250862614313125078312179655415129765316382102583907167260824020386907664838923981756403972628546584913873489536361906517202024474118882572221324426353236171760216730369965967550047340004882163229838883711057311680332616212089797086427721318466080846855468135979071371682602142723733746495369770780470866348277382312321049910858860653866921593952347505897271110761761831567309607228279977788355616666048132192306861298064468846624737926470612277287746192069508724898602711739456993600724116113089163658553795648200744163179644397985895351345322338156083430778673420337135587273567928534813928211026579870441742260886868389668320159165937120828561947451700529260889418218485367789770995420290518535070049685681107777602022739587200256964021078915702961554701295015660257349421746390208156378589509118339828519296176233158594042287558243333708218798216225281486446644292794667353133995789559162849471594775961436900189495879329265697090507876927844528016356965556158091712484859455091468171325428985450017305320464644245821344547303179718714853247819960176406669182448883543601614169645798829729293233850277785587917712536533696201036390723043941963119150198441385937906343448247835083377641959715766073270045304123416357235956847543264102108561162042777912983541502388607544882337433878733576959017150531885435154734364214897360692867230327051247065807080769138780786345024483275050741486802552471766461660325766632904240261100053574167242157196599082054647250021129345789365997271581115980133453971321210571670616008153120916417614083317084138394323928715328237330536629471729914800456388266702186833500850411756611267301152762431881495920491536084651616947297089219595671650689056961451166654104248180837316187302677564702571373131317119480030498334428478706556938599182904004824262928896073468761694163276498226661174172648167443344223845264390359234207640837471345366435823891925063384896317648231891752502763233201191473873338927184805204998765857038948172515340945486801707117991216352685307106067108512816672351339151374658302240399163876157215355561996987032060730154905870037933936615156191504780977747778520006644082430845073370495922917447626682065452494335357271734427158401394646299722705403224607824356187078889351206322560980262836079313205915831113945959938597101498369642541048367779623131515617577946132825839017274594453282340989052319658163937359565959652248084394143885733473642535037308261017927312804204167886239405190928055262527256263556854533566926018419450062119165501394962894170489707200934159467376885308241778773574467855279279555450640073470270450524784147947841984659085541308892838338215823218432922260092296958071907672565112642829453266619418095569260351114316083276858700599221264484949507817081925603369362963497560870844295236441002850466663917716428833843334177748746184937607222794946100776830716473831520147002680795576322431822080439144014755090286099392658656146321314599664610562644313356227421949022711772236702878912130296369497545857233969344516028966573284813808300412355134445561368131811933918101385017412416684656698723885455753586436757176393435773400410036793482043622849877542609512763575017804171538356520475671259300775156643953816261571089128428551773340141763061388116126443327989678923875936237565217663990484528740401756819776421250005615945837346445777642380418210344381745159652814279172979413761255148752574877428855919020606376502842167672550631014527503294065932075625421062232008947547177517526390690988499997487894630448281723562295687674266474198338859289056664187166304088414439159633532055248896152993798446448596364868872595842426007966457160440570115798974552434848551768862675802674802476824668933917904861873286163359160685606244076527487273133440341122193659725977135608251062328314901386918556478853274672209419826073883406064756523199802266524346322363513886177772936949982018280873084124047789358640903075912099323946980852821502031406648358952241581333626284952608530098625800186715280861475113753749996118583680745131548569524823373941327475380797894252678131202612405105741690493237265848239197579668056917552198004404745327542969366881245905146050661642305389435099715801840108227726509639159118211032473846036063490901367373608528616678303501529146218104056553859717272350457011630126224142722842823565272397933302137334506034699608054413849948795782587430800183607189636577644260487216392268626264687620074187619639729796692130223099162018017215254369323465275741454906483275501807140354677519642961687648004025374567341589706635703466357478302370736613502638833774046810055340735103087889347721590592804012822045805401506414104240787840057684852482799288655985178407870773844798284235033440847643895356383511557634303202280448510152444452099599420268388269314168420479014568896592703304609599008805606610905098712471284028774812448994987095472506972555959726352230718016960781500264995732791747028319938786536681678981106675992582363585774311665181107433045363530395744380942083253600181684272374384367208541129341308726436638456273314359403528670661976894249254099425075875185338972093128910457456857137513823500069608798849461593944901516917225957543170102280676317166276141631064849407985339164140210672661089924301076866211663331479780217382025412468027071432247769621564964736412586654170703970056593487334810602746720965031409501714749503684947857367144371527243622888445320919705948684686693997639521987452901342718008407312316609593184103406263614287300927737215011628652052374075541873000927694794659868962937513385518414595007761280712555062327417791284994093393549172487158683917144179637924841474699212730230809858802449267010817581980613834318855777416467633545075804667255252084078771952345553788830330747103210437643444725694992827429167164043685403160652611549922399357954828655901401617634424377284564499433172817512480140166649184824683883198246112094659701778711779272897452618018642130244559785847229306667037315382600211894584019348650176565390240050749392576953124816324743317856453069616628437232981877822445576125175807061729417072685240062544266140406361543838949800409260303503607380365127781837892568539617290042413404996776143908798419393886784656783409820853027491819304374698547124799097131672671878653603873886989091877350642570527123786521775991828363697581101850561142088069053395818041115810226566725744352694901811559523970001683172712073627767654237992682512145244006691489781587230223002773449840692796688618087078452577534816802054244306950421004067465113783511191568399600040734301923442034833452613411914528925407906941694766759613851455282486337713134950550304571455394681160530888953068696345184026202274847019695367694421754529855755068733793647643745800730678778989739148260404700930248933514448771173428401132558677413811066373030044613072767324199041617410752628568658129548758895764405661353083118076306839090606975001821676506936042663405454699839383095733688094424095195263256140450978693433390282033553535363699661909842997805702263052260112470574394219278621148188744573326209775200466696549657764168705824408729020514714782845541444946989538826512208348389034465741977375315379451327008788804437291579273555361765439181733489445658585847660330621895470550714144665330371567086156963613991666090362300286505238741713165713286763535843040102130858785818779796110926427536188705328472579167971393746028437561049582782590010147995995283209359215018793217882327599998664941678352112331003809197490229822455195100064417891856675618481976456021919174489358760020955788707764898145876525960221484664627043294450140321865231575719863803259723861628123742908615424248452916082410945386436355122201122477059382431632951533395993354940185091989424384973619480810893000039490117105573439639681877740372194357461587656173862541909432078672406546636049243737852017412693342926867545038956901219423324079401314198743020016791290123836895741826052318122435725292337673531679844996710744989709491942347198573629981402480612084266454895753668256921240455519358398516487996491796716134493150187824598272817556555808043213445041416959715607849504591282782169769166804699072451223572351793232781255151250152546515699895171000277021183249088477719252486682690175730647986551419453662696816835121560285778074628265597149973134391024632817955232961533093464173515046722529788321431853718742296285200616686097804432969784951761103529218885885851731518951703359360894608577473326397934080217008767281192854605533538963519012605679700051520293618684969064983035879471284127808975543279572244060613397284530440225347557260927511034351655633219804378523207172127125461418171064786947590247816425423527345302664766737229035283545826143444976363800825778899790153512435798183737538883499533097686328369581246212235761261831604141959449632589031126371576929620514033901935212580044671036731598986954239582912467163366743113225873965271514189171361159072142182789881516016786343407613643200952874780705771723843237185903597551312731201833688460408488368130383044895986327663534754365204029617908889966158406595552083706443497764898367378628887685718193854526239472966687690711363347468920030349322277161967908945588264705207670334144551124596769519985184025234951375833772259860711116608440358912190397573099353413274322395790666713182554043840920899818814930260008798016244723003984834771788196222245209176602493686082819257372680857374726659999369392632790896001609167128399201182244793833753713750090559427370770394106508811853661153657302651332553458757787232154108793731331837439874166217497054775293698559402217807842163147085473196172534640539373459529420854129088490246994304429654825995476816390189999089523220906592570567772696965944150038520663755933030949653964178384823197191692506505313419023450612635698119621410026474906013743811409287777480271331141163094208064028080962363453350687511864025552796488788925306924409651529375945594787464363779954458078979644662428088816261362879305332392528057078732992238590166268396166327527471126340049582341145059361239076291532320891561723063381772233820685350355661623516417821761054051955298444715126609107635115763703213126149928163876596000274468449947159386982214194957383215556125505669209146420149039809142548021887352088075434804003141381763883038579619983755925049084867771351297814367196196030244860300020121338401509086264906974849213540964838399400832184409844447864119943016066718164283738142992185342088219286677818096145587349763621298413238663140154542115372176060954459682632717629130380337677217421651508866601134702146886759959735882526874377796765305631132783960092381404915382509743112875752043013166958975092992137507173670458581294916432871342986216517051760335080177763592435161322086436193517213372591098925492060589791883762870229214099723824868771164398292328808416096023537665642613544767291884910900079656818165973017642379006799347912710886774274434750073251610832617312274801388379050938675882445038135350281561340472863859495918500036131394555740394804266079158603884515296599378287108108453798689159674203303610142405384714805994214990214294087865734308919022825722778538094706909987351076670632887420721462029860661941545191745353157934144619679456325008509227448634024234195436363779254049629238369351183846664725376545651942641909937785254083826744610142524818249183563708067617888238939797927728493780987007022171592167132423977764140150081668016473481152489507062353025734675033243604383765836473096089875588608031078143753717203621284882475184892992167973629851061480384591649005439706634549473373066077252276045543473667516033859565739274495077431722515033248514470687590745426990433030635504274749089491253403779101728201579114692918418400254390794249439955308871282457287791986259438192800787507520778327397539152368329081513738512100375308837884078166537654886078739077632959428159985814525037069364131184445763007090625497768152372007471794541771367892145736129879518342525240282895209039366249247060505751616219343563441020856277242922232455388103187378911366647812828472816536151440506783304049007688673532502315930432674883647015876887947445091018724047272151486253429208408311076569590326851821029914769228348741135127202710909686665273062256778792666875843139397360607010677684288669099912870775216831788182995314185994261722917447211892586117159501336408269560358137059527096273100193919950164761918906118410245179200618328583241929294573971215731744661949922762174180001690012609845781864526199209407859817580026926527942297266631699947926111723023058519562515670012267457491135906075915900465988369750237779817230624909181145161389292268174250995003748975693934289078586261951932803521017705162196069952708993635735465743818638250455653006847183692911619702873399756422516195608802805567462576776196817281915023080996854178346001807775860583079869037084615780855602104522619106031516278327186448102966975149071663536736744073914787385412008969541790491409190776750507280484653446184395247169251029101737186048827959362658046758434293912250409012388816030869762069595374947147885183757525869473462487152366704119579561882192632788930984037011951244801432987829890379078294268941726771268583291089129552142182051934877923986871171417279441100252887673917237877827854683896911721901072448310155313124458704945700470827190012866486683198448878370693509079161911432869886575789571109331605663608066127903300738169622855483102733580151568085017401339171715886340368065493225917202146438401873097285958283223225698002132176152482114657539447314931782891705881376001540497505989597157901042147814420350887491966881325220824452012170418825593876360221163112061581709993917205161818163204854524344494239491420274746561544652375877950338411151121965214668537724687999081857555481879113704435082620702445306045786340018201920067098623216460006826715768813344452251797457329039158563645322397526332551896846904384886140833407012021675687698673040625190475671659499836477344948708855059481502476966670214069440704121293381368711982044073810561088083638820086304928819457873310464058809621482015717994214321740305646123083834086051742568198332869116891170414663697424041432877569156447161925611497678802838895666099537287773015354516177813362210563522483362674824734846951116953885615717708810093347369326317507419568653238366634724551840834914101513586387007021623352674204754780643827682004954734002009309360020707334692419482044802029789590239911412207482758663493134180850626760301277222170914371501059531281233026102007563334535206839950480486953395190541625697812526140979944629061892004979887802898171152058223351333354459919756697288748892467599488931304716306176360098050942711001025213357697306587460550799433801698557555796138623570522028883639532375559416547592748952272938369755468499827331335689685372558142925879635820113935526814921735521940122877517382765235330880243079039053148512552079977020631268161901563074124799868583666281978356803321895941732148997402596041239058859107314127418375980721667466577817790060405961508095830131784666272123095778488981882120020517678983268174586349487127501290261571400137474209196425176244307780361421128603883291753815707785205396075110050437757585547028570646063868288310453385814965567652560555743938189671062562321742464233056171236827477084765502707492366228090030826181910763180550981962863826145509223730309971926437794783989352140551339082329295419639731754792686496964830340307847586609933587611566642435384311061002900623918917492896724620811808842246782444467052311125937341762165647276802523805932097420678911035367853802014991590194348137196392470491287037121196370655894508781725961155251875782754552459885520105911771686739017188671784668995282250628354630803536149131666557420113437072457883625349307382782745786993414583863909716390864170518967071203641519899271088049127512343838193204920077688762132049437768736330858282232674834791848329511655950133996979005237913276740668864927967231590907281697422641770826673096131568019348321449474830579675943955465757590300494781487966183062067122364528529955454377067511686907928628796836533665267699865206194663895825524347767848452037380184715381639120673534113642771729470234227322364662908071360688924729714031498652397718895063317811211713150402384589803213530876438413228439058620893145438872126175779861759574804330237457076308799008632553601549764462126745420311899578587549948509812559922098112346350461986449531013012821310413135299526579543932092242643184877946438648438415840134044880574664807151953076133870285750367562668538148658681293569989471071206236328019933825201174647939307815754926293849178117354763350023652716148884263822898587603081334052333302539096525362643071354459023414512749023904539162072315104093713167489698894470301353083108720690098445802687227653910070347670848796250483838207570980694266523783064179517311839044898862457404863951967512022932333994648493075072766110318529334183856820007954424749182105147125164361642751549101638869485350547439403711689429113311752929999108015951937435615496760643881534363962440380691243531397467215640559000723551953796058184139462729286312539662503854397364193637669567877335024221835382484197252454125016219691084289619358325324128931903625520772290246730507839143241374339677879839348578240909604051417860180384199534032374324516610499711935786169390018833055636048010552012117100270499369386672453073324014047002434818589389262059434600106516742627749807210589405654890223178095411120933644182791320322569598834290969006793267738821586570966133030382341840235729237169545683904329665581655043606399074265579896428126303842395335889782130709494112893386023391789019800539696465340837078556125305931493035868630503195816104972094035630638055252245514660625876810958722218353157640199620197291367429103440230570879448440738210838798205856294874541458031043982972812376524183913324547594804696084425547144750536005334328514975908467784487882670425874887910991280557912810642481867095939354741834494707816948078132214695678590440816299278606975455475765678045840103815075543201784479074071450221046885941162728468813938434972659006093186418403317039278392242592521016059412708903306586646420220971425855339159817610207526609085641957461123739146527034754004559795939362790246015277000540422530136108451079469429383246192561084563083138408767478104626182443227783245824541563124726123598644972565569887485577257198343647727077429808254985307227985330783286570899644555810407786182899535886310404715308155563315464562462294174636661964721429199471539675052545228138291312287225431372130395216759381623187850428669171682350127421951040954230588618267825794997534644238740952517750479238947882511004848580088136928782019267196992950820351672808046837431011021319828862100405881041438849397221831914767731887810235289930500666284936840292673572722403448388806489068910161645870967592428550673044247053134430002842470298257794836187392604714985925546920614983591248714292812221135727243500213704502020506033765746261674489703364382039160127548236216603140893501729368991911156054713555624993372364019022898894640829642931875317657942712162765069548988465811261287223605888924336661222450829063640482207977353954503906727906278049581983565590951787256858430968914364389515360777321448498125802007430130407722047420055188408896148814174181312234550025780366404096200827102162838347324247168677924604406662509680439781583375080075414156917690691043593794761837830174883951264806339310857653631999587123761538688487358384184602486530711452207331534632643363258631224708536571253009878335156192282821911644464554710409790438557338115723988067636384863303583597255248418336945604948524960119952017907864810927196534916847068530361650886593942189070612406324834706493016047484372947959033667193424150963772097351822888424218185518149302525758760968387475605090492452625195190048210920091839243694147160972905011271693172289601389070534757572246056281933275793566850191898765014850045736001122311167263846504823911776579655371125591498907493334813829264125695694766219736157886013631390896731256347081690011673425694323025876638361349650577710487602103437332544483810424886825860095368209794499324119774891902025818153106529092083155889210543294282185524579965818190497482078676203256005842637939120840988057405247735111497035754868397915903140194401958507217670873746738934076701652931822927446979817684237718455742911928945565162941756855136087563822826766795642454956742566225260478700735313735814288661217930962213263853920165027972969836636764866412922004040075480938375004396604085489980013521346892286811506505967477077474799804935563872097344226758482318853887470907381911449873072745231894937223150542759079173710425144851975181789806755348489687709538844926085309974095658099582476770711382423899255245592973923242601724796968652161759593820182495544030806345915371595759669506210111711336647260012781448069212961659439861187052759727594351478325991937408716790191996483604918905684322692635709207163642985111466463198961760769895546360442315085488667256455076751260279544604976465333732440123644484054669651717091889515538765207021616078148404197887386947907056457433569762836055711289646545743352809725112927569162644107634586763500796683333986423009544687180869432559948549041055964440603377905997069741084500911408270870634560201563581845860319541802822626885518246650889310285027258538476602116160870346587341545135303417867536609867066349186383676882325124479991637605543302149489435488290556237049686904664433666918986065948404397181581383343529016797963314088748855400353716851080286085407054807381863558094464569410232264596127819979870282913662618550867343301034265470661222317950542347559281324543122400449703947075839730049575704396657606971678535451880363399290761058387594610802554963602665098788888778682509700077019430365387403344156049223986415416063665788073067232926641348347574218189183697286565555082894736161976852151387914586097037731490429252711748974523743707968525808002392583390876068516853035751509738958330301877148537934655888404825051180099396949216264331670192390371920414818893597267956569254426718760850828106041471730156993103458520187103931448445301273103140060417421049015302924156591878758711988101597895416335875657683964882449070327313190398323787011470492092111328065351167177791362287772682767458620697003089353504113564262745472156676203401497864219589740041388706819054391356803845649898209932355559450830305524080091608989759002720301270602372788381120272129868115283679584833429566204605733152635602258612167565270748958385896630852187858298563235876712713235721866769974455531681806014454242945366686653765411015907645672200995417736971683752666822386316120364418212921714929583575712447890784348210130759324832328427470338709670798052765070033224232973661048604301251209677884772472961808611592894273259622244915168200319482161289434568214415326699237762049323565503184107867612859668359547670407789640902547088754762544900734677689543459542785106189948555424111463917212955331637516643675246940026247709952401326128395169713440247306920038551280963329916166501370788467423328692070562097811699029412577491922938471930024567088660334406219061498197548571642447883910691530129819731287201320681883630570918567540533029901261404747206414112895124501463974077570662691966181567215617919292879306520614501615582129947000629233587201397542204700268268130402115994874730833812516288141796205014877358617542624906249970496940870310647461185184871054230764750005438529550983463532403148122815805991957528315785906270506246069054646841729211801007363392860313267983180616314853119610632061668100927291786460239377871960410093707778503051149238401046283885907937440883215537367125975879117970871091946057463383602953865961013112268890150205288796904952348702557926093961653744660789672044943975803015653793417428976528763933213466344160795120036531602525566569574607560656827464544555401264031124820890422444944907828202681447802758564606475605113050297343168146927582163650745450660977526771862859675216795530921889353192145161655240429799953218518186451822114810919788569151674673994832910079564738421245217254750644857596746287072522989426632926806950274793658165132942044222711700194475878683799151773860212751297090379842867127022943928363028089099017254680611138918735772070393408972270780666580769935825389591510016385057059123749053780993077441817449105848984847442923784408984617591191940800552980970337965145035081212786068899261728745548811595058979987180077959798079409360341076408235645094547719637798953114620947417418973611487184810447131584789851517583658340693000318108903377682277879877964614773502513184292418690684936136246661503176446743681286341426811173105646980235463720088557559358865228194763419528951800236499456379500954647143850880177630989724488655684936868585522023153598689640111492935769793726268032916051334608178861026753967439584132612673999267722739251770479934986765396976400542923416174975417534415294124584070440922939890381846272554272110457733457206190413934037310381573937157027967459981871476674649771170445056834335101455858402014011024117404105091555919570104125378552845511306433995345599720656646828254924660317031267881430540590691592354812726698757898533356161235673951441091143709991996694292604476429891315270686247860556216152990174324012549233610859559461092434093296124922443096011170896936335816881162219770293543159771553998916368407786978139894384354580209463870941215387970699744689554063644596103646033665369814869725947569386803794564097211759859988542373757183383476688516999189214807834329501296688639425586674261108662685368153839629408256180698654541533284863547517541838550039268347632553986030955806323716133198233601735387640652316150575573680864180165829288616266062757289494760992176506287637346166613941718908877146248547209295488783195643081194084141212237770254249237491673892971426931824843639103467801617950580867939097440800435878854653979221683529830666749533343434138280523026893500054693701704494393048185440035613956517774745925143336371759347034630156749992992581443040154745108833124829202804158741065890536515803572663861818194175863695235155676126913954014054638080274494842531357349241608641510011165345106157639896289887101966890075525533048351952591122253299779823391791292794619639203084856233883174676465362186728702853211494992377243189312432858088824927150663849537455181659916136228675062038390399194423746908030897845174833639999238882587519646116603846268257498195987808600412545012180824069378323146073779780089524655736056648327398995029514003586952941132065998052840630371365252079727397807561383605613621492818416874650156798684008983949346445214924007413958668906232565555964174969437670357383609420568367108976815307525622861621670769897883560049785170511491628298599968816760521417827636687488340203932862040739330751372463112279631715669049081646379912902362229863461918812533558162265454672847692270974530603567280861469690284079772455636790255279862957805591283065411922665381204503988889989336911958395897582023375452641440059638809864182496896624466609685702417407401540235376272265304042744948058020210759849903694477755282557484451619600646873689575725178870008559474716926362074333159907408121988725112885320844079797488744861903250058349738856253454979949606994187341693669702502759105795549334052721485586466773767857649436859300066050281487786403656114435438500951230484579060712445705147860130185481050851811829956726809742842806706429474037550611375180142073899069168384163370528566725865383296941069268800833441237938819637093033610412493904820256080799079053746888819611476507301764552853570057986408885731636173057951320140435330079085284799547231091241636979723042413665666781162028722088092836195962290787378174752890239420544697333460588346252436714117367519017329541881893915620760333104988093930500814553747889433721611690404051745474197831228459169509749164151697031958970389749103537190745458841321171773414686626033692605835403652160373307192941979961233051225272209720520133926630798405502394040783327724871958458339675351815687731829757172255985122592084464821748998844794313691096025836414365234150021714295374196956691216966744455808823065446723376458005227043053020365073899538501609067816475316341332496601862411980428974775374866163118410811342653668761634850391965302260203940365226186155941963214930827265948935128305259865720062077873028303151701101922809007351377754668452728611014305077131007434179592007713742899202479024679648628630345251254535039924683888500079908747551506558975652226733666160790231193230013456045629548201248293715616865919023308788025124641543032461299683256569116616776068515232346088866894862330184067123224320237631972298671051322569765517015030152317908247086606854338163894471974501913353430701391327228923701516848283473065624989551560574110623496480719071719299033866572903747123707809167301378742491397200906146308901473814312843351120677209122231057633606937961388438318088810614077535835400938922789679635731036503223993166479702224897829159417655022229241754631650488679008735738438629884755181885669056574518134755140044834589345556049211790613516604839070344472575242023882742628456928538650540298160925998907893445252522657897449977440846404408859360732383845786248603065862693057613137025882636163003125286609217104145070137991801423890861571178383976601656712510742586854025499630665931656260764599379878255380386597272879687712838642329927093736186518883824619095183962502059690435237526490927161516645904838326811406085223042916802242650188255010238620637577695074288983140630379597789915487358980698049307374120584575597236824784097957025520092113375607232928083215110240080785277448095901586246702301756105140826632781579974700267909553773935268206767442763280787356128682007373540247853469558608635995108794775234732531070987376217607114611825677627685006589985322665951982745685371718617258476798052908144302621613646654581432625848406264899905331277269078613047717328936840011483283542286514067727789716848424420098168964323308032272202733754940653618165385084128346300497364804576324333932198758146487162408198074020711860093590366997166845103360986220965250395454411674753861292026856513124372830692275707381918757134047858408057312698854337049656277573265593337941707100316937643898394698061946472522634049742018581137511646953592668905589936091401733231601528440033655659727766076116989301260436862642346912226902605883239594740720202928462019089508149832491692594832186200077935312430584558200187771580606022814523019272571546310596446369217134502784093846922191215047468310112697193352417735708925591589174728994647531709979620650926139125807727984618368431815062658264724750044379306699449163459168630422292761150863692919477587979498609805144065108405195938620185095168262487136405743391799309559177641060690149504767371173134138324170954859474870302825017906287689406951752885700433810562125813879950792011738352026956417975483398543510094786477267975106970925137498795780667822069082780671376935763992553326976728549633871119334294070442609497937373798004784310659501355404242752050026640411017638273220544577836349541034121938024578942204747855252518349347057233296141264067670728552143571167307465454355459437723510571042231808872326365945548929421450418852717631194562832002810999165039070726261296438614241247461482583008507915789463095047444698015173322517697432339823663632892704799243091767197521637362328445642600172216284231127727775675315864530306175862413370204897440988628442710660486726878529960302481756646748975204112394123562737005724753516325581766979151497036245480074922595982373068927601190155639793423443029776171150579994331414643771767054972634200063560311054292910174946559401356848161945140829127612183287663677410856796153856357897097977079206423032522029265368613406311085897652088884646325385445825427642648637698934382106825341590405580989971193515722430953741428700878981630762001776707090204639856558632862179387442293751480634160006331583898672744991784348126896394553016516043424804733627780112678883819241726182110996944434301219731995235491276794811023498914060853016938642821472935659402319434098836682251690294972824353238511041798593452793795966705373463606676215681418970100122982554949101817551966528407923893876253838245867112736433666826037874037333515333778337166510046697554174240803102375444621709213376985215904217637625643020160119124286120752210704007938321321944644210489403640494517501716947654452109623991131634463423216409520032243366268705176940468489063382030775333173425778369474333286157666609788951561559402565638207528778805252463477354953087540677446114535191374387884255334697012260182247606331108329335379095352737850741500068329758501343867661020810901903586382283903436268247947789372668775173532107405648198756201691630169344705649854065264243331637664550296829943715013897052385793905683865125611050681639802104371762192776526090054141482229277066813896466081466512765842050288615421250584805560515672648572399988947292401414551717550478563381534193697838165679136734950079420584784305327572960742044806659234528547136255819440813148590222670734135190577196992997369713459027191082473303122266529360009861477032118353786030406719037075873431310223725404884712655334063053142544706902332209193760109347033847062393144034611311781724043773829900082948489743518331255047088489178088215246931018361928413066362259763734680515110935203912224132570707931928361434120646316920287441136225542677841550718109463975094316190812516623952018515457432479105656120939754998499995686985078694978992673270277357403374013782529283757604758350216669180410897171993636695164110321312354493265140756474144613884780230371950418551923041899480098729794658690748233831020481980396738576588472612761443793599769864983858394179871298573558035508333579465009459353618469215897348244560652609587308462334453001114349051084593679378514832405208418208726027830047214057797073158184141783885210462024462856932003633025259811417306938193418428185459441620296722952464884355107211739548442082508082040719637694440327978204162894727123743294792255037363454463658645134196004997176953321861928196058083113975085320929307817917340402224029959715610193751232526725284590036692452268174284726859220745096396719426700179506898723462135902980847267511581598976018751484599459286346173734925444087477778016708791981622512506084667731265269338903888872987521315247933213712590779046983844052116265919900905958934229650398561571836840413787663742251196939563901400468861886526007563637059040556904112862486541503258206524047649736015318273151192865341560482586030983970460452258084864935142028822534964389627963994881616512767674404019141659915196533253822574654509498859241946370440897586451043065632767636118971052989470918035063924305855078053161118978466739509063537860032628695495203426765054682935799378186885842757808924482451807544543471472690346399494952706272830212838502376374143188359441294903956655372715344368723059267361877562713653250764606185725189482930284939218898024908829252818341772681664680214503707024481523576796157304251231614654152435865946342033072577808514809237688968425912039167429890464290479183448253162144855794576496210421217361534954445949610864624736951595725297759573146846300474748587263199211708276208473113539911011504584991035160826046499905174012582453770682774590611052858060382831329596989837912099959156030120741160914958442847688000186341382262514938319845541161866984738762003481991194665804059601270896405985621207210864201571725358302529480773151121365598225729796167211915489077951110004996743041201795291082592301365990440197399326309786588649895751420209201834559021258415518390940735357694753323048762741141090392636291503921623384906060453997608550807238853967502239757319135545061944221900094333448368541971378073402768352362628139469316735352025805391231222165705420117603787837415362742974509979363274030569528250551246332016585876981391554225481882487387591848424891439016378860202872383403508328481719092047324182251384848265800376458748907966797779955498263640497007707191827770496524279472390038762401035388966742288772104355847128730550904619988100270717955729981345188796417912089649254101536111922413601055129843597574271475112809975870864821470906505240839503048039884190918132892562385545446816577068657819229694083622722307684423609600065256500661178659079299747057449708368498747436666334987617437647244853106816437812514728345219852455420041963692591595761199201269629288380843304379122617561945397985487192119403025956718146096214778352418557743387118314256813598716151933774272034601630348987970456347441590539269680494244294915774653672092595493901261024892654568292624450291269153848986770882314158423089695405760028321174969985516335020937560498274219147871187012471169757948270324276490327735474646906852574162822895567708115965731386866398100961915156551637840036852534842575922821719830986549309510413287651750926406504686635154294188053607979095951103409531005389364710284044914976963190880033159290573410821934306802191906327627419715696343277450062956521164464057563504507700951030815091029636130597799578523775172138216800290796518696937037291060772204827787624803334878968195652950777956369220115463138564768483872289346502302963590638068235569773831571059897494376598256697540514481301251971056438651455244072392212607038770270971809757467520886470615155374146879683482014940318018993785723748707125968432600175099842183241676533915368586116159387606377063379009746678258491208486619727797950511486171153783519444782666876689924676799635399425649832899843214778019208754667800614440978693750314242096275004583154089385935975872774892619586005012282369576282793424129006531368034933306190178431426694714517443355160932853447776904995715272822936269995360162627842431287996687820742069087877173182570017117686923126167995096653674503090739706830860069701027305169580276428800314153543913369006567155808790807916843397511404098392432428147590530122557657860679022125723386648958980119945244724914150948839927811461740618987401350083968105047925645317055325199178247140594226539214728966476650292247312264115001946042703795330660871008864838815766807017689137079783277593982677093254809085896744686881339998866114384319473485329680122042285872768979012630891410363493535036694941406120185300138577399363563763956925981459618553755124464213902716488897698173626287717033744085950792919906256548086946911541923199421696132450465339951212022382809700019504752495059829902216031263458849026128667932351231889690237350149771207579917568223632425121938340918792587258164953898404065007062562484225652816361201986765861914740984574527785331392700518005811289305489197461935608220054772395470954419563689605360039946286047043017863710123173657232418464232841878177036840868698947760571837809376795365429194978247773739768094690792266941365739400734986400644809874096115951629340483670754966132402263349570930205379993271756377871439366726165981152845161987226301817565886954617240547096605281664698624561319773077941494929069562348666276916041143665179442999045513658517421395952087892218566408046143944206121949172690850308380196323716780252470337867628429002064070869193760997053649864623683519188967352142250776160215062560820376302706146786974491733655397843052962460381781915581182243467886289545870086832303972913678423304133474379908936242253402440131413896358704378536574558025729271147725241933707207513644887791617545667891366741835477023116911544939226953380834739912460667107726297458584164308046442896669130804321420366358985875201375421339954647872312682609000080879100830930085698769378946602836126245324079783408835973715455938044279494776814119588085840668277343471315544998787789320048564376384500892086658079638718581102063373071232135341934393098347518443945552693543280281961314784419133762495321725110871719531608256458536076161888507069871677860070264247358278636654049990872661681995373984204067416895947710490516538247022611127956553831125467804462018196863665003391648059197612114867273382349136624561555633699768854893017896450602087386959848162215354258672228431428991315671585514382052020713664144783772325017891320288003758514895390721956250981738012730597327446789066364041292984904579266967215921915054442882055284222782711444333271390723266256597890246934374234010121930296031763934399975477409277044632475502564950081835653417101936793906539127942094235221527664652202238064279431384058173573880544513156754040603221478597770117029981603185320415317856768905827608729257316184312624063097605641025116769403246690649232630112821525040311265645081847791940278285591190330847463711880422647954062483291458422496619990017017478376307592650768631566462048560651131044018514114003557409802412219254356709452199537095218884787748312905120083643206731459334160076346023912277021397494186735383793229700213515527298058431179210362135349657874204614247186362061338265106271434318922485597799880643047850741056709192193368017690922307350756969329976779591830304991027059897209163193529755515949695995377727916745437448476069755690608681955255936654988788693317786822618814983370235982924312633106732414819032092501410989255498478724004753149776783429851487763099915581555233726448920112646474124381804244325088271017853301005818168470970585061408422770672370268535503049783308769017658413449552699268056658980638106561415402849716260372766939701956392701031106020411433238264865569263358290930212418785800991900163595101212462408631160336902727659954319929758114288155160678954272918266940374021756792471925402909677949023878621951876264481904805263738600441149362826938413797895928452861425663786326809736329156702969224974036106556698484398696378001459577853689011748204354567387839346316278098159872260986848035178038250437029546313602476391491612579484879107735919645566271289515654094598678411997734742672818102648133545426320425533311700330502174823735731651114754638727608655199097836478184762283211922112459125032935648039901104987241443549093535072700863386304579030085958463515475321479139905217678087177506931804880555448610960730207221958745733080014970372256795129807205235989126479254630223892070830314217352809494563219165247447782091569625475285657192361945342857899759543204171202152763175581754230946863218663093714318943210515208331027849097760657241601431583117004298455274166046930072456624015571931624417884023328167782497766285536330931260906221889503853212634474412402847071831406716234383212538387622314899477005649195946575631887019944435886074389454306546721146902926409419403201352406413870362789481755159381219460069421331583102405067590265119869379023008192082104725860597389485542195336617584140443992276044742582126800233581280249796961103977838120627350768726357316411349895569133700024259667452087448697758004491663257958121884736482715442970405535158986379403538358983527577517756671553160374662963059755631013443704166553045234499189742108785222967111917844394538271491360336474689815735136642361011452842590505276552667174729620552044914850952903183704848391865662227912294513107588112187084716613203746285067030318083948359679181003116551372716478151497333649030205420831876782345284622784850230910712576183699735081476896732473210580573453740096505040444650579896602960091801290692762978733518433114452517661345604439099913015481577909033823317977497583385036446826600138949554023224668800977384030820086271672882119422657140367359712121372480269887164337475699871228840623454844051687098220583345393912409381637419858441794555951615130315262672763613774628516414754548134782420977465740364219500947619432480310292990562409948771578738161711180325794523736995525001267673165196193596363904056890850201872640755633038198503119299429136101262766919650127485616711932123967980902576263511393888747746257602709127610431730624764907357276216539036492597157542879565587709624742254341609609154403043244983563189289076063641220237921523559663814541719024016617992669876845992985909549762469487358275215215752591597214359764426183741810951336187929452239373612516567900767813282898487881992529183116965617204304132351158905829215182125090090878025660058324340201208192979426952868356098441709852007037586055699461522738801390472617647864472115015537345268236921030016488410502098621473909286012118359187838688679229004996040940389051390264562034423924410156407555751458520215870843384248685368201043388312431933038426913740414414293199880195501373134223503256140284868803660993447877253471531666695319320770395696080675317002443050190989061736441105033000980217630362652854125457626492064317432276916852754003873876402225669746023020192078184065427960070688378352376144644092025599442422699459107079372233822733783628600043498009551425172962692357271375100378615601989287852787348835329099347980904629634878516988472424518895323882408441123180902398504082149700541740314220917520416910923207979318543077309401545711034800484578027711478331307252602461447362720848964712487408753605353046311373447782400102175448567879906812806275886212058389744665462955554991670898425883096305216758348896843512329015198871885465323521868967378040827618338826528966780367709811499373525112721866140791383305552927710017411396589769218818384471146451120941149112897260967535717720472422848330187175884006768766202770023692814411509556692339198637812397301565054771683373031373600540867286592419278846102967141706137019940963148869743903755645887385863048005763435860521698945345081225722771852481761493141729172677761329420486938427518126108488078158519252449747265829216047506067604608559642076651150515703693837695045271687513630860567362689830540367952860847895488490799815530359764964341176941032270620569258787637935276523899937005374265169084290857888301360039593696393336483678158267444618267901945787477621197513223067994575472689344702998241831051940499481180285286471716457555144286480865005433151807453102171462720338608621227536159274119157787356963126962052756720023301468667760518228373649808596910173044269020708951831830530457491580193945001610918749223696523761517420144168850810750691052861192893238211998239740041651891825218356390751164535314983486230100925688406250198037445337228632432199794857415342369209172522269143635543408151181785261457567931920531528304403533832994426128298723055630635509162875209300397994838634881623048377065127450379999625716879136967653503762208630934028423401692196341121175513929654995022779929057091489568795614161541585651727589596756619875424603135700371772963672995935518794568264938345913669364183504150177350033698425038653937090564029271439246271929650453250719683461450374988494367002190016024195480643865141417663702272034640347916005870686463734326883428676654013083105718241477249492676199285216544452061620756248802651887329244134248234444913366476487703266258369587168846330423838395126979550558532385768187579667862782846785728339008703085621322070166675583591430894360981076869911212615735952561147180070296128390954896224851801091380565309301858576260525156064231286721234903242623251391502743321900390247871155498147768277256506994091381804369585240631563135740029192379509183659322912435319182942772571607921729321429791373024704386460336535399821938826245946433816902485543346527488492183192353177911596424549615454484641552522219720400202863664880575503958418093614971818065836995454430363856314620617737884874552354971072416037285755085993036789276385143506863597434110395199330829891105910337583344431418774834620686916195732732812613863693362691362779648870411638777226650544298012096944920777799428032840542098653815346425630542637389322974584840464976194891505330800677310843758159884637957031690443441971261380205376925826882382983503101939980840958999152587855700739223232888545831095371661367034291602734657985437224093261785717147621863477414458621517738914892731595826645383349520607978531677910715487432053577574857695529136417821351672449898712701859031966168690819948636842903745825098881102174989732091278744526547151788031536785356699163886997299669879395394149761551499852435653052314539111780135355499984343207182918368946808014648917669371773170254787654415256732723597999163385898061100814205200776555312528350814811725074291761057329607602026509551709228993573648066341865927854283203992665324126242150259099723701610043866727533027840338793456146580071925133396357961642898767187300631436560665500472285707558067159714672715568194008399220292972505169254148505328860121908910497116768777165266558129142715558432324808555839124832663191359152219661260786700705123671471974971962146388281306345260983457090536808342046550673153270486038071196964622269281145741254872748370591974540466815665089089244150434920051867177147654610091558664877431315219108560635126390651690538935740180783565268443771676635708116092017947095321701606500107377797636740675266436499773920247056225854171905819935012929666171015754240251428444689732396883503980417749472923405840843094973022359631402531748787904769589814058837670718301005064193897300048577980447760207467385925850199797048561467886490842575679673295018629758957697197945668905536820030587278253359012232873777940860879652240980700957899315004438016996257773046449818520154054580438731035687018198561646511548590627468485129395411229718078411080616786509661273807500955045219413785456038943912617969155132714574529312165798370345655225825158159878097850447419371844061303277854845891648187441082949731158037773528949505987331653553963476629301327346917584374673403279250108098980998074677532264764679256483457277950213257925250411258875717534256322580376485313342295254139103583802444569317284112319868170125804327882688096850598198747445746651232595453569670440651657601799546042170488960225212305950732141797441075354990856691816092599852508559412432646552089994753057303365593505969286551037977884584474867106197654554036152018085760239724000857242507707197379605656262362973156145715510901382567919323167302575628674189132942199812347714789663387938988540473877108710604823568801486839015299752729458630236240446520459282701870844026616573568865320099880560629005095537199138901055084257303049570328175058995173729721841922565454266760803081440846955866006482945255077342827627156442809196801514836627579418930675295119563181049572455688234421296227691156305052677313841595358779092334258841972957160879393586452857117920955606950070661326769249679158265806522246820073468205610207552713250391959686525059020906301259188765916467244099828980435378820823818045293903747470326132694065751742117222709096984017064088053488583416490969798653228582929889122925967529530857171427022685571236351088388497328457713169207677728001132909088890273323583174506493858292575701317959288479374876659842926052135679684068016206653585758738108088387666092942511887428788371537527156783992651278144790282818641109979090833497792238625572922558276833080947819397670904985976812036720913555467726190582273306422516882179042352443752866346258962988940043765298182872910214266772466430568745140778644688127227594139144508104563860457629219867760031453520358263843119086256694366677026137650385562147425963428217886366630826232473884971639802835296625316647752994992259564101051362301131861889221113371162647208208786622446712977812577600279453176852198113953093738099689101463269106752740178970376501528873603816960960043466706383061686640253779179625846788756973081173145894445866383757556659438214132731397056946421701535102376641457295209442032291899597909933366621704216855774134328848506972883331461812772122039698423526773743280700418728611918301047422456266860161548261842096788011397582814247477923760314872647996859130228514158855821508295285351102150859107350395406633341945995636197560144146737930761610536967799228272051493494395581244444588285292269117819163534314778570434984416731457024855621284542358062195651753799024613002574691763932716639266682871857066785733730683888538959661190504223883398281253240522943026860251902777125924822680699271569809075100159385886007209936421209501465023858666254725419998477655512381071799760188672580224202752540112573471393516035331648330829087944571095309151728916671300201726826247579135474420286207260165128276447143164886071318173029517093174413252243480394221625500009092729903608257250950731803954444129930242291278648154593549195593508274024657375066696905603050228984435818273076750296552714984823372895391859865616351054763369366805831493735275323196661512289294945223069835841420259767963165157568009042792934659179694604321514070931267331865688773386530230141471359405213328242432309705549669194014204153706293414572934653995997339179932384585742644879815260303688921490461452314142766125012791487623290032646852247705251002574806016875233077873177250361343823033877217255769549321834441206688932996096430242513384627094417454616425984054667774275210280098596578533666930509227638894405055677222449105695222339001965561173589493020829284719470888545346466795915799512116946415834707391704649871552026690580765491745551129615696220120537237095258154582088812242780453542631063791485084718908314540142346722360632843168336015682774916784598290953913542294820299382633452922639932379576539436950880282133475981009418861890126907797899652283938722303417559923408563091733643537774920143660557139247149357116287615299575230933941498319088946899456187981226826338683280570814173905892034857301395116895322876830449029979053221388212378663764849354015915494683285615808563381799162615273632537074129571465315743545354175434958226835320366007071503096109577921279473506020405130459582015986792214220845218207616787053680634856622978018948239662634683770044883815183539241278902783650202451357993974472181174003210478744169472558566820593249976957573952954984661122134636842740526283783062601554318846415894137224343449079175047315936489238478003544981809650559030057895899533402466288646908100843934506044667013622002025703114270700307761906279016799784599355143594820043784309177003662337283431320024804449734258078542580260488351180241765632655509875059277679149896204577260999479617137380352671746549628283832090500150380709792185827501446563736750479976729190419957861053056330519738408555548548261190764028633056188954453178889332148263985705643930095949082996517937829304785219353212665992176683262776723036297850154967345670031844374854309029936285601069838814572687487882661399131496857799294332412128945628195096149959166862279498677953963835995954850556526053196570766953583618680999259704602645427475167675337190075186999624133820969569133434046973195635424808297690391206092838154895974072007306224052580070724154318142931537440341570542995032657372032714852896498499551372195363480236271341165662375339430039962312866704885907363811339660175553406925846975376688453045838033162690202700415747797638871208758817575108631931668464482425036190405695354599450832239310167174361048344470626345155378855774627771435301027819885146472340637222519990530342859958690196935624357990074684021616704142755432569053840353798500945201536043451455305347051213939717206437689445124581792233426350442730367364251833937205588139300739856584088343013289843964487602252693757599614984276232079392670755371372904583648449009329840281712925491360453824238912011483205072504580300921277443376884375218270111098753494650517667468862129612954212954615252615399962774015349443768211544828590046919181230097284539196441533898578686518954300916549969921835398110654799016626344448657777054037476876503884397246391642221463677462011916815790853601758319402456025854939102845330491988151787469935907887679040432437521137303612772021050501649124935261010875595958483513928496566496296251613638585140793335853543073912874953193708945612066736508265971289290087389992305217862534703169869332962817923971573902609599096134830104748865188716082625302785545924285376069663737286496737657118615374215036614554326523100399019988235961154477674090412869181892108698385173953205550995601282164121588390887959929276032705150511074058778564301097995397414301264471027628824560463114460198985565904287728328010727657398415617116480864644508360085321678972985207917438153982586884431286346120210428959558423495070872556147016634329034269122400221327642034361629496419327579083595120143392754994799503036653253343394482388371548283739042092288756335082018488879268589884329618854427902207615507936681387310309021440155602474859661544391956495552608901677436793678630788281102730110819189488565451794626004605996324185753684344176485929319881446263330873726239747541407922213038380109778553533970562674652810922513636862379434772731574717990139797422743568412348944113562839836810090479608057143898661007970126542267696187476491631270949746053560289907140748149277065465812962513816620023303742864113920220281277558065554595981842368117836100445557131237805500755359232439736386931585136386808053283749773096557029811531547535219036955492061596340869622950429793762995428064983414764930021869510811046970340515944451167986091117655559641227028284616470806733326412744709974147590798261683010045938877320068195852005151950800857190479590648817038417480328980674363302446932638406544140752056000158666891801418621910176971571055679673821154746404920597250290668036639846453028203754991869977783309492074856397917049125784617672122466620481712441583162196717272241004654966059137730050414504902258323792046303413426727693185127290124730031410823883106062774269416431130892479151885143299788638500959874123541454611941175505583603756079795691624320908853223261079097232067707179803782263395385273781139240439995864709118379138918664787175278225739461363863915524285563959526396355001894027269138463653204402128191942265679720934132380252138123977560011474925530360672405778211329052493098173137206724063415784307813111202356312166196264385945790022586709604478024384771571882782736221829788067440718293193924227304172762870913388813068377119162263072024722343649153329272121488790003149668559680030682209795647933033006447970626370335104608784613303816942860879914942630248541610046762664411264994329372996755124918027583091936306101578372245551951608426381733877665112827150780171734336502863413153008204219084713410630677093310292580849251074695163845594814216530592367872279040215743844452494245766194319283237191412869200267416112833629995456891084493369343414160233502804548244388437643820972652278528273047850132672711973106040619751478539352591148121818452620711722777049024430860753874955499686484442951028439396034562743665806960852411248404742336212151427751895699338669757398216668662779046102933241333787467086125199028250335297562578907690632164933289582317456276041468008392587540029590653447081774177382500204328847774578886292520369244865201365179441723516040854820452996139949377002789394384088248963885923961173815466825242266475683378125209390593302988447473834878261763409936874099245100748000825615362250672263567189620996306508313534643763595014306678646364036179666429190906851224883743189036980341169982454222049907208816080670485644289711915201969203120040506780256697970799697735651197294185558569629163039447322136042699689090774155833018268117976275557381331980200875038650234078408778603601736422990183694408797658662983509122248213055157907556571198436065674431338626197532692075821145920381275599951106591928547423700290839655502607999041597091322466698849863523319693944514404076246397137559113458293892883953592028685102274970305257834881544032864790208100644728322500178509620414200058897737363925435556235317570963612670284155005235604651619046972525091462173544059827746627151299793625867120120048033020921419397496897559412391186744225008665769426883869756237903756974331837154386626836995705538106484595711525892492146596658845074289030819579479527717118220311794056437826800765816624639133199733080123531703609644062865860320990989125763929454717043674930455079819427503689269592880068636412279278540336985040590002581963463007231706140865969671951700439113873140774739585269918895756756898606666393942799134566233540070061049490650966598837617454403137457545725158255627408139581245004341491292715510694160671866499956800120517586077771801474612774560862548620676311456573861344813277399532717379207850431610021988976345241077702311787532013728923105161643885275272845586717857339314974193096146069636195210047004338790812245497589595618192897098437930943771186262688084828460003836324598499478629408064661047950833204124025787006650219953278487930523629409594245088495447213389375345068619523957227536307786375861562508724637116494885937450044050459454131195579268605320154396886223985425605413140831289436443175343612704106081688779031179420052123047135653126413293535233810703548537533222601803331313526697364897797527116138256592382191280463774823840404546739734911978642463881186910602621125793618253905804018193334496322787962452606804092766711829380490057994868020558880641302579995949906491553292179083823154027589208517922912057624782914611868006275675250627519532437582275939672938123307465688687852634093245351120481066951552553748283646047056522314261577070989383973361867304495984324502654402145382670031134444238360130708865270700237330506809076117398633938993719847459872751910533991861138692856440437205971709530033211874919940425892457491036617651452385269286936894335683308257337945589474459738626113737366095499544592581646243995426616229495343191487419403913456835441500783859276909673017315111540858420439476382712750370151755292258372960441037839569359929706568690500903591243882557712037602452584547819875788305706255953064250196763420615069826819740515072952208304055712915649748788807291239695026550400813453230824510300706186049643262271440690837455677812360095570680751161032166625526172714011746763435387323442780793030214296644972758126877482339473947148362333139601526074882982097524904070976010377539309067304287281342731598419645906970719918007486841796393447031685465485819911733077771968264079539710441124603995309804751662848363927800325312438918066411437551045620304687893542240899936361981755103398299734228822784908397637428975070357601819569713406345359093647705723186370831087006133724331741496114823479437275940625868686096901170583239262198699500899940304871581580410404682747615460949674016456620658731089458810642899365718926700736551522003283516840590241621784280186017871508150764017593379968917250241901857770553295914363438224377301711272910777884842625568987881935382857064939143441451613713330808032603413531870004342546899502416302388147334681357236053297463631811992709187082170790420941269679509580115666175137457030065951751816989009820373640553601140658437277138063265909891136992408372056085433297372431709919068132440879655989818497651525653676921361451626777771896949912083134485613491804817245623735821709275312801604466529829374368253888247346962991614202688563576659561711885790180291143273768216639426944410506072285112774498267375463069927897420221285532067489352804251626575551868805871263218565956829782384477841155254009257514808837445795875931297180175110320387641331836073159965176262030608059262882321245394849944787243158824909117243280009651059219780365605313778082881566041557661020584422378474099022406660256093043182101597319186260679059171022575938155041652622199348514799377779371254952347080764724380885204927041053842152082491366654598390592338322804389614793760698054173700195147584541185279285339853273452303259442503409641901853304490304142786779660710556960574410095130533777929173602189278904545177118647839386472383215028559649809235744653889332655013086378360744001207298552842498757042597281807725729629470733542686267158322630688125527015597476865363073657638604768993658410583953985173769766973286102906164173129864967590622204117490085883298355977186646600304307122935700339982489938055710279564709566337732395337590509552926609985330444819326147791968929837988472516522385460681754373641102802763802722789379247948282982935917305607089173331600926133805383823276795527448987981845987948604953620441820321691904472919697073937366214263417429319199004480110881084426971333664124894773620268703064511297741167840185584991970505517454354557839855889129604259984190910818707852890334580218638571433153909080098289068583195973500980814794445509417729854250559761716500789556005658496649497043386762004049427450800660016373052149505411117482699430927717203660476387911393021656105861593634702716048661635400081633817706737487535139090072624352370377304723734583089715930545566664841971605048635246079611176941003415194723983458365698390326998624777444602454971811750601941911169472855894092888622046576654333397621222326893144001538332827751913272849505896132029493094088854146560337116314472784762981742156849281171759711486698721447549764611194966179918604318128220331543631391177932108523194654065657112038104564898150969873268154562102754581007052369208288917886302902092060698799204884872468454685073895165411760367485008296086870674522697516696230584306809394354796660426121164964081159790043181363804373857052798714607851751628393387934169117533021737507149008315453348743625766335173564201807823605816631991345683256769981800155717212649911295112678801319486699217827222438891054835002379999479139388657772698146018608332025179681241601214166305208399571930905202717559271796122775873369604726847607540066842861370279146921670453711588893331741791079370547817169781766573356465116146918315720985853514844561266254133622385804669768839196195037521432323819003004406316446725734774675489624673165220191450308673088616282052552319849379463467089795227424311811499656839938761301792744866349315825401761391049709128684284581874882183232034497144454534871884521233069828566779933519449706424059871891502289437405884737311333858141713885808901544545905088559876922190340812569231902663602750192857671614313472376765940417023260764896434661450038111790782727944124854281174119405019778588731432542728397159022910088255591315797127687149206403782710194795595309633341131182891627999946516934408765439969106091199055040242407258135665191357032521122922673846098344736249257290327940252295995280285084867885907876895842627916824627886730347084688897768997550919280495376587728099104126672408470490379952638984173591685328552666879689808903810600623920211332558063245105707736788754669110713004664841668078480709423288809415813359041913297122157027541848786561288564337182055729945695240184679736031419319092932363224897775500726680416712645410627317759236793850758217305768881684134012672725390014146308233493814179223290579002825135579061555541209078667049385842263756877565975889424335128373431803297625866339996290247156559048695678787477758469067540073110698687945458263658493668144205823756587447470731930945241956909119530911690801126622340069523543044272197017413000058114412194733472560733479574397004061117901035319678382552292318307470669012649324131563653382013039370803284296220215583285246437410126084762363954911756139802022205444810945022429900514084278021027890228126394768251879100906703116222953004913393206302868923006845229397902218647717264752476337094984004672466605298449940822907023566575768839747312576607827506773222390220022058191075581833207864337264256401211713776668880468577177393625785384871061538027498536074221192601106011694397915824078179759170141939846613768643922707100123601535660509537544607803852536988144899923432051706851688838291698500804264010248465683341267643897501439887161339965142300983039917603093733131998350718274344860903829715819987008960813290970868799215810755961771141771101900853273440327552843381018029213882757255014496478276350579773650101042221696976134512716877400141963679674764493585015795743671820157836465770889327344433141874270560884011293897306052887850889152750762505681777297819010467461569471034117285207190752959461237364139598947088648668041461647673877833876142551242947909710400070040772470247769770367215472109795811291044909089535698283320455597147218823345824904588591310717528031764962785584560451972720854209680258822428481512866861021310455228445965337870630472786119811967044649796176719976744010909754138367485059484004909302905517517815154319268913305900197263852123187922134297616399314758222742111211698350354693624320399013524623359081799656698420969477057662190653175566756075182461965724174162888611109426043338390679406997113396108623429288172095237049604731928113478208768430537847481849403275006505991827969224255648257077319363974775767231573797614091435195577315954226665302613761961460662565530766720150160826723991004420188980416211083929901882891517805243444790102065282215654552614943530286135306595113047600969606921240192688671267611896102877562252716453342134434564381701036196933957843225661454939724216868320486053081668302574582922953126169711093029533614390239467107052574804775106554348253524136537652589296923495987349278875094459507035264062365448154035285998793218969395034283495713941102818970893422180362039396555813633189375113216899201813742731343592210140985740563411665386912789238262005781763929665622389826198413462114736213825329729450268364625755701293185707731762701695125780159455979400119946891431433831943536271844101997891365767719467098687855904915536575794807773833290677567581841357404709939944280027300603021591920664674778520893067582717940494765363194183214409247813105962544009559884141563536534464389603477682540376747136896974323382515238441493868571557089741618456563435779958549126503374118694541590440187579522031732509650621384805709605764168946577303596711734407219900152510709931343187991864827689327106571394963419708356660369521406723128128996935958497407089055258179111815648094935589620106723504336967967739946708055006966026112410493065062973283947585115085294340844075325798904297135999285263003123902903373609409548519279856812096675207903658137876280631479686126037825293779953480708904755035321871364064545434868939039756660009897039795700467361863510698380963269151715867065904974561534257057214628982020994149123314907014307455467506667588721730334640534540853875402004074834359740872645160021291832761903987379121301939462255403281495390157991597699875884169787239051613078087502590318594485969381453946175233595370307310615115923114525930376240946187855029153759257353662102718402951698919513391532138004823597492426822445666456335144588001196291116876224559423200011514294078476277190504226939449573318196370931819918171911139242271490802861664613628865440915134262054954184839867817272311177601787263593148750469054366417100703046386299088164103417667068203552513092340410145595442810347703903274218073651034146708747177801484310200720424509212109092876971247593768202861287307986505534663292998512938617510708816918261847987396190085133060695246498605450198471468150136686186644979981863276747676876548533976403046497690975856838462587989321668165063969413647647966906892003563122952656095938512656557977426960930290222897109919736302276122715081988974331420467192067255756865925848084376292994823100957612286719832555822885597964971883954803725520943877306510483370811705188730111333532650685385476186553206785518212588082139053227534316459375595698763549157622369948384825474170822917789626140707112542431607054768150251174580467901860414149010261729642033641974040809537793733945730784580781567955831348518153364068445260307612763520185394325753531845635997211798535540734489273689002308742304759112575435324133118679045140847494307014709892391965169578756746120551866173309855878703018214941952956448086426793213830220423353778698493451440366511067273648509476196203844361532318028832195145515644700841149292438848184679150637091531588528124027675359115076657924768206645897319164744881019487114771840010147001246769950522496594290829245276756487877655721660658482237303681043218399021944491493991144756242481533208129375592640525928524474894610700036950069550816624458079745622175533950577188067918110123467422615745648075192997490636135223371140302199271799573251826534400939637169698010909766924620361411247927891191231819811375324973279996920079793436494679092238284512310786108970320264716299456790626907861070425516746648611003946918063875118561593985060780330253443218326970647638755921573902166313835796651426065664670564638900877144445529062861644292504896692169127380589114866060205780852816213079926692637439423636131418916475103002084341157063158700445774288933419579393288657494402762739765411044796139389208839084292404394432903977410056409645640561507090783919863473270247693402106932728752284466119267576215322125782238193730513380269060250086706386639636647431892047215006448716511191286383023805444750401562585978226102699719815703305056061222998327108924851102659367228238438305041711411645492905030608388490333727110879570252064039041278281000953874383342219922518686754160622932072678153126581172397242333092275543898344941069097470432781112416214567191708986693518625980790341699162676848917949483434358842119191986990993016002141187180876907921971423138584903612421669861336595880129160198303179871115807542198302966398804958520566551405135432487502138890136108501764500315454768359702724519098925768452655470476856733212800910979008889986139910558827678082814534417423674501096966330072244259254206650387920901598270516550222119106735602932047265657718959824272971310079842088213169739067773813449450507802086350074561667816857744724092553519490404671280395301549012014335620297266053161567143485275297856240026096701354799243415707053349420660455580294078741274584986071137961592019453829474248594537125656434079557182449723568800618644576021950777582794340899581638129961321764565231692892637852608406834259078681927051849301759840193480093600543095080722568120072275031133387870941884711136236924196400457164981736645656751266946003502560844839048886673579395852520258779497266948564134178462409532378678630362732915725976454906394015533918519120494707023531664211414392287937805253873886716213335053428638839747670969889134058253142419127410074294743508602933188941344664560917236755820978473752843550971250418509555639113143019801892398421845341608994102544432543255719677090529376968057079868046375673562932293856831040732563385796511045610728022850559136097005320213009176264843337064837448959647108493727831330311837596671131030222623698844237650800966057141098636846538691725157637597604412209895816560355157848130869913693723895848900543409302780090050955490177787336768583696486714079471182879898175423096183006369839371001809160877091044223111457096758606841872105102722095784189758603615339374780055478736948501174864244164202613063721361518508787370069134547812932143226996580888271934015619146640640171565530241620099975376797487230535829284148703604198859349717289050219897448118933867854529067158626574024631118065938724590809935124563401720519946375368936612434754987316860264980482033950328125145615893492358574769237162380380596362694009438234465427981257802326132092040076899979294856578146785809354686676407688363027606299735098363646420540302899486209891866612169536205580051828878451710424380044681178292330542903714780743551160312325345953892511164573866176878551083010259156751123703941808403356925098384739257032840466573002920144490461782095290947513524760533968985287266508453805486112698455018130126298882780773153124112843300994766329762499107485054734865577593424531609323967654350527315942798516622181142923162254206199974309051681038210278937716741847687746417240992289344117836022706373943667040522015468685363761052223620754152736424059978907676860002961974413812534938700927522287126663758858532911979471088741990929022730363970732451877739029403370011234440845160740839023315767462173816961738029600830621120463271640922045359836376044615688696586011537715902890406986834081793363202789271355882466015823236375187234420451856900444067327455859459219257618790653166745962778373256100122707594144950021400971567727609476657366582461624464793038100620100992042323486622980932789891577430738593757705825283540784556671627636498980307139633653392131754979383544397199496356024315349349525550224312423566732518282319134398560147396633812864521793407187283157452627268501634268732658744014652808167111404278367207802686731989941540087220061018907934096848877625511085837100922200638139368735883195149707469732646612096488989315330044613966275858558487900949621851923219336720560793450848465505025348856564565187590294919058570416485586059106507857701172056815609871758382923355083738365443480363105695601354858758133918988817614733439395592107204870504322634012866939268634068589781474386455831104397081893671146640234475480796326585029763353814602034999282405679717419611320646874600332871824055273581773630890663448906215873367888120859786375928437645937208361706867178701460550987089099767046235053678251673567222479236731332254993506675961231014727301979781432098941142997909763394861507784657614179185773835044632795066331030418637831440611483351154430696841530904427896442742476721856158958706902868474411245906050525926686366950477015902093257826909364487758075494133385060347581590973451633334278606966556339369613699220288916582531218798692337847029912777466427861771012024628545992985982752909649098605473374876664604342845132218467657295838405185021549830066228727004520506858575509979922759710844996506856656433566913858118524618029235453196057066193163640154480989280503728845470455978363576466081309585074360023446017891873001832295405238326827115264161670739692323854471683729624145332547884532107073400067562347129333038607459705160322262441637081743887674194004309002330523334842312794860564820278414133173006768329894119556577228813310250023538836824879301696177400764109326705123465929875700028689485632616744767124475933217947181848706415146693950883767407865568864044503634631571577279192200986944269342590683305420511328808810713706517844059703106674189126041398891685495475206065154848389205907322350998195664864813883949257529211381978950871678874428954336748824318731620776443876141828238381979573908831595019955322761607561264699682265017335200752631612353446941392638478910650260090595396615335401215863664785328932256579311532956303184505152111904099970711681038332998076647946501435840639365796318505466239624873167749772262514669967778694066838795710900808388054441661147532732154767307749570594053241099422844828262651146697040326315813668897637384221827794133087082803709764742420106750154760383992517432721297481737188343820828434016670297822284937288940468787160857705057004164479503182550685565255868139293413467925115425087128463336273800023964495133605596278552277317580609675670639997515656282945704724377041463858106982076077723912169569110653860744320702754460613212723165624476624980108829523933426273072456825654604140253886699118533669809349363910762586219325745370637990104578791325058141722416226503539110618106183589229783319223850095223152834473339513268256388290455819906054359262001817447947068539706397527159915592980259512723380851080337794631787810826376852751877867382702885433069354088516738800693288745096255763504922791756446432107042609732314993168040136154103828385423893194619737370562499755009586902771324772001128263733702034264772698649448704666008097345672821426244060799676017703565350994541430882325699466177283336642785703079919370790201892255828262050617735920254133388235660976698108265948348510111875724954744252380920667682187816975843338273766688468962134526896979321429637637549635788196589062446073106949383930960513545418324292811699479577822778598973534578379189461932466993539016595136994594902509062429866236671117292956526278300925611243534001967926805037346668892798532498445457978721744051702091978224861098511075842943351199769450055121310152548309296704174462199845091462728269650274170707305656665016046530118460293603340233349766924537504360039709892521202196224731221216449596307621980451614376257924918805966120918232754735268329998285936827709023547059578954727325584457908220187400970896052094777080738807245944772121705487468440009766416744507762038977517409098106350464141976372463823431250746349803539727189628516002463787563676115844744333051330802415397985477095814571261890885248720922403190566068224152443080939892590180834300168500305030838198230338198267770838963671389938416362674973593834537601503328484552163072002688977375086340596593189858731883803572214338010777005584210947474112919809792628431651760355198551574482714166473295624755825414252972283962862892856803735509521416588211135486312065953430281537198617584061815201859920544233568765363855918908616830370821783099814791648478494921496304338833483745515525235837902347990885368569917797725939727155778889001489553517134342975666031568357440259758914333386363146160378132435408522161322087558521496516085491124045122001604840515807087123356463971551570147843103360827468684492473540101242943402953685040937955159757381623477892865622176467525421590401098059982217237098398735614236162577165522325394828320192644099249412916478333009082259563827377257059863310539128637801303955336226355105637451673046885063363116284804714631088991865149520914980538247079000856497380932416292270239272486060445470614078515158933625691728974960629724635019032845274678564055273655636349042622938584060706557967109033545030236363129073887777307808671567149972359222617437448588409761543018241374874200272169972540312121594937787973433418412831509288460233358706565962111788170516862532296330022106326067557194365747594392875647989151161538925087491758458220533586850666655122353131204031331756742928868451459340249306506723459501097620588512230710465080257173525518025016377075900110693500234261337156599240005903132514730243951595484948386115031343742226631048522802665010997067577769274929367849428816492506817697366209286046510377553634303295767406499883730736829688517456100092494848079075121479710795607951440554499826400151280513491386345002622860391972832412942026628608369378323668613905210819613069862241466641990837660725017866540236526557214208429950389518537017522327346918192533695960249507446565567574208181753094982592931124003660987485647314786865709004995217270067848802541020870514189986025979162673702562678677140751492549682507129584176793882830904036604832080508017275687228652737554676964567612891206617955817918882160196554706427607039043110708536258428291455384798104091164106662948723384311918340376296607059582199094213384194660250525818137947174841752762489051884800555105550629179190991953295764128869701957771124828784977828969673114543500099808603662455703801136771334192613800031265676369488972238729698067369728014956422784278577100407840881326228811610903766322685634998185540745437436892428731110237371728168871344516261798194432876969763594801254907680746611720386971602407768303143134319124272141800744836840208074489161720153567369115838498299992185274796478206470564598869680559739836970966504879796625658827500448536920314065198150974935296400932172813394243432487071575491266485653692855285985941713840702897068608777359699708216361454219170535278300781321737849648229454274750373932274122078771255167326630955214684821276319065596909213342065644822275050976495011064512433530714042441458605342865310401237919052015061062459127852827313988463108854217326489803798462861346678731040027915313963207514673679992581504861411336550297608330531030537675535679069847342434658390492473892913070513214082252689247359467407056128806385219878806536547573274791327969572437061055384347367093173384523178797432713781289319119184592873246414863864119772862932796147614785980644303865473797928134940006506052925686431106679468437315033462198909037875145814644353144257647951655139235998659937576267995678957103465895696806909311796413713265231418280543545050492530841536556854558460477495342368588545655243261704559687427480297409046696991220249141192038324851911828953603512973481199741552056882433802186068610349320043708973321188657516148225384728756802230932916428079586447027845704688787721986124512932272223013699492488846805094048175128551045874609249758480275740557162421511729125432413702395220781720258734632004600546455698560405343358679119588974105312274173546133517272945513124377404137739372323995640123628305680135762220333067256676627982586469700405734270196960545203230074307692326540699462086952757905005978883154813845156932472449637960253836769221265055022276882204873062690922183454242676402689845830069946125549357666960759248829393578333027805016140435524143391742520125885266703084842842229126456274522129082401560373972587916160292962481998744133010933761420050154620330962075279828188679004688566929344290674676095608053939616525780262428309273741334205940308554723886818805841643002501898721548842180506401964172459947633670780870845879642184739724203250437352331633823868159328324494298345108574425317829902266206067761682914275642090012716448413017689669661856464911281845318512448445726190786334751624505300849735002432545763723281643130629844153369060417924784091602842092953522257537426012392468300725905725838053656605034878130043290182841275363303248511777743749223684588179133523934915166418945801328040634343214932844980340823303516850857064896831128573864028974717214766446600834021511202413524646424310089373388798114376416751141465612298185964897825216343359248380404327085485503920165620749483111390646838199869103950799871855141942281117911215886470900658648184580006472947106776202239499803059886587813260949968936902876845939070456200077985785793665623291999907228921275576098764231702395115226631841125276196086980366687831828522319675427903531480146270242372069043240912462252757328562177681273598532810304199537015454055586716805917254455471659092063830035527762883825498727284466808067097919353981198143394887419231745425837170976260214093247991045765563618473004291127426193026423966107610404615202823276923974071210057980034543454846334402836198806856504437714726171302679078074355500066080441807068223219719252680117175942105213426856866314222631406908514295206043048367582091983434139118051909804209595357640622178019851350104352576200478268997915298816981548036304966961376770201485962348020593876902807826527204710464299934867652713087829511913656388410395858974250626754907097628745597179677400707663256790739921908377264230208073500356694018594422115007402765704264839009753882741506934771903482225718846905921511209875857305846869198368227496331787011245123414303681924427922080332967227589726640992037720061009972826881658884553588960899918061309677701782342019469454590268801886489220241507015508547833295015605415612933747546360320374311900203920734319891809954061234378316038677255927997090110841192950793105692320856427869886757687953476994347233362934731437511366028781462656156753693742624288484789727698230731885239020887387043321288647776039762700644835387884987778203883417590749101990967232374021429241679236249611350237506606183368079279127948917190603031427220514729671138808686388058799583327735905036021377020166654391867392145372988790449559443848265926986653570940532790846211878460830008928393549376611903107898962139906743203403512879876171771131953294612217106989103944259284355806657625227249257842390027135868581366318844421366468454657536701920076251315350347794578623682626032050589661375929564129579900205825329513491158776027435193764652794919470989206623965016046439937741874782248783563620655983701254693879502205448805134194254717485750005133778002669502238095068613461350248333343526126163240399793931648997620008674985969132433026663955383945718619177733587100597677645894177050314125164820710248704974276332550350699064920067435801567159550642980596067985062774331087237924961340790819279136403303239816161669136436756610556270085448639767160537460782915276390199005204727362139321468426206997572910456032450689846472943083220889789644203963230452173939519066365758943687487631224934357414812418314197307168977279664627344062151423095524416286488537702033044189108887573571721444816749287740556105749940147372182803285285613263597227020068713117962017188721748298101302297793906910555764328136724841877255218319192267352861660775282802643489813236872302579774421071613537396194857337472287391567117920803042018917109791604075915812398432722659727940274447179025107432211900509782081037806210165895627832032213802030257998668978414434953057939324655292931842388233133188200875554955629120852595994813278248159984237362355067581369981575957874913239375300439769955571406472588095298047970055574520177738827060928883112892975950649849696650404715958911372328658424753022305660980824121352635518170650766148558106158631640227380331786571459247911184839557232197996170863480334145854708613242275532617780773779156807578336942684197789956323848803411760127586393260070534364975596787346365949430294855373528197913919622760185800367299604731444972256858807811524468220682372046674484699139641504833739566068511212334844894657184462732879152574450264170317505593540281990594290257475830670452469426135470010219617278823319176910213898032395913632222495387879692235949259482018046214799789847875948609851935299454734663117400926904065669045479353266605994995152554989544270280302695435247147506444042406094090229763936621226661552531489041862813092585311300621872371700629656735381537376814047922868750401244407080211139093717798814123839776960763820168867494071167336025212089437760037955603725231362119846233982862022980358838197956705729970935513681446857913173600925385791376948788794067915945710140868093041874069342880889500819464087327692190016927370360722468934178376709602086168842930449632777915126731930406946008438421896639535830542486325169174447586361355250304308181617384759742656531500591578256727603425334063916744229709804613974867347692009065388297877526740610918789608814057831296349604150439686478094564885583354997260023352131914480681823539083907289595027720583935186556127996666022562380306297925715193237355046326739375726674968537898986584306818048486331008716200057828641251726564725111310044760142248745345527591053843655649821780573097811286302906496681337150948646962494314240662986478051294002403256966218810376355455586825887121081995736132811793962636290991905087145342209864675115866768009451323485173787552937294135598581960359796226055911601841309766013441095514801638715810710473870726231595821801439258115682259587233822737270640996664503675528919189273523070188638197003556411034569590483859655416552211783860689958141680772954524067439038133313729965780578410748624581171942290663648112825273931890958020942938584903413687643209984507903134674829078491460259043321606795956992156248513741513531948740493403393377333792277960402682738778111573017500341881283143770876440914946405223079632403606568131557409118390276663908067726718418031464673142502284470409858686811458674258967937110784877621937927911270093137915439111872940939420110123832981914580665199456743641323226519659152369413131786095610407614326837038256772414219595886170442961956609712465851677946458316889010145001411567370766446325622713169147373198051337716150248053361571606740566578518726741976627815878226180676752985859427071513689382734717065045738365351436924639690493340389071808759408171282785702567651784346446447937426488468616243555175356975511723914647433805913367245457790071761145054364688875682639538819023703905145872042621115804899588055535094275987253007779548551926794154082410164116510831488839036859455388726645527459160006345406715591615966076126513243787776913615560684405285593823904361797028426606812890651201557653118213319422160457863518344905489104723331151038782060282357387440949820931388099158834168799552941214799083452621202411144224573977165693323520285770529196914174714132825435608953573777667568784295351315330435449019403711546160459956736368941148064647009958036140184938716803615717390870970610269127126287607411844054221014831009463295643052872503338066430211376192778938260503840131687419318638199144949684533876676673858156569230920031594753231272757135910490438586467646365107682937650883726197486532124804370072615110192998956651067563874841137329496918865309410223759315362007873256923123495446362856657072479761706886149249707701920882678290290072870001161145275613674455786717130161510866636993461181323185700428637841095730281840804537347667769252470134899524053839812988500695183440818771299535684412203302369743981303779401813522243905426049704685428431221380495473129422305066269784641694392674557553530802084244896095623451588739244966166389151787927171940317712490608721477064334543456961139791635268180362816965440449722992596282456354175140026667935172208711947293116817324930886360857622357941779345509805147226865062682179514540193573763179841743914793133160762439858569043914573112773204152979165945601469548117061968310914944205251713010896984713637604802833246687003838499102516293291117496926954221567240434711808689371331805357143454105390528855558872398349126754226201966141108124078124529723508216893542971613297441438009666383123747413082743362008082629194017524257429592385414303284071214189635978292600453133336069384952548607620170559127530944825037057602480706225967695301041312362829801600022896050085825256776630214154170154570470059424517642115048828452997179989397182728899956427975348651906102039243288149594717954635052941498866230276100669313899838849021582057623470295476430087809044054239561096335455031538454361718802671304957532638998590159662327690237108852719487298414380109292705450289905700955378193664875533575138590169365484861514688180244931870766900324708127645814859134703455838646529685652777047374754770575880395852950447861297288381668128348619833782783127461418475375573998680791124985407479938295406069699521865700404963854862518189905618359551634472656669193555866651806211221952337733426415486883505435412350478591812260398502955773673556237721678909668102171232029345552290169497034198229314031592910630301934961452417027403533790234879105769791645104153848527092180873082586509592231767817676401110410560166850320344807533299171685546275957825491731582303384473483055980645201557441287752909311394997326592895245103123230863401348307528600006290897763592140670247496932074988975119665906340949049416343655343265968049179284478510382162198591832887885904483658473303624451159518309386719977756291896858239315907125182163112850845874533530226296242584010507586686565941701385971280171020524810051802394266648693241986508771920372339444042912779764114030452039787506790988104394894419729902595967453660908284356220728433261269271872427527672713705898294585080722809393691877662900228404359968522753058891952199801937216831419745904978304967485494904404181307563384312605561328862720995806087748850698953818809338093540066060800448728595595128880976454902061328136651936203114831368120554424057889315833709543099001896495887626087247807029141251439557548535991538734310489488128406270784871944976959533949803997972253553406937795574077934204968204791299236618145646603623304267032247976559818170208305229874041441768690612472000459937311074587101109405537810188850082220430559816467695269101431804041512387078883135854404433178948798659284044197926583001147544528704015218339012555427350191728931182037671634459651747856348677237761452272399860381355809184112693332668945625495413487514492516071814405831129488821470620302919812441004386448146908454767102591319214131018363666457530696681039262609163142826864898965479114486621813775657694752144629204721112927320465645538954582992958630657725320289752492484437283344731699738657016626686880262422717424200236490084124018241655187562689011548448235032637167838733365017599886227278604876329951191797583175275176969176811628389177054816493144938195595764681906554827724414537553566122504311840631079961073970943577534993935522818673097853123334428819670344269843714381053372643699072040478812294428914112430176116458046441297345126872023713025857404886061078085888623721892215219880819633987278134079113432650196886274514779066144400032450887760574817593104983892468715897274535797599288627221746146921835823165380912012458936522936910793612453607342235096919581832095369903966059476096786743994441870016960698653319867987345160350471410755843608605294571574976421647249245043038076727383811366772847278623045244573306114262249026007632342246732492386355615959210433239008684725863619899613997428134245158030616505644726926904259105824064261110866346806891755750986889573285279854592111237178374476443178665728453072617054665360182405655082795117646453070869702797663769890778286230638068163070864126167577582154656340653797339762996659228628401136004823358537781360032924769186070028254407947240706657170873262190400224783123785365749272660117309303219798917192001737684593436206748328509517083910687060780246801008052309335564519690708798889179764062616717260902059436023842634897809437067044583532974529632355402777654737716921904016919784651081748663607365837217567988278906189920404086074865420394900192622503393735237150398683709112592068206907234047338295889554500438812127289523887469750189662557950679962288595107219769031897162106953401233449079760030783709498276543431520953401893085663739078562346108928217457537110417762800535275346010609715127692043740012961612661105398763679142180829849621999926671049631337988150270614815818185879507177188973294327658921766647192799537073979575136022182615590202999615272442242933878485135606842748907368458983535929803443303614198488284091045665826418838074604573598555118775110064772897784282300496613660873761063719047623137047229319864037287604923825028122262880904682502120701462371929907907529776460298480819557301932501465285268993112086556187788578413819818064217180750783205191122399002414054126351361652129580355600231894458356894464843850870966317636612292668386907611122097668451040546311645241453642947885669580551619427538354164596215200477610093972226929475719910480934554418575390418125644077211565659784794553068135309012431894345605475873605596868266105384832354236666774814759282687809165908181970433367838347005237334282219632548031723301069108387490081464390158746797945367944575573442700711973280734362039320144761550687457365600951547739894743477248002210966570281903889730927518178530690769236068743406262383876731712777174486724521459882954237609109307670323735389270504699870747293512746667954102060496079412662129587994630751132736234000917364652790085306128641170102992321915839761540783778288561034905689748466199011438703545102649680628241583832617897245337482880371305155191734144967444174647505596175548722974158664337002528319280929885211852629831466618425134379465803654810268486368362382732300927705320009454051551892942218066970424042677427436499275380713060738746918951013571339211259737277245845314093749291040426319111751882100542764791491049067830069352858439531877459280087382947534568717383452604003345064279977729102204612660986491480638608455236036835608767730486326816520190027538374731603032221727810036427767351241211816505469594532465946993698763352211185076442785306675288765315936615223954020509458859609321160192655181639222423044390563539072936366374078525346405980688084532532865186990466635446253892912980469215927414390168033805381801455626262294198524983323103964209790952458081705794910671281170170304547720876603787790310297539619337046520186314004094462747525889081685937423473161327817135819020971870019018343188994125285346783826719149652619480037967134572452779238309950732471649376921991252374748835317023782772656221441333214273204398864196113732634149034888000863282077299411773694844617737202220617379412655806663650559383840098338946647667800554178906117273766105684246966998427399041244013546964942424959655943231232256391446097171954596649358745518879219101745334035954984180641680728739876892141722326246922871491163511712064850489109577068574365196694205893854366004875283690201115518348178534357907465717019763708777633267070273261623869475708954853187603509147517513093675660154521613144881194331860812208448754861259511989156962178304241925185677647471108808198699344899432635182198560143752095953236627774764701862969684495762790002087706382528945599174937720814417010373892829203477679990169882812429224908268471473154116329932725729068822627143361134747156949321791565867050614318146575778009434616212687082508111301924885900494989383809788750379103531991671151024869550898611310374623918430281753123033365671781776449396957208116304107615081487462522556381722784193605858132816479270065935609063329457299285439851570545398283269843137091526203484212071458729832627248305006755562563610549994294906139825719923239452462068878585735194591550481343377342270901839503239926966840663107334814571303484982723076825294164150701046465380208689140952743208735178519321181403170058998878747384020837030924251079623146306155924802922631178246689172274077985574564312519230288183737583237062390083988222788587429956442202070025869604216700217166771365424145550169947947635519974019642569205538457521232419160965925193614656903857664689467084375433179759537391567774383045032468483027477369788521429086040091531798897218984994736872752463607540630817780860336922745520574710832446160886345638784130111531768059032349273155857356491242949299189753623867125116720247325974928836043372068116942922683699467680896532222964171034711399322423294567994281744970650643586666276864594168504174515862841025421509944682187632685970065950148580688814079709230419593599290311004710610696417669240374853968416988869851209916865947256235284318190733197882259006747758909081407172938432627257313451854316446968267900084856610828020110201262412715111825251533414563254657500578597439965779065294970768498589662577098504709233736537029645925234456460631587694482307340110412454709218096649481081455379004116605632045057860041822122138117656684402075955232860993216006771410985103140967356077046768789393372049625776087006723322932357455456545730970910939449829909987741909592097165793913443782815239851055681316866166773205574723473857290464359113986101461746834956280182602810190816945043062224087501766907124165479583556389369686582775209963528351146472821712663174724062460094478455591337855423989672411954890901104569134299917761663694328082505460365759312510419606717584220164557201664634471703349279108582920558503547366412793385944472594752485027244841206591994336703514539471326643591878174513326450347404456881036946573903644666785303147723903322425780618001183623919041844358925605810475738691313533203572936535237098636245114069434609875240479147801348603219457598551472277150173623144634690989546685338537838684623571081493536501753054833700034278832469516537657209304496941758044959607208022659322015448033583247542058363100191553776904558161432563359092344829452197740951552403084838396820353643808706218841727289892197786994443908252577870068781532107798549704858401781842942071278456691099579962683919261997078538568424624554787525927800275745785946772910985571920864571633955383326141610893546687100073956493399163573845984997787717718836332942341179817788181261046842667668197292653532152114913560647963987921876336493699257300020488486542160047367406944037012644364473387670323436745972219533169190131591501777253735127809126613522018569032250848386534230306772279575520145841499219488062268087741226671592234717860588479523809468326977090954874251865310267517882712737214889851181421602423126419398143538199937511211683367935523755794481694914022451746629318720470527805335567533893166211595043834458072394480334405145038357022562714330432326742973433800144234976774950533220689695390965355589466293941114728214765757470416385946531126643479605731405084055099656514111295606488672738032262576272186127270675764258075635993083841616861796464764179532298057751545390573959219811069079270386451129175948406201422507587254569353766101229622613429807783657980467848693717769988917879266007812056354656084502628088524723391383472063104227254991007577227572755931574139896057295024736222985675185937833981214709490811612658345258918629761563122299596409881354826574468622612717400446191587222719260442177777556827977147265762591828099293999294157136853095142116516332639643422456320359356703683729599083129940529723021816432152676122287591205564804450791021551637421277352208590884957913189063726715735672377384540005075023117512310604145481713657561212237151780923001744821739253132582359220680976121426405490014845996601753361531562537979556828104964618050777009955088610437006405593036456550365329946077245379910037708051766682438400912383848593053503813606787660046533979362930814570806823668997719592916330363357146079129234259773685615614159996604479431507232400526333443113844360193680713038844534375502530582162421785955991959435068409105705814361519446499166603282819452429473673314338078170778942533760148907320721897064570913801324224606686998211670649999301628963654915239523874349796375220890137112595478550516916437204660928756113014700558199417140814182662799227908956439860733376278908416167796011114301728072430301384203029136461926806379194781264350198041433213881425291471255332606472492491125474092396917386073626678960987425462963104019483263978226834929864191958639410924263654929260891018830295855760814227893821856044778914212267655643340120148109853560530942953147885570109236451659523442239853500204593084144266995013341684065467099704010857336020307881494961843486580306302043220504655223478592446922106617622348232517279794487855665565637520781524938576810994117649354224118187770481890840681651883752490140766916372267343340198234539929547274108405079560967756495141371859238608114874303474923948983722856851211957714691620325420908652275635495224013787077429215826317821748580361547574215520431806757421925217172248439781746201968360934259818544022642704827523212313623242034571096356059013462070254003841364813976221379868418835317555889163372539649320152702067866664862610516171054726472713267623988586210858617076501195965403953982100958032978824090892173641128085535552051470913588401481448496867182788125944964402826146515208225327173498889612564960776043099584210869643018580012045598040436246641171626213851463879927718817076147576995834706167699918269361234954340558961287705952650307700107491658059036602459388124511438346195406583375777699040876244256008480176288399123369177041497098005986249383174093499044977077314973480264904872593158731710256361452656062707791392096694872943583127117778209208547808816043701334965355033123571535906218802961872334356479382105591296879872267726766118789812885198749886062949024320809248913297123208779238499332041217342830097348376569415745577622702980898102444064744666803894456812600221192309297314686971077876140629644588766390368109491741206161080191393234729764974003120173451396062937011122853910584734126172053545436527373615591806828614451104121121491165717400876677712321775288337064758738715206870956985431607686727742280062991679084938812827509889719691800774062390845916669064520595608110388872209863410789403259392096464132055114025947103131490326102832834533917384564059853091104025405017659556048966659353871972183387968113603698095078805908407378949535374353079856842599396990515888700117734776918208715526694841733443113011235972311310942276689803055422678984273464766484492183916300548910897854125939025929420649943447026310409275803468246308867869834308986038770072699467773038782859033025123057046923524373116775042485177435052162715022903432433343083331748588563309193252887428172097294746131083652904975569831945045302224936669157768590870966189777156105192629563161509521804367129982143612518000441427294456332970145773323153569864222854747183777919195261245587433383749114324589659712881021379394668988012981718084697270444779892945895335717638895525007997474323906457775602996332742010130763925156150829056140402987437498823871552167221471167889164993506469852337710076558236969430561999541341062147702804333663362178534076030311738260427967495155709809632134374427810386453144760837387859921975382314844633011137840721305950142866517667296306068044197893135912565976610275053889550917976455531641672532598423463063031648691838083116406788932335004355524455877326104992661361979182069521256009037914680565524365386468142622337118298714818591640652669147336856465591628028928738041635897385868731051893892770496319941480554658301169808778967209278765379184678256375778809832127160222981255643689117180189069880341197383123376546605527052315676449299733251304352164228780250270748445959373020705879142597718797835383395470015679817815766376285177660067148174417114565364713795209697441797248086955244449853739661808455379474074885943775485356823050253927880957382964218790999591508552345468784571091018116244399100591118492058895864981644958765205538725461772514677832846065224095056061394543947119009399739394931041205009938527169992343694069689323016325165799645159444799835598241346004672533231544849115903081870477119814240571117416604803092156231547201884938585415130420860253997121758247123783436521252991904921626748461386429601114346100511623970441669810634741490954088988750770585344065478432200495588882037566132766794552279430897245152601527928797628687838044877827131254932274231768226669082259366304099650694610588977215687106184773822917628331110686393782792321196942895219395467647356105559934683973795786266534489087813463589225712616364312995133670242239620628361708745447811064716245052047149657131187098956456878295689753938448688146204318631451623240145125042800860610314663836900004188070137497789096560209299337756563844057437820754620695150384343627315928673220507845554675309218276623978460024504587713145056614315231032673712957733301915328632715921343018404507768217477158361519602774708745267888220713140280114992233436493093035769487273761525311483889553114377850014442660378585993879264752485132078816925333737139491500288383764075553963263745206278293408592122420110535161238534239499904935396116610306252649805694801782283635288210179071582452953600575814300351180638635850043117746051027665963169418507876866269570585803619085347010841316068484994899262614463890438261670632642342854889694376010367347907514007340552747170987767291027572006342314093159609889495699561782633138253300245565937891376064755803022396065036298397871557217088300631234695652188890493990357051846688632441873133606031453592237609159504375165799014165996899914055479811116005827498412421023273199534627423496286082480136303701238941284666837830408101241108247687736526260158388374488920343153162257301877929277606966400386180758791737782546119542079535630246023186340747081409093402189874687491530393039581178630285036684309664977935898247024494972074538947986989957719267262048060931916162395323582869292708416194527077671278459251252736018768960762541851578068379886929014905716381295300215991963440779317535031518785843886595357875968675439613102211202201554804117704309213852541246025520659001482430397256368740848411259812724296284840150480368670114643907222240884392193675355713289155192573454040586036727210529431432523262640121925492320257277569345323693896419820278662361354296628997146155588873046289834776511227220248861145932935856512367720253344876205012064567155970634469409150052219837234821533230212461809469929000187692452864977131187046617794398326037180848041866729521551192648100555760475539285145285408631702495491257427075130520933750486072127756927446468987640130297763139739243681807336593577875992814329430751248808978433455729618311058973080224737718601969634790482748805987218346700559186204541675594363435616763793496000608988893776616598718060093849320391560154890439753348577228701111962045302188513648125174227181259572157694715179199285741970435037058765173054961374972448331406530608904918010047226249640331240152641446432720039077341940654576261865668548411913112698278874354715431796318644562830832691216851803229603254133462768343911424557951933667167428747617730568596486675637716356117854268481576888243840152726291603837228367778008821427108206162102989157835944275479310778332371002849591267258313251532576507195646391760711059839896504796509115145427618819770173064787207830089703996626854325519203855771459400069751151897449348072787071277324044531460474319381031269603626465190314858786354033547460409142330221708639438250787317253384688590152656760900110372084132301116320197694502172482846930744923554004133198462939553806946264012767590512529864187172110876520444930893725263611774709746067762192589537396387083258289648669597244394587467598899323621324026571457807065788529627558144713152848975376658927956481724688871896077574362301528069437392881504049882487099213804399246451570622722055232776671347348193002055345508185117515715675488376992853880205234737346175250746465410148125592299787764775458751260816564818097578736151422992686176785457192253370405840342226704994802896634834574705668622035302151688171229477999877516576367176729920925464835072412066001989877897907575985859124205617046389334806983200475014547576639919730784769125408090102488494871476047079285602678439120202897461976102723382231081589626396926693624096086432926648694567544050857974457314079103433630525809504185301806884173237593696318180676671201645530899619230216476382234682759827502239601638764542484510489620376570306930107021991048966412450934093043076930902566796195353663380341419406515358331804059598808993320114619320504427456314719073218365127083297832560445821287456512355549102840110757704817918010588034362999676434944676149543556761585367627784356906524614440025973401701479631351951063788098932855021603706268876918932386963426830195222320653958233768264716495507602630314364534149744861220319916861527019566286026675810211491300223093752566797129884498286155773545079143668009170308919835108605991917998193505324144049029811909912288845564109821372835645996494215547520929754440525950371218125749077526050304704586648866634176472791089040886839282417557346814544760280544566170960477855344298757977307418873277860060468809011861162198612388005020648363439114571628232063401049931498758365480139235065237431195068009599289357599918790991984649976605359097276009845452199891099079556315775757801476901480144599293831707427645926069190354458262267959955022165096788791509317733727962278103021753838876023683810975491902259544640907345990849930144361480548499672391228907616711034222656219033685159754899257995607571210366918160140497804686054242560150465699224721971167480770875352456553166483472763146352976848749045188453574735234946965555843713562369687836596739068584999063649981043976553945113807573553866590053903855367154258456016262656602683046305032331710767535581471924438645759424189295802561987168509462085015210130159931926793758526557468414263418337373331364897885725899770471652187314251673653086728279553996303401299241773056318051501511634669171183188174894177939410334581161342854580141323674143645828368453196301067548078345214408370071709029107050004992319918920478752741886521308579333698574596026030860516303359021156740917461554736142734888305068064519934130828819129617608402957219682158240621736286622938522631372342968231099396909423679531967442729181715896288883946415395563265335260128289753109029112309259647901121605027662312622701683210628448659730998049840010887020505546655703486501607568734189952856808782193621778889968316681399315582117985769858195879310460615048199616466273708790806123402127042279010336665531845139730341894984251781490731916726183215813001310291876053467446549132668143259689687005321500471728595102057318216921171809921168789293229934266696115492590911074832417716699197567616929538815843972750533478782793180179268426179698237091645753715355864256063181309104565204054876068477730375833776895143489171212889147353434458761060855120494700198960412826450494758608385894125447130905580179043430130349900587715748462682083565743184789275996387319135415435237735035763225833892014286012000712223558288832140318715626536230722570674900601448624951229740813777050473489417848917374558030073819645553890915555673406333948239964051479260144119849138235907951009016158594099492014399161085208002250562878834811370619156587058110227540026911655302575556893025881926043705551151531251138165199131133471546733871679181345394573018793766667898035598359024906248265517402154408479918601380381598336377638701683676446157392266412871682062827946998378776861052439650822402446375476382537401137773938051211254765262034201906925626657108047749202322311949827573101975147050926798174731018549322717539990268033371032766701459517549136381738185295896013938746409426112241106000590557756719296266670537321978564416321447983868030042380060791870741154955437397004653981734127789635292745317818904492721251784398929054766510966320517471190304893116031732134046275386246870883234490317024984669809103977437011844014473655159882304642369562010261184784813876536102807387246108384563527808619894814043881054651087096307537296730755821024266895398072988799679662393704841245692941352821069636777988172832586258300707332609609961823858291750271571600642076412705378777823583186061511589168602370435030896022870942101758787749510872204434321139407059474854074661947417463141775538381849488552576544350618500147803077902892016653534739333670090282807084505785318524916589856528569064892680468915663076708130685865723502797211889835638692863788130866814156619816476058879165983875408829538750326918954985179713207027906847872749661492724010643136764135019917021148960088636058333332641186813257684043140908798790357484582314253268162610608714037431999456653952787845995269654834825844919466135891051065176888720980857173182408987614384795392639212203430793191762002985483510371418003772026821090741585797579411944006473013301528762659043952467626221616002081072443552509155960426861728311053134628260201565267604737082640858553561672786543693175448799763984599772741625246943321371118227064904025030884669174945556562727029616321371126440354702200964515418009785288826978174900227847864665697192148252428258863407992591729752964096581998450677630809633898167935256569710090946400824769069367015180309478000796902096861977103006808433977587420752258697846667047588861557235508723652727002939016319823700606912346053324057296807538312112526679217364790080478924785165529002857835538722057389829666361701592038537042224652538774722877049093837848681529531449059138228134631607333653452036247543553520712544612578344584492504115040650269057778584306629027599950057497266540129998893012784348627436058170479742546112071206115000787269351707407072365856153851003769897321653543028245110721819696692400050613083211383054300334538511778063344806035804139806073688493753619052092675206437654140324098114744815125291244205795433942891888775211844206562611709195316575460346800057933943667100995201973937625433064241687862605316650154792254515383032031830420164910689018538361737669818034554974560884438857919483770420846038915514567058191568408302177251629200913714315682063121829477996373070466108860298071002807728979571759556711577196796046396031618426220896050580704856969877064562350831907303830385321960403848592255790390259877761652306907404614970974204089004375465017809332349298377517461140477494282967643222182424401131729113065750736623076894797704848322627399856451831938480836221774797999801949209047643858340542931554447368293988996685383166550148164328543373444714441134519636954743451995307502003562137349969654712806324084529100743989712997303920984160827690764349966862627566525979957223607923860874750262431669318271597113252315423657527122326074152978141864552114558134395324272389024331499179811724889771952361923986340531283763893003244649028998125856011476205877831677518469252621598383526545851074425241530689165163935454897590054688114758024299957770894601813177112167006035170399326908090342600439769359267482319479901452008541985852843064754781618492895912982207227018266656284248160807598269939182498855008336588889424455843735113495077575771830554420064706497675280023626296519199960950150048441965480752459211416925106920764550349523716978145718085136222641902119941088389403562391090266312252834066926253070428366493876165579649690899140835305126027212687170448253938050334871390477790552262675384281161501558014195222877799400337005428106569105689292702937548776375096885250478495565237642334050089054670059459559920798544073354359445739944151218811602391094471223141941721829624475589564362432615260042150967873725287497271132277862567556543710984838037410217390911984173972430592906602824643909854441390746938145853788773031794546828947290632596839446385665171192437372491990213240575699335381690299363558555538838616056783767703247015856892441322237056869716862062153826263250744647238230605426535043524131409203819032277241265506072466120605137468021938186679417978146839127927976919995657536912647710263944180883559370101234490546459475021328249167236955675107459890753478489143966623247942445755111792685996082407059409708264002457459138118424204542483209216512182016991742969580667260452299606957760828052562415573421961604383046445846258034937236679136993354496406920819746513856564860895686504599723955667171610513330322155550040013656302649706427598147767424127773759090135112211578639712706275416409167338806023106731287935755954960636167669822062851107677637721418942002234139582933917288421614752700548954829562564664996941169525137333007077636907383504113680286754435890398724501710488279857100758302118307349965821478175025299122478468803846264909882333185816114537801194095574498675457021237306349972502009055942684274820743104570194511469802706626135359452357821678843559446153011930593926635193817297041670630426145459959874753181202825121338586003501178824569616465577081928560593513161890931103992079492678107409112802362208308755056924112448582928043888962231568179770462805461432511824226149422991542178382965237272766852716646287829300415572514371451093458532032437681873950178073275364566834106977039910660184972579723931207117290466282337631563065688937396599205176087042248198292717308095735130198509541902143673782710829612892863628253385056551200327372749917378180520082626008903640105678445565288287247189844494883398581433536626365288406642286982966698878240928866980911577447188108960197756673876841622485308925701062543687585674416091439514512290640491060402804368294631031869490753865635045337251878097575311733744268327660823871282516664821419853605031677726692478074801516532585752920303379606025494520703253480288812717512108134360608412968457785672738620671361804606498058095589715541489131083410072676985942676604857481014138675200637446773207856428011069770552074702470193819757406807987479305291756987026862591405182970104791818050347057319529857416394855834757180501812169733594464823391326510626846823421468293749489168609102728996870480057095971355466069362142086488276825325266944481728846158274006848546564706788778318790984009368043438308939379642193506504497336337546842776787222943818881275423675191832254902003340639082592949138083471591538999409077309668470121793760100911499305005513463549452133240701847247204411256929755381302108267210941481585685918105687451552170446395879951946314318325166292072513925205768704919663436332475076423522099437390908285709398829770965940161629563881911780877629852114205776908610575479937571665974705683678156424050760759252690265646276938383417342985868598719575045593664619898073369425424194163913777531402735564629878441575835772395694578545436560030069944332841661459664333134093823626042461532429085130064775310601742517663312328663260332986971058713839918818058045699621812333820074487093301546185926658521701106973769575765980957797036145107264029910033409382480698705612689746343751490093519559352230933694671307612730218254262340836368158573620682676913567912058256047897705153230455295092405404846646812172149929003116607720060131597836583827148534369980679945184343574156496043132033941807600987705894937321223325313771229637898770353071259137157881618434754543941606309674803251353986531897294552731351469009903960208258877725788238228641999260547006243008257976297820056453797893822170318731876641982454239753525890802763574162294144289892152677193105634896531534793267887628564225330497289052707167836262607498513423511975786661919708656324773657334055822054685130289476538395425410307064764260623739080828059746223848166871458974824661824190987514216337744868657314820492369679533190596650218919176419450143390678128986797293371140218268022481495211559459027273239653815472298520831854816340147235148925169370278182842646470557008817788625700459573421969787454646514618336785543421606909476604963381062193506741361133852478488655907718921631280655171001034489775753744946726484693952347871830649796448723840839411043146232488372192692149816712633788652246443193819357446937731883246006126015688691987697502983847263270262081538905984214364738109482253644198428275438889061688390047428414816771709124559690578881319683833196066548257676061083489927404128860250792584541893904406062049024091061209383403605004599858524271496236963290307412922980481857728900556988085682655637233566701610615469484398578783128041116301029048647185900890251645877130593301276947267099296705625252118615359037232709000067591660102762218107023301088925206480759711035648259989194404872198993381236388209828243731584477184391095966476746146177481736222833508658063158797584650928840854804103350586891604106545271196200091960362342730244951546423923848999236963730502572014973575291588311667319321941315509756286533878885404651808519971626633456801183425602352388356527633279547364673053625036732545730114798665892176520656915742764958445906353182856431944951881560874899545809321227032623321009266441708763993158389187894203103605079398716487560308545183613252607020316260395284272016302612346395663330563024305323753669610834338273808010685871571390508569413153227098939373565056950342864604910289277399365344016639684731707646315942121903630570128081844881320543021759118789900774651221847891324269759760040871151074616806246019434544731233626196576538826187950117201746385246897647745753454118513196171419157414738933452928227662623955916608973626649885354618455431823023906145737315661015465809232557421002224216796993455619591273519472500734801145713918815500074243969819009177156106209464683863687277689730931460334166696279787787990061585211698673266196312349130731820643654567685743840701441940884196276058579631074606751203406790141766630102204221714594283265885844115550133217611915381460638267248151912667812179213187041722568361718893499721302070928745802063442877994157830875732642731922193607996267142492670172476901806057149869736227835351368747126019627977876160767587831499111741285148305920815523009520211027629083043781281610468398223508005488057573068152093886032361187294663755758387351640620160986573616470937956890108116714376907828740689509045317302263527387157137457003350612577193158534645869141623544303603047223107629546820498022558700371365420206752028517460636623998213604998836275094222875504420152171266373954468251300269296521183337138214520141205285458715329276153437564727947667412430455269967237473914218554839539713845164915233457164853770181542993341567875685598155615689806568852762764574470284284112172639492127136177438793554952119829468816903472494289697454475566802542244062498371195929274122646109770400169530108442410964612050379982093535376510664931235485218679463621136693195627774835933448491222983652104743365861317809850486390503201059728215910493758151984183587624696339137623178890200456941761223348145356324305976815190733569417673667136031059586428001577990327662936093758588599033071618653868627880833148308679201518054065315883545560134932982259914167450590161738133233851502244265372033381249551176364656059203801020774296658031528425517307301941848081622299981741045011430904537059643422828719940208327664545742981018237210573046165671840253550846815288573403412275340553410642350158008834272881462255055988691527046005892153797728606948608447294343511819876160942502250747829311784855235361648837027461779590972529181830436338959251876900556206584106831156802592517496781090976621965410383537984442975148200598845439688344475755282661333172579350761356207945984852080852749553277301455026176700477452313135302600063195982343728833244908956729518717521778993779805439496827168071272950576271357411972235735177765151885104480435559428637646038740122150680562118830868757913349151914270281456056631389279985145724528751681772902249692895953094744064025910501544159078705360828733624497943802883401774465067405044881766914645314940793026921647353364094292287813760338127454010457874165049327473276697939902223809732984887684267034861971940834777105503585632920328783023781216245850487241895601941111080710450922139548391435388255521499194997473475209558862747530446735812813807863999931360141921779826256221868027669147758326132922448505503537147802141399739582081258922926163166308312521352941428912304390199141616493228324920458969321876673245806666347331734361771208686484683102676227584759280567675018757092434985009596054454088553653181310813629057648645355549488037043214602545509380347089757481626262219612663474991709857367193392022464173996124629579271647442633486813664630153847528225181647020324438449424242051294947044324741778259117143497632378259496790454363170707447532095589108050673987968031335447743849293272273482174166529246735034868939554275518523999177330733698699552744313577900173389107229474006434607037578379155349244985374827087864708048814438352929434838620006071163623886394879833856370601339835034160074607295727088460317431572924663786697151867570916017241540937504424279869357685006260162680321434095418432863070380915600637089078300850882792056898582643207848419339890535290232538740658050638912424044380324371765504225260629362637187269873908027622326571592366173396888663913942425772402566969335907538620670540215779255394331809312903645013859714536406120991676812470207685611341497221268144679532568935433372906204338420093256193461699384475854989040467304696192186305885113430689321408239353303741951984543313344346264678413276902466239034433284437125403670698141187600021135199469731336891183288503411624146452882704860379200070852140021308054363369102571444160834999014920687983557017313770649021420123079363650319416826716298917944702889554531126120181410459710344231454502584985875413329317125442261219460432420224227867090530586047216935015253655410127642203155510955399931449600639116467954897660267271108760817714156914674824891849104503110915876328757704839559502660546653004355645935249158373925070421806754624628860548404009853113231990912921564608357161949262322730793199462042302763605534067360845525499955283910100783270986461530365191706337122496283601457194471895237000762351378388580520252625809295115859849474318502560272902566602746343305078357851969521794444920417917530838170856440753739902735248241603427628812619151229312937949642122008185334562027257966231269821972496682312831421727901693053798181746343326617459039103217821829502402271154751917270966549642264440445401516132572816007276934709697469475021923079587066889780373661180847959093985685226134494662387639886013877176763317334594617368849584653103187396878182311428480382956513506415064427002028579209474144373401225397695445935319970687976195693286657668252709604072526044105044275180288070610175192112875580501028717250018430323782905567059135140013140378924531016159701332003687651491143384435333684668378460364395450659042714388116512266197982748064275689574159338001585854752687761415832987431181217529287378437786174726766317096422397954803828930969434475321479775721625414646236828158450532258434033938293635316159279364553525762032367994844476675236458135014150465915212139894561613181307544720807207406641151830397301710481110723718659085245129139095810649746977285910887437055184515999136299119811903297017889634371560575280326650870136423611744894709609847212496956689372307138326875748445707504188131788440568060622036368879192181599867607924659002860234702193071622349732755633662961202153430548015587197715795488380325144255855491605165014176602712555770557807212705893888587024965812640662006303986909089886490014637160385566721811860102670302619885584322308002930080071913039309388898075397116808199729660088604193728921962136050444552517733103198803883890437086425950902531901614180563698629656205905315649642849985833092912668725154867581082023239640821145247344545538820113387226088380762876001862668847615879978405441621490813644870381891549139937753770118814845765853962734072522055917476861890199835221926728623127746764456738574644147933630438192152015553030879189062575797117862006256820373612742226082297911146290555712525510104863770748760378113661228131482160072876939836490399634669196988539720749072411919232325172429893490953902951272562199491743562945078662061614621989030302517166991535134770930588029407983557217324079151702273759563224919835510598207738838091458177277587357784414501909022319858219197772219151649618464556079183835654704742138129683244059762629801023014253296992977116406778803377956651232151280726778900394520890083039130750808938128360186471674459300429780580062173730315540828668395738938123443091926485150456226340252412132045729366732826963481295110297862126943858525261954688293342033497022625086772801152790394060179282185433823927119115179836512726593541419074233058530142653096827715530057762712547450555788916786246622894525326104703399548557406035046084051600801951444724805121373664652128634041834097219665139322076688812140978481858796970875195758251615801746051607460163549382737234302499787861663448241629092132200257771839997903300907545750043265833589313235565995195683974973778131477011497961232379166657521007026318825093083186595998183829488640406856905125161957061505363548603440812258818207942147177000657510317295489339844989083885340072947487419659211106803002702699503195804145602306070248039782842709931553168573863280838810052644287561749322998785161914299480340278726648053372001285465478155201489750735350002087111451654250204780227557813189360480969024188254804601490680261254841266651263427536320014759903296616991636334648762447768575799643762531572606764773925089939954967806018956610169762720718038699488948077951144925517612019931098142786715262746290218380923933020732337341476655641367707062066923308457117348579102685524249033339279993541636876766179399260165365535955851104433166276655191458898906328017928560497815584055203011215759599355380835183099148792398212527303443842081931554327423305282332277811840561939210853139849541652830273908564404793082052792888749413090865314060971346916228855447801245396805706325766245917523621178766968779813542923876151461325600712163609314202599690970276368748410460273781416444147235496662662181134626120774691846690325749838705819624130490432190484965486671363327233625520089224472434216203786737083872956690568776502936512735824138718738809268584726301800385348603684301830883269805916084086222051008903552498070164038207221791197501341914465960213745744303208694077723442243754276347633306313922523288422341899407230512270285490743678350816258181326850860072863025326962441951397639403327630741207531248580836039713102275120682814142241226787738131240173623714913557725471408818846727391812710994327884015089807846181749520931833160049750533926003011832931228588536767667655312667461290523814980216337256639486348118447807072693077736230433280388892430781545714077044031222973947407743176462748791834763549645387747595738635691003818500469232698570791600475190294682716263422205862764872872770191162450011324120415241726545563253483818951351917651983450415740170672736538462545079027372991379603013419442611171871124516041995964667374036063637792654567519857581016380041489029506684770156181406760170829376556812166795707003311023913171515180785201356424609360630819363698683729306980504619688774583550534498506669579528771559701715008096204782439406258266689822830911255420467741695941938919026843131509851741026349642227736151578758565467307710994260714016015290799579790396203802037491978757684197582740594996762519307767419588385762135238849724663679168505201496925377947774884686553642907645416896303511853327745882183825746151013910539888532540881124306723899989407901129067957940521312922031811717143799504120555118104825184937680450913880970803255346095691609022369545827322801200747906551928329531541361006278125313703907630466729025834074682812442303222071813947903126120217781010017982912541125558782952243882793729929122108225547192200129945597231229844110118492887693420466911476519680089608748355381066664356789603728660261832806083836970345323099887294140519575009095828721250169569696763280521926363747374476957454608823051747892958159884130758883333061761744505133184018034632350492357474044006904151669039858948392013706584567622189251472949452996487578503499712961059787098254079971241052481581334484827476173949687672467441119808044534202858535931054669746300973088562049800318742089392235291497303682639996877146777944452148136791229760082210307088373856423608981677227861872498753297366035511629187671456430445161285309191288924325080324555868786003863987953514685859841760485676290398232398789877259947377426062805439257054915251947853157130040068666612194926024248010589534768836696728932127314829109991677165381483285375711560626055039105363183223742859745832896791492855524598137894719027184149802304268710299635669536666815553056448169253755057152255592804824669994302620866814021089400164622897872331326617304430562034904028697236659223130102560540585218610374086628769795811071662521605054601157321622403950010722190415608246997156081731629661893975488715717821955276746003463076381007838975531023269759955212294069892457181969781161239086193405289913364811445832955575108098995219415805826218626310666820903278926218923717528934615600947054934427444270909583496015612446424543268865800867778025879294336205995799990023146536598988815018812057859391047620716035317353210293699686202050148194465344911046421882664665559300543670387571149078361106384738365260820239571857881738318737059604321849879940333661398890693541213350259277824906786029748297847194724919712015448070548028028314766025142081725563220838415587218912087401552382531061804970623580457872079519223848397062471925550003132105491708628142937921725957512648640309743072838240590526052236163373355138050009963937926198442293616477715973589743021852691270688996644998817937189133628875267936138393987951932477538649861327978097590038431093769752497841216044819925584409942625493697005695453340097723878707731567264415916974202895267069863082653274325744672794808337310474028088804911475341204903487574775779772838198900851807026720812213980749787449818868467635316267687452736162726937421683120784609956228115679522138584900873743325595060343747954364402822355719386215247507544046420102961420474735269601380867778471525960252108583416207725782823531801006108672180243574474202014013766073779536175886517195658528109714058194482574440973601354384474773612711321944008294390023934141330926989297212652802414342063502860865274269546643953623019729162870993449208450622266951422201625645285940088899118100111109426194670926099022015827048819524122065807693155938751239982105567307977855162665501711761335758036982821796955327908862220543094288864827181981759810287691756781061176911782991275583267577121587334603175988995564672230013469462886914426266623970942185303900475710603331302195447338369366443516862660603997099552515421840760208911588529593375430705771269127090004297611994487384353840254591963461901159357131863253458242708900172391873055780165034105269370286187391782673992702099711228793328721164955166150670890113923636928539727325317663942755710551439058785694380795285623399162473691337031730474059565980904579400130728145199469447737070171847193564737063928565037570490007180815396083682008114103110195260651593687691154913572663004154852029864588957597835495150542866418770398399962575755351658370622156726903423393256313380360512405644324858790198297631251684562263768267418663284034104440608058916757057958853670144133154804807076569682042001456351458874188240046729829604355594053926558145526155802666548454015681841101370197180754824459811371763088146283675239027205219496126070175440366573723727453606365799441050700089677009201392954387572710602625976671372328175034582228573971481541075074117203396313092725875848578265086050559338568966325238710462851235734887896562424026292519847541765534220863766458567455770865496040943391445727892240432119692845893215462237264507977003492881196765560703905814040033764225900695894196048033443751687068010407534448904872919449093000726297442344794992828527437944771532343264857239151004172738536810110500846719480648881144041746098261519493577603483152184732379232929720100121711995663144394110225259136561510764975294653653294354947543949419108493032082027906949657038324405738676224122022845088092983118843717973556603113134086910155237354007869939599167498647689644554074563197382486344750047223289271364401682917466185154656391848428376679792043782543101228080019705574372010714653469961345877589202257511493309169641880476162945137127103923396363269062471947903772451000490022059384400724111089129250686852803240615725445419570808117688485651447853184291912384944838495939926686659874295163036014578399340890746389524159975952658936248939226282563989021288480615879289502688781748071320536355590704410116706092590118900129521324922900630051307384044277433634226073417175917695576079191669523988250384017750934686507266558988638998081349162556552850386936719140522494302177788018667355215045698998683167472197262563755146563509210639153038192384371722447701455968953288565670503862121130604210620423313840548320434896311311458442723605141653467981106884945600953554965548679105656967159860264221448165311555494163498248954031847876778822481171291501931675688212116421760868982279082929674110539044917623657936445904315824883358961784642507531774038118065844579626581528777497317490886100679742384412657571920988499198124170067282836989368678886909685806955945628716406009556618522465906462186916180172100590733688229539688237052703432854588520071696005241275354208882823149438006622067920412354962089851310262089702936368439814190082469195678187926980339304948489956849272927712365845234706742953642092481603212833212639466396073937296224835734305134393263081501611796573164508222323093923947872599937391522507469623917768655542667870515447262492784161233256771107438711940708909374212205961503127256325578659473800693319303259018030480485543457244291587759774756927058283465431076984812910481499347078867491279918122119429675338987634986684052411215184794235614342892510173309029608485777003848622367814077214404164847416272317209937810615334470544615817017502855721207308482395717816754805180154155217247515536215189024910151806012503783956380909965057235473781878447896046040699049899896457400496628108143116324122480608637117970423677416826354132513029024586241394950157559112174234977268772730998948293365258722370237255222380520565291849836470550641615633220094256647146422268360401162130341834031795574601771422909656323213498946526600446785680512055350321179603787617512214497066897056360848892403430426129160494119578363737202211404236688718310978442085223331299219648724309622267293353057489112990409836810618991799322714507948369191530978288743662662130865316541389440347935445858850177112079475640827180829681156164076733506921348522825692204147878778995144413423285391087951374695296622751076335517347763969857142224587844038337157075906154786542359642064955621134651698695142225002702705983819698590669985145028377021617650361520209507505177460433996643483251415054007849543905800925235023785904517598803588382411351180859156603359749082244609158729329918174162378175617875501700711516685593779834952222076903720417806250265048617546304764375871942807811661902556784737466605178907532220674761384622319139180250988198619166052775264866795990091395518079629702887247174758816338864911861439462177283094438488141675365757278702224011341612417623546976640036784304058206829732578679750712265894018149574973513100658948378245237757185445268378809410033463471094780929310892008175566587132315355504763536171464790310482641282366382323162913720521574298881135156759074943969586141434085163798056122982305884917307010878249204726372896798482254879752752528385157543505901646986951687236459827080683230796037338869343582235732033921667873576583897932725645363630395055280366895390023239445421428215482763241294346960966387782421565567467438200896357778139242636862634346643109288684916687392038854548108702459995428145450619274796961147246048708255167081848931560879783757870353241336637336662863587344688231452730795387846021242549447710951280457238855033216965572103124962536637475493151130320534240812606902243426623368006029063991615281194009131272505233091267006240120560639429590357851182996490325061144192715577284354913514282795549388284678804822527790103299088606704266825988891336882097120175705698122682929857062959842363206845514748318415112080209091948220820640778805706017076621743067537481943953954251030440732810969167155289524131494715592550787131514342521743549787704375123770922918486018474591456234381853321780958937087699890764287302110564686133266808092457683448560538299363416962595033340256867402758485621403113219464727326275869224987147293146338257448428727059710497442862675410339527115315623707644537504635910493833675517293367193465567854529260863104989991250520295118465387412076843318128939661085786767364229260551348500873553052613228678167170671743926953477874559339974596825166349318515334223662255571756598889092343955215190642413397964328907010594540106295507098786721839985556779650588062002577044048337567139635187423274381599961695729368267689407635803400452883976247463190459191955121402861056890680422159505126569937635025668427281671126967812781518676123791735167563753009282144165093539896635831576180051553505534595346934455072639445107465279319908040129600691180459248658617060543824973346964523835214409323203649885558172022424773675360514898211549539515658270988444205283405266477723747578422063954884091730598057671531546965684392370070265889926972841037287418947243179211881902202745728027461245121775332441181491057792173093960923552467441990724731959592067746284185910016107783937706678705128619005602163595137351037152049000960922696009740490087929080319582069207783204934797419618809427530155276589800336364830096670116649172225868108981919284007361606600004813044992221016094547811829335709824125671854858034562081738771337640194298701921333392840491941848166729559168034197651589952905512250613718269423878911461678551355771995422635708018757002110052063106754369154022704515650253037667219123466625699873635507222445484198293428732783717913547815954905564883535002243415006585753301213581222901280273107270275430651664088887792216387383530463548715174419651718796792333592496735722640627831433171896954261208581194552224194141295632602078717745337627540794411591345593683621844724588297557194382123708857275310932512936207727597283764299199729988872608144474684054723769769060305542712632781616949452760471987481535009718424900223673331593349197567507929962461560509263605433675278864783033059441229629186329038316252851414785354419488956493478470943215323944545780305251461486025654771937027110693010279534828127096662325960602063470579887870680536101667124847004357965436785261482373549359487745419452101548029550755878049192782426361388534120821772846782163806550829901776561580758576486908311966407428888578871519483766031628410333901479498623594816531148232944542254778029792013423393427144511832069739718215159796069885524539733907593369828363249225572163031955433224981706192950703919075648604227163012191035674887112795124666651673739488701943250473101203005057191572676875184974937371806741801525265240383271015009353969805159145827208202771981722265045184714267296473295944105950569469850657161750748559371972992427440494962107607465773298311157024207991645686048475649978777092018414123343653059281193989757983004473528150641299308081464030588550180074110993244090440703334512691836567470224204651586645074178732853593645619783253031455356284912444206776446416851301029333010897286974455519149320856176469886910053658969074777580409864686811831775457102080034184298197314494082248577261907855857144487968525904041197630181567687156936124245105513987373532819501230389289910744296000787276992018815380773442663784773008566009906216728048469058289655522741813843006031288472892282226185561037320032003297354243329772007842198327321521643703167466078114706745294701641739937719650287665437402513791656253035729154062386316988741433292580746450328879897043164506096493266603550701602593949298380344209596795547966921303394486836709452656235781650514870680969006255743241932165773860740507942432386339139104187280805317999724602838609678353144082159157736493381371815643480671992689313153402328982360279986254691938390631416229633728386428709349627258854327930863643901703817284570683506078056537909206807181051299213551213846547394312733475276295510979585416487603344496064381153442428054678493981920775819995229697814233546040571376280084092364888056554930872061603913859564219067318135342735212008507679519795921142853154587507361926025004210758149105451292051243653393945671000524742737547861201569898318639767537780730155410779096374964779270338122075912675722017536386963572640110760284744365723618785609593976778646515492785491386275649641178993607746725979544457747805155208723953997901546739383036843293648088965670477652561650765076032110881365307349665446171808135692366717972176185907657378375612686241848185899062538083041530081508976252003317700045359704420014205906000311604293084736008541175485718941284326269226958584332497293185237469408450553276675819596387189217299203409590836308033671107359909366848640712127933815208527353548948535100708597524198177125591550145483963183695503590309117416850698445448617056770965458710785339774513154511303213222143156960948599112889699691194555358816095770569572527874760537313526377201945930092517681119347453418089606248411026222471164505331984971622953222457942549570785909511638839848110953099454330865486062937587042472844542438908812900932522970446830791398295122191671704883583706176353957583107268468048176625466522288747089010625821585673376612046646148978834994475475936379796360644345306038550953849777516902296955501217757024562834936821522721849522643762906159966953867623496643317204031242336592621536234915185528067749680475349768850854578600047131806339028410442921492744107477084902865276396231768244999755532979828163446081170678003407709390140665369907608257971803118385025551700150958198793509463224824802284071622795133797075792640484843647405750656425037619581691701521105548443818635059862313385211759677736388164180000291229498585930684616807276152055544864068994453724237242200579524085031181456012216698095669927443978689274796311410513776509928057318289549682180894474998051251942529410088516928174411555699180737110505383719141795322669066504741643809909913681077494080847442229728806798773799848689237467414952585729623784070233080877040670342989392093085377771002900623722907641235092020630471458168277583686637933863804409752868131106291030959295867360480059346009179543168361322621168614764739747955794292273926256954673300457243793734781876060273181179495901593400420502981506979571190273879215646584073672462309545774296248480238953962122567301469560389020419952175368127867795237363173235664177399515149800301002854691989077251193865623748359622021485901443478852993630255343114420396363751357082451437508672004814144763951057411838885265442819114555622728134225300618438689354707964497605355579230642172314195848941670677743081934238682093406147460720657357780068355747254510860998229007925029864022044275491452763079177521170210281461043828196857540194952702966176335612042022103326994065832228396881545033507075947315734934956202213039696644727697345091534951455212603769549400905187738035666736137972300924355416874963034754524762433067428298773881931095600189561755836332289562536716727805213432966326267820575121750243727996440443106796551800754908331514132373427811522065886591998022272487239194570566903426269142448519193497732406345928423742052735527849572028814252532746135434639967950628014922387770358565956798177441833246483815585218104122901292557301343000067056439723399825425994335382284800658772739004663710987773713407572647327557912144245535623462340796613222950507045962330900599963959271912120270179870900089152894942721433856262248015653088888429116941236189273405783976771219940154718780192960785975892077110910419228585856705153097117188279448399551363361809446637282031579727945638561928837467878915335953416041539244400480062380516768287546919453003642314036051459636420136371244086671947188041743791847454497570859063040599063881696553803659979102489343887279428549451719780440246387121285039820073805879765287413737770365903421760597861970275628339070748412375581521903870293782055977124651165856945069970210468176009115441936041977778619488538450421529695590116008686314197871415446821213357151703671163678068301929539912480787820180073046512413610522766408500429522773899467214645284730953703587062922586596148207209123181655565386062959288983666877533969344548069147516972805918897494451807234537139271492659519351065316844649395778595364141285005428578049337451720261798088627205654770706965665167824052243297080104987700670980576909525882220331066240621021397879363697093261725069034229392586613254047494327310662444770853888855850309264745837039044077764025538678217026946074591802041824072314529153238750364666477029101306621722266182621957882384229200297895006060645471859538877743260557552557234261499153084402170871692296609550250214223105120839499240933069812555133056762878332160632243283254939266868163086712962718530208523092073426784824957175578578112848750769921504182655839976036986160848876596896465815632598315571542801766913945361097149594798410329496142718150688468842538630345734013098802615817472320892489294304367604007276588556533469034601454064671016378090845799955035092817304206652127252425794574183340761766657190283910544180448542236725647697375596668586163811015251385521859090825890166485998391824698942221985811465953614019070980289841913817564658996861809534161827638739735718414360616528789821815996246918339118214817283528084855070715809451498095758324281312161651730020106467010833836130277693307793911211004866113622605330701175031293906912374913674494141170596725641330972382580195324621350044652492750588699226244160484807019072677535034158818549706236912071300339019849951679779882048395546335365920024807202740442556791026399368074168051288611689170944501156379213008162616166195693629553779624121870934677247153687505602506362898086295001183446443973036459882507260544880884911711352569906089442123904933770816171423747736553866295511768922696967860154524883157817451137154129602515628343981260335907650806918057581422340945914128447216714340447096988489546808234654123935842026037794326794706030471264086697738325661742585638105195074206319761295394844092413013075274008045811510624586366352112617145992548261454689669056543329276063640247704068129653182725359384958963420946048729409105271413278578456932528162563898273410839007401614784181137226702516971566909464199840029939567460216881454748527054288933233323590673564762695055326492323122506419827561973882146087447469200674094237323128759881328866206333691338124220982188651302243811336255261202507395075447595144102798356818469483781519733866857788349934091685987603909042290367505372085571005482377585623719573903436955933062297132226962860911336501156808434380695971941119433620342583394592294683444317258723205160937059348293941807362893209126311010441441380244745324352287573322083098536154421879053975876375590395613402303864919002585968606415883410005352460562272376530470245618474570774457589118239903353935101422498700355943253535510666216706527670048238237092706264561604293675526009671198353836948913932810596138225561885239270488004664486809913591283659267447930906763901268729240302950628036316607378092869039693723231820937522078599031299468177167275545719066206288561441731852727938192271597190140907237385417540323529008293668741159267983770117572775217500502503190521411584936605034799055353554854219891456396979828489740717713428809897291436745618635238304020830859862408887513916435634126172506077252793611221224965558353820838462121340310340175795700574446589754204142098326672296457880247407356481461333333888712333648536917101987434869124093946601910267830096031901672520870738849461354813504626035832684189064610620484941907075617921814899378705090388636875855566394344558219733893020336062943723409638593943292811043050121013889384846329884200105417757312513901764615703001629617060347615752931076377571084361273108463634252445180937466500231496949173799215763544631343762382231598316917125298539576843775382202103388044501685180270135329196026468756158551866011437621651144394902333805565693667345201197782478329308736239933787423577191477105092011079530909355178488982560508039740355209800428528966868036687524832814980985101269910242035778849171492877660989012020967531760571794907681544363206324299693950587697682383382314079666967866924970002818187498254348581513749815355737311548982578503195191282264299412946118285635426268440689581656376112190812175545900904846256019502655114178501317057137849728184614782373247802789062448034852553111276450594321813120171184735696946375537947457937110855042175624916838854203769859605578817082734214915728286734572331749177853657464517558288906764183780255095650018938893601997967634526483656471914686444739662164684999843486516028651942640100599684569395403329904527863628391314177084366358930181691779520391596805279679924151876684183488779869687732053032832595058235561942546478010122233163359268222379269350233272561760717703770507510359734063828034069779477323258299421394981951752322895557815456929089489961583918882449288270724782991076223629306304723231439574410901499889924838255109911747197287410744985198254330710043382789467150825906956195454940418184640158185067907861708252937237881763365467398301358439487450467224844205121779075725026978674471176557124198168409547828626201618501260894580225185005509929222461071942392683841596637883331359002235725870160156855247132479474666442617053305297161430232178836136145499929552151789178771795631770725496093312856775106334967882117587752286334698938910764631954962926052689208006121510447596713185109758445830216317923980556187520798886400236762102798981986846751434981961177850370508032747229441519427766880152811432629531797358391751602373713804206668337264820625494727017309442194671823252787868484928827243239719442604562317424751515761193646506579000680298424203615862490699824163454102452670092224914923933084721114482668564760696014917252406624913688986317438939080166206094720004456504945435223504345338352380340568336190880759580233448560940975818740861575085559219033802121063894025030648585302577605406955532935406141510191679794606346913316175213544015099113601737620538969046068064578886497480382850660133274888192587455500353284199750572621592064968390622640107438440430441334082656434343309288777770772365863850124122240692081139760007520509147951343218922380827456638762829342543711677472343210787318685571471754759081069233406683840043181774415390187694412183699807447676543346319609235030636738660730357930819499718878472129490130250161816762580271574684333445814652572831085967229835085665023617233550450052894624337775721896438183610004151750608709683200124525415679845628930649804588112791921985560267823748016364876599023142625164758228198874128580959480294583299889824991528974357483742112017767173314507902112620986967612639489294304752704072981863156296193843231629491614949765732918871549561323000368193934905635095726471092721583257904033057376585754735073287363554290015002452300426985800771046798968680240667591282278861680424538047378548788360506760614472526308180869407072104691250235853002012373107776895481546558094418538982581455796016882141550434975363700283571123001877458382997159043243785377699250916293700805525018248751458747999339432465365621293113335477494652106166237777638502199592531370320245867253896380486244769924057856709426064115545938549907335024535995370745956679333673128144435406571118248966769318828529693903156357316950031812779685488536173446139626343421419311640039717403703083982805928424874642425632804530907518649113195571189634015866814526785801334574984365199918509181326687419401844421317683129499198757558612851640637450023521747040220596414677197321432128973839521564728275324062513702547476738650597098656691487228783163063490307490405128529021937277364963642204563073898270672461369521372999555886624546102116743441656984789675013612916978808879304976213939946994876059806749311049464752658801913910234106453340260618086700721451322289762434220042887959197035526145037137097003987082915213085813620866313996773503327122102144460884201169244684502287253007823656956812046862553672893378596018730548704875812447778736897357757363126395608852062401723196064290144480181418247556949336395879196522642571738589609926333551142750947097774928624882769411438476201212450790368787303123151673163300742527025399246069722292099077034672185980149314457145699845379144378733275624597327842270129686620195439268094457125680072977959917126941124326937134021528749440326038844894707646135090678687474318715350275842406413865108538300264134138151526602292291670256060504259268778473855599994682984282663386245446004476124574984301552295060607976392678754797197698124918035869182111274707380076040381557900501190607085589008071861226187344029299478003435557176476167297280874487259063107919085029170519888816027989657307807072704973746460638540250988803518129679636549881800966810372901011732446049494901366980824155959403066771758557703764124916963717563179576339572480132460997602026994646758399933134693208358821847417759481997935796404906116341740010452743307151525241353183094856764238670809311817200044446936038721273523311532390298598417995283982635705299626388692040063172885448538239003645450977660082938950199889430025141643449329768176438293694185537363045338002729349999215803280095539673939307658707404725533759149714355720547152842185353194602822084717308057383718786145449028182263448354417884453008124563215904367613929562259338335320427783942637274599794862041855833837511619931193799229601698332639445367954031442395903615043583962872686068061238823491565104633487853303201765940053811036580986733085989593292273957687986993366556628614744354889701328862391305684102406762565116861441588405403979589657420643394823260439493396955850485961967407555230434339458764121143394490721573936908401893627894571353419866735752702085946105548821485137680959774987855009462038988440554569677750837627743328499780733351537532059350171709210959345402162372134402389785199361707640026632213860730576618007468987115569957250392228492470896819991268040393300989784371471368197727546198037301949787200365593653588981763098414068892676783705398568856479758063042501263513596712495288759417619540237512658214706429876449756580670817928198947803609859102067808571593529948434455879802172933107528083613748925421961852174015439721304583939612015526874219038935871793157468288538887794013396649359928554982861497245130612014560505025171768680074957090436601285219572283719695475359473496670994996175980516095749555747512403901600813559297299002456861614018821110511622398122812742252694060808439193989139930930969622731190139518771253468770199069204424376428481922235676225212263222378833179414622523447614573295132805227961060283695234539659939511155311840129497764734918369637160470410061613063008987581914978157609373766532054407355644569776363753639508339923460923763059789865955294958274295689436192198538483838414259248194049967695077713143280401975632827439933835383782816196787404110352904473924042282016976168887915456447394085826668807553894721060072305276148475477972142838738704538457163232035807230491060902991107892139439267390965295795329772605225391758790108287195626596119525942078237838719233197990863707607553200210018776286190724994210293738876107217090487211906056017428504103670279036966836527116633226812903619451202419978333072475254880977342819547103973832544983767520676980300466578722386439363808945947877943202101721742169945235536700726202949990920063964673646495191232236794246176188228106461152340969104336614227158485543534607427721731122626596610779482822541067412003195248090325290199694044641659199374342241682030252249769699604231473782712861039118381436833670674546612099541737037965760753224722746962335271943361793244431812897866764066244201004346445752581978594897905801030095836192998883722193307370417413013890380780229085665341627173575170100622636772479315259915810157785339495387188641815756682070959812126900309295632470866700614117193618661383571209952291654053740270603826541712838512151238381198976007037503045111053505421069679758203771174428506843898612857525710830283954088414416054154046919950732949098683746365695860615088950332284908612316980439215180766367495277418737888740332910445306610371499010791108410045873000521449517716288645656358703459358425496937745861701870023827763074116951409187807880291352715930530538161298686082287330392919655134194403037954401090818731553240833326469827472399965931441827166519495284730333546813876376307543038547428133097151040561114645470715648022648937075080608014877536590350775528337901278085347704213117258819252839177013465373244587994242317903369971470233253477710471166126311765968048015687256493373681789253117151010341636946677005182909377639499538646044823036472144660377814598266139641934934371152558529819846295924242425192175495347494894099560290468942138242584923733020500490727946013358202070797005900913660133271465941858281687137213903047105076964737152623566040710723696903807664442571785978771915140630021279713219850200508314937950296453950309913325602163156381902202365292513113692028340985563400025041202663200088927073668010010575812337419129946310112092724083544135897116893831998071030873386956479456149180701552252823486433330727978037836734026409315388837499429732635283208629086286332161247874471419266490185666809375346318655846303657644051672568444315512159384557013156630932170063552995886796412374363792821512406710889387878312048675573965223914288850717044325996629493193078838034051080561167112857548230781824260227388090581814260141676437057318694341095099569885948882304835012886639931308936269564725324573818567708612690449428454138290669340350972144696561835715601168570849266609492644594630583094106921053447044523515835026014739032048215794414740461069171601462219209268159517646780963211275317347774590170049186468312386219757365989634079709411959072480498688480770454905032364120666869705106964137359410891734255392628974687024409814042513292422109154410786237626125431095943107157903121309479083002217378912842658434506030588310522138721231578012921608121072935098641035473760039240482050338768435017278017051430241094892870847867054339724192284883330471962230029484001722796568534265527901525318529760753612992800643960053995862893460332232909788165475095521592907081618535004115358453479218884664590519466089770829876912804205396816596848173073030282893136765426091655854061067622861910281077548678339791676970366983869698038746131438301771075451481907214257494690851201180231053544603182195779174838105202000727043580464851713657224360313887143463550254377073536686773324177533499513786333488284003566665311532728097188543172361365746347217370968270593766503854918624489671803959430044177879469737284342614145101706840970334679739694624573628963284304902586991645975604092224126460201614931246770089782466922744137400371648320398153575944711329933334786138530310067345938714903905911086243088220877575280839441914714558774013647764775325016091706810675694630351076324561452460134634783148122239321024530435989492722765402701056584424979558257435405328265264186173897506238576442789969352702912032855015479877214323605609617353440475324772257300136892868977383830386812216525386641380916715148303446967744383810769704061120171480207419928976106793507694171689294324245090970912612359772701958744749239103603602410905794931072179197431881827861612056124431048485929805687815596167995584570795247575625416581649128699328294548764419814751191309138876374144732928614492042462075880009408159990882283444084985906999815087469899191550061930789235309609577194132087289881801810024413621262178397837868596826477787219576782129457094716947765293092632846383909577120495465134097718346304081375114796431615040392929293235228281467988680917082688385415744214557677715105632786977994664958514764707294288884110954579989151895242066404389439715948395424330108487405090083595978235171737229004812305820818713050898175242364814465073317979192798095409850101809789436947371768002058623867953373563477414926928339697853400277664226453302594110447936439666861755662445037038780320249235760039037859904581986585642332601412646483876456089797056363154970931779389316691478023890003724730687520859924643994316698772227562606383578670633171213292063115912036321366528178462458701095776933940787090986238086216847936425927437466551126112413186083311357059144184836605457645111444620301869029824069675965949266353630456502861762522347865322993072550874280855301291211320769103123088738859739289423718937586182938197608740391315039377117714261365154519493043589599102477536129828369164749453640993253182854182944663144119306567040216755302577748391042126969512876172196344387624009531594372080151005372243503363516812250891894858843075227282237901342736248305061951483882127106245932439355375221571089746496772928681315126698365301826016875172645185821116768288047097117678183294505502491456040354421815266611838039551475299349197765687104837020489586038373941795804108086199930760528591893175813259762431376631456785033106358214080907007542481147359926040310973217005713483569512290497462872304947658307299816111402969718904598272226872705560446104988462256656710779057247989090106848870318578705459086583457217076680029802350883006470713268621473919681572462409888965856328794404045815942480081200385897230448113589614214588687740728713286367143007364785632208607842466507091046945915791570612120773146972819572498743777893103759327066424044874053426513019663649080488764794545723456543383996002820106625056996475183627863809816721563922642549220878341097526951630985857366101481779805362601552862712801229438003601725970998520415046155206008350609655548390057254938825053345636813551553916505774754987906382525071721750958994785647078845905814519402515561318662949477717807810712623824531421189144579137670071761355257165131789363041532960630309779647416792730854655700994536709835532057042092119174856827772189203538177024218730173198763682498339217211015890177084494803013185026721680707356631274052090733872102125469436328593676244493576216133819127150565232521520527806511127934594687405871707553919533708677857995642742928919029270150374495426980743261274254427288518617572203556343290916086452605989806956933641746713853361837322957315169117178177894607009441587710484984127725546010016473577476200887507300713677180140587461865747076145525438346364019314050163207731716665754653780702527016570799526725584604081334336623972536656986153488703641197685229470813094911613590900234548261069551199396007141655542913128563160074837503579384787106795334604999160535965149440197461404478216686241568638960854071127070239589094427221784081356826393352142650483245975786522955709048040314171836660451102819353922775698454569816099070683086662583802662693214894431967150379343458060381698940605112619504197050559620688551935288938920049906449112570592484516710551544598982805981648341134343068942524462691358886909827203472510748112739744974676349150658562396652675273287561094825981137436925399803245537753125977696843367428876819607363678154748821768181184102087399706823750540528484751804277319727666126311320984458222411407650029620828219010213537549616209788502454819884031163054684758647643600900805075672285165314834078064840771872779220976035351843829918231221440769189828781133279058928657335201368649667630913859342647337753450948812854765528295001221373165750159682614131867906835343964976291804356255812534291586897681749456472292055298161788503331122329558388407561873064795638583860976280963181685388618530849263352576005873306131794686741063978027470513664211973962406573871456720916533061465789111621616679740613339083551554609657789049854337678637991136852036923389768829037636867788536136605794228815415768088693629725525183170453699886082439646477658579726035189959691521226488626341899313769666752277951148689736428517463492627524589188099486749875710962833557001550308250328508676720087108211966999150189539845691933660226131805829271163692898047287696793315360310057242728447732219318764099690293211524766363775861168555078284458701587100451952171451633876687509394333700538736241090953924388758736050735983887596222738791372353013761097144594321249571928763746407738943273488268550658686992380074784524109784619745615870672416088402387559366227409031677716201857273861744704464620064740878512671826828043825712250041643113774107606468951709412354744929277691739011966419330713576415688220490394116009977820538256628866111926018054323441147664507496524153922291985225659566239764267727649814169288979708232967038268912860751412325313988554625708641520228909129037665634445921746810312853358197478670693848170567425412568489439910972851343479283325442787046484174106852224759324872955041585009008840459444172275449307166734372585259057884713053056149490673316601705735066747775775988923863165796872220017633713614532750379292783174921409837592733418875262648826993371601355765140476733813969339353585791115234331050769802250728593982186825855895095019825536646133140241963485189090491404646814445423694600340006814790051476872164992641583736277070961772148851806120172328700216719120570784207992187413798748336749400721292166709766561005742372388551843570233257279364506200322084378761099259866906513103364151353110505921271120305531631828852775617007224208204864124387176251978945073550087252352103538419774964531618949966169995155161779341556597343362797653436009883252282078736158320014386396594835933589030483603730908377117827233127613752540974396113091710497961827509226470466938478266492494968577203851590633126324733629132788782424185004732914258839192793445249095801301518931678357952193430804242973562555961725845127122997224280524153816360079429325178669041301900275498327134722659582705883192272819145146270331774541498206788804100031296674410013690195027266532486719377707392087320319841643949829677680621333940473258649011666515801888869620259824932052180323710294761304326387001883549753938651860594417928335984912691637429214270849659709524298526057190771714751837838159619757265715672238024569891018490939653937463135930493005931592792521038538322180472815052885192733718721464443372900832212327468235013914709696758052472883129300058195009085823296004441323362611458033281518351666822316867518118567861273739174390950830004740830296865322746296064411510210644261416064642016309367531006619378322444258000248742557669298279039975565480555176759898533625809940388261519364725446144605755268346203663251667508610253759017269324547621434339459511585613250505682224805283275551546797133013122533284888091979301040529493062384722966915407839302070629758656477137906009446198806634231636483984407369526341804219779021371764512131257981979492837581057510024160651412987684792468575185376816235535651364026495567000375693719338430043013628925009625580956137476399766423657458031945386661269741546687184643854705796929632383096122405981913286716470736643733542716496237854981642041570746167287580603908050583469413209543093542352848002926585250099171875201226409151098059520131260728706480924417526320387871328528113352782961748793794482403952414190670562474226653011681703054684667596560401554698104570881323231771704956913987925802002537023629960578415878708617447862860522744370415486318368307996048473821426752284230025101849154327353207866988010805092206730964098481571062178384113802070460693402596838855509302760796450727046216770084138157091936237050438167457024496462582437875140978222885362107904265240041769107940613468728517687916802298896592890212122242687971607974700070490488999663445874016474299698377582526409484904618197146404525061117962558978187020655687421108614855075074781351991354171532771693859889889698793825918687929066614573550189171844567047119221151059583340038922366669977597664049192997567804981703435212192512255842227021526910080356615355916461845805799860065489018220831649634965433218657519588680268612122773036343796981855214219252821868583430805522705016742031057285460678637156236571819671689073865776611549357195942138071360679791891949992906648483805963862115846680264337736427684247243639993587456297125799135554777845067386053663871753401904611598442887794529769416367916002507958012087722530041613736367841515573360163413645260875820433066758000821950556156487431901550958774734416382058763839996459113612159272551805378138754612086959428633966541362559113675757288368151428950821371731366880619548440044635864550063448734607066144822084089783071017698187575430240252553987191717525875539622506954067623536598348079249799875112160427331807516349717389851487865878072366697182263095681381159479420941913708079885145978370951231250403395139229474453809507557170573704670071789892553407533662424573290706837471317940965471249778359097706570420040935254454031012989634939205256055351080967185934081211867387423725313574429300318147050643761130019048490843067622041565260967451942159342528433286739041488831236618731307863433885072842447331736290237911925925495520698809628051116191047580251638104633097234446029233642919524362427447272293032079937203249994528864775603263483492537371754259501766621633871362215379538425351910537330568262011708094444934037415228080871486118085053361629814855544444298403275706693851020680962194379985022915296441579014646438775550667952577217683079915391375491678260190878045984830121395876392029794093039419062720348515139843258860975798630551192651319890386305252578088380264468100541197461463433939138931392307203340074972388539852976064455093103161496028695410752801096200308564439732362796951930862850332377888715090532629718449598720849942050491630740170767151041058442063176650887343081684317805241479874800948466565949274507403950299967476065409143138543367106652014615422006878496720927894200942419430825757275959316166260721905117934033870301262198561527816106075442075754743226590772230942472768055771823820197038981986099585850620145676192300846307056783293187344894915019385231112630901453559434276927555349056455409732818138895267895255464911833148035478036396815383691303326568185094154068023620340747719594872122409260700916911826155335731428616009181811041949574704820681844398995481890985928598710409084446402130818726823210899282654658267694574229238007430947057941865266782667455135940948490288184110657717735920055695482301890500418330757762391115895507130252484590832328230224000529279917018740960654339953928713920730106528392508444101062596801168725238609025475024077524065239245591787997042475789210574686079579975302379500385524020236887169559542222908632223909857110750084678918462230682900547646710698804960119280025816043508514861604421850665473840343421250035966244096718732945026140445631791418464543991300775284496360414070686950054164300162051939535076473568391236560794426650716768007939150105272605475685157820791188752130800415600352070678555409854961214195667728111875309149397927101099954971709500553083350126577251513393452172880878906871358194010407093047705446231002329104337930585465190354727635610847229606579679691690506624245652226675085013311347005300915455406593368351914602191875292824839214260827259337406318799480638338196965069969276131552303491224310474296549925363395192770446072445416353358373557324541163768325526528563277317430457077318237546553181773810027629609985412616859696559031705460447403392818837667437407481199234356602361846256660898906880385130705362623366773955430158034953268227789716675153713759725392127644451373731344514512467954579314347941562632279596694594324548094505603351095477650899659088123668982632976670398764500043572475988911794341347710080631083232863634406913598580325503453374973477454723276563481454875784165084180706753777756168859648811588167953837937581676992510906665823405992861158119981045838309481390988650134985920332355346422380124008173760554873794392879627943769038935550477339666760591034219547608082631553303640419341096650527179201413884298685666440558922532569975189705919846900254793936284689451901846335327435067136635847399291010392805625717180491292965199533569151065833789860136605364769864569247472176663442537524772678328802472464309943952268513517906712549816391704810179463251609501494844758818485248295931802040698609616768500070795558125039631250748984579059594311733441352925442440874713379392524184733218211936125288848684909438327459961857612440187451315501459857779790259396277540948790699593035044887699861473101603652455116697049242960775360501683151463720935114712445307083138313415696201171532677263841093625212254209893315278716878467555752375866998026944276417441096936616038352272959293748684140936303149896839059168798123551647001347291441235827893851165270716387572813606377210733536402710646600436088384603077626223704173836622949190889826332488007573179399004045301945410601206197961229595377517550644199590629227098362174974923968174025562069831418501582866520290766400788135567820865491712903227611564533104348423881024352923272355081770447071447019337204797050821716980301238736881043843883104227470756660331153958849287899351613760237881340416055110122779741971161886491675745129719387078293605329695047101925981779912061520062063331284698775175424465356747641310918317106156848317927859680107945556462547936730608692271956810651448701625536850524645143723352712204683145292232439248774743395336355049959774414530954533599763630390359724962208566431687237289728514298385585201772043292250596070810733726066323982248446323215877663821883600932166869257802480406641521223612995807894123396019588527021401969929392278154307493492821986078040687873266758864102109444539389030288503920308752874941427565414917836673279999024120009334939042346393637539536859409722933806477719403516532477924889769096506877762027773348436229822516606134501198780181156039232672231310895149131132848394307116368671060616542582924537717595967290798848706525719291837404359735631782354365241720834134333972014507935958945783337935486576861272048164866185073462202466869545618341894637132710757186248797532243064413460730607296273586432803830689204541726075682658646654713893486352461998115066462810361457963770024155638198361850224800919503545050342500323749287801736870716680844564829145454672947220310721121238910345819024504159539825906605967636054213373764184622123804001302902064642388935236845215029911116380410497621906155591422834063788608114060903266349490179252529737483603573719295879325104380642916929535236720877707103763508127485297747100382323502176504815349174957954195221601033764313853105808237089785416898644147445924337362088671832156463454133643208109952678985182346166965799890312937820602819425817631084365033150707577680080683766510082978124236244843624872895490308595246909452534832239116132195335462072339796406646091179355150314850665560686424827316097466753094317038874571974093142607676989366358510041532410282996340034686019093963957676465167619950291848583524800148735104185808347013829265522891478888122380928036720871436529184897289710944022206236504032139884053038431765821862257848700213773384583177702126238784327720123155054708623385574372638586551411489803881379816783317591357425318096226643873114163184536919486197622275187517962413574264620849344385865610942985436259910701065189593197528237173646847927724937355061385448762987459805346337275633813760829761755028853872665130448040439808060933544580292969444312960744715254616979571384123936455295364341203110437743688744076495706845096837221491050304055706561805230119481458297485922294329525977556822321773541721363569945126334390605582809320309425687336854271235704138159113279005551471308592316418517219458950515231849879964788557945034155847213309796780608914727286728235904639759489452793702707683849827619725439226000944757974782399981743151772027229610247547004705449754128618856138945048624988704133663488985696871275379435947957617288216894193574019426979444031496910477112405781761981699050590152899667023149440840881235955932067892656117407770562228266141698668038672139997278784066975468535378534108998214238157370609715862652569848668262466763612104551252346914669283184203758926691357625335962033212107476414245721876869365136123570761052227188980960150918755910509451461383958103423033084591793414394051547092602956533091804574415119598238910318030723218170476993007928343531647038071106279042330234238230376092989128793671645670759209538204434646821020137522435355599051099968324441315929421045787071643027315376188796068111745948030302910772582182535490586141345320318888778252958341530606306651554681679416397565966972157547603065435947252090805262565442712170884330489824397776993690726314686624523950344889183655800863074112691756301704963986820864265295530873435284128351705245232150160796426910593271841722878833098652129543196279154094739706523127421996118221292458963830970792634449654229438980275985630630444761777335001254699748759882359341867237692003300128897919063827078145754264324515400600700936914522234827314923939740945602077444035530504355613347160228693429856117100174542257447147157965677651348109196382023590598252830898089230079205174021791880803156645439185168652144547288163672669225577092992555148479099512248368388649898182794415036148019934607443866144008433783028450950793140087980437822314208926451006802853462760819719171896053928747654222715095200962312669358159302159058018611978499695838749124630320146393149101161838436169183164984429293469790483406611452774808369203129420343608121401158519184421955346481286149546866600589933926330661889652276867092420735611858081368875202523603664686667267833576761986744933906443082796847912057338107537231113085824176817337265354804665240768139427367585677561709718662026617477867383958403420392077867193625753479574522045068344283093924973609754328188008216960093030812143775369855523890545793630362089431970751020896269713935818903491117729314382498072728498172883104261458877582565969268642788658533299765672172951552225435767167920521575125329834608331809239320688545283681050987208044259181956377047443269394678981700706280388567497142114267345563463251349305912996344981692032608709526343104061290046535854512902824133551265067223032956320272805752170517082966435312009416093900777026827849925647288335047124190495695484784327537543637195262652945164781337038436014960690198866684489181984326927889506838781311528115242015483255347569949677604048058799357434903883003910653123039793148598327640248327352556136623101382399141306516941402766733851925528519208271467101323366681167161660282580336581273759255157437249620621340581074919304950397327068622248854943285248771594560564967486038517539849932427352939342905496925125694092453814854820930733875219980363656304106367950260334294918065224908151605418125902657204607907065054635387285783219048800617369580667386615068536263668227490426024723908816743283119420064386759791322523471019415163901317502952770506600096120330474212431895417646159618843741051856212100197667554659269335061550014639387209049082887073961795876853114814399679049820742991038788724708205623882837262543538466675394177473523482625490359549555618564495250555063496579454133264059075505480617299993288425877629418576457033824554447756512224958975636133995803772038340080601254085946295935924251658167210723486042878715822895263619849455672934192165237129395442138661305409514734860008188343206944554374390888553751530490032241497039040793984681186258339162042503544158113073746747037916473793536684366912173301841207934894626105815915764634428720047873376511902960238469754554099856124337176990835353308105065288403136509872207619901101246599580176710426668460752124604643631174440610961146227176029053755436869880168425918009349873949919571866998558605978459875066810773600358931745608695391309175221238368739551180912988486433772721620534827810590266724219061381914978564708596449780126321351601682014216854445975511943259311599589707148515097917817144611281385905445655070456037078169614666369609974917682269513569198643016186825816515655159574214591596053852890546448888820468509528771956753905787783979076466977125405113911371880173892014561599748399413056110423275741119539468861816537052129573667698594681765155777568004252033213804413109428654694428671610212640899438905468533151416536010090742087780404443519448614071672317815493415022398625394732604177662663573073531995911778612547286033922472265321736067353501185249633100599189930304797817265157322393419467250246537530340676508588166696812208501544238037943837081687492947196059920233544854223380844828315710531382409094461910782612374864238428166808390518753285800436665124632555443497576896489493221317275267506708796251807038573865865412621520991611014524208888827802137127203046733714852706081963101441216786579415955370028271233798329425966398087714163273370050662182185841819553834669081819164502442741502057987159965045342983731312709725957419649098205077178309113076095870775746820107461194067184734788546504535808951555078722213524602688180367701836723494059940742360740359847651245825846399657489418647944576586859436760407014031503463067521539326612680179814155050735669093209090575422074656550927302732360187851440848342200942714441065705687811956955096331683946665936305407195081574816351886969986396292509708943891036879414103543366892164134365430460461599867266505289763405785993216406274358788433229814736781064031459613989198881159939329367768406077236548685781162534124865282964755942160260952068208944599012771036603505707690047062666817110457698062850168473556248363393865060008704258280431601422668385464818346807280012425287553890651338931306539440013909164221917702099850193878284657019772587698209584820659882661881202002359070942018052757042584925391703398434950493743952045710210580103510116101867763179348790327304191704148823927733169815708643173076427396997842427917308205605544045712937796946100791984522374044612140081981878260383656920230266774951347038824906796402100943714897841208960987722683385469793122362426700992056682732031608260286686463057989130776337613717656810808027048252219240287985305570796811867432190830288990555712355511728076118538144653083988001940081211038970837887890341792042419230508974543725009891641175582087951178517219162150504041426090765059474775671438375296088056944175810522026695287280754188114666522936100196329185414365512411645879296343649084833367063172564872183578180548616657946322570445248491435929365603191812643421874833655665749262778008266246961764805916550437008611040334789051314772873317361917575518544620257691764085263370074663277215518793253547433650472065000068543530544394468496282023272452568146332917350196953796036052660171342711840028956282577838803554828754204984242790510399298302085937405057927077261517483303445233338164384542093252137870080082362988810903774801207969825720338230904425225735063610371896013559183428657932342621843738039123181659948660389735083934418118024817967927980091813934604755321229875937570141559294520861888654886683273446884687531648946617904884624984823324331574859619071278187057672230862962765485967092041824457772172687007608699158383755256716666376856247439337287481955856882083751387368228950076352396068329456728901165970240115446148873886329129969932229636402202493664088451417596569529514396701170639653143981838236122854491226473881938202894000786155411882661638296573115824508938053577353840125504917403214774260180859895912581439377619020012938316185671947722172939669945273226837827154396551534630925076531365799614257950417368095373722997859598718398062149360835173390217102638278953251116035970951790243721281741127830884581353802536263286630503314307081128144446096932122232264080204262076358828604362657989006657530071114470301666935106193893686321850954636256127530017573176255734507312643830305472800578466850713286694959277231249877701328277408424049329882885517132016110278608714301742964086511242284447797123163719100068274736480988499475898878518721903889576268839964512727609109432319204315297187612933050242971822986934501126925874942902652524514705827382751326722164053860122137322221525882733014345755056152028065456436680858121318440614208928675387640414161406628275493630227802416527545597081119570827109604617440637924364748362834332045668852774296032888398906460266683633842183817935450377186120542158631978240772678585982410642271478516433412844692741150622101944383998752289501481329597159968036220898507045344048595986362966435101268594626206094632394629347943163064288726197663728548432152438869241838067814705417779901819992140735283246453711939699397162071858766963268095252996062818517207554507288574212857043931749146694804802411507131735832498750876204203604005471801717437642075808123972704496288256653037127577084160327433574004344001716146703543955448683803748974574078204799677316880108733554641532876155212103031939763902312286494174653101410479962826135745770923955023707595456548289425675263731464362687580305182302503810431841866028725135261389683324344332326224606184513022171357796025640846824458107088107878146005054227381666887379503928336994301615299877771155480686855030571302898193532048739910042982484012734975535012829500318446178274604989215784608148367457230496332784763687268927671233990605133623945871333503020733282960018621675887637426528646151069852937995886520960656782246308720721905703161969678511025155808826826964702241599417856893400187555575800920116640982046156970871318469836771255844603571455173106765526193054733331158127026652173030344533827693196815127633348504723715023079235587944269247739662429128203010820137963010129420449448190587860483714218814952880295435374857258725597141543904021968648881894222615955989837578202643926188050181929944148867975229048607668381850436920923308178382922495355885585891680330189912125658758254852931512085518267252978688718398926218517952930454521469095209539819370438062763215614409304183822071607761977937023296095265492186774113943834623059114775097107414097859192870486538081723822953574114568235929250782916545764875979347706808122346769774940916121117330664457161153851733075334979295029656115474617415975148697968871086166995726395325923374900433550636330092978304967328999147757107669952453341364932483627728355665136408588531130870883223762318068252999578370884729734339867320732620728688774411428192285467518100668572255831953994330814482990980938029346931688980072126399776710703947506791884882622018921828241921302948526148952089749098545089643257910033450573092177034038869413208966472226933373368836073131965807303502328732224818059648693524376071822548407673490534130133623046195348301091707098066958238999261480207764293077746958889763996561965858135740992725805725983646119800179727475292346340640992236347361481270291095583483458077944705128981280727655513041871593314263728772081119151655053640867288828179184093368431296758763151217045382563277006923320673435546353904848691958618521769310556435288556081069525232517266827071477972148419465847626465186883183934157591950973587729364875172318656354722858519359846442676575190673647337875553191360012753149156564778922231389147741006053073424139629188279418973142760442267193383769277905202482815147277162640426654989389057984500458725715441805539047665694482541203448409155277736284085154769744689665470607955014969898791639250376057645637801000342549876396320039389635732927189256839020665880534824805845089596413104088294069376952819356931735743135562444281198711539909006285046949651863033753110337083127650276551671460328252721374643030018667138606799823144296887029860199028400590216936532633509692315650135303963352634045066952962083033211008471309722408031705639253947744845893275789279754996759101741853258875845631028520030162336177758918975744357707490924164911833879648141251504704943337318247322207604326676169910987467378305982235090562677227086238800013128307687256141263077469572634322910074721145315945093764004529119769386054493822440257297012114248308834601388279048213104921985150941014128698495072521015808513889543587349092878392675496811321372457718142212064099635303049432071826703473836893721065958680476313616838490587054599018680845522292338753181751794765579353404982323256442872258481858564472116627371579628645941239117270660699363446612105495488226148698456388282169722964124281607909639150757573600826479287589528479817127667767576704077425114570837268956998345784110176568128464459547883051734282115825429513522730333771537329729897515438145473196567599145907268992162344361399838700093324079370870235685652575073308765997232097666627513478544758319689574459026963949691226184761288315388485961617559123700771499319475152073272987812743037875096869300611974756975464787826579516769366618917374501781900705221043988515706809205953369845427057010809266711488795034783416567715278510803916415457775498492636237193820427523804432300623534509658558496745114979638501996692848564596661575596704775729304867641468587276005551753293241311443654220550227407107464014072745506163920974633514523637981227228241907268394071776654341392975036768844823315927111662956354513674488766718237658492859478930072445428296661367623758699137409248567423489339112709553886355435221988366702192790672400702180988919601638506106676830778580060853963196199124746203105839580502218402707816796909266822200302151690581841574124295046420468982171005479066039708426241690634378819672956105707922848765501652750306174746395487822420511382449894179144726336196955636410178096086800230827738870766059338006561111335733493373874966304416792133379293197919074931942462980190772230315925907199668900407498142717089906477445544866166812936372694484823530576148095866061648575868243875780988522001875127854972341427182168364954041083241739421728027985610140289803009906661709817893814520438750225428140779479841397997436774153566229483259002363471826157512516488343046214414313157708142869737183511946535592554989816038884255533827022897270887981032803117732501664660054397999790242574318274109596825381425091398748307365710727606178686998507430602853598075435384501755817313410116328484534887428283539246829215877756147102070349933707722611447873025552950114178319957924503373675286487732920918456202838141048426753660632368294829505582702496015004375682539698106107256175641839991340747476135086068167826632913884539400757474585895507326291465192520368702124725314332046405635695198907778257313733934837706993878452387431333207931183019733916759253188245052668244170619857186679374248647159114345364079920329255240720319871011126380933832111970006847206263398959088151508210609951460529671859818439359021048662525222822440496853454334857325261806046400369888224332507403551778620126438042314822520011961817115216778667844035833077739009192475631900799691300562488361076241235292587542112709891382873807855551508090490619181654728173132653263992363520225365362642103473208298985526969310919372662557233745230152530328390019288995976736553875236643620951072057685265762014353458289185018317443546856359700685405858542920151381131442905700969242832835941162888235758299446736244461901668886749706042550509735316418727428926320829836324728061633005764143689375739489219240484039640531272193752923777329990309413665315459338130316615178878424740105294666140195300742837763834537688452053462403118872463508544229359236212547978370058814092245119840846035830086750234294655952015352233347164937765057715258416764773507470936292935653018703378563207567260314094677617425416370702065587448582300088474494564006585368273710895391625187369200995351790990432965706450389158836006042507838687794019240654922296786906689439623378472611925069323622468170038001303702312541960912646178423461284863356313557038822665572136605984885483212539504953596721887761205890186033155084965339764543232165340612630057542514020303735030108252135519566293343049014815740042315549785963280086390109951977511446697948136857661373165350492558025029131191302268006951525892933729987343554845031318976263088230304668457699004472466910939156258447409067244882328041173225563127277507681626049033734295820805285388238750062652005478548479997739368649140879821649992560207727772553678819528798507260156860425902776159942685624478840230419104358667984287255634653727436940488750205341493910923029773522286172908679364860116778264913163890681153721235726272617947894793181209088347627888689794963659467269834789443404343905614180751816506573648527173636375772785528980219795314936810748909059461422713450188727093555683930852811001687539913546112515148859789843697920058219592696783615291830790017366999106129826676657647525170914739889755155820101068715872133118224019779028310899820049334813449337494863423968764091261960730717363162163065079555289155421489921177812903304793797102765763869009257811169548573760476522444005492083777711668887192070618413508834305377614164849913778806628097582983383597111402366672522193000908233812547059124256087430866527820965167541481359900509965823910205831710756502950582529850532760426123467771927733823466415667508823157667160637391988659472167116518707902953335757448694367320907406909413604884110883207655890435748858693683675825950169447182128866000254356023369114898523667010401210944821912120930343940309228407595487343382686347515079520132421032444470116396538124119423351191344845233235119721227746740699235160172380424043182991412653787490408852525414294606008588092638185540889442013464325385437289651552024084950014113947611093350642079740650540705424632567750750668860746720702201960980081330634538059059071246093505800177198616726418191992988075018090251449227461148107422575181174822880322765036990492075791965589567335277308291198424672214921758633142466553601805138143688686205245635958556941546621760587334900917027169517836499798883192545948826010579339566609838770420953096989624734315647949959236486839164234806006273502759416432989437785784766457279379192911635332889307927451741673349037639152485322111252183892976797188751367549660586258912232470376981393339006706652824585102881973638191229391375411665522011756941170986192490924981268820327371106537861117257751171977193004585761884933751427266796359901103190927123140815065313968019006454810049627294709554471294828071745394415818413875957454061805232364527157707039271970152622793460211021088444278852355934839071191164092165587047835625866382180312013905915610707740707688417580363597018118457245858959038869811119664856830180832732599481429124693834883770426705964254935898376607541280636484502925647304607391836157150576066120111122924130084271387033739177058946520270231149032372692785382312941426685425857021071389591484282060664607681179042840320038404232987416125724602606083324163296752449062470977836462393727140237914854281092331306564693407833741242520709774143324000324060859351224704476867301935541500247188306333074843446396240927337192041076060017380975533428540659638567485037056064966913676877527688364623699665638649430486197528901666697707453340711562872088754999593763233354259438754112028438253102183312278168035607765162255807283844917218293348187737443799492788783037800123823859110496153846621271176469547246133461140463985545211907334199748472520756560765646250762636743147249164959291335951904459438499123139606332075156692286552592351169772947498687990765584200122682853815887653269143321976227682071090553586639383068260149297541701600597135342363117231261268357892546831841629642689291398691892873556290700587868564666483961562719140820123453511337124908513193383056505429349207240789342132432378936549469984693307556287543613588755914080693262949071439808254568551840803818654941901685497183258383168575241257295531583961973840785019968160725619322091403735672996841130241120045378963081584608496777946650082800332585788085389288489703149274445214735162036084163165584493551256444811647929937746742598191478866838674368262403523096367835385099580861222701853166678436636917210035457559659462727084569960806443871668264986595450931418684595686515542847346019139895128966014258546149203015170216631859757994567115874795545401573265649824325032297543104126797029784447597747955387595807580932038720026025447595355020116901395754214437759374703162093674691142266585432976059458373418010677160630990490163466484568628606685530501436330517529057621974726125794228021753130000358938820672278658966402596492703045338182528243756307422428087115314126534385720451183181427751626932857174580267752852619365446432929946386561705039344163701082129687907394289164031496754686825173075882531261058281350368188034315578757779911305059572906378606186021176684911288192205912445411534712198493727334129810084305454167357700380977468213091931783053212202599723372584245203766881077227628435650586391450057255117222537701833698890063811089277265198423719973691333885976993693749460346320132590664456733808244987128756742073987936080969959496421451696452115801404948998052558885162156998339683231837584939976435805358196907048114694642134899858977239686506055551494201310303447712791163638031705922178758401470895104895214850826161759020738720564649567788121331788402814167100206511526291717695043182532442308236954908978950888613176906756982133534264539611974489097350589368546235793985760858227844369574556141189035517589112791009762054194326899468895141409785077596837342751986953609071425215367873245621796819250796705563869474621127832913717232319326557780805698132324008225193591088389443765561453373390118640622554648728067067174732779161311287721695726054436176491966523197220658011230060851539267531491989788113425375771115817838588014826033457247593492298404749669749944276136145163500885759608774965208284958895919391356632238503168094826325297494413098157647726174407263968572243080936224044055164511832132666972921822808858663843338159643895671433613670962262059479195368068852114147003462758264636208267589906279452531508321598710949322485017066686113378361341423127224679679739956194236229680191227517763520727909625038932869358834192439474983699111423042406456352114595986008215820790127802655271768065625303833510277358452054787247353378179359897179166117182863989203071306448318201031236489820586803834461643567267974328046528536382087809527686274874617897358381858096396993354278904083103762787870946438114588375280712937061280373818423031805313174204753626297604497303804548085264030650067103085868105513500293492688327567938265115573787817522422696837540278917017776608876812359907221418519021878914870761644013127726438257796127326070084483746924375068195354069788487696454711339390409580449203455017957611254734353396474050383353469519529327927631017928795019244857901012280404341711763860055647735021608892050957762897477969950694781399942051948264067689014761487596316265161958875333769496209737832635811248585954281573622885188421177928686365573263010973392607321333484347833958350819485321943073167717759796645827574028743330290819703729087793459412573064920806757109376540768118754210000121988552264003562024386078083313729026597812982694510894493826456732113231128488155462832535928021319733353312954567141055845841485089186041316915673516251028835434584818218605272371755619883676360183849805080791821944536595232454655582094552823392044869991749649303815544133138809240581665611895052989978822323703241610181047297290854733962909559554314772766275990770431073058266528519078265228927981889913272339343287535021600556897699230981682660907537761437218412659927387017917271955189860910022146373545725135995975554003650793226000126734270168126124949104813244230862635434048125372510336693097618677127830730409812810024667972147530881119141320669980694107274979180770047908754403474743238734908377253866874024720996457723145658061612547221177012525224109774607542681806784936470017785851277035060492487649879481414883137911039201886124564500952919186724843278909684264716760417830437490275467170635523148295906830429854178036758627856208386891960718925523337697604929122752031617005253000992947699016050960253194231710810096933036464641066477914374960820694708460147689260827793722745018114407630268885663145545769121998702601817059896415292650317780132431261441823669146279747577566607939587287720575608854589667660178228395130222002686285455836109688396847131450447168176084898459186909763914463570073324368506826087827235911977149189618059161733846985756329856940160038085560557540806231760876470767387180905851976897858193263645345373689233583288923557157449270096901723123789569877789818951674008044981075014135947161734232673626656461266362717970357123706580029732086333731693173258121341079318624448803257785675002269983622413392652440082876676026989787553961076598359822454229160992784736985206071880629368568709201188273192997440164410593340433254033396878678032382183689968766388670740959429534727693796079874840456140432125726084387166068898456232582201075436058367829388229723671675139548086025319325156739585828614465212648941821811298855600480347402088997484739526727220258642558425378910051275531380846957107528028161929294513889282507012316706092414087348016785066249884989962529822715526241570023304315308807636245956985646067627697948260354350164451234789641389974664987902882997313603308069443375630177782972737897641439985503225105550506782541489520487204050959533917793961593012724858736893550748005755667779584017413550704839581558681672011317521041204911743396017910044905587811500043666099129060725550305547431543792617431524872220620398928879327445705764300242833687721336896230034978339009365793124944486213143887683741228856008327111555263095906301575816644133069914680285342192904523879393707426622629124576568090262816244991327473700919341486860606655768925632022673145774005591959155734334449696680975159059814861825242483525359606817351215048590296247040847833442469356260470300187399659853220982246703296229439242336527858473599342218252919592231579290428819818599792433246769905758825894063774966740928133387189325173691406511735633626293116329996906765785014193095773828235232080376898755080456514660950191815800002079816910526397592962403924320865989733760540888176873669657508725572913949800486080078817783952243479649204050301903205690547323890294181623538742914645146125351586894876864102908266886246888601690064250480994009844298134643222761562027982892884823317312224215620564365911565686316096422832318016520196183036426600348907559717177699581011932966319213071277919129646732161732708966477899047605410850330073082626903134940582119732757601957929304881757192690866851599660725238082717452736172468865388574750160657094360301234054179252320482035808417496668152615285736548167625225407062723559275685723140643926000450776626389605955242728920053712514048961213071758382662572838301157875858530002901134465316711995605085612448167437309501219688180851101090207489831787361765294082729436295549810993481214655791210561755618033766349097512450574512980321724935955676926751361535990798852403180459584304213703532645497400333845088077036671094747707497575505193403694035212134363118445429158339600178636061655289377466169968479375761231490061149348415328885957839703516873331781347299963382041207611737947517752522071624087613838613113376496400922135058990615869839542148786685504701531885521442279314344778746274647146288739928690696815706831781763547707017043926847845403497457379633825867970774838028220095691552947823315424782751628090142527981100277240634653590244616715362822761043373073132159754746658883535893904616367529302963931122895744607208724853064023460325243088083958026841095421405713341025829219159103508028857264815059452168693075477212784081802613170622868918992249604201032745816115722404919361872477043534094892644272879396934790196109152890251398154040490497652403432378823049866237523674157913539033456729178037878758129617192181478759267000137326450467551168227867231512098388654841050938413288842512966476706196351577113394298830464189872668415743929755537282821453114037176638495055075914204534960404902473325937092268174409284487040438040248407738010674487477840075342207146977649197763339209039300771522734714874056091282550570819497530386379059639688346629354170807895021755170610670652696282779406806742323548444494978045962828511498773385490929780397143192861626589431141491246774655060018708293981115212953366205557726674975588436201710085648577172030844548604906709030153307184818499868483353519376008481669814503065815572755662779553967791977043729195427549798949801846783385944526591147756999530340283630241246038828924820533722025479911604287532008430946658117702518164749488364473711505460750020689176716057809617007976009362398968878499648934715318603992438989112563426037049004861409728313660417900423522883203270071915992460543716352498390780986753621555885589636290771976680073172674966932487330236185048374849308306752041152999789909443594808598062438397519445832392712220143189055100314401227321023182034272719300358056221958878606606825154699807611349705295763014520428281200723498976224816877003729574522141006944868367669828515690437435834475807013273445885229277018696210422848876719509137712803478076108376468194240857418479996886838450549320931946501845987422737017487485434928511877714726746125016651960041201174094044003267745081824197939265912828851775691605502473013687479819086968980493424910501568085256700022305820305934147404596108346182348135414319681135260601010046248505000969702129122688993347188749106839223272878463136064717829266037863639968711368649123012011031444895825440495606719204186517293129041663193084499006600863136611408398376405220928751735183502822111375264877108290086715203027430048572779247563766735662216192711834388798146172226904034543059282639249929848044959225097592955646078553486194192091303622079938514951534821935697536374725715882444764338098216295762661171966477332521893672406474565444055305351325693440971807604466250005607792966844834162981657184912609140428361129183092438067599688306631272309869519836730888013972651634536615982173374664892901011402247378383110120224874557910609173427890865206067785369251355456666080831027272041581975984653824574575728534633661294774482544581070026990245376995134565566981768668701502266365194973757068858557984787541679655802477755985751782129487317471653741139661727060571566354331941500893687354864488225365949289723119322913029145794369995744159382929289116144158217788197850563182272060990342717261311265912992920622545495104199153065446699272280995012420837145371181934944566116107295765674826103333122816617465989474704663275628629020612326764914486163119672869446909789823172427999481395392464769042972178410051747904659027917340047049634794469795625123854039321712985325210632126379565537757380040455488800154110470585750314316627167889841574783642725289832982835623962759519065143284153195860154477983508399453049702856096408533706689676584583354360847020161413724487328658413390050266719203684169976727467884174154008522716911276754839858023207773579911056431843176797804004567484914772746016722998641533772227959316094072111634902874979168658687827265293613002129871866952411787862296938284548169642295333147139939453983794034707267518040528099541214353737834951351658115610730362712842946941063591262285910168023952792784131826420524928993678119253516795667566993697143310906533195853743936578721647830531819803489912199886596873552048468524465380731527289744384515134232517592071189397092641310007121846718029806638150276857626701775361239995567483103248077531425829125225590757444080020523723039285111299757465227464987060904109901170621203328172670077278219533057339579852801335248575274708757870120351234397162931086905106866986919038862536177239911472797500889100116650013384683690934725489842585663098435386069072734020218492804721505549205741175744261792207752148716215235038618038205426509749815839543477618405341115848961876769195500796603561808688363459469701510636544374180236348392894488878065696489716475763133999037608654523810830880831848338413791515659739940162179851410570873861388624258562298717786263323737359059443188773761985189669590516458191813101265680786752917983053625346625636486023744874922995263092650847390216087859496268141230766868228916188391569452835293506989175091822799546163380446955721933114953131132526009034336592260283443417448906239524667577037746192168261189126152857109973692653470943238204316117920346257923200850574007358488089139890743617890150754180197627463359810923341198245299074737600465818535553015949713122452188281037051395179564409862219781997113875552737188175499202623281528218144838619692570192874551038733457317324072362975981023170310695932709045940677703421790453926824699396406720726787074128845052103573562855931593117084990226991152353322476595859096028039410451829305427681407255296837485313683178599243923573286425769276944231503738872153200919449859238696609081655810463487109744854714074107673971093606081321364355205977390096015776476059386810178971931787091317498642244242487355931723775773512959710689009186936907531308421501815206818628584817852481632532406104810558396715102951077183451413393586974764840758871061008582474238813765136704475456914263716215052877508848393070153231095822038583971496394862160282997799384014681454236905280722563076808544604486431546243434758867486029036150509615698618879779821415932092833100310822801709804361051709095223655975439439300412206224822707097223744345620012751829564576448531152491299523035754554129828915358406340782682026862285629505093870712001797032832365955790002051082202803105804036449930096180686956295459468023293239655081683005948176897514497713536015382749588525769095069080783800971726334037373271053841913562861153553313048767708054734082391031708669454850597971003213785931368885240006581559158173715006197303322453275243112803840471782055484179604283985155743923722901618825629158398125543893376009423052742121621323277841355577340459735172367906093132486055538756668515336774146667952801766989646570300422141139604624336408036890190582127237257081351747037498639950741483532586722474475701989368424061493315182164207407112211554814922406429904174180702436837984629404227076688896463545151247320887485979100219237840223337564548757471603503383179349316561726233817427602473131975952007320732146719311936990326342656866235674849342748024381586255128514907670360813893958679268231541124793350051171848147790298882304420333533413298586445230359868141202763801153732325351935104686609035081408213112736473390905936493120746075838594305223729990646173069125231342225522752089149380963175031661923123325240726916659337278446898681870591396564744842825165703617743495376464867100529095813730531016869738994268159382292226613069159258543563655630511701599745618980743600456706165705744564122957722933940071733731326242288978430420863513002312008116104792756053708014935529135580539774380702028766697433160586661430156916423890368635770204611154630552676886761289076098345464090957712828198054838169781150206942827167003633143037053215482219389119615628650198502068370843713188361092511714535051922844248583755986449592311982822050963951136353238764047271390818809128136930110406754189834756320290207302827102974222210939539400706907775840961849563175143189163342380282941329186355105462028506692829079753079112794097305087136914238927894069767695349738073458134413573490377553987502439430274630750515843981323378801403473056203920218952217856624809520085030676982989715436132748733681761657245489915250157588914858303705215378602841274999380758175179692178943226685228814864375574211245353056892034247772777863933633241484678095871439281554351581758854277098101105250313522326016609772174976135355591456750231364547540640098183151862324285609511726469853303641588347070391007990591536203127670474471672273478555172045650002289694538658820756615103987710212691746069016999248370427382809487175581775573266909890802616831225798027032701035228184727168951062038455791858936308864648765390332123970412150527080501309067716315490003282556460216484283842501861874080117997509400441947912004277256560723325204098178558356133244103730449720187768181772418302445730701390017317934869512140395678835154752958075476165083980225846680090589124831732292926966700392551131259503894069578268661443396232738132974846422226471780632855492162630520721505486969606222141862912192328556260179001809997629240983076617661505154742583243897029242001186656174013176127297319638121563988111519633194326190094389802313041785091375647310721575813289981692988209494504696874188934172110477797934978556406108173773910085919338856236319756235313857725175033528276989952116478885846314021926486751434667841884281299513636930012910851190980880286703745692061226878743575149181436253967475791689790995118034922208698294678631127017322778443916244179540786643302566458974291058876484215532626262371804943721258927187064064355958374553090706421596152254091829889107312801423639840053073307176906677327631517929199951446743922412772332769426458631973529816423017875483685815667618888264940670191440663307063636831371388719366800763568964543425025359486711184758972065385900473511251291067943812647112379826601892130449023313481022843520687123167375797765011586841091227112057111931737598113939656245408765335039211632101012645983258472828459625657395531641594824013803911440585822284572170735971477933527986286718701099988518010847903208674334971171931691865500761789586772782530968501887045731435727138834597140682319019759519039098695572798824409195275321558870125783005769993290936219878080798116216076177967191434573592082699916365543834052947149807606821804196293878762209181843889885579360790432586869410713284633620073504464211690344432773892390151871225829013581634917310679126278039328636595655721575097579183367719078398252970380476899674821514956842782752089360400141483925662719898299193478003520437226445472029895305886353328407224058527224926632682550005159351007677851557123767815375141301093162636459664479307016676658569781367596732165350501776831112314601605806844314644989345600583697436665958434016913887521633164629960101329427691602256516227419596961493802944726604790424595075476430663853366199840898363272769331075363760756345280647204256284828162272938919284524316284245503272118150559105355032000455589452563886495302146422353304222847463225724110474150674704992842936534317761478166425481304186283901150656239729816730028504199512252287338732020688669025735123539543755776585571450789905222416391705105003778901630631901027985501374145322682476441585950384516836603697385845021682015184947189585664334820612004489424998644628748777446416272145718331966274766624420960440232586178354492683712858391725471799943705787190731333341372943308369871248991036570951945992764448861330354892105599601205355133843061732913693924950932761557409648225495299660683212936106645702546401059307015505986378292862403700344770032779136187911009563596130475433473995603414975152883297452066378454124500721107205122639582061446190399397317239798486305034441420355673597330098489052281038273204786842338086799021092524940571534532117597285819772360935279346429937157076727417501436388712366934169417633477733525945413003313509224548511343256578949997465616371099630792285912455606879276444011111497626039229903459656474626581028230393897079356075483311710588676636434761135792915570234050561679935678598825202482147461167624155864212565784393914272441404775519714379584617026124219246032962662216583498890390472709096575305106392596467462420825008573851464829045591970479995566514823934379712102630255307702234173118810407692263727617988911126471341218190208147523258649390614970834769240410346268686404514801180302476024130117535054103271895699095117700617674743633510775473693393348626853416033633163661874151980307414442735881191250735592080391338495965239688319599415312104879501885018769231747455771301749797215824002993216388205788549157535967752352073184927890016977819213397361438939976773508075880150112066338146824242828917893681606468669986162745394202010526958865431951021847410869935127003995276218902068416642256757495613886339215924011868584011117416247676605874562306961850012457531899740295454267291423498725704737836158024353354843745564480253856815830931666092555059515462911414090399040005859539942039841016197277827184876475290187089423127068497409633422631079710344586588696042962162269216501004718921506075570266823933390974447247827128376714443483738719653961766675847275042642806348147538759341283318994752114040872464918524078016751751111166950541067317860192328138410674785453084824001603703555676677100003765449468360711273588180189580386416415276228843218839791024447187205924494025527499441424369204272291261209239428138476719628340392137977299327776492543781810033920250443739084383385631667082482632314356660133534232270852508328745392380346540481278931644595388893016173836910764954261875659989625565702540727014008801241118383260189322079242671687382343968493365188973807545055711563574488007973096352723465463148503742619905109758624442547910562546873942822813780504766857365610001962109221112517979167336192274101185560385070060145520451866141204112030311860262310986317036361977593598774678957717721009183856143618262248452640795475558372211750727721881631478440120544718145618907700499547165152482636182654154462989885652678769109733031886164088306603158903993172587529893120586756526229518115549800392454017231679994154049204107859337077125247566088135167074637647377322836340225597642783945688556502390886619537733056525520301039053531391975381800377131721360615956714022745266934714836229488951758653612388013997818037252027258700439303796358602471338128917248076451551417329302705471933394766581546150635972330581129892924776960381127374261817853768713236315791932020074030234454005423507833843518175970636762984283126006609800996531626604165346997278675923876642958418248311045997422969366173697581793491169915735258061705643754909874365476022483212931271017039653589011235454198252531124922145129395570940481807818228326291361317622847483588489546166396471641670226200203810042284602616540826861754194349972442914999103198725483872432030376309169480057344559006064683109247594813275636544980377909008869711978107877837480516400906706910127286696013897147019032556474673914496463984276516863862927672524810423351218252680031150101050370582616307631390845778796363117685172507773043405615016495105483051701742091291911086942715713381146074033119293741446809208010102873201000560650228476865684248194492569770759427066818441317394920911240972004030877120284315478197052273740310156867621358174710301428596940765541007192846223538300613740874479325990836999199553983953330495508898543689197885197449144596733715221428720704929028608826891642034302076158156919483906916954870427923758702511971910272410283385657787296173765273423805667303062005113146965425250562416908092323966319753821127763142779194122714308999268348080612926371932964934544600930816287178033569222447654485777146687444276162443375161455516432581688457312774670568664487118120241929563293563117097200999972699179658044812140640037050791451325530195313106816855117999476755117816063505161802051031001948005638181405945303739556426203426962430667158125430170124348666373681277923659877007566999390437197677320068321347374395264808874366597618185591924501329580158923738900028322192219740891752234598227761100969788574993054242487117036679884155339292804893700439016877630590765722426263223330739843016311231136746182297002531334708483106538115643239797254405192255043211943251054344670402713439951866747122845443085181832458200791238374897878445740359063468788606879277303077828632335388055389930928821055140152092793307620474690841989083638342453911493596742286472806029709035492145398821500456242147559225241338979964843270209851195928089421174325167944126630491680891183637946554715736301866986288901048754353480485275498743282281299973549973962058670484827135379728874603720462451523665443238992359617900732070778239968159570256706805580290373737721958549288407417356527765077704036940680756318135099277049817499051389709913264735088667839817598934464293629673938038513252672093219321477473351719524077308152326409392314720265480680469780211902286830036135377226348776657715103544598613951564557827957592004185284099296863638198665634170183343063766226652638948915267150867642577336166183465261764423627464255529675710245100880661167276208466594622546033152802629743445389670008267486963484287365106574378835975947466925630874286347384211969968780374825491716347291802504644885631511594545781270477963179898791371634666494918792756643902332650542506698254572052289193500258714021493127820266374266011172715026869357496914196698694350102903853289460558209623715913961868118236686846841277817470981227261478746618348845429353254107818725603415069932078020311278557602487425939535451511180022041898722788815627388016292531666247296465548021089066113905518517225990850929866431556884210577766760748157960044913595038380395993624040440125847118073586009819808607849560703229232563619603637135861971594510086714548434545472259236636832510596070155880810823014145818451944131395110845402033391535220873807237781945251585559364011414763340288219512839996908919357059233191670181691849078756992491259487458140498664257149388418441837998656324914327844971936444720611605265078654902593494888267992865069090502880365134948642443163885696536323052931881325173943242344890895940717530729672660826131835955056393554323149045629357933036546130554507283403904030406346137589212775999868957243486929086612250712804853065418563229491371412114123193016380750292129741698049723575984016168127341897981193602214176877215678118073120978671917330007768717072862901195247810338485819152938813436149770850868660068922771099687520943357780161702524153497848470553127237803372684868367964674461103986779316237404307216569012902470873453305882472675118301109941552607676203926985225577261610888623384416602776723170417331415152881919879228901028080876873852334569229146048825266106401763861437699597079478072975603404712336009281559242115548239973488372537828913923147049761724948784660617307137121099433529420563245390394859516774038456895916496956665761083294840245760176962074625507815853299821756946844222978071708513111292914376923985053477724447000797522887704978985431872098928023332584607789011952481714680999332474457442888813017782818942061882572573168213511951345452086651557536255601666537576171575919292294146785404353150440677633180783506745174022589542452986009579644176542891754817110133303884840918124599331450384046955420339995933277640367926952293821765801072977357592093082318281275419553632520851172491831289061059533803679327421541457322856286328028667349923895602651475445777796627832359998963136887962718733695430563941602918316760422249627365820045483411979718362117156738551251397856485415357963790931628343580445148417290588976583511610099981633790471308662053826963451421033620605939129588267179032541252723946201701898864522688912857759078084878097857411550255802243723277379459369280744619255811856489913936890286372687430338372745528663960586722097724842923100147633773099244322967113056802096831272589249686644139545390902405451780268242684717985206594722972941123708563797568089128055359998397789610625433201203449461124482287000494324830151559370740349577856129241856534786923799282669062481751208661760207869241760557029486975680748258827373592413538606129599041384010460013515669190568995447619610938031506535346972916242239211775772052732319064251030301224636214805757099538449678033098609625782208082025817972076275179300640609968713933138928670990836171040056018006124117145699166232893996095336782921808364153629354624936882949769001637967390068272606680608385717570583679595750693896062930471446100618896746030913637377352028505063772683624395413019541990864906207207394389601855690104260666800449510174377309251328906329667563887286855224285060431486102179644634463587976293939201222881454624179656024682174978473219848624275087865063313664108803294936916373002213784466374603086080243735104139468850305427369315116511395646767857309293723522832598487866066532451994286260823073358828014046719354204372631365492461649708655145058505918969967893138811593109313074327592703397585039034295257768777080439924342250975123977213451010937425179209596943539196316102686291101841756892011061037314304999156696629111446822349098387260986818197830084460479372224080574386380749295323567223843315522215594290951957941326150733735722373562701885777607319343801570277815841659736517607892237521076522688629047380073950270444381434383844502518036746524621139367540513830538904187247693249007864678917455372280205527828017077193267422557448644393796570019868636126970132958857534338042695638867041246746598901660317825988762799197553621221619921363564481547823295724622160870893207175237052266305673275999199543169521418942209402086824339562772266764967486483774825333313608667232391631935176802577115816010696463545227923724722540327432883603875694681809983241692814164108999995946878049729571391541065310869773135786979307819132837333626845643168884327644779656958710518017759938808980049318471461713104510188347383927586372860557877928601038835734469751951660076295117084822544947956361913411604824170548204043525914414833201630047829950025896651631720219501628917385889500096712157853847618324128985934211539913994824445552815218319345951664046962906841292105879227307785815583710197201509404943953107107210351690084551044390174486146474599270812926123928398524889963093054242297350433813940652363861416074905003355505317993446035854604920381728851161278895801053997592346787412495281937218541892340315720499700921413966108659245404237714482834212829947673078622182162652265784457845803513323237788994238064761995839995975790736222457511989536013843456040053986322319122297750688300220750498818692859458970462782865619052846918618915712081491091781786459991608410405626603145553693872782643541869815978327187604694422297930771976074659960610737989598476324947244863831594571410795609629311052398971919960773508538210538022642076362067104751841709076859627607313489395398290323808523235378881631637835274083416970280983427918850443216252522139710391890972143497823547310101862436390794953225688164367709622631235447908363334922467448762943907395786083396300946119188640803183615923876856077489112621765794568322145519818590314571950056889161293286028108495961222341234879330776027056362942068209267017392909550616976397577738981119334189343778954006319968461087023107839398969190136254487430735392281584349164800491282031392941414183890080942193712266796428358796867564491711858269225451755081507277332394394514485418793059027308410959855289834654906657799263531931235920772426933981686773829824035914148614562018379913844601597901350150585088629767272078695508842607021190436359661523259003018129202998421679963547232552776865967620153946988263602164644790603735044137653346338964934469439462586516554181924581281327372595428868580074810707063003544400085338011786604310976154076934243949733309620042562048630953248466481943407787782645832960401676646839134230230939189491540750576317079387718381996181073641649415696827215485649205474871425806123350686468790391716439526661870216122742604461619727676979749751731455173161306453520406417394268020031959981404484356919809567070960969421562167669679897403356510543353333297679915806385519400992132929967095923807542750605257508158442375469664009488344090657102523892576423884318604848131432480764273957805698524646637359237953137904446876130564156130157425199741823628223016187675862948324486957442753178500281134815208159935591249514691963191382616587296662601201824790380664082557956440591668964696115966150494857318741654940683516542961635396305697676957570552225831284494694775724582070413325157897532906310079817587591899880474136707257805597644790858221703360476957819323642052577094533548603836288468774243813920625079600681141982285278539054458408873682629484796669081331146429292850535321015520778384317650020752134964586379385899294524835360268806677381432421735872133801031603925093077707514279993586031578536215526697867826007890544441143109906439099818076061178300685241979763301258045215395996421625080886167244163233647524999767130275314966345743173695338821901769840873289514264263239622695430080571286356645051484356987671898573484294659415191953274594626934331201940840118321657536902292084257577116341323614199641828445654892059472322966202823565098425141442472976221277185959041196273119070682230146414570900551621203037350088502178616534069455718100800313978887324926644081167379202944119236073792624273300978267232733333934785138384161886143879216674011612626825100783802011122050358735769211198916935564040715710572157721571601139044581990010212543848340682204183580901770134391278648225136230131006162425195924232601446188012110595394117761507909245554407864550328069192948561147842897609936143754758353798328065518074856253116182652749786323632582215128402917723216743533045675082185307967344255529175304145259550126710577217505528370366881723365270089011082762927677090267578414824599393851146190183325024305409489211177862290653499325419411526041664806062164301392291701261104347555907710678567010556502251826428289083523364055038800029044996132891630236028849450461643613879051101401597402125883241174888241317849200632830585847958350022945379945209474125424718430208387644292417548726804131566810915727467279299567719281316497161054472765913337908074752226488682372394203119343085768462649389994914141092380965371066046693878880816802946625770612141390626814591414936943543472733881055628662253906796685501862228774196862293076042842851110358298396890434078300554319376836819126263737146991442538155783518791187534176614154676139964037348937182477342444843259737799322682836647151105519868558732256590551569881659063639370562658163231747740749269834832583774043822513351561890118431166493419193683023684981263636932025759562530533532341859178900949354540946815194337141214893040201632860321557368303562616977751292276731475497007548977316002938492800143607850942628880293491982652842622059907044814398756421433326833533746978324038035649443153199718207280518344954682660364822144927238680385739688516040858491173904198466346937590401272526477336910175040163896858903481396118925199869160494767670490383999189951510719244143785114602959609137776087134269407980644356645831725086074703168421183909270607176850054278539674768938115239173828722557142738743329881177168208941915618939961477990523199549707996764904219541057880016866825383136552680078193649904173459636092779295243238895667870057965148052570596841561460489278007362417034631960374659720349566636537142617841125833822941072809862852297120499630054320538174274610111997694014578011997137369207496477098409434557765304859453647345008384906864571409333751717713495803918841747575567430099886031957305216858020165757972290856759597529305968798936917607272836531553516599346759947233071310354029466618680416174171018519115354324397584990723728380221562645903768127533445113089151488292142656365205841833929030857357671467949533811094997460712211188778778357959028405855777752633572264971193849166201022683288562195994115971412724415662960689724123009559732361746817570231619471768377237964322226362679215589059929591845647991131615680767355308476759409161981386768751897129356584922914475613889217120084551293814867302020715837931650098116630844431709193920918362765714833756404335572014312943904799677185978486709377686737780900668445342184751600520816258039758172046333740346628553406730261434441999403848537042861409644251143486047376473545900305995315433333764085144214766007205830315742591628538905488052792406281330938406308209132847074717316429009535166251109800807052326055848401065308879511017468847704284810136089966305660329083669535360399596329501126612774035459162496241099265074560361782307516222105822751638212279923988583945293913321485370199826762064575358444927440547482087072498718523314009698295925875730084826969183780232282340070828715411118233571692149293901351057894782889555087516276048144449082259634326212576493580998233303769486177202855635029832821446703787334655580422481458234538041896863116556975930597734765508287409993806593033818147114219222554877396222107569571642609255831531806021509897449984539920127544056544865204994468692737889606254225910147408292108693074476427818454927375221574310388741272671449630918901800642312855457110184577472525607020598407659628305346190845572509789994824830885659552098152787903642771289053900812360568104560342975704595952968083588210283655020347338879392241995268792251279857592501173211520754652099081709270324751117850588084521588162924505577934471799257324749555506199559077058662082801743416522437919316384133572847511425085477472173984471259105058525708862995005147656638786039977620014183252232752564316771097060385187559952967364990725024756369807034774428932798979175119683989551181157110942009700555933245957774041095044363577006197972593368696729495102134493184287142747747701073408709159522960422458709631325719912124495483637486630361287705308607808681633850806054494100586002238897903880549532262127853872770042179765548831721081852433921851324530082870389580961750713103483325104230160561377119715843597754510680083461857925511264035833544397294020856935744551990386133127079346330006770643967341138736060563713117303430654050523730883812921577419905721571074625091821472774413160666112009882504024513938420532079046410309296287575907952939817639252277319928803494987315096999907929033695812066431260799038124878436596694009224419689585783125730614964111856583034890814459551942952067163290893802599155013359269110949523157685827653219926446134090280789549478497795110160867784351265295849525106368180068435032255608999061589104163757483405336088351462102643211289764415117928494916901894860642745891894366448803399146214652966267785147483259700152223745818855997382769843100984140638178318759021698320922711535893277032594773455749688025288285611060516463843616954969749237036454006034045238819985579323311959909904085026335982278091820980682122722543693038292524433542282434367377406979482354386101045110351529036460990909868409642312741472330321363891348396457526328340472675015302776296235473890255208978654662453278747729562001883230812030010989944966637995938456877398805503653715439175329047790851294413990806537694875986843294033101457677121877585562893245623451669447506884361375615078091869239403963937640930194888339857516733631874840635143211546742191993277112632712173090753572415703629238981169593170565317608110545322490947134136515357217121810960851377331124297998084874349609906315934335554519851965431230934178841065997636237785269174758532458491139593306684318697184581129652321163095492897846000653355235421734874219213006651220238314894824609196388015375795616482327722637311692807798522824109769380900925644727260164203325390975125561031816928302967545164053231359674596833096704688274713051096002513727470085606619637130095434095687750555864794009163951675366381929753449922765026083307141309536376299468373877456636790824557845074343848379449528384668442251812445545464015259060775056996365913631126113465999987015431220110614708892786326027802327592994160678958698541776518471790505749151081584002554627987921078017341422983195806650711158673604246314359682562779432909508503657748245185455111157019656027190865667600835517381822417783451840489170401519882907935152646491245096925190429805198128013528016438711861239592499462028094495286400329437901105237272317828542225802510351150293211439483098952942364010742436526339494314828863358471344580263855898875487043454018687112869150167982880774079084030190136273327014033891354224120999784610999343495117573097773019060902471795693911343230723662873502430484531916521745633705900406153458806364223500885573109007770894920765379699663516826043759746393779165325417435064491383795361976892686501227384078817842576674575496653138866529027929401203885071700405622987851097808380936477103494615170505425255245906590851061170781352680159908916756328842551316214947280156570577431090502440997840421005464098652214930297965615670524915615723581552268718550153244532289564848565803697102200165974409107438752219085370554611164520601682027712748087554019040416847215044657018013218283587890178998026501390888242998536798818158400247202139255570022386836102521348453277367749890000603573445937470927967641320651145473805249026731552982997057576080997854914617887343201695938498717085647814270421738675234578575509619338787435239602753584360849712199822514173568500407046363472686761277182134126578620307988935127702923215255566617201382584238479295539700123612088360093333656493957755480546088369339298451087581401859130378189752115985700364368514264349979354259414703344054216194545315976201037763457233066963469172905415667633700808277682990232226070095591288187731996009817376358236745852038739376293959766598923294377111119612272422689271884878827867610800970409718520777850163040367620634039974418129458179908932475278308734461956812069164358347735721237600976838271932062866684206483361831926325322577801163257122947626376469858155679345540906119364153726188806818442997501661137152270277580560551699025097326963931327368894868287575051612105446834650837282596737051686827613123683997963309288580670769148521086140606203852080338555888773926261476720547432268421609646700593716129487087762857257214184447590238258813179917141771388843440428900681545045615204362412621079619598488412581908240971554914909860620335053206023756572904462818048669841153578775516339915205162406640856901803798735409018344233510758455142039627159448466135169511667915823145724147004172098265134769290045310598080120346504626430907569363707474955168513424839204599024946124405134941281938211701872229483009061844975293027776328870840688168192953668037230809663942815184141669895136938879981400949712902429779779951956918899002404372523613368392441992440479569752071291546055600279199832594718666091917531329828553880893766761030431691387269145153760585787775339131313852009229249824404239258823869625565058144082692541765776655604033892580322036638278939552391017069568051780997993141140017918165920946088847781826968393435649555138973124786778980674880666460901625424780606787524200848417952682745434950765124999361730341366208584361643749929826417468053619529298136293686109292674090660113591405893986816768353727966325285518341552028741902404123944957875594979554772936613359843952879089100854558204756495113744099673255821144354826318748185925901585852112147759998306314860238749658746408421293380449950918697929472932123399897744531618121972248612925345316190372067563432462567299192177192235061211839776484337882520143638023317388800869429081002961196695438114495829870627572858737744305809985188606296806103447534630421841466952435208074828638311756723892997851769975617831318297841868400882967034774134101435385940786734357803835084823392401347247450792524349949348081639345966797916523858484552972219737773800484480124554882498284229648740530205285666870679063505118709969803297450021135394397907357505161246599835366794365055624768776860800657644993370312427293689924323360940543924903368723618041438489998999728293850419170233719849128140703782948186935946739672490164867292256319343056128313117396687215451410660036069169902835840944419616176959474434785579267642344856229170666692450436451038361811430302629908831733461043639938520208088282831622250808619693339645668313675967780560190729366850988544454688104918526756836969670933625138660884266411930828535932777476061854101327656756639956256631629203987923844156206820083125959481706154525310703019344246642008892877449676836574273516035532789639780971502069156575913799107009679995810000660143247660062886732530307050140224027627423969871384577106521188319372963488655074508307537805544843690562088919411773267268070824022946742091858952189197364471153570766661070160981061625820932426317592076764567286078753969531567526375191490027778768950319833670327594702564431925261205950074625234342969932964612304701793246640412869749761619163607746862833744517377238886795223376366955290480777783498450122457622555127114810762908195480659097593275995223630830687130758871984893905531467034520384953911285826931805799016128404782663107818430928716999969076727149399030422313807820111035038044567880018085199896388664359354227030944625560500636884990069211278592460129474855577063306540460751371246045842305834550683805616675491165672559947696079012701753550237549756261078471800185139391603164561260847152129425872096050916532767692997144529984217889461309365642016287384233043262928343242048742096100737370596558117424877937380096413921620205943723376612860520754429338482619694223488251156656734776363936050899485351321012145022678561327357234906594870495964093415295646043855709551572752539063404188937340113453348089660775040538162427855248155586520676078321393901210394351186556474155632007936840003279090077081933966551291012543466640678992212007647075673203807445994304021246575520033861912923583906989580988604227902673438909775469168028198641217559168210655498384811323632032999252345162919620393984091251377053482018275449355789586390270348338386952676803629952415682347421055811676106237953866049959428650512947194343698428756107297781297274195683080297711537919277154934343173991819125516135224350732151351652389369215119948735138575976947813189759979659000937486982408517322462827385971675383964228990432838560637187968628554638598628056061942067779465360815888429072689545348292907222605911900171399364570623509836215512639675747880470623797756687052504036403056622416672736523718630701043749647080012264686576620568694296305157454258123379293487796483733077499085930952958400520761108656249994609848701282664664528938385512616000226821477505476812389997554928425664743290697082628227134799922072271311910387934020441354893413933091676719448874780830648217262480933945569576087114297779058152160616598835483003507764720933359339523677922340754385416090914349061634054463816963441152886908126502107147293250880493394972307133059409945351534414215864152578527857100501727574918578999357373697939860518749641813944797171297490467279656922548778615704275532819070026167893095086663015060789714571811355205863876247052012694644148665780799921392671993371096383537911214451767929798335751801389881488239394002514182326086416388171697223476043332711702621287737395198763054687479278150410177767920215057222959811196663955093823119635642144779837458748245871603877157442149412811069281903968805030543911676588491609591378058650484524354266081295889222239624747384648641608946431809569755213846779671165025788511886114987413386842037591077234498862526052636813357308685776372188141097812647039609738752155553078466019526857173422453302775689418051211151950423079685054275333513272299905289963936593412505006907807697945201198255190564337289067767411517801848617060704104903318023471733316780296048167285807634652166346154937824723497290357739777376093318210218789661733443577490517833001005627968555699138793557292756313258126925537500321667584368140997717301102449911670087004843743759157450708244222687767659391733876718240371823023261834330345043411896265144195098894999778980932722392288532977173904669406494689233205725690373506262951527124249248226855790022839254614976706392850618040536620117191422928106797443361907897779450841638121944403762214602839547071754288676297140425970065305256206489175696621309515670316648571631133171760322396509106329001085283769651370367657796292706351169007284111840768549930281978164492594655140650547780249094419224487822491594340987566243237905041875160333069654945945195282257404597325063504944906554657139924185955629751591269059140995780943320133830254874288046231717960677111205273686130978212252759816599955222208239997843456690934857386545327517174506377597921182010896077183671740856103662151092865639911753221608719335632910427276292991775378537145896869330133770220900351456509682115542696775104446751149391212400058035013950546279671929846027414280840075353942541787032197853713788632800275779525767038020703635468808539077450915705478352133077271468450786802444500086430457562299354754692431385338170107025556737790144763167858180327430371067833469560152346029191150676896696196618191507227084368887072234294114759943961575038200005535373675548297571720243255905272371195365691335393062858260416627348355282190265312266005995219520170344735498700985237276831972896339196771434233731491901030098648236113882967564069232544780083095757825756952190912006362012655508890741400412113782149871581277150889507727833778946876335963513773768786575941798199415001513939457390011476479648541649189922682013582681881887799297920914789367053437113455040179366635386590136915188651515952246805662480102448048830699712109856403924848550206025688318802673363113693473321564093304173260605433343667150713415084579701048916591507588715564071630241333415572080565108653995417455249535159822165479316595761192217005352044073274490785017373340237832776505133475222133492075775431868298955849297771570238268079822117352030467060432070411944848815405551763089084322483787035203662777977311926502948441478736698829028262067736848126768089978062256554915048022628496637261578960734932406413457599495084323420772276318666861405912846980197569544487801389089350366227216283500264971195858577005397746412253967941007801976841306822579452054014334411996006767452366767988292051647628632586006438472095287612081216692990373570839984678676730417519391213096862122482332293819296005232736872205861617128709562015421664126653775116268865423636208152259525064205014901507338440196196587809850199578347028669025029065539624332489858082842232982933231644898865758172614493949061569302427483314022191352489559681601676125342370088183527510443072751738516596234730609956821440250171622430135461445569723324529835485917966119846708774916642114048548732176617070295025770289833150892694861874835498669817871701628878682780077392787431014399112184774623499116486533113542697386259078838016139467518272514014025097018385924464109110376976818595070636449999370563087558413160882533309382353712564820339479785967656468976049089609805311077171577941446668375725310124912954303157333189458670881449603924864851093820583698937773671037733010979050949813734370741158581740896927724675563767628161551280364204218428170652745910286722027862549019861838684202553322097273325213926161324721830447257266719579560446331236165002176476818505418339743301310443514554167163894063406587262212784591789057308096382525368112462425081677839120229418800173342742372593190063004605587202408032288011721341368150802182982406890556330580955686286135450168625342200243197479458831667517065720422832514975193928122703317789304070342361799305882572248593572356522730991223850945702732631277781737816711077106755840163958431542766450444938855824544973640169830279116998465416678820421230330047241679600081293325649377228172663076659475542597512543780544768499358469050771732778915410695513227204315370652944854447817523276744358420086938324080185890561062703167092128044078984110599597932410204899021938852467116119710441010787114311808173416760335437744769169593589496740804471969267768764937420328897811273487534743623096165173349194219229385056125687816232768039225096323848406210812234613776921569336130468081172323404263019979921227444031944151695631371910205054636601576244332955686873090506674299631007757708323004513662280099994303759438574041358635158828515810871473156053556343314636540113036483560348621495176787600064583094263063548341411451200647795399359222072461818473797163798552640878492613187825985310006695576564262121786975311495503457879911618123472247286906913056174278763852271431941104081685604184883393340012233627866301169350909784728931359010555789396331452141176403793185007054679533895932491962769389277213936731687314496960872330913257043325483503716408762900731300313002261865695629390981846117248575894355723152725929503403562617899431632124680190915009155817969728550681588412994271852370849372573458566367029954539974172146241159256837280166810244986182007423473688926378075188454099391199821719862774034546891939244452524014726314223175103130340530000930440228322890699011794401193691774725397611326664370841410844965950625240364905056226682409053818521660639856214206001249989831645423383961255262157003267970406516076475341253558047854758465097681785279537777414939544514948731605602773940002159902231584640888447665125608980487589275905122000573263582672159661971884608819735809802220951763130643570983893368890897417150129206120087909246503865107571052972785332575615575002961747774286942532794397830382757647178643716813223844520495523267061787787762950571697377792249933325795914042999736413573071938762762705527068281852299724861771905669492279578868186392553427725153453349822185488769074345449097106123998587313488789106884335044089214250994298567720809735216807314907142689450632037658678254431198025805814132444628913429026381340880754300016954068523309011487311965330659960297993581812736422379073745290689506372295715771984116902507256964428369753976259961023502611646420776118409183604008369475995637468310011069531771054235054082181725290619907585923394394457534476496090622663110923413859781021708215463511363449079130596370096960416422929385207980251199969571760025634175539282767247287713096128159352017235257524901137480682859902684467908278885137987983716779713637808194629404942705872978474067491541862855429615627784650025915072317017213260448139343695563296959224566941590687116125276145495374400671159844233773186359675602671891991551042957176393176143818283228367633059964545728884127691565530951237506502709358385446577966843901257860117333616770649571853256996097379241234547444838133238847834939611747384592204123232911004170316363268175144954683366106483546527697581679479033013109338287175969386268576420926535930751181173496871839017068394486044704409001868223369893651241235802179396812512353546901902352145575727867415543840530764032976991791010816943204998305448676013870783232387337541626407887542644804108705451440552173463709916721585640303277972400223061817141767363962990515726317955693819175988384495492291731092010014933076114873324560998920280198924221151432601373881237276235124433173995685695920292553905287148304866203390156936933663584172796314903040454220090713120680158600275699029765748393598106861318750908667561115790784547554232292101564884056399736948412400977942559922183910764497409505802783590250983649289407691892350768046681808736361786204278550108621035028976593053022425952574410911810111827603783739341556849510692191571818197159969643039085247226887128953969907238161343318898281593738130894808151528220048970201743139574538856084236671220390259230569688423067036857230766172482223159461175814148956219376747567510061184370839337235315748871131945290185130210475727418259743830220058364730200022878385873110895263413449494673492856507613243464332825926022346835866676332394433798552025555168111422747743003158422452132774361808489516500630599495753000685153032557987245065263086905047872197549411520806409013915912113717797316003106369174039925944420790211125265016552542723804302727484327796371765090910684609112340920347615553565598038734606297081004176876322875068175231664405835944630875501453416844682778445530878399198585967291452933103411102749893495042435389026757324660144595260926295074380403652904016087885611962162833828859620576554695501500848680914787730687574087646642409398599153434789592556855757064465205477945562570835159154288651383221482904169772265335415511046935411125918740405569279923686453555227408669226286404875190690345900755976124126141541140487127455431190826431663603309472352273197965805245611283430885531255133659167778922471325022693445934248080218999142850729815290509124278854905320034968364315326560305477163254494754603145770808523884759239743967920759444342227052266359693965590267573094530865832843712035224173329778922712975065390598868164673080815566986828044722463353142620665597503956918167222001707251860891778123320276854418971679841616417945591925332553576535082247504338800405262212669055831841107993142763030613213508216770707983741722554398279433301073485725150337690886194891159140152545087653482747648917978130949225763632348166377298308403196178796111057429917885453038128475316719324022984828575008513024872454118560794956248984218856861528477066993449257505825197661045072251286773540872671862583905655548602439228427603105431214074399254057703952689448775415994264244592944860503840614837372272745979067669446134735618920243488972782693387868335939991337520977942920940991361776719979917112614904734869286615340307131475297899582418235937450495519255736849126140244922864854560867394070267718369730357789423639427889194709169361122852450545802486792875032813000066883536221904121751164691122572467520872986199745050032057660965084438926521426501476416817532000120122060372306240671653844221411054633147617305335069061665112946083346037487701764574070726282187573318485502056344621082522090912319915983221897869708777278006982935982867635472199317661434314807569267877572933840057663425431181426359080284601258142005729595579362708658893713895171757245904072953748358660395854048026371103123297641004476786730422311081240676040048799731347538851769155860465855347593391130645149077001957091127369432549097874989141327482121288706178390510410470397364119089187412958915468218035014329068147115549862362476977649047980573361607981354402068141924132173410710493513453635423883398351323868362333173015647991803095080871854644007421569311636199708365178932458585194670951968154284111542295793408028682673394528449336216830884237358426786392218648857241726115824045915770379693353726863298944422189199686968684295739192070353694909472828461946668120165746138093729331840742471325953352137925184065122245691724545915494101117452992928654119139673446153662183629774731927434911836638500655769572535559460209131119604709350990146466158830773036789955802607964860567986177306904711084641810179358286180746413369264019868019698199351138896913533513253272622828506187964718853004331027430290215913216839133296608577498827174693130880645204665467273262774681119023102279814268419515872504248737306573338788014066848956924898351428345871848248368155695879776480985636589593723418497648412484825390609333072870765714961958414185210556744797388129393616992662667687788947588951118533562983556951840372409169003241685977667586022686585971090783461702458826969172301923259457680358789668202070942803410970121694226649122418228253666039762433689923648685279956212814298379338349873980612760985591892998369913055628309025416790598616781451398958536219646909920926977896869152513162305798124146299256257308099348295499925924011738362243538995382512687164365836076121767262801227089896974286702759653350325098476576723959616703618446547302281611232745175596615607984936081187098167187294383623282373207997996088082238792627905623899031968830201968149582074353857561183546636269424819398619334111762852660411431615764881934886153898983194131864258725912639769683906179971867802844414193343332657727861236137454781052527392633919915807032339544555023211085968591652577938107458491448435211982270619554662871153741572903024608183007799394625450479596103637530226025638709514139477744479135286247871465721527295213584811120037534531777674503143259152186538040103106928765257180184202155251518579608304920228956254411074140878467014960740268595798214823177472202909790196180590993895954927282676411249179633902780218265850571497167965482086174800250020605293719755218019221194770288822883077774738687921876731546885186422181279121020639885234847885384067095054624323118213283472413869248516062964546733181909574218347153548130297735971957048143863118456578936989209814822566850896694458296130083574092893603355776061988431760335483406456472282091980992817989104349020797721716168657580543642290585090372475842439267973884352627384828245316670330033212298981733063350384019055815935165630242566442591410813372622888938236269303210077614984847344039648584591154487413129214310296397622866132360764949012922243850225563743879918948428389378561031589457727362765394929784071213103045279469413702722921534981456062587694846876092835333834289838338449844446632183750322557224377107811418873514573448095275230594589851027898962688273475451115224481430008099841134211105231205920563625803854054500627678419217062149671855332315714969956463588063564221911257753246124010753702572687158632399654828983907456473926033075562580568620952811758683622858419550013514649286667854797072610011465897142509721332426041202873064375917224141600512059968938128735412926669930344408310149352369739004415182282331031859089575781921352258284982048968750347222763000753977121381134679107671317745447168674696844578441241806111398199862559858115667673573234428535607477159914419846838044507382331480305842362560627844107440536918483123616062804031683119043030545175148255174092836646725970212040836259460876736764757398901936907664126726506143623165513668460437130897790477917081146413604084451116309132475429654748704084517321385725531135772723498082786280390841436242151765108685351255947750675598136959358313990388177904326171570688027312058897186263246432581649478094004943793361893122457110425813885223758087383920489777378064596292256263727438772757350425405481217789945746260514499703174187567627714554180228974959860555230961101929823965918985211002043133396847678046912979433563378702583941209605719149229059165030435176630770006539194473969249250089942322968755074278408906841701198783688430920853328487725351139259688174244470598995790694635900238070834125445877208740962532894474610771033640776803289366775587009180330942276983290173028219956919366693238977896674663774536002630655492867941269771130475019454360298558848764325085346884224575769646519983113202842561749152463808447707148816235781708086940227674879493789954549640916857969402413235780255414226737322645708555928554859922457470931450587126631818166966846325226998857081307536483108713150002431809723242739100764777948475197333738590289235625307602573541665611416966172592886975514407028453970023720954779982201804613109817749610048279799843799866972193955892703252738872786274424533681056975271995942180966627319960560252584167269942981435321143278485148233426963331938410016213001223142318676344080530442139124056118535017730774668245720785974432345124912124242977093532776406449789240426506137171739423214959264538459725763917251508888705166714550205052629031050193064455629112334198386051172326352482349495610053944171622120747883419205701851637122573940580849226820201816029150940461144158670625013715002629669869365807259220723946784094806958492174220796869866637125782660445978823582783296780450445025837954853403331422948682920256543033261061128410876320100329793590358341407382968881965512234204586538923134657537220489085214520305229645734688697035129969906908584153932067804833103540709870672715165307066830658994740628286068419766237429287168001372100023510435280996345886277576161880059425032277341967157363615671789931351785169388915506080048833095731579057991865284502560741799528033527876770737528365164020390011054778523662519689289520804953082997233408270930697347347806804109506847735575284493390027023778778998982104324054745108710500657386075332696416195863048048385223516865666366159418965746057372459378749904867302151721457005005673098203337915227317426508763589353818015643176225951913354431989680903727537649214537792638227482629894780909423470781393411973465975907828676386794671311600033247551456183019499101866713309914181286788957087312587602267640914483533167868960952639008583366996628448530524540141605894306465025813204003860814538884634563329146703827616226457224926841858296255186446266742641293447955866993985579571094951189650318887351511701992769396707583514299174254315996302433851451156837066699746298450534180649095900277327342932686940714672599101598901767716702348524404312789618830072595579783121727645023515179827239371723317911938764844845807233358302213791193927805082357593960353474822017110524348359840893097524759898190445822562768147825254577662619555149827757769308010564162888641484219802651245218558241397537550476459582622585793376279956975035907068600769299655779340620174536615922824527860027062948783930069508627302428215108230947878461183536459513320650560764483873574918663477071754946804184090145064072960604046581020740218061648467634305419179690233154116804182825696702459127607529100797446039007846352645549157503931829391800126565818070322943238224182021270294134831738253490132968806353780743575596865909061359312094769096322033076750386905247787914795302415094425566942493593102976458904892809156737533296512261875720322265892606779628822609972498920647310017278070183712812896901596358817315988171318879647258351672384871452884730217320384819364391722603045878379455512774759680804303019366443937865814967652435737699729680083467704991719898095039323317622768264601343365540690174827911612904717856456407925658913622889670609589562172409407218216214928919905541206463327336726004538253023185813636960255868454397312619141374957792406174979579755630953488640709917074873357817859755507468617798064545222908220068487501044696127147787167311044011905877969584463263635089498223682204608378268006100629637648289006224508713294602824172784182742730610478694980733105357208115179802683730588963197751960456529266691763691581624401838403785300315704884880824831309965921959094797165816371715843888453290061591670115390938041550857136719801473734227856448163904371060480782410753028950680965411744440931566050235528862190909895531319349868241793074404449225369601838606951303361961334073606654279786048503663153065171540795189943166808939195844305050363302580484225863754174786929506319638063782889117755386772320720252350066787237704317661579605491910779605726958934538593536608558001772549982341951637508404402970027817031517926106458461268821814624555348807245380925171729461990935623295274204051307522406537710696285661241821308674038994424657108698494328217690920115532054677898528042102853018652799605005454498292657275537429596072609928201523866315290530337303727008101237077723543392270610559986806691138839026674831098960434537001193699911604208918074825658289876065761326023579056852305142829100819878405295463056787490621903361907607099570194678494623557447488881426924020330007584162891573382499270872193917487122687881404257561240274567696134044765237453768584947189459639089289945152628145410906857580881387759821182197710879312935477563066512412277906055965060928262807867256160477912758106289925272804124710247211131704223295712083896025103054675658829470805381934363628464575803623290084604617943843881842810435009007289130474460980361140510741149986904865468726154285463928415344457290740842365366097678671973013297058070834373968885185148024744870411696180677665403946433599821126360187600631151963603111858608824908952234751356607534147499977834241385704933732201232313725706523913511713423892909318772512851952364286446096325163196497077823323372330511799298594361800754444470278737204506804563968856699348787130258646889335738644659214896127132385813363253648224115780761422797912479857601488088562987942667289227868722380764361676787522796267104513282801295318700472512562922629603962724466701978530068890164516669510245082200062560770356671815078401411473188369027354847078139931700395836098098615247869114934251998257337737487066516470099010064213581702359870854407131347467290489291925717627980444615498913349547087760098861497344211799835526619445105363793923175760637504576563908608497444250994253212762605595024418609901980170816512882520813704601112338352776986046640632268479670246688615441743206602669961875205924169420509442611933374797347200017226101078871353908525492318712842503552079394868805084294446777019289275592157033572886648747358813785196159283846061330031712720538675450348361257296716388680171697644640051947346289711939825539310256267535244122102030857231384722660846766752581350401544975140819309959698947315563159797528442081868015720393953235052082910409716380521710650299816391336922885974755358136566608560742205678410923930690779058484211175780171602472516542944057689585781039515671062553179651670004396602815286900830364257832354796403610277089079076725189145724212225319093394961411827881363293974372543250671979790906858552314778094934411385754529196438835795195991416136967303203945717498106610119779904101636993869705275361096197090866762305007235019831912578540637560920504755231845148571169779683922957910699372210882981332399437464206372823852132336831743045494201928516812971564793904749058572489740773170456803839724805466964406069324370988626931231428252395061663100864174502592280492454721213889553480668772314492627929717664431874156843310699457701711253426929703561304745069566587311973539326232131133621995773858545047672678072998967675941830474027804004309622241048953976086572851305256373978983600440188457441348872720958525465532829726540890579222107495638323413456018789548059912547077949912317976493403745898863824014750030532116066690278356949023326167532550685217709523241084240727385078860499027528417452044668602219022332277149323595937456310229748068330470859303712892600367293495757734991518821484156290012557659607949671743342367803383110039599703278515429702512152011877631671111232825936385118334802984317643610454209658079691444987104153677232192245927557014816297968596642479605652521620698888587182805205226980157728225779718154945262448962091389031570661750854109135116031003077857542378519713573547932629939316932820267315624001382351520135560861049876125614512211085501700097051341674795871485933799985365614449287221680665337059024327082109291494130593468722504868208824772158727661488307999393607759713266973255638524490210224720113164340015542070531111800339681723460358825440946597047879907917221516302992942940847890940905666854582134777439680301947623365158543850451336518635126933989442549890784133324174327688079102232053710695534563953935987066336881246433054247715053742487560627090491366187206131993751943166615810651856568812695283352358914702277035950924995716981171423792096443939549387607676228670680053306304751435059006528588209671613869942547944174088316598869354071652174149881843341032083850176746941530482963343320377873415075114737724468563263485518196768902301434399776741298952689767584466991482465226751688489322603204477293568870018550286407933270713882044550946413327303215488930011705956377381973378930233477374770898121353198730514283635560623814602280591556337180534453404624213850568529104020941985827107490938270912648130330090604564658481450165502230743015112054449489462237645085341226240512912643734165138146921841131672289210761474843211587275543551779771443610968640598627835341672179924789669302236248625073584335855376120484825852303963016502766896622147349059546684177528538645871677918250092941661683335454168628417094734884005165332883519011651096535840174620566129227449440429833449011570161040058658510659790865788504435833555311649079948040889285367869062550593282369173395638695310297712487412972995274658269380414693175069446637513763660197638324671428065064987654377500082067681637003487934773448806776876924621663232086673787573669249333646070017477377439209304429084771010918104395575619738010238506140811800682744995840425055134922975854425415986732641874725313068323262423975960082397863096028316574916546607443340261246279299623235955052568882103236652727959264811829667279809762088940031977651617318915009465971553056114335800209201641547146649617984570472958390370087210480950219217340467619639271502636092045828642398683945246267947167244615639538594940376197563722563872984918561317483737997645051464094269972642762437276812214452478893156794619490732574925713491743366379036839032402956000933459447429845807833466322698049966257203816801715536138316818631050484291801253579872712439342862860675769991340549465320948293928776937484382782367697831852922408277590504524807043531529277001015549703742207749802274176068673925026363547714892364337129674678465184705797444714277939096899594711451950282585858729193222461270769389989874771449009184125809248672088612113689716022085346867243880421563952551166973611054107556105663145604460373251694655930790690767428023198035071128537236858361161275267847430764526660858197454469771316794265423364036913589633166744415475506363107394667782843776116694473313642048871601181486602317642441875397197882885329867184076158204126901126284949601368328352696971574699116353606044159961293487432593471301228089633539938393154481123877903799361824066137118573880297667738286002491660879757427978525198776016068893734372175510328185492332533176097039242933959487287905798667890164881434432668932190556823234315656654565801972778845804213354900160951796416618747564369350689340598653737651372075154114652867655851789982846680993177154244384581514845305798316733389064993908303103290598355177244801536152620344684311017345878628020282393634901093091143622128503049582833829603344856639088896699256910940791676571672138423769965517926990406748800933480657317744679220594999643921832396366116320516103043245995805085156959131220741927517096548131458884228362804868519384955569174622370114134168348766920687873035395733247635699130897957603947231761440112535535796687716972293275007399364794723796575278570014596852825969334381386030855928715693263059074076250212494660361687088528907885881172518906871984571322666755564684123297803707755647038084148256826122367724783817359125731642208760937046300031782763664327163850966192289574514407595339876659238552960403183588378987954156260110713501683707363913860650902934943706423854823291498066383393406775352891019976159997918761842020140484202379488133952402421117031960324140546369180342260296707363237728033674521641870810036198918031920702750948357219001588106815410509787449514347453685606068675086745191128882279745928258248147991438427863209294804092408802541306981984988811685143746182242926120333459797436254319802926332427300611176905908262398599936647036498909193058818975561987173408674489387115321286996576789607738519285001843147709082282656523381695634201103703894644726668114673559780388100447349283414065477550631126761522810389253919769096763836254681988729069976828345532769234930761950996043033942573363781905793604046732260269550967293924457384725251777494909410522972111380082731457614231965832199791115759101184332610540675323187918756692134378176746965211476789010396221042899706355900139807770731473444799945527050765983475477687104365023751222624430013362298144189023831636339177779164347851345617455357947319070130767383838342445354298157933854731926900314428571101904905679429705712237918775863141954439513271321154809947136760203419837427735929078702224910953752158992972879858436529741430017383773351525767585446456162321479121143481427080644817572450231919346941722551879347322492340836109770998172763936552825127299362433028044501803188538269246991956292638800280605845194997068914597732099698016650570577108225009024912108795677221193437791448321630511455445575865460564142969108128896159791332562599988092210798260144986442080876560967837393982363671776854561764581519602906070946065290582618818603930529662129747217186666335858941987027662534464057143412984861547788155618176135534234927113813182911418931480156947853349633214681476548502116353485305095770006750519707443420096418589029656442767653476793490610654015851434817302320006974254885920904740800504291497521189119148122232061606730085748964891600473866068445473174804935884474804662133678196662721445928863254395965623293817067854608367471270857566878797861375175397974264106719188707839349089529490747228170296804798719122867800059998454679156899799762840567670042450300005337818980660704697407506161369019719702580583044031107865964184794480790293237171572792294349690741039577867018197669996319282104666509195891526682569451937109200802345657906511749490746378702745159881821902836264241610127897913562699018997645902065556031685868707423839365195424228782231132746652347205235694341922336566723055187792988226965638502319367969544605643112900267048914236970841878611476439560357899335453960874013309882818450624200408050499381714547516309531327407257012639714431659132878600133382814983685652501897687616329911835956701757701579912941128168332121977047635164063923622797125482484182526914932298791932226536591464808695345954795980425890875967085600208721620629906930798854606021703809996594655478402120125876756776618402515989612871781173951686775107484745156579854436590355027484313308782374740260779858844723688123888645165451546368717358544440815130079021365497614349031032873674672154531439972306441028967945558489614255620004665638354458069644970109967251113486280167093476004645990769740350986502028199973894047634763491914651812006201907398164881123420482249165267768963674673619189838564585319672065964155291282810725687008195095414505791287153692677444705492699497599807920606687848789646290234157189039996786378035580146328589562232713299108966838048765259728259870360384116782241834593429655257742911298776598667713568728004377937645251053250955299930734760497617768614465096612994325502634027084081286400185071148201625324110726482042682261634182768012390605012714135966662008691784589306000021143972762221029620138579145444317561242317517017847104115135115722058618944080460007273372463970613697758872249546016892153885717192293214732305303565129035637415799130845362987656525283604767082274886419217764434684334033910407610725462056348967171305554166418983914208807274629196115732744091208389346848599013162523827927724366553552851832772398831211531303431251887839135938682450433980754102871855125639651240468698175655371804249527130951382586213488081135533194648635565234869244954994923706499591550568777623371254690614787085017403934903556942007432329839915566465231723207342936597305634820089606148635231966249004286599644032984886738851146571331601731929265039466626140722173353342998630764689564581965473638217793886699907098697649416779973876996389609259590629314171220088499974674457530995963149345528104404341317724624737566804834724193078372608930196194062209030380173796105779378961502942559531939739938076452951647953310680137656722123267247249569619853067568987631104830903289978446270122771141063965177876257077023080500117129540336632475521865030797007270725850333258494904429682855584640685497929756843731908733381987654652375259398854415657560555561607488298878814192085468798612608552448505553972140656476587034357434013204948914557031633654444349421671914484402597851186695842657224655944084753097735710404385737935882703901626901986083945080935588919757087898908448371024910904917759519994240513799687641077106510805651939491200928438104883050315630864998406874687698735102938650667936081263840469528482502862940050904103412770730964555591738754255993372671370761182552053430807079097434753348819624912255996593282166153687782213045539387048315069531617030182504626057301706387827080463552446636651683924558661117841197799800806337339731202870678654232031193251779378482944810977497382081366124262775133584469569788755755253133585295331045595582331327548751723373600541637983745364152774197934525858427751225415322802870068071431365085595643408734912915141358526618257553230178744817867890159843406844321138406314213168457529585899977101351358390009268679639070461115404607021897851358800069676085796356107442506980937282785322610280862777147877333471341778326284449666514597430267970819291909541301058041131687422393405737421476653877489057384910059748198002281329368249892209272999971511177400781063104937910033261111302834898645881582172867273693666208971762793516723061956931402331672107817306582993877429648216543149253135865085852795534377821291920584563846186447579697478173031693995686180587268814978296563530433013574663001963789671383599946817393766552158489183492313430026998591964525975378484494882596849521804628448076568834550280499081038542717105945906533549432600070629371048521008436665334001712284693991559416856178864129142544563361048253000515482775837402336618703693611997589146576906154450432853747432211442443829814527241188673412235578040077953056209436043568028079633128457810420365483425347220408894112624394499928491927922418556907665740943385818173311646975838136454703935051331230224537787959509511552662229999349694600496331308507444447426065520093602479292191040117369943743937393316413945306012710859083684315844138739758343505036613919525822992758848399633294622918579685230401423383853529817202991683026920612215041873983863516733824051843917903351877528880195487369074180512741879745423008092115256272016682418652086475642573397941060590001362610651476693684207474488388388975172509603544759917198729963766497422669959589647891738599739387494929129843790758955815226132215473663092889919444234581608637398342004367349306013936047402899573249411871785430784428182893937677734220701553048138969406421603464387914863384156260766117238694718487964837220758806058157353240365802494536690940775487448079335673607429084486952488196065302221902208519619188258296147762302805327691517882012583483341268455375647250909539690341347552137813750050957957329733669176883838347197935463081092505207203596590677661313491064513087902422244739610441194564842350545137990428346082830212879342879203781319027998484896201130130523591257383377247474651850377555015655534860115804726458889261171289843696083716174064580293424328401694950619209921313339374125667753895417420566390389508265512320156707163430350357795279317508328709979305189387161115288403349652425880461871606623367200133737747874514801196764954932329706261377540450350631086100453958078082626383153360911525472322264826231636488702149720201211233807571428059908021517515802781401623397780642437215821325499891610029375420440764905293943221469886771859116339303948375827030682560471907800383339704215086794227196979859610576164735949842060879004502284781962033426807372779435895388524437785588084151035366266043596287350977239503561888323062184810476613026830663355363379664279229810869122562021922501055208046672363272117797064888627098672442399647430995756519953010219662792565532741990158717618212159560784987059944109953939363545788670754306677597376319707987687612902324997342421396135927433306409791527326722405829152537693317223451293273105750347371391231133627877474526945102235663443953581045331990111049830582817808464967702133749518028719570124975640406692991696972873638860660396430508373889639265727166554088168664042594558852316343460349916176176799196318640608943296112189292146236020047760143681499048358531352202409993616751488550857032591731491471852665671887778333550198264244140891953435585234284679655845961572496480286701571223575018331250150204062572749399079654344730870784387288623588655773590512852202391673708326279686721469717238746058832401760025084962405779929553997719250031678297284485767055447446925916063905768841335877325071285532229792466143685319339718687457590267930685648077117446483844961419000469981353807869548625083637993958596732308190500089586582927778384684048802686365186426212290639162295234735487546053552750599862060029491878764221031424436644549151023745666526371940606855642571050569153577570152196521976302909616802657133787444617398233416478492627593458403469255811767997601840935230045653651977413689456553431661029661340727814346204821581877507111362664758535417756123267590255143718037080188276704218399783151711237636600988571259847053205942899658834914910426599587966794958135964459057210790429342415568653324481054250207106876430976611269528081150553216733001130769829976423976182847912550782797175726676064640451628130880689021288569139614464225709638278372053282546877208099124476634740914392680862980718722224608356638266119072651485764533400771818663245968625728507330088708857644346710939889109402544998321247615307386740476775420310275307061123337380021168774339164643260456483526026857238922218941259444446435532072774503888184372326291673668371882099585865804447779628024690784945213850638218832056739206042280939623345527094873821863308505519499086175067004336466971239607228474328235923341982704923515587943478596349980905760953208935980932301514148773141527682532270763904410633658439123411544848122085931640023361684389289898472089794998767697056495261053808940483231734796493294356548970492308499315432529590564238824670229801490227402154567973613251338838465798695221993754788098544867981529546870647360475852094393202217266655125125465408003998598315528308526894955296398758516178234175354385117753258066855968396249335094602885692945960652444720938407349625461000149526141367966281392392809945637207657532638360941062547104748014877096306979245609160025675628176318296365348629961483957343303168387353397176290860548500814407662891675279819886662383386745674970631522322047112066123560749039247153456074226461618298050291422222562633083285646259349584484982093593303437038617682195547424631187562947686750594325050038366565898611505990378638801036550671053467442862726129249362605248566827092070804684065017258343326378473509404178624365095498283404023521047523563917589895503526579624347846510633713806750054863024878006456796194213737948857185226274568283364559048604709593103967846398629550515558166876062504802054576980803056417166520491567115472587752268947830542618995636123964912009053437577144781280323058113282447199215417853939621550586601589824638374473945071903667490236846429095820050136048352573441076028312254812006408031340231877621635334608653210065998661542253008189204654023637647036283485091239236271734790323125746582921975054148077467148165225117811090925649499476202661514303866207702856542535190625049047297756079924814700517170220721112273825453406655107257028566070529874198080174282648934675739845734263068614869446559039428181108453335216480870105650394265831796904560090668317384479742128479162899617762263950912903561009180788364058508605479051094559964668204389925760780011402677220442713714663527093887312093854882867033079164963863710107330662333235395450169061914615486789427198358564955189771983061805731243286829754529428995619950630745643473193885726498485000464160459947635218268783150326895691881258009863261128533078324699600466057854674881421091052695962348038513148932623304362128295747574789288836438620862086831582409396534583015838134319551067106351659595436501792657678586427913542325579885512990566661070804075046320957902647383359832589800483505469588391765078831109274815174269609774835960692747204361092802317371765348421392496170035673157492287526394488360425745257638102049950924311768026308567338718242344889923131097351148569170948684512743803647712391464860517228451068866532884480067312788105701851502707637066361817585289117115688949595782893488394330524940206227669981769096057704908317181499692645555882551281002203964667131015171854746686546960474466287280274535234517471420771195284023655530628434093180997329386256567915258718773598324758714780104238432848238919910354584990987518189561610216013070342583718616761602180904403149622489089791687988974680266655951187724320907994931099050109508263555409717225369099348728740557257066894496770970833979982638041259909410098076966091096646997605970077740202762582027451698132222838456605290633900512582359383171475642286247872520174962560798780837787408923763874307347892704513539716129605797416108162318745809893619307461881412819361640017898783048692204156465065196927964000114142605399917242741704662240303893439344884644618889396606208621991420362705647400487721666089011653116777655872739167796651308215586161387347548435428375710529521987990559673279867113048894214448505205803246136646920638132679637496027533324586517997347629917206291024608310517989091459300071730234649688876077872650465608109632085639680644020407602439493151032032337388610076529582511891532197666887027116273468032269333213473982668748911450014089130041825380729317060649211844899472073156045593496863776636354790406287203758471353908122550243782682123069428769535217770870671285839848368545542926046468558221689762573190079008132658767099511804026559562253437546953768317483811598950945166048823127221204778477328917454227945484080649031240751137914858077759427414465582657345446282248449888474718958468999473084631676750237441893648327427990383558890645768241002462911977893201290230410469864911730924857819464207136357428490454458396618629482221720551859543149046335378103217786351302984527860332850292122946173213108783293973768358102823932971145968641362946396914657896304704739487905686009625840636775814412769346196502168157604592687432753942151999703293561264722121850439854976688265464557197626318748420943017171962330038347702159588581756294563711673282854961475212847369224154756189645567463743879095435262324664515668897171098695685120679127393561327735520288877109182411827450837161983158006691011013983334995534163243220206664911002509825524725091617506910338182251098628808188395096684157160185082440248782149549745386509321094349011627938794878644074259002502147504955876051553943946244436993043831398047940341624380399011051491589590934187556947013084015902379673432084071633322688611347035882565455131424326391235134955140943290602813143646091294240789043621484617319798870673501095262342021085574422128717295624001750715237591232700753733953654144852897904717884084974865369617160791432358888977864655483231015263605338993487612321132752163740495549081742287557887326176124737781766362106110937315911954382206080074810731196290749412554892617161734986844685994377189197712715791792327154253573177051000679566044241755269665540293533991736503161893446966547508486274691449998964311941899702966193156707899935957687413536558319290943928661117052181364791887488973262362461083333380636773448328570378844192565672097528375878700209768272042448073896884871732416135440813780718177470257223360002140291314617177321346249154704194570360110921372215854099384126126396284344441708824628999363336816653583810201134581720153085033435118667649741668614165566260527566459131378066586631559282067625097708526255407573535612464682963069361567807835967225376955316975498979508931075199191261119800988832618878073715831810243929347099142812056250341986880834861349697045273664998009407802859405192929726983546422595530365850074928190667778340604692571831021454220414636447012899900516072807004495676286458769151421022869674824783648665773207386566762147853793561819399940829271101722107995031918068036129575626264012663083146159251351167651394809240957806325541336746379665243037592794886317132472054389881167636272614273161106986643293441176290582384136951976850182323530758639314456093556376448114496285450959787651735840584957289422215084396364040570713347123201676381978275054869765873346297668793913395717207655385251403812412606647520084705783121646565597169834980070063901653292400037846403293105248890839079977876414844054012149728793852654410804653103931045784711839335556835121186978130438634687348365339979814391220201077068428661191514127326969335380796640062243504144669273912881343102102757254682301401231529739221737327112488817236153102445551113147676376227595878824873812645982240027824835543667979743497352061938928711788300990838617072931331999542492267844430264702439032558748912744274761328174945825944904602744510664075334876871104062021291839879364842065570805347918806076406578784132670598061286805506941326347403235511779851574953485401248287979619724338549762176489764756319748057351134991905084317867530375128245417679524104810280369504779669783722221672659945761218367585356901565479270565154735083940732601461136159099151663359829715967248366906339866461294702998361136061075635059915192815015458404625028122332667362475730714296613625658737488456310920307255782514861209585771262865350106575953611229701318422424111512350458887878261776858368819270355685470241388727118736836993990094140092322257629642371458171259391154912675713775604132546670795904349151535073262373626860001590556388366586567407101439111339215474124870114569856254458481300065976468600588276561470232368642478664745361712101336890362061078177771542499115824509001048788185282824767708744487361716647136847575778564033940099872681425598107013962687426836366938591291682155574205211483550378268175164037005070087665023735569283846300092299914942619983731988684715733367423835852851961464911786691606850419380330102530565864278183396759662224754462970525746723637222740012067851135123865328577641971961331689733788100402427001509682861138034835901434336847564858200774187862213632272185776939721733332350702943263387903877452027226635989298539516737269583730020483452467516523423764017703522784216677749098686507321280391783148072838070129663927158123201937740815836548125788341958030275997823757351299402434686240210167412995904582314323783349331427585515297165080714613657735966305503690388511768499291775271427167853710649218430789752943392972007594966290439936374827653702169830095014133361924317218411061904396979678800257720943427655232093964975458553824488925082094952476494108449310654770696757928505603856420603532716372150889916778293225912951502046152410376320240114594545121770157762245886779666849530889746916449736381602552192409035877763534769845125144493805705140691959587964873891737799370470717189779839205095644100742361519646458443439409797346754935149560521346820303083207271640599137291263215731921496776820732628504088731018216850862191782007120903449230779027637433865183098694157493763811657919514314716933665990790820123374558820848753051896438367351285422318466158314273748807821305556241825678602160641915918481542018463665484376818143525877578324381695306056781309403113243145758243901984457290890626655120851187459154973434563592625543951833501135060444056244536676030000649829080853846261522159986820259993742567610962704687406319666404723700699066484902887309083295399606709208456025244232149667416982143109691861864629790466405082485688989979224378441975008673286342723861919628962818306364700890876264725736339361627209815038317566581843196847294494203695908591605637849580335991838138104334586685704069328884086209059668613052098983554696140742392804324583044178073484995455371119492241236358318694993451492460729974674284115373426536042031462189434605216017309608398206369168851376830292872310283878925345040599075140398340614452161950168354052476850803471543681483753441305934889331813456035879759329123926790890097426690822726570646471767690877920588497116415353158891140736171129407147052027283488013452644726374563161399558153194215785247969898858688228531652401729184380286687637713556438329718282936215653816221305816543782981718816263716569724796983048697048436422988339107360220767684706430090898866196767546770414917463298030963787624976093275274123256037108597473036125799295021405674178990149337777039662838400426424519017229627479555382510208000211163404750077786110953085724927029077355781888437062966050960937074120685684878331238754091381350868475549772274716035777962848305272232270015939027746004813323042386602169269635834584769311658512777632118500952810840730598581440561804266083296939559471907115254475074247883592218532518197733474692637060464154687549019795767048456719230931653040153948854989593621000044963128811136080027295932400981179785442162029237066401456762792653084634558535193847617173039099574228215423080246681967930797890416535393112770153190315214739732807441374587691791660977698657079870137963652331317499805930673772737476767763110200974915982497869910756049066144487383259670669366976998922498240240494525382311900363780610251500642782463862497856169475691515062958392106092434526077163726842168438759060536364355708608119940762840261636401152683956614901212727922166446739697816984993519134985812155005728795791751510831342075594287311680136363176864248937401305561183593267335559693558379360744159573708183355769501944705772986227801030595386907785376193540639464798607580061913861291820687520656015482564328741927746799939809245894378621110071746924879739510369363075972831838968949365956416703350197728962446683419123138290650440877700901900763925518827474106655342344786536925222846809972779677707024917362364247667278892231219220744495160498344685696838864333741632390697353167081765054080207257504763229969207027722932216080616661129828802432113730803044819588785512776156525370418666394639412665431478341315868690194658040926310477264113701229978953106939611811945281982317469759323339191106217599683921146956043883473869933077282525549038882475202965238684673558045126809612263863633685940439170632721213086166490621910793902643316062798860630549649371879298994354172073484541113830886770324038418279734351816156891194209508670798084109586333161842176755045538573179223659223108339881434678047540285606041165534541328185047710023695447106758942670695257123331495355005861872546370634310520789631906619224047490216222179488462476916797225659571383600595539178305770951759654078492467102171461824399149607096543471269096286520399204153298296133477639475244601538154263864158654729921272886747585809765691742333319221601095770390912929706043370960612554226306857233165816525034155452271046037511670345343814517527669304654403558564908220441691627550303019410795598913279389530718672281379177340322021629685956348163626109280254583628091121125458390896370930603181495184079084599574147083818619862315534508432544513356344343793442313203233677299117513350628749033330644069524477463326254079385734440861907917259656861841475082276514854744870641620154160511174191551733370964207482122765744139230306414818610185398219446618733822926683471276249879372371523786659077787064086611677086316746421989046994515675598615027546994750827196444321066399038926225360575370049340171515807399794924871848803443261601465769116926629282762781596828479848599223209435334394976349449388462272723840761390142025260920286540835535281048625525133022445307646405174720971468768931260818139543263206591573147025480513001343644056903785326827746714524806523857723217158963269060611079925076608936101886494927422450967564899416319745303615048239840803738801882519323808703529557215409077259541215568676809783566361734614228759770858637152717558276182903165132413398278401869082999162745404550039819445224234183730704544360172803369546851162076982850338666710108204457067116869917888949068953097358619000473859187862051338938586260234618266062768905857536905653655341405505670122013564769116953441823945427345741216754733346514797993209613587608643927069388480846174559447691692913521009109852235497006267840483925432055326522618118085631843397817146265076552208969591759565539266034605903696111528485903270819333565551962458601117895688990521035396536687114732692424601434160881118882322940660199592484443801731664298699135045623725207976779877534806634763513298599442717299882939830619895061443525788820620997738442837187569249205702804471815251067618310533631790952709205082318801889749878137411131427468707907381615801452349666325277018150878323757376593327881039497034343863779037364870928013187060657711466375186705120331467815260907368759784497133633155160263247704487249881465343861689336336385330261638641758776311988839979379486058339174754131098718309746143211188115918602008174793829780619283517769456758156670756497599969571733738059042121012589856462593440630353952012280369281687564819723739880094903870436388373971517979494599839506545899547133400053105785198729831146115350967184603780878991691844788440823923591027125310257330339453043290604933497076653082612124671543871901301632827427461165631892217996662926826940460641051894242358833605605912072801317592575114898238622189203890794876693325905568459061263905899083922445354483794969195192797008241489510363304112844105026047450380547171786646954123677240901456691895984751735218892860033283107689831095233841365156854483886811517225881916573826738992460368172063090171349657344972238785436460311221455894628754449734369210274548950138801939322413784054656642990744125851186852668881191492280978665725865939385675338222936271922140759869470859930283944163770747784690287264157171801511724751564948080376387555343172691136379661887637552124288827084407430105637206644332999551775499923709957982172755642039266712537700956575567751475919140865704708940534310395819518593202913412307307408996913612044976871367850093126719453335053808223653775453515911676251380633923134188921504010571779261205087512408218184186313054395252273817127842830865618197740047556626515082674858125450701182304666718254492387594377867507875319083920790862909979873350981514995540637822757352166574823584683020520001822702521369173874541916127919130142502645792450238855320480935612985345346676953228665893768987359067133360309664228549114320284066557449643859163547450705599152132459673248645957486657421121630457668351558578680590581199777462724584318652786084563293831152223308454012225524404917017166453571929636465917069222849395617261616505227894192831730841231324552637715597577537822793606591647145688699477254056146245086396800992496111304977361972603844897717177451605740524851597082143758407115561628646716686518094866328268953600650708323133802050068317594023044208225404207920500332784960231871538375341504772299567114808941467678484874243039331927350419960185759185063676550361199132894857800656342321636878478939232686296633509427384595448647895304049688915787357271620712646336348327741752152252821240024865655887164858098245310815272986452441470823819362994979502763227024713651759286896691799003504200595497627320874516155481782837033242248127952112377742133009467644757849822146744562324082349306669298210128099193218058063502253434249062222135752874922564301769453083661951928867910768777756885643576881669240869577088324016383323670805348310705871312879407386920316060625655018035966424260361925661956308816510642167126706821917084009822352262669243678431787475727227747424441476372762310280157442262549324178642199544627742327016902073198913319337507224060696416407220299820786468362075279692854699705444729231430517638318407908397951362404154663342334648831684479112529573059384686022512280530886113656107832064605540970971576293914660674666288786726902457106409659053029549681600173571255194472484434141855721302503649454695965950813319056467746046972614278596163057886001340825215702484873267320918963150799922419993574361194777058909357368870209436681979509239204129951198274866344296277556828183425315878886745068924289261698181604184746192133943196224381833084047011065017299297074502506183572240359665134588897089181035104699127551070362239086404216645382117093805354758342411510022716621478018944354240721010908284490320636630171348910270847435531671585288566310432273620581121427228852488012998661156553677491629283211275327031473550749099705929758006806998264499805408833202911324162281470589169362465180220588566510351462755173901721652157632168769404126895277046237160995861534331509990270737682993671525728709660767542164263223264162969583136974023680932134702967169173268005806204437119812182124803123732356970363005151888812111461693327828971755190711276510834755267757401591764610222465031558292284558688591009360296300336524589086751565850857303911931923296789193017125850587031508996651440303839531501042958751935418271955868039574482040177740343069480304949728134900304164559130774353609679372053377474485811376697996387172658288906014719822201281790198472854789126388078171046364895322862973306582516734050944959297353557637432271587012880165817154474955921615737248143431018788638496654344526162294775936692733464217700234902518314980490126426546632895436889222106510111616409450150851804286065985016217637056727893702239873804732436111125766776024156008166024708366846682029383148619005188630150576330690514862081648550477869476061720197121098771004596682085651821503616545765145315330022753292167166723020231961410554507614171429688568518368606223320222782954953620251955033316949954023120462986808359863980049999449808435906132115969129456250285366112958801082408338103898263638370418732459066022930260059427487595283946088989613348298327685857539154359528805025559058032305702386816494932860430470828110872420393294762304248968671494392557371226180604790279362108808840328957521244361530731337295915169966058322836516618032086037654645259273948744081453531842162853446627488707161989683846636793588844790748748276895764503860346631209925408778274993517902290468183542772210800957907939496091006179927144747526882062830805835290196545302348268634006131610291906848569288753270498161840999443154901106664102120708624200188187681473511482829645417324297281446197960959292343745857856549044555945199629845153640723748394675145501360530474372855011453862990060704172261252333416245995204292983962641654175049673614585043834367122257127746351863305322272034671959441516516162779190573854006894362897732193855480016803536472853489522122273476050298164883573275304991491568753494872912166560841103603328970163994159887416764862487932372355697909357717837503723961418176932517678835820044186016048658619132240973704388347694572642145344479575986116657318605494782263529752050098828152138944322919475674678329392670987920162928600719286916930102389934541923220762338283605408236820826880613844029762516452364486829835373870368083180631825969579359472782336895465346893043639796103337091703990495813188938116336542592926025847251085440045280229177930608336645156394004192672420976064158397869898697347184202985369623840424290540631927275124324144459364669470926290799293647005811791639521258454147481479550140519383963723886807514775228264352671165399975275947880662101105009074915053531979205173682159875712038970342059430226241034945717033347699499633453198685828809884042360124641398719114590145725540199346510410484955388694716614936858815280070993946104416029589441430406472862202724979128884196601669822300888166682522398751669206358917559267861814852650108122680463932845304727546328222647185267755816247680176901907428155717455359572384660142833256688718007425708656425824328398236033485847720573570901744829439915142816652820252079224218965079061911176536639590648156822919529526731505338381248269938933275195498099846005134472616600446963910235520369739734834759950838880371658290399389316698644885846746647290182857484521207499605923846822066778968441124530650804999493369562916336303290136745817640429593511220289373807131117336101809440900552358561993290920485957467665486343772616885163018623694128238568570895758077161802227392433202494024053705344202829032215474259508902577987405384345927677063343440326915033074713856157374719851398546839592025998846421857474396539852505610386897007267638010607882747175460367635791926516817064300951702118808011219983669437064950147432841431349866176171967525058817056774422901013418093774867081357287870771284666510083163525310885608591349791616725413855776914834019728174272116622938675521622869235190768863197223749626179472197870089827769842478435743877103494875636692555818715068280981121633149199973520660699568068799479296354920774229798952278482906267394910543889470634658628331081097046285160237547389469844232595303116886124388962947796579468237876549620157147452042494154870272028911616849974250026013414540357478113730418273333941419617015007916594472598200194272494493347896571899979597314344975233112157626146067856063480335728744982486963792074382540991076494527583539837232465448039168714439686871762409913728967897555112634453173999735584082309500673402480103079091309771297692644129415288623653733773087113339327311106435332955788604536936510049139672471649682233040257582964611498561704555248935633113167574869123098684455875603003297889166630414942458039508945882119848369756607411905172315105154080752165716933206716425473196920121178133052820896038417140542435046862269354934859048607504368884294717353376872256650052615724579916959444869491406649002589218907793010148293173848557776830842816083792835162202809689692373331728743633237212699307375532077857944644680019850385222686840331856422896651290070499805618104070655148206565604294136890276756469150416274716706903794659051419936843859959718041445314629219390369226002432880223484375021787414358858360473255610444053463399414827643778518911774903966807542567056438068755693639806846420976285321922959648959679297529415698030712690184403966289841344346339464989473982446027244858580721568364395456928368868777922852228981006354360716717273176260692171133066141314041627664007229239252281734012649802764653502793025684775942154398886419520884383275654495089329040925500424519394898421362916091156760628517719171536765290959446507820630338640859616315794211665291194266066120281691589483784879705165871490412398619111962112032610973134546776665583375342002214559610504722368295754628120526765034266346888948020313365529867309335489556510217814297770726693298254744383050645749278840946954767592421183464975668795619367897901751921258772671825132216376190155784358001177620769900952465246489734998798929076070974394002409648632328887023037983137434543624399335654088047306328652782536893449305991923100553369467050996459853843628746726869731374163695494803895522629037579377382928203386293494895290873567559806861127438393168000310702063168482036407775647409337325003325550640521101734734215498938718340081804177107862385154933624915545633193333159668514803445739621715350050420425529507403286848598948256572577482600107400971851073685378638394719017987094498214582434162110277174209581316306403007835418094285236171307432009214614644793934246193622193967055352468619557283433158911687798887255193822756587437582493686273961883409595748067336914179103873021604807590677421280388390334473122334189106518636514985108911131162350048849170409476747920975314336519871113811363720255045549460974055723671021368890673119545626578204086861696416717404969288252099100141110769100060672084962861856826218730109357167085885452708764212237568705187760858961948639333450480549089443317209688131159144065622694744871768582570804131305016737581144248171158563496484481388714949143195829419689081617830014295670721787816754308877061083587296854836015239911146235631794535363947756472522350504931237852337208266360817104108941214502488629365069170068869738061872967592379190453298291442896372834595964208998567074362205675443081968024478214176671603328031015156652973097083308077312623831046655903232637169001836900619252881438781950834695762105024489889151282322446310832512995109661580483262362764198918532407202667039054143834800453318250743598268766130971883059993628281518346191558962786077612954036536379320358416729868096840418372351563312501424907898098713478604760683901805655738759774399530685946691054496768524175987474366586482405643394973927893406180033877298825745070151720892673121741760551389229081902175183877024255459550801188372821499881476970314083151475907487900389700854161679728432649818042958336495058431307098741468481395314984959072647098973166023285767760951029632090397079364523090160789962294648710631627927184527392024521598473918967088431603075767796827689990792431858396264809270465990997487648922125079144470863511239224261760804644251539734905018251213066728338101393245193565374895691983277856437693262239239016400272208319914830903054171657600706307400118246553598227689330852520596370493900326467821883207366593277330865113745688709210539945025364874573823871417899368643941952582753751448038242450979595806034485652742489566116261421802752633412539819015361495202890772581413888262012494281932297264492723577490503227616678761139285703308734551673011311234287335843998866976046658943762011261500883714286363500574883757931928630188421280584535090581973103129642088004715631284134087524616988159608198811096881033336273992206104975232774054727649366608677192016764569972712056728999483486167076986972399788958982571925629756356573018749496796577733326789676322209343525028366514679895067866446903792200489829234649977689378399155636822185022542055326016068077265046369910462260134038461505456306083512883034974032113843164661154396353444351365637910672621734974214351280125840737392176883561156558201903678121855638386252377139020146874313536126300670995407796883441260353162746619500249241577076409270081074692931461111565554114930625349283580143113294363519320984054777187274816204613208972425385283625450397532345738376618521327580807935850279173119123611581597385171521038054916029739445835647640916967166512508934155391046021645809380365167691624301506112715252313922424717348955807404528291716782622763283709483772994402774292816642782129556508746262138688438433633262688311369232626287318195938412829974579674800340817910499462653756215462408899082694700551871367024108361302685686146348929370920746280848571889013703972640331629269359522509008189719631983546134620020905311097797927586678360587660158912097431564287736508373998694549383206076111711129775671912063915597153357686706854899571033054366751459723577943766288990020239550017040140574796497713322525239564579493644686384856087947431558919219966773541548600704886078981605791651123953202280800878185060456509872223906455858902141575986291848053513404495251591351195312740730737675263093436918094950656967792635386073599464722982874224160452861978094290443401536072138580755291402707700270261167513876751803752560109694758456611358581313961800100755104127284374385917824347730970231717817299068186561700846992584248288046411181078408096592464593847825542910738882019049216887708597680289626417679700494510182194362540648338796183760570502879701427059188367645304250225031921339301761221850980784132692083550714785350200233078157461461648710484932855197642194464936292216466596702426154543308486513994861548409309966789993200857221147318630374282132944666568982486211334269056151433744562260954394385585321327720912427052317412871827943788579943565619199200180554400039150288138807635948691770527570796603531185368100375845918328959560570984893843179485039704087952580916175762977564014156523928390860115403538185339151327076437330558380845262280647258972289357884684171157932781502079376909655557307828352669917398373730053456786641029497691032377457655475089375284544228487937588376955285431311647291519734181602834593550259182829461159134359917457084754869425640009524538120420336643552998312103578111905002757160565125441413974543823237974261919651746438915860558153752122361203053554603836193904420568989626946814521119309252258103705815037081756118826609867466858682053846984191682372931671785465236655960278035377575865285790153709707573757263217068511889997033134998079028077467152347371599230794495408998085403244285026633338199325039819065782019958947194217094772559438504199262223889830122667319061472254170660910799119943002061654180383994059102034519607207161879538189384392915778127380278969488706977917105058300701956979336467084953967025619436554252855073767310184907214977820282147358053390907052999691627062277179514303729407002275928595139464077050593351241694644370469453021501057862023560444361519617825874497612677729925445872303203229184403227667008375553495090991138418778326990170758982854356942124561764962613241250556965663169713884638566674539479759547157826658494749775223128613386760814410756253129479747007393755711373566361101891437705669504329347789852833425382122372825409184416488064596698306194581802168160199543676432197018767341286879228393882411629362329051197419218880483412108424348658395143474152868487653407674656028036290020839543370305400158700444065833359610825547717327057714888548674957922387582835382929049940194974582094110177618515378521233600354159139424909625810389521941076534827299584083853361005369004250617635287404431376315669710446615059809193205093398781889476176046024972643535245951223176981195400306538882679497900207545715119609974856919666334884875278035036449457307186705707221911911496847937453837150427572953554136943553006211103624787349577972256961150049060050369116270994909866496479581186966276387406946580997302433980776098526809331311300144815150104992529963728391773283105195677451725748476916315901590209671777940462316561817186596866536421779281232369717353580650323580480198271474367792227888897560558717267837760383344351891510124026448679108433051559996347140522101965057246998972325938021526207181973940478650523682589529740673990807980137956110937844894712643580377496445704566695221080465338345552633043676425550977857484564502442308751506243747244527603557431285016607421300840542355636096723805628001544434949645715500665380671474045199513636529521685839467689900899173612344217531133291695935482718432971348518710098144519495961185411162047979603446290004902510822399576728055566376226558043932509853000444814861149366998810257329401891945913432485874396582416827247890965746736906676473700357362036215350422411229423463387219242001735623823983808698742219583098893567360251011283921478711970856570452298465689378199983881719230033982925675341872009286363612537330527509559286510788054490525465254713897122550371292434776124669404746557778706997124542021951335164513219420224817527566804833592875140787100904077140551634739379776164027208756595357846278050690313620580222040522391535771977567962558284013749720187607107460622595953501238461706304030228873274652779981799271080665633010507066070114575086725295984819810946480199124629889828604423831506841884550607628597328757762547523299458467959905150500603839357783405948732336130463307043609313423119550655207455628592633105539837531478724611544930310485570444326137494362423278331060640483527242053867475666304156487035530297498694864094416747718567712877628516332698854398758495817338839916857191170022238880972722352266583921554276818897479952565094458808688219305630903962568209289233173582432061317924691997852501398324596087679700234711000990814186697653668506137915283811852628073589415361842962232428807270951326793008192657624344263433255035030829344762284133750242764570112469938558953604589638149693077118384058021742101497533718584243981763350618943262276631897184532045055200279062144485879994078035054522977641518978896903247375262630871533784094730169081546238250429825321785637120652100904006441360873224842538776960015192107092108122459798979940181202883412662072919903173923480692908204115731588092112810879583479105080860936999412446045887920559547698687596388638121317036986990946251734049852710731297848135033481855046774645655639583383772297482324023260749930911001025594783598001089036549655058520045808630106358253079144118402750180231215469720809832334999271872643142277652849261477874850537560725822462049268238616675605135231887942695178774004042813640110429301613615787953179287790234687489742823933788954026196272634296806229901650438867020418378987214621673035166333294032573596680933936801323148407379351497831837747319180395123427975914358318596233375861880098521834980454312923105866100217159276910950547788989312488007978604224355020373858394380960124177921043817670133855906591150251115788816733424214023697312621164033781133295929115571949361988709170044046912895342460514149968338400514726112497747530253698207456840106265611407534281486921801038693438327316089565667914318109924640113738510320292666036232425371078249686381603748076215145704867794161452916183179547920724986599189570245685979974989721018049183929847645849102985467729148062697512662974159455618790301002636068847764139346018527937368369944299092372503852392207382872091103124037685979375059328681887965747969089551078740947632057943451814606661370871950772015721908675107060922437510977835704507515407586331199644951069849235455060192391317148270822004382502462603266999205001038908350218722908530695206658653620230706394451906731246464213990187239990839298683790910229497538844867796856659773025854773365699609461074626178411398762351580544588937076368379271872770714886917251272587961224507152992451072628779760768780309926749097275273551155475999067240943223096487285600782245365534364242282356045919973521710194524141944715356005000608818012451819378457994650357561439624944167396551601304765342622553286670287030585440591089658075896774427712365137326258946680466854109059053031487777553198286092302082653443137361668619396917780362965402810191754430114269626988338565967717077355838312870747748186946333924113362195795744862480671396073419925132730319726412165221571767081525952429943405344909363509807544774591166201323322796737016347826889156047537512700977910353221332093241143833678886164903037789025696684146845952172821717926236791267722274142044574316839135687794639505313750775609896819195859216479537702120050137041391535132812372333449778188021861750741012099409708468027633397498029610990631818577266429599227835966394216602311804033532494208220815771159859378274512349365554670356613690169239358500952852662036023593035520616718387404989438230984115045387524519986374257724912174789925240067241525180250959685439159019657125874596145852249212050743271779134719238965879204781333304864399244010665781427843864883501583524925121519287455165168455552110776225664272017218546488089502225346475225721759434615497509753340597187444723186334200867801042097874595209265563940827484618071375207951496245030242737701081742297980484732224881585497251035131144961756689709440177337565827211306627292152707894818557106326014916376419111258334570612997005900326900882449135070135888125617333391162210404633241373427862385318449548573281430472761859316622473299796148355748147502037099970506263630383671616554123677456300692540324248086712511520969664061273665858803205491958311009604422351744270898083523858091307981927696247486777593507273599459419951909639371078044674288485078104911393994173159979825645613990193094469457416031786743220127715070922589684111070326576873224482941982876168299707208854128743202467983227448488189084278094610162813145876526478234283361059490773593492574529700751209489299172499002416275396867163704964613860675410014068668010566279865517064886633931559862886082684849730783175498578334848296214639591315281930683321594544198065874490247311807887116235852714997477843754725063856730574376717463449295736364979776017835574114940751870005917081675285695528351204944613228382987369476493629487963820499053255377341090847693748451687363786637052110997057907253439294975836178347979238370252341572904528979047377695673990514160466073540922642066322262204764794234917794550327205065158957567863040222003232172681475887483799877446827847766792043816083174039062019420172957752241592312619336539898995836892257992510453496182637624446180331169481620929115394483842159048597334537906822665796020185354736900018679033951423065072161180356598240761086364392421704277579131542731983673919998656762860531466787972751199824702621230933696330542473080747914185711318266021595870435176406156140853127072541321840104978362114297600906757512135323634158957481971612300634080110378505448440126887848348686006279124075166310309076360234585355008634724482537822682133084237510848235959825710869229481172765081664687378836532980562233044230665003940486401840484322357487688879571409119517236466827585461457469164477089313760631897123579794648600502780871237783661344107889990313456780355167844061446706648901419584271913647993416123503918681593423391625809636843730357372363745587491143910863285491181054441649612197991929524541671695764261032958077518147411744424768274475525301068648142420658072819804750885926989413090859846188501349026842883300044201101149698761540894292961200725450071119345577887413182602797982324998217981444282480656975933815711266979679656014385075790931430437065047843186142904347157757142376834489149452583022225496311416551371607470903745507141500237196710612193454964231919738306038177200030616241703439014560664760774944863341869269307856356535061072965255606505248701463299112213963934845723826515861095295942090573662558200416633996988866654415757297047372102122329411872014873977680429438008474115187006815999507292315411105179135783638152635032921011597518975459452980697086598110519625624658430097439988756926455347645195818892381100828216565000287116148787277086972656802019789512858071268541119835891963506839803515935741495988383680296538623280687441049583626714338314656938232450188866329515950041174070321666474142242437950533590916014462895050515840505844115948467444567695316155004081343115255149672933356660409579372890895402254464444785397607033432207765183284004475170555732886360854385481709685623259673645045918885519151845581422846777062822842118145917583992785511629175314001038845381231220913679202803831778568464559244878536573548276230064002838961048908949501261768398887364728652911400091050995720631937037222902903705426467090119682272850787098741684421069212791026517606528276292412730534433740563478479908493562097054373451047401476552552901509375537446950688190530100734632172025893577490534722550213441660648693008691498014787946619459716296896695562900091029292803523783478850358718671692199182833857713477338395624882841387306618373514452425750227900667001023565740664417920612291342815757829603643682448730411862946594005878397669396737141037854574409368837299233698790706168993108847044669218359076810508997076891520837485000441220652647481409068791575786433491799292674432845971388897952621164736249809189152266453564076079620298293648846572895098830595911555817469029705761171488839543829102200679588040425746226726970062379698316352801675593622741538750313396595451949673999829377125401444739604593004762006113225210828415455944578420486518099791143429046701584014390868052315486558804527260545384683892352578081436772044291147006606400326938954697414979278705216041808728395770093471707371125932572464125168628255108332754834478534131808981557030439973792432978548106854315164074966214066619394614602340434197428615289054418098135075020387002147811723861832597364781528777312916680980645946511723341723460257382867762783824351756650115169716134323589864129671660843898608762915588220100644003007849871020630198668835492858074199250047575703144723678927440919629525797388025795903054435042837176859545685605554171531283671317803537851260131396348468361622543688838639639520047755309771229640514404355034294231922815086725851635309459617352587079175058038907085897416755084725309601106688643326481371650004668806015148503529622839946380012727274401125952670202319992212266629457630394585399993934625575131346798734292314648497686132702270127830250157963554161746021957760719064246718364283186470453089503464476552248608201684375272361283524514814569442079500803299899145762779892220519860179509570355686281909872621204568525888666084497553849733234898289352006404853757306842652257473161508526658285170096172195511459289773269986894727391724706895913341375681785323942458380871211507016580582623185072778809156181196607416491352472234580406101480828649575677669848058108010826261718380688398131870381348920066314694419867475308627510210506950699660583873803914849382262276454404429659999472684830519013952878689729146990479991582684590414764451251294336729826898036497715513598375132033403125885345191225498470126507012725149785015775184282685415725155546704543310760272544763404689915230802549238584529309479202467899315337746003260964570104315616650289443833608790759028557175894426206093311467039175209933437858235266758009910270291928692878783350030764190158124367800629016581295364614573786683510670166348327837336636685581140935905179212694360846155518074876701496214698735486764122922882612981688198911744667397197187151336858430359372838341716668964159763298340311374910989027297426746220011312264407996743933519503959821473369898001080268926887433390012404092133101053004363158719933387202316063618999893011546049081473699358346001742484764707748903728405074513535250334959466898966126601120792113296645128491123286437471597189678169714917190332586117450041538916392954245911691300424492350747711605688541323326155109986777949578390474156781468998828352242070393728395857538010360143383553872571299590260554153918216049195510227252154567713171221025228299675759970469745081460676295623252969457154931339758265645328788247065109518756467698113795010731543748556717496374831966662335477026920690857014040619041111077990386398108405181649452018822424068042901729395595861230693269316006336432771632832365129162892244073023801843060391609946080470868521886722577003478840168985821911050099999860280068560334082498384043295557751605410009475847951187665370292128988683097494066914587359640417485858851172814765074006162614786072682900114970179335195777007161144492631163536622601039392638515442295116062057238796038219064226315631537998799197694087909208438344870348260386448043592712642188446161485355311714252049614690295591284313839964135976299857764850134734596333266685599872510496752542197741145664044453259727096194370831741665548734539152326149230968034930886534084979629718701618265982919923584450098569939534970422716936459329145349469866008388198050719463907710532099802980138817096647468164768015127759342058731548748135320668701862338735404108365047879012688513625820379822793102755742785645803163826901767550767020198095639814893212941685278244855660592738516601740287005685281252977734401324141168917196806148141591513086034834766861983630296704186060847203675232952993401389070112840654942653247071217476952311024845772424923769446056977708323824381782568575433962144827855566118364588238419675395345274248018993212455725157235718012362200608138752887676616485122676400617893379534431191673435846544983309707628118454503280939945198856465041016154419350433080864793310946453671865552597375676571128039691058074234574675588002684902238756825675397473364269340311257668628916106454099343697639753517557188852872378140479283978248406232665542924936174454890401014777757299480910860765517112718144811951193827358920945630548431502413897562839565929479662771787407922448233654315356957427554169162034256471726201945403002510039054230182664861896324494684360154794580908962590758844906330311169574495529923072917836382940137636675206859422715315413664383008719419213219530121104912650349341810717127758907302107526453428777419948324360723820172195727375195497554786628576384413974636647471849602234359666460769231040727383745479461243912636271256824651559229006720135889637619560630585952716304619527968177715241712151891230417103265620489491131784808993809798566292634006667319329042630690702741804939350065776907768094372216677203596135000891495301643973045085020262042154585853652220774643513686305432458161093873104653101280894234239487212752724582693514602074604216707895379168326279193067163725979999234682253505059435673406664200210067591037605298769411837935570305571201701787589776634958383567046799864254766112381335201809620210359788676352366304699512035749178762833546408612102977613543475907885144043195276354595877788795703057060431652055251632550235474880488097621058341178421498454162002488705129107486368914381984036874898759203435261639571988370289458052135276657329035419393305072129630376261071262328116341263910556333602474379735631454338784404281295693784922387837788956647968040241855213680766745764290123388340415055782759361580070993040237576537966743102140553897841034235057564191700328564106043995221502215583169162316651324810712928276676212974871123444309826431714861564471315881169884393645061559915092083595829641866405970036092568802574212874843149910840115677161905693195573107002388425768109204025791017754903766020009248439434976880377442392634962953485107495253089724853354269759887140744343744103806966482787914505731884364373825983130552369507229576411311359448282295783885790688824764441227569510584812278350609443604211302796128209996395768505190767865531717234991667464250848953012616330405650099966560625212989033364100131426938604799083463570981770923361924395880213307997336106458835293784567310090489197966924306357851125601817730195562989489601621971765600614790461955632585407520863149763059520191940904887410333974359277895775645207710341424680169531596767613932620571105327542582630052071677538265662506293108645034890441397340164469178826149505116575068179527726730117567947252915134601659609879984969640277707470737925166515116605723862398901491023048366535329522051574306909353350590355544694482734403257033888417643282346417727067446635456091058956619097211308481490469468762249467434989014767885961066916050518600012351360153056020715472992623081402326011971872190094564023004916618763054836968483070416453932977221723703499048469194091701306941708735469950064733879861228931361821593857997102577085847637809921776120704612361673073055758441979904454914205881010622319224540548221870418554672306736334179597708479722000442786033817444009411986154419388836661268966832016410585261741546762322953669778499022684171268353291874871494064857239729145475765955782062264814229875895810098432629889244848898242925474973474292952432235396975298372532534218821163055070568175919647644275512855733302658034878220918703413973644029528705467418348392446034527201116258686598373003774605023967138405984476356538660313004706634242761420390627544403829542821321437023886092805152459437615653287950186771203930330520218704454503823444522860974826489228946294929942542389015323032531754517876266316549033195311904324225247336258104710703131358327406762042742720061108223647665010861685896048385423525979895534128705545869816493233058284989896872021707495191752756479775850917638884843065837211185100707512251579150295531443163525081879221720520374928585868035615898935972994991163867804201676440221179919436836995334158572884551621836522863011315540101039517974023452247408492031411036790341193764190562288426208738942114813384046219690675171432820378742253581609104530540385670612572668195578626447147721805615894531827629376097023016883365293775178650285753864388820624240013991946127808643656315468924060777139846757329188264177439874379707963327992415639834904069580526565479265608846856695564568787916642812092589121627644008767496560103048741921169977897100987859983177223323153179507048666959959786258375077701726581885351488459143168586931290507782092766977736392698172269958186533334468809203957631556565072658198461943940619098482666652679672911126188987785098866205707653155633930571076678078471670995379533605577542748669698680995009283816027575085742912722095101497282638667064568089642685249393638345835165121258610065364070096618472276697828286580399521803561597319366843654095922181558446872989390334593433777560497207393105967467680619395170268664652986751887750751805455921258850143191409626973275369376902489524133013319983087698620916307903927719751937862143966960605110854541890218084902124880314164414327953401613698973987634861886335337857524015320669468985368273773346433303084315923200118880030426604000447135279421655097669714035322702070748529815733134960100031668812094028134242023472630607440356803803482259845178366504606964547325990174815970353961644692155953278316229748236067142754588903740285026719349275466584997784050642160721255829391961750788796377639324207706043094197063006560946416356072763780466740879959699366675534485071224185089368207828532799058068894659547128036146620377229630201387831452980191543909250202629023551262027440884936715731640171755386791165319763332917413885023728719483870495247433824226253953717072018477329581766253650918392613045542232799959128434296754327308844372046005258068057971336731549638760079464469267139820377952608532208066444661464131835536014730918688288721988646142100685889010043364775713507881635075692098664322902322307343771359621616850127354411364142454033931945267371040475413620879885720573257278378725491274414633891480601234706515395198810034739910170596994218763091740101937714068249993048764946127407838116409913099609540621835544493388610115319874167964465428903248173655882377768015078531940498646211577934728370222756151587571177347536368385271340433929023073988840270793945611473948455998486521607157303885479587798873674361107529673010260712181854338966961982216129226055205423539605822155068774721690871794568683590600428360732710988709628410330851458587569834905341294295516581935138220065145135324527112275114106396148925650482274873557481798924527334821922881219772384025280196625056291733834869871465414007536582259772066291952925589361576561636992692643478616185880442877104351767889467615419170511466864264956232193281639221701102636196047117853525631981821504999246455241238438829221691439299055447129075678018616205027589078515483281512154975213216904407516981622290819388134203342326033167175257598298940150080929971915152296337358443682347099611347566676671302667267198969906085928640127667981728695220986740273272230218326738963946225714523712354212189543842149108489388668116326231474366971890954689483869977721186378610147966825844842446661613416782588505892883396286529696495881066066954379381119928584058450122796265853616100569099769454698110645343970189340536064479583091476085322982024498537414239582569497960579610408799208553340438820378513196384577755722549245905544245761492122237663478129116158656445664268672151794753916754291739258358861472688254103441777967079177003897497655548037918091046154184909862595532976949868939508717875079233739755200173122319513827136240150827395021925900011289405712857070799233705874434906264854402125569638299961234949232642177743800132159425932283644369395040599691690602255143131985711058984673882851472690958493303419981928671772596341721114483354505914027583406868564691385166525548930436017763083200110491549244661163481087978173287221187192224515502070116821589466186621796106358452091122198039151157307359914256061237232347381368398639775925681636218965056343761224773779465246159695936340343895713677718121670375781173552177841872098507142352262988927446770525762486024261163438514595862782667317075425572091674768571266989057697717440216335614318283029570102044221989723159939209359160240026536072434605366958507315725053661630621631020516084629225999345893882804660765315526580804428828663313033788405420355475935493471721976614453359555619857556155071754435982736603945760579275609656965862345997448416488382712695582774164691042280178555595563145202116548928750773029862073292939803764363997419294929698219951887499341596855188380311732235669410220711997238204992770999159114751245102988391839614710943680731752721586220098235609761014628734661644610667073528038755539229512164263359878385827103136618679936781035734531124858565008027246062570153381548575460521606993785647256536087633719192711157606310528230741610494084453224692937907889856241392751410592711077215541704579484326088102015343424224966828254806644436554242384194213486860376374771837987474664885025310208516336546818330533808712098602602338784058412857316611377210046048171464316797255413166690810805420850285208407576496293039371754296509732949032076625904011175856351649869170029463338062076394516510983367376808534742232339833094517445390103126105462444203582702015599933130487396060399719749217067750431349534589384711024453262160899328152811098717206433475506802617052653158932975572910682390274938600429864658539739353113892630061590726009386292270757342331516756710314278735322752466017665855396371312171876047243726386102626432734023362568341262820023640574866668506823469323544981498326606927282799319376698843484425720064328510722121992521852014518000506113835305613509169493566261381997630973576586845113565404942106457295058981288779466701507856916421127652864771914548906705538599987968073462549496458080707230314900928693933390362400643688369495176939585932901056066025466618403138263176157777814522795189959155688726850074322251445804124907862969097547753535815460606096212127166999574139935482498639335992427761528441261336530230917117699039098073165038471628477915341843702729909518127041554682261858839423901187947115152735000334229218995525369555350614884265481308778420947802013682965664310498855033000129263548618047277274750943842866688958908777175028820294853509871293488387867844481586929494368173262137443998641163259126567680409427783571580483825063600373072754290144521047004065267312930332174215283748259638570209893876690922291328914074995102533016556227048301273412072389695240702012679645152679445023335023646187677052098227090850080904682105222644398108515362789064896982728281277421683849575015224778855343314904650805580181113957547304833533248906029157070633073685207423252555622855551865933548795661937255022401549506340723715313690561861729439782556014813488597367491952790831624255343100337153948431706282424653451497919257583293556565045458099869614594264413756656439088407574040914951843750735369685711026443290031960039441929203897386996880413855077791740312806763872456889311529521032996553063109116853748837609008565128029901792173693819547841008537228982005380745946747135855891706504645309818893781296279744548689766100019179450255316544587144030374953913996953811925035123608243319693632789641415096289213413000778397943418141398348614041128804556793505109144331921530384543332189003193139142223875667795234813705073994757215223863444239028578680735364727708916658091115844057268304197015209118288445011384843404492604101794064532631928203665342605809038003954768757559008629632006934076903646098410649170637593949855758016076298723132648026728422648167497930870906443063984094251388588335936369481575566546380299615930578637677497844793471405094752700652323696717003750676765337924380923991088388059769022832726141562665009543098725499775302659448424088889691577114010161269806956415158184837668372467913143325783353938453360666781386001068695422557665338311559567791033898406492522107791884929056961595476092361432800866867061762469378403413427430163358763933899134430399372015242714274920552244215055056221245015321989874109916555045757321144811889919535893878384831532409804646396175889282490514046376994323383817227021981994599447523247059625444777876915487639679145134131938653925782480134538439189314727376675920149933384124453911974551304156754156119454443149700599007604511449328803417254007269822045777300631896499295854553700747395898823297576337002667465886468744226735671145842572191477464806171904312677889219221980992180764470962078302651187604000233018635570454098259585965818699073424645582231109497440155078608739006125024105534632752754726760301857709020316405786365287560892659968838856235164256234630470292453410526968793436381455603760840093893056837050081322106055787762923817838693298485531511415424777049802435714378881896552382475678722636481499574011926479607262729451398010883390279945533870766030364076870774784291668315661727031183543233953274790431853365770619866830022829642834281929561624454949817800757285181388976989520190734321805818769987529977140269981202614950297790632762342016370202546734978228618687735103441084661273514457119466771174026386155255245462099352681791052418589701178788692834679240084933605583686274129418834069159800300702297352778948226369234101603460058544383270283124271100486599824819094463579456785252831971514180090065044591668857048158106896370001877221707185627042220259498789698362642593480136563705883056379903228914034143267406099460289448655958974129127036544699813383460356214938559454507666834299383020269203013320841217608383372644714475491895766323888984830050033188186206316199920577876855323303093012308832129300229981406935605608010892037593437265642815327295084003384202652048723255708218512710179187283359942368240535027012793519717933151944739692768165603819522848030434372821034701312666830531094341952456441078838367215731436371524537770359994062841419868453585458678563964594139817767115590584936177770202875746295689475893143122738710655486199298822246442500726128839033985879594583047154784460368890838055724775437618152937469470549049584526625428114840614401387062497436567512309344122566569434215314296706552911093823718733879463663550203127561213846253147413833976142160782368321807348117594344245866045688454146309744890090760823343919136568376084334403186945558648865535568918079048624969117477834750094258076800532391489978924815646333899174688098187767239934507419904869530834828331212713547680420839645652184670578912333424360815588148551820428265883681443144686577587221523875676261313199242957361314077486182357912204947569873544590145131063682882349152769234043390815288838512668780984327724515884414915495537896005392616811231593102320030207096806092934967093989195917345127294940599492228725755546474006262370720860612742028355535179547479185037587763474234601476893991108625380367828348379339816219677281722102034042518787027446396398306910770853794191098729985448432743526638897222257468457056312382396167381601054293307907985098760104284016277542494057329482057091031965587554661693430890280140987639890234000950390449659073254075401853288152977462564550414755773369781503440545297729291384630322431424315612811608873665416018936603598289415095875501333433160008065289845081461528182225649933200745589497668547166006918287881886821032105397800016596161367478654915462474162692076719151012421414539851173796337368491277509674250679386183279053744023415722805313202944096650489373283374083417676575043741445812505306207515771913728283148771873845546568880770448615028228734192314612803509504786657365805816816750491462699213644206391184168645447682347906379822039463166547035181689558324629688448443136300143488343297046152765776508693565994533609452207754611640843946526036722786061258148492985147079532186508255753955651170279671868539219044696035640938425622381142844497896127867372417031857099852464471583114135429193462893259480028218985804253363638358045152455121216231577130111929408304622105460047316199219410508516810555976645270138008633611786782592130221165293506278868806835387985904671907993178550800194624915279827866996247065843743862659107863156238941030351911431824566402911665083804297132201709287415530221657830877910346554726859658104358830517281456647411008087953639731407732040554355557268981374542695035888270940486993027701266871897215896677065953566581070391617376109134448331534485358719632952754912222169514328641556980717640060954670072976109418743258663502690596830855094255624883827615018594750514436721403350380474103526662600850667036989325928189890359514893819448250630198580136072581817377344941131756813622015542872753657189762689484549605582771905996960452708456652346299504803338027224124309738829727788036819467945486762198703080889951257197429210452237665521388025301531390236522404017627915738389243739983300103661184386451134547190365715208143075916778801676407726121036150733826858418194897493085235936083728263155361875625199548269611419388544408546004954701155524601190571174228895545676166030819901917265103622537987046212832942539010159543921008775489420584066792991164028438384710366291548503858896018964047571842988601124312806443302441470278283107666147725616863084924065242384657113289029205613461680157800030245722131669030883167460087304774537896299195411675797417475421441350148966236475451423530271614042992339940477575925627183464649866820042084309715440739188013293522504401562682060363089797227444674388372983285140040503977127002040607667070151693257302236300782650395556896435964162278596078459310512083628704846295984557216507535366324517007967322836360238365401494401437849733664548530521086138330241964391356599868184567149779098480008021214212007999811494516079857614590228415953515177325829883735069365057038919831118573989096447948249957886067392009698703974710156393725885334284467076066502632214558963087264499518364902856759376012582738386549099488924925885173340793239923407164444387290956529363417146359437778920267807010469113955739156823121686904511504795668966598461213507401704749496572796816066294236601265150066694135665353076338115412274841169937316569043744702805957114004832935098202563292315271621539273038600554852580905016860224085500060735629533333186056704698023407874304414643042317036950778653822306671985228096662164961992749565684106524148340844396731765721302870050384422116843757830987652934786409515353263849260715419982302753750402032695519549526559207559054775197645399952705708457026566534880851978932473280626262192080328856586478443122619277171865843101510192008526337103639472832146447794309431564234203341492596661171711940781387962310307554013422903028579594603597672982218522211062909414802486420385497458796338777378084541938278857835026280378726564796785015314231081137726915531128745328479099844529559818738535275754480758843486612650005851095178396163239973501812776602176851502529838635158436134023054793375402006132271262343085375903500626041188599741231116127851709525042274171414042555077044123550194883835758397995977661473235316592625707002625742993780788144313251960240798790358754944701408023996763607701201533996521157569536705252494904660299108530273052315008370938104303717162226481009425169303366124488035541922681134661175260749766315267065485869527978113206146862525031082817180357040750316017741206551650523884906865076723395173575363906228990777918145981036523485863328148324451266850154352746381175703051080901004106544324232845127790759569648682787547443606416507076979464370437150416506148545575410403075723821576799855358186350551924308730611041435017111749031057766993202480785191065279370955291017468850489037939953363659283501795130797835618833089841284879339156925841478031406546868658637250270195743409615721685912266068756303837214768607653286584486696301692015804133288525389712551470760331211175597470215594951060451912672228152017513207830845024903696969777478871026813575683842923377473260397761543823013502297614371697778896224313442663047698261647499473939898393500307031154624337162382350265779504399218691515343940480662122328055669729948918893208622227459622233111538131406857930224850718097300894462978977958044954563128994802157478011542731278132997342219171427599832142664892240945219330457035958678025788251369222790475108315552737979709387942555262466224510204417959204812371276949094530895061440341368564464630626454748683121910991578182192902789559873138912506867985427254782827575404265832571735338901324217475492043661271201695888782827172503720318519160318500582464564128717463588177592825291635099295848559706480516777592659020210147883656739360003495915789834146792136658552802846151074047598807675684168521244480170286891067232779377836597841922594075321998562248537562385333719046353145210988468477661386773474471232725681236678984834897697161947134235644370474143372069443379912969154524941754430152747769201127279799873601823745767014277494295304714459809568126602443467257616500846376871854906725819012427389501879289055719333200174460424885391422032458672674678644774493323457309350134814420784891513177997851473226996348010071724742713733895215235835960672141570779031670406949835232496048143008020413555497485239013816296141467144690792007213342965020311373268442942946278974245517166108635948963148715956726667309861295789984614314773446049855521164097910260057885563098655267938811353620523408951360068686415096847259568725433375706705437955755226354616612178349062982342758477652550483878835496255221380644593904368295968266221529985542151991797827101912693611446438084566938191571659705910205742172391670532182658218871213931195884605603812152964034629966136302933197023351509715754231067720346191744544340090359280853550794384544695971864169680405640943972211790474509815709247170139621023333116094328508596893194793852623610501603857345171127657591607810448397601195618453866252399243339586407902583524364637792939643150323548623478528965788147351484919187590694900869115891195576508678053403627141983206983229933958159495357126522840204186154489529806626077451741273065870309730555245335237166519852119431384351173650379644958624630870995695308143258181665413087026107026035638523474361009769286499263718542345673189296224713073028182908386777984764439633943227208177845789204993676537228854226991327472614652434770927004217007934162047263989331916370670260677452750344028971053873244797188937165722841441681499440507644599783443388594268160089096454428122968487643174751095176313689308371907041261639936224740409270385826104530315702277577127519457639073242367686403780392045076649011649272829773329362027268023996254084448760258248175274532360810746881803651576150742744414214351410022409891977980862800697713309967207745763110481368800958324207563621963350657341445651381695833271715301472980352676382382390403500760561130716995981119482475171212602581034030206661267725487567606538785581974979357108870621858214238066787527934384761845983232175765818558798631443206771955872087264625358798862455994878971770967344613954033052777986429079359156402396923310360214569013247340907685069835374078367883979278685871450630175398620878332912248335228435805004272502267567854142237399008099415129282934967300340832426864653915615371900765468564096033451290990058541602257935775576456264719638644192015265425778671474770753196613609265018151143337984324331178718250250528513411816801055943117270983743595772298575731396776398757472915898219788517687825269092524639212761106760233071507454823258104402984537740483412790635853778457086601459863606658500688379698689898814342818945174946305085370301762761467105790538482627152814514793706020665065522049809515384440814524266888970447466600891448749231456117957161583650976685943759511997664126783819818197922110070162430872164742965277142590819418870429352510087383011612699177176351649197183568269170327205052518680270262244397087176948600857866616728150997146755113198927674621666772999405066421382750373389506378069607140572274842900869190169147294630698213862942265642446132519045586579725448747266720935528506933193364569055180235540670577774735085451368437261844438659200949960933863593638315737229747162800975992470568639018663096879630373250054904134362332147731754383548374115718160432871440277297265752074256320812541876915757666794030969171966710507089614640246451343398170685630936888106374751930716002362919803003081689461440699361404922956304636057231016195474376849076130940977548474266423481565648079440098633555614053261498604355262861797064189094142984842059862699359537922035622290090554717388740177141981032661401834116482962087229444749140345977456837885814190911322033053783552371991827356945959258624461369171351598001386122818883065246412433819364207914841008407286809441238162282203485385969617574092495101903534531709713976634724738382846961472707168329645325588156153293295366083412211250305492502845270850172975211421885024144541995280712992712993157276914705005967890374781661104086403230460460212175422178281756805944274228520782626078167668125209735700442917324864900839121899370298440889750862418790894597839956809866775038254101734753756563501024175907620195082082873368231350892379033574778779265539862398828853361871969411546694430163418892132288683278334032597930202967556085363825136219163586227486647584051338389374812683080751112355219895024835645651256993734091722276107467960484592099365561403960034415511552851062807405050087310281819332660101780164514733975355089367634654381064021010518109894414564349391865361923100686588098591092197850950609383297785294700427575782957595805685366849134186195941808052802029389397166687145654502757028030988364440738122341404898001608499042721028276317576617997695244667659069925164102467655797913754669224348686609404481154268073905041995056483553472369524033202542062199251455368992196037690312877296281928137815536708472466927076091145157317521935098086790942836473010613282508402533265857527316203603144736284134523573243300002643158340608698052535292198773613318132277821785745972486918658638938973508487914178567591441150428694041308718760893159886431870048462674838630590410583270364698957258311083124611551784644738767053232409334795973206056577467890179719236929870392357143202161059596559130333961619135556128813617029407023170281279116514854865366193205032203444836666559271975567473044906383629334464315945025403816824739742064580296001529091904030694060390114982192831944755034797691769360793657516128288964293379551445024518931170948974895522953440524854368425482519212457793455487372022982967801399455215373203006928601218435202973030889000294626703661746409664766098360288123628085240183077442662859160584714885450835861997868637308814643376782725653358064212115573440644293783717864618837729273060010627622816925533195533520176404327376932673364704616156309569065747142126277539251307504164490174381133297843055079463455501213532734216484116855575652216725220867535451201821279791868464397593303948776371631148297797569143378247663881383959604709393003880257938303620339193544580587247090584527557091319055133818514104695024493150482037165838421933468885243362133026820027075833174112768229260028959676717654071085605930923612111850324105831142568225618845111001833501482038658742252439913367486687602439118792112342665579916564013709459874851985583916852821380914959734176927778814812086864768509754278659379110739570871401814570651800125720526964649377941753478792668255652484874199344303553713915027186482280278054849780404756419014858226168626931442351507385782469859229726543891992267840908457577989270716746078445389928362155396235756422858002008673150975230994645473093695790354592840027778555176159266377366143205669848855223786084695072963592820630988521393635725544740216861898028463159020786923075111489919471810800547812565141717290543616391575499850347250526713504337219935598920380496399249909101890475263018970435337463881283911640320655926175885373086187504797394333928201686128743260337930257482570854590293617793030993945599704447776922843810060125236968897936585834050242795797833757847405009010422995737363706673661964530954448010806386828028035062465654696963310852827775874865324757056242452447422277041578484090970984902833557114141910934337477540532196324943952148719448037539671250595176997689883871860389665586366317518894643070536105792890106148555211927810500399047812327439802983265287655744019298837042820884249529600932559611897738842627507537302041815851257925799062300487658205568464387480323912421126470224612415810530311407823220507543960518623482461080888858502705270150612633076067842485599636933551912497265937104947852718227335967764209799772883717341948036512394282141547093675828230293259176002855754155317747958439580317894610869456283819654127216946529656652243175896239014762278128585936452888492406256264360211215494471675618415261120078875079165210219682524101170973994973978091844328202310035706363894430840821516378019233843886100222230446820007939182799427613708022009589200246963415010761809005473515309734907599217091989718031221572778646382899580651951415258809839653617806548270774512262181943759622082433764623657940255932599659064993460445383807326783162069716503744663399496646793788957609928687365177555344420487191764449997436054379603183846975603247572886799937401689701828696499467596414922360175044385796491366995898041880164175754555561797471400485901962466320534058547417274516640492902829257940310232887706837447121933851218248070024890208863637783432611444260267184664318183984724638218558433272981415000416607172239999567618106523788030968666141986416636907856053788018444100702405244831187983980175379359387238189554136874733759891423144567253429647098790983567289197284510557731074113027495147211106578721715306849631897127747023681340468884953620279273721407089166796769507157229808428015769097085222906742899155636215227284313025599504652789570297571313817635262908068133691643544804898195026279628102110114671885170480350008415682656294455867106458860283140774329260923102859107004090922493058882227775235145001112023847730760565207459052853459608720245842827043646213572800294678881239299422393741020714653543216115758642293306007440442179118706293186420333431681577101809525663197229477853978541015505038770060036820768438824652213382391912612128543709122381784487485677955141254583796637112644740944090877217708901845135178545105071307643737965295836305127865706258843664161755661175549191542865884911430708036431714695549063926174288538722639337942458132409643257965286245418354194833256111095037552048880009725349153972254482397413653714864668880410798968881002809812881972150544037816572613873092075299470253293545531181671599201382504509491876165980245143632179266565526995922048114926225572559541774509519323449462758229930749515560169652425937543832602693208908433848606333948407018043127542933775800222773594937628018653243085302563473627601625841998380901496808070399644126878554059948416760492605760358827108544461569192385211863364778141117980173717259288031470550034728995549603050211785967502712082494694921825968731809903801055752551399405359064989167716413530741603350282153993166298950042534806366256785465115356196546617206161805823065889656978428106114997253827149486751794218738579397086223065078848545843096782340367519882990034619951794443901990950767631432062100246296065122852618225371920113596412546380031251263280101374691150327820928610963369523301456381774212100216672087975647952154616787578252916330157762267125891032730243171350506684241917746857077208788722964951516611314937274848825187439511946564990602799017830451400499913649286626475931414327882329275612001864729539853321887044872452982096483122745666461826238729942331482007085665075921789746339936644953853361886636555123265984443740750392797334314042051673331405194930261803088239791738970145608521069391026397763367432029513129282349525662769936720171173842192851486332042148174871789166354796388239542163400523200635089773682563156298573364898710825577685002845330551039708124192066271799500812176223966887153247803006068157595431456051470957777541724287851063137796426491891107471312646725942337737389921148462699120967519848029729684059999845404022025401225394488141774453049117227020154509201648300337340239025195939757513677757854394192194565679291082703714264006193814587156115544031774745235285702235709083396204583152670673570120796014800905570637624518276102911256705198388084703780033510691335448988212147910551227533327437204879545455321683798901997066626773705900677876082619231243827106739929093747468420772534537284113585001737243109287876391810078078542010971344379316428151751828948059093633657471652484823526590587515916960916166139099466860094830229920866463232875859113370293822495553229270669346418313073313349364506459264656226371536796558326095151500403776398951061168145426202207627680950642978326578654894818421733210611241825211477258696444119606914272078148949781671497370436854968834441163146659872620512005851081758614593737941927345475272760445184641388223575571069651801850507081641845577629863051183905779754558293863733897090227104312797102781216058489274851501796377972371234288713803051707853682420100781670735926880844681111147974545058983091712914546197313418490119495356701882142623677453168142031063475042851455712288197497353534481019601083229220064958688184708189556549163778851372358283401859128410559693413497527623025735823281081896084774919566528948070539937748301898701202606892132401186705764314982064102882333475220336837518115405344532587749239436051505893533133723615117285611908328249428097377907895623119093511067867682892705995095395539773531233909671265091768486859242186676588964316662887458061540980546245327325355249676298874516436159312023843412134915473815310636517850323854908437665441343849177740497202326408088046597098669197383512368648148971730696625472810577644615702643616394301112310614455950572987272532493096403458980785595760268633059110439058160603533713917395783146177758433242433900068405327551106189183967409251412887193591950887780318890597632180475703434674330511381865474431182100316838400039888489591717396782141292833648509469811454223918626738713643453054875487004311901103252900468592607371213849247145058813378315734252050010812883753403362620846760295945204659301550501450457827498462348400082631020463450124400137611663352256211449128342748351431005178177971201354592934154852989759452155936386867535745228682013696292248619482865459861017826222152315463891061014412402453337225060022147784469667120299988226513890171046466753490468996782993771820346327483572610044349000624999342121361302665458331876334379719492300351802621677501135365035203259336531578997287169719459082683604376973409652964948394952765205861144240384221317941088479601452520176749969493674218583828814807554440232692832284574859133119985894899128532792927964118180895046116443397124064931477909198388260246177819017113302588376112678689747210467145911479198319591584592098449295634527847991757439756382254405465487819452882736715618422253198423921153873499857481838048411193410028102756745420783749688603015301534082171341228442732889084585584058989136697505381261648593393739485086180732752263239245040211878523160826082424421392044952358643952771142354003651276861236381236987747336493600026667851649364782172016610845631439224851238155324536283429567044367352440121721374583397969417018957877700509851806549578311080464265249887726518982772054056562818604159439905568158443924997432594007622199514713894168763262394351757722332547158418622977751121009111189871046250636402406665870866723946365168313545676284081366592680323549848554740577533162177601643984513309269979049828099912726934163167981053233684359225092160186700282701369855144511164522193672931541917826858853679215546187656375244902303195841209551897506232784334090448928504008782371609314567685972962898707966085261922995345752181702299476938821980855698785823732974881589699175800533916321605446833011620149803071576697451038098447739786861571279455404804910205509381020356105308052750870515699736935479777890262106765132564278974487824690664062229854254764027254280935814055782521102258097919372349042964190113850212599393434919239719836920710003109074823770522901382521135822252600891969712666484261605391143994753435457787499496366422900245945395031239163571236850867171435085023880600145845891912311909264969367215294308870830121818096258616289653485077261586138808521211251684317768996412317916784902049196955350136930071564883676113304048261876814678837700175925211440994127367705505745176280199037683383840362514228253494290355463182153587480438351040765031764828085350389228319400829087472638145958953791760556807147280339657483088073113377596774186680698259132913517748725352058464521651615389947147670832092014012053804618304912888004263872544512885798700582590146129790362284061663674902255522071452711479034381186764268284023854241757101202759392982021499763699563665711964967252212764738950330415347458934796419114498168830536020784554233182270856972737434220070647806386561034562477874764583474496589487195610592032123071128390465372892424232161131583436164953814547747444632390135962213552512473938549373248873265728606741705657665139466684446428855152629580291718331299814607288070859888162616912367648990877719099542451339587243298835513103273808663698874276680574314020391771179435850606277434544567366202723129619533660245563165654075120691069835350965876918793315651651358233630196140505523205169050618666721434162124618298730500704583194991694102357923063242429271952101980150192620124402870186496839342166880294579763875216635523718633041634543517126134800686750531230657629033669513074341395581324924647468636920560458518428916911110202131292310018190038498135448885257240655419437706163517079343398015076206339677719996250409939462539948668293386016102485744526429556953667224525616502521149326125446844592346734643221882228073882035182727908079486932376779314843665119554485286585526233164857123314933157623984826246193258614059794520371719196009165756377432236723570149650245944894695109047383666570006898359883355845933631526947212360440591796754323810404830452058824194435879591991851670368504009593769597758828163598365721460732479353599568595311858573359113447383020646229128791724471993556892259601030838110873624227428990870551668224512249293368358951566220081617871053909304123474557077797148861239140962204995246474003452747070259525638043437230916960427124421214242721535171712471849461046880506736639834619207368333509618308722462896581620122586183976752675742729180164980956298704132218795828991791368357606079870954246547225050206612530393619822776849799211382195087030954933235043797975807861839737196503370577187859122734567883344146315345282369233553012108255634966131643782175907230275504735246549168225326660952203974170782406568872881385082418544848372077325483854612223953272945176877565164965883219021450565754735372772217814352905078447188679543220703442135645348919122419815467613059949726775791804297585885751966512592225353743454640486239598428415778269382516505990838689352267955298723514558926237208593145084513566655295684276684194800604685674435619121154800498446318469129173787044695973173016996960799302227853825362814821047755139204220634323723056942872314038737702368370747744217141281114423970758222267959694827933904368960590330136311764925511591581217355362499496803853340979760451064756936899874505206731499606659879699935948838841796404013267648385688808840796079396283791491654843182283518474250041552724131806859715165473265626555832934107145697336035580443659845776442189158153141570030188216796140929402257238032824546906495874461766405460467572209795609678085932743571873772141306281139772500931034904753000805016625526942529360874573267771745970029821735371358784693943413245627165207776071922733389064455956090717767474070968185309152358573019424470609281872989056299480550133372119801345850449228265718131007847254080403837026388730228983169903492101522794696055843630822287576615646754190998336786117471185275019820524011903538453558196273895243065644053486094471151515350953764581242092638498754339480261295950156577626425164623865575385757989350439257009163712963892098779546228999747129699023688420917998238295727806749453540472426841292460389976599197178254494128711016004154534498557923708366274820173296607768563660687810450866067737875644766803325760847823475994791397905657601093110368149810362460225013450675334926064828590557966600543783543391018806187552542345651221638500215095836329062122270542912574142311808972923781370856609475927994843921155529080699401502370203753860436719830194488807756149093222474014663201336255150947233512908761139189688632607650190487757096988533552265785427634170820140672578773327776323106358833672972237561538673861014641204494409169283794771137867542743689059119270192341973746276692605437989565087288172906588298876229828736447548833169586074133307341394648172799088109490143943138487811347981519450855658660233002438189915352734935571985431483069702837584075403761228122854643154450055093671326363758980870058447433755267332966177510613820663487692978223447650092599130560821516406673315032126088764953940570393248520512557162123726614376058869415076229692819157413985995583043847818422221137472687809091326008154822402578691272052420637769560085349264779481727190690092243495718527280423691075150796970432496636838234134615078220230118475437575414447126220983723918857941634752226486272729668952964940629076829424599425589566495143081885811557695973240841157095664117111397152442160554525590503033089639121135339128506001859426032856416211815306479899935760739780049547311414532071181310573203232839241649644776534546688511794901034272918549604939243638442298566239355175991261788889910420157815154364984758958159500908153228943578062948406648652549107408965549256736381491654975035453826844923014145365694377238889649668859924153289071663000755383094226433120027806276125358067593984802568251979118644464867419675173011160896529464705006520975497091158817646122222962394974460086872743736629317956398347142122361997831044726805706612442497875700490411063852193535553101115660161727520472550675981770204942910813271776088329952879822922142738244136883602304001250069671465576244404650567964417170992918938778943113382193223232373852030166120077388522205146835942393288448444929329064287030439198320303655724013263599904292088881989733375252272013633328647393801446295637862879428091783259484112844098503643505775118163227065068348667172587203784695344034299902772076369954257971271346179376004567888314646152990754197774326093427121931112247886865419761308309975389629802426873764964667172647583025414317025636350970498628635705298996070584724684601456920686345977846433673187438630460877618425803881783864813906860771244433520408266394359322487045373250184363737309571274780000582964552263636948566312440002011264632979847819411064499902054837809579340329452325377533765986265968934961298745576338924438272716301596560679147512350975618728807264800705427499816020291778258225151863715191377744613541749409329796824382889002492508626281139368478570657628707325552466376693571120692402276100211006152910104185144522765450910266511705868871460247967187845513339547229555768874243273552060075234398837397201335942736922304744409478634460232259248963761643165995502119226882810261536464254922798037501281075953420284370253329599487545433329003077247095586206263416727771174604610913923076179423139663432573429186242629306049688437951873832955978268886536731241480941739180167458225784161031777938389992618206358183011941414104701929176053143657703350167327022025564794247995851166360617321697810970392556437374823107267658970636340074514248080371698060813532915100820354495321499319232472914065303883244439613850175496287312429894720075841663354039058557837978057843717038146787190338478757028610102794987252701775349186618143934710542196741590444165181359946882136772762213455026789400670897285639029537122718976064173808439180109408584743962504866614859554515102411441229756278359995924609656727333015969027811095684795118618087058549008036808390656939840173860096493223537831459157032880771303258811754233477690350326985197096433353362764630052007176936027761155069894784511211918527802349529824872567700605750992439233290893084488223545300869872800900075664499011934494228441344980682698983186228201445199712303152794020531497158623885709881014501184842081691018101216076200466338302859363900973814087982281899849097452336241068394274475141705234652662784484127177028467475333524929407476737525757032784960536461655084518578352701617059959605346872796634454747885222023203678581125805789389422704092901660636371848253123445631495266406343236064728337584500112908837324617334627082986236959099299972311163459690887090025728785641508746258995818314266811705323643403685379286986176160378989939961180351155575233589732193896582139052275304983915093957947064767207968824421621001767615226987206208679870093430324817970377322671609431226118834490361329776269663128838934287372137414951404763870820866352465248884248167888688215173163607021241124602382776489683677964540641793899217978412924519047317859427840937086339216301340807616446091795607499360329563820831082983779058909375934563312824054128448048784211536355991065798741965411964558520706586866659942824061576936581200958024085260484522573672483154234492179523622476012929004104989977566380970122155468625449324589864177547340396749793102157847988227647045593556748951348688562976714520905126733048342644007136397693575862529885518425012380863786361544438516524245537090620963167003912650019604613594343886894692736551983646194337268203048534178446043320754027725686616730302220892654651884127874476084577254799741625285059519929055227431165159474087347261919946429469461383364599474240853764681255913261065645462539874346263109346165485302878687590836749227449093766284448679023940271093837909319978075303896793065443588182603978099682467810059364126707439113171362630018364545847544842355740403908093396145742942878368786635431692446256854190089265991978190368485342365609535188828752900714491717251065285345040680328036131313018371916541113285400199712457191818755895917914837946753077175863292474802341851095480555977612434516141501151889003082904163824361623306334342073919009064140857945169800951464056589566010724070239033227909745092861836924840264168758829989850508717456498133292565162569954751518456429333122781113496446153824898888011166907473808247713400996238967461417733811366486839040560085402740423099388352803289551455131391842241101743699868620607677688867125757252630463896526096481738679223853765508105598611865553894238413210169540663810341504454724387713055037732102291190561049505891045734444185408670603343185806516658693609788441055269246573413728434023317723807569507272575024486892158239657172464603081143220077928738616648101084084360731869352718586283328535759081941221490087135083814580760217026251071529240213677870888730203511769736384910743020032825406258667367847749560773163026270000523684354339991292863252020650193328193569070419146417164744725590379810579893931829163754557342222988560597043150487073963946880605412149880368568960329232125245819404185887184287960462177444727270376811311739803212760591071688130663338436855935954258505668887344651190499833367171597117807997734927271808661597563076998698776135480466360695507433234484088791479075858270659133346602623277255079959659661043055946054539544422269610518770627393851020717379762457753885352647134692021216650048829177570444967877207661777269433445700538134590110928821571649208696929859896398542047358895653595013979900338982080391568538259424080018579708786951994927906633501163889938583811321919354106991041830883911886473935831570012395828107217461689027918134270478654571084061463514764415633164896613606822485223158033264619245839108049410782933839639559520677195436045233293688654073247987095070520152097229400521436635589605955499902091703590159469668638020270593615508544445279935507227323294332736767062716103697480950300536754499035256720222907277497557715068557199774418289239400425299575947879376274445807850134802456793122679532465953607719267285109322022199281465594449425697646273617554419649200758774896966965359274228210474932433251015319916860012765713970235814958076049565596675459974902330932606714332530751608560408647378624226234010265251508398898905005806997291618087292978068699869220429266901127036905181212690451717644191360179114265295261483315538908826870341734503878952619719306426276788513440090303362636826546584303763854423174558771603660295553561267958284014660712137514619572630028472429902988152063213524770734177281447198002059310497631303641336344989466747149409237219857600763878394425687950543408733494521521090723401154269499082784766807862086556050622975288735110243894464859823553202122277916653724183680941802767577373091438495852643134726723106953891155397152966964892874128380447619751147665266812998549455216160273092194233647888028028601614525226941639887069775801060603117574973289673007795945412659851941777288529284433052108764211769459683087604734061859675168510140557267968694711297679361210344903761797606740215500790701768129623755416205357223294538411751554869097257964620181242964156886758808413129108545032335451744199574433578822040430559297517137636503722710332596389292352763235708326842989677763845746733009039594580247219494875397689393773893662463315932302425042948963048552188892699414254982432491749973524187540532941276885868295801688841974430531959801475159735788725824137438298013795766964796009678648809950434893511420406283328854010020974603111496591571928416800860074728453494489399758291385980255835513572607598333746326198754072695357710339827829491728108185752438780854346412706980416762985161607782673407390397645550921296183832373447679566611530994379340538475843772848593052723162437633996896240783156472793620214663484781931980768821225842723525510841779192339500758752355439976525281350676857576606290819656191299955073478522669813479530114989796013776987360578245472638990295650226096701492637826157771085885207177951481653847503101930102522797276887955463400649573254008960457526401413833894241105026837251656411474259570006161076707123371085214785514201091618937462111170871506340906509015508658073174510261367483408197152613814489268316896708460834305371064545183658499139277663044814514291401685621000453438141929179168583743321069760044458515949863652145104080218352905770352979822808324418356285825856206588781626655217770227039410548046975429824169249365800656386047464465577485383704043142282305752930708759068634681368571737549111469114158407124029152848623774896782764795042198627892622904876260380171773396409194782242811344557734534799907085936558705222641628834170225479441630234723489767431737220310487092988072416425186628132773700837560052873625460287272953470558610797167978528175489148537703674874179787886720312712297774370812392771433020508221414601030687013619015683103991564252254383116793541515741098136135528745012854096469507687748437765352249333885338508380062164020954599343524355894383953072123797218895869273323839148864834316825451366073020162644594849317871213339159224151395476156702616177507994323082886763718679365066075740609385633126984104275872310452909196768721527562451741170190069149487869994947539195522016241966944923772600607554864729758965080430375048964092745303038622298054108785502471066370716510515345979909219951481265545199621349719105461032767157298809778938683623828229634724043962562723820251458751209908208917776384561027015222356194050849675544433124199588341908074352797740319232875582702871180646769552160462547057167734475767338445271756415879079404696251245623747236386925859500355747549722351398875902430497222884097061238397969364149115972831867286069253198533142323704375256895124479955328410905335924290988346696943533651473215427722893953731465402438912147951622064108683560005315905123117146682398617647849768084117165797604619689574561143396186656318821993416726631581310492106644170730964989040582664453128282391535581392582645387023054742013219912064371620007162286928795377466041037603792405219731099759267976093040224636397538251773048868156940326452198738758285396897222236259194036172346836551210670554333938889924498148485943184555278129930067410778734307873398318584431522219163612893372114675752812387461844332183899083739047198507696241803247945024327419336726075545143982705824064650067732014330791809267369912898126212848525634134142452685073028554512771715718380940614923592078475763208395474281865483403160447807275898460351609383302987733271609858405606254579412868137635728114396093728755150062893881711305718283557036438491404965359454477970800842829724129383552272679227030849328252199001303119519773232641809632489382550637118824868283246943792212488543681672496453700275487855036415222678289763981001240291977702148231682986374840961973304996021689597357007481584800106835967268592087664044927361123531463800065106094291633520878948568795460155829345175444231902491217396061369504344634107010386429927338295309693216852162835869054679834462568995509240812000381803260156400816199124092646209380262905170472741895161252115222583888155797673125951692584895559070904441442801058496748315370279522133060561506979758422533751091420036179978638785790763178658204398324616314844048284727677040283736349755454904992362581553016853707306689406337290677807151467474341158042357566494426126300170045689116937045348845217413161008972635923286436825762636290193757517746763375974256252017534983249769890354053205068892501202425856604110281666088018193861738068801017188943813119446087040045349818875035917714007201567160602448536372477430957534780634168093640317036712197167463385778918263692195462752709276960719242126266417276692438402083427209012999685363527871294405455927540009696345377425353869484072563718504869283141455270859448940632697479028523216268332344902870869025278141820874176759509654343785650594454451642569783782784496973239950116988299612972508865254439995535243281925123721940669845995994811607473473828756477110059046153149846452944762630288179369678777793955841726913521603038486038958375881906891643361253516976625391613049645194425430274716332584626016461037078051994954431752245614003356073147627061158659553331405906314083044003246913158827514910974580793780229492271626490850349750861010168630731367467771008277130987032348561879068845422288786882756056544648676505475695826080994258130429536838607341999963230434772950687182545593245353780126273759068071212612961422508249175815183608580958747856579697849142268564298345108609275953680883959466260932111178062106574400649597650785687593772042330608287586205478826330371177599567644523074332632948507763601551108143398321611734807672476134055525915633525355163502765807205187461558889584063568656072905175757194203704109878768560291085495726939047767435946312550480941318155908745367511939644941744942003016374106073952881438491648290443432771785871997600852629200709222398298807931041023581728278462522020597272681923631536201231968694931994345148074679867109407513452745122299257796242513312887047648655883461083451731214873159882542510380838642683095974507417951913856050056188251750698143163585471710196989169001151976206902314535793689397279273802467198003655148362751482566561678419926556693901013922341164547358234595635924247537086586582852957748086988953784815864017969441908785590273388543387590825721396713617995346035846864962711324821180453533527909173459120704348833017030943505990456931912806111427027902752876326904806974085342858339297047037027867771780960812312376245592142870157084026159271354175285421424786445176283136681820634678257100779318195823422612995586815633226840177646561243849300720630074494006616156527083013041150742704964366724219071700002991213976250039502623206211624093954300615857124050207718144276058802188801024358426199284346925174891090733964456177783386917435325156339576418254334096099937006909568622829196649920294976135594236721213326928724061853636878732525188822744916652394698933030533652226389602069554240956808760699169726264473203504737614656845338898787157421093717503537448409290360306458634173035686479093106168323948210918136929921683390031485362646674150641718338127332416558015497881488004129464030831565776049209770329948237975429202633552400731363165830061377650492285246494558297647870612492109754986260478471572822445103217765586714415777414587603569062610831806478696463214990508738297983603442532870615821082616947173852428056389530142791173479967153945060368064278075854946057536862897210610501981124447075890056558762276283855200281319818804692493701267111670249686046793499892832311600479213270381669530149614999321780311782184865338509085308809072099562177563734479893566207666330711977904323104443707453716582414488545968131426220880458561318298109038544484888770768244199962948592609826632549347040642670750080822509653019902247291636080938910016448873366965344987059981533184979047037826020657799380782252439173414449600816597199727295346474663582081555135197184773119733033544257669201145850497820324608785580383700013406953043064767197724834262346341863776424363159206519330268366989467573154379756730316316100361934679999632828342964230048724532543278780540781967497131577130202601441763864812955554336494829687205701728800594524080584880582534835196812989799610033774758291715353615312685864442070144283960405485392475342075135541580323289221592540331301556649101610599872347543295595378185889538824959359671931802790357599241352055887718285207295473855266980596301830785813842866770196949576891802521738303150541505612160212221167252551177558170710883499666111083851299944454971493215392670143029512870935903881320094610732894114206953489631749906025122418625894234262438820824912303153847417649581127368617651320744056022378101397070020123501928155059812481876112886324542041091210366535264545004338737901051650384141476545142011946546167338779567661843385414483268090495007037641067450986032204301341506032304221895958288219882719946443721484583726590320742793213448432281587359604078844362039926009018882110806114368607390837488675170436231838763200568143954679270764520854272350500086459413201912089578997484364589342057495207849521096359201894852881647502099380555281806963779985543459392252514718553094344522584033011712811122106999142277788294188973478551713119846866405915642796488657886723489396020899311065953668997140526990744822559610388943859386741313953324246062041892922656018741637508130198094101398137088703736633562015463917594655525697789480638207557465339718627189302528877811003418715839061400416636963611270462071951862270566752121282607220888595357190105462174719621745127266657268904216908115199565729523303050182495270899053636789751546058675043980356902166415262509498528076589568582196842946175061649793197453896051622618971761822306440740403903119504585729301213716915600659479856278083945325945065545731035245077930765838294543419170045257944071121277009243244702669854024528828961912641886179125070661274439733424577309973517366900798551351591718941022960774323816846178499576590806378768237480649392522677848483577494093664082907430329158002982932596588854753165995318845713689905513263808583253718555211793468992284169784012441352843772709879742017526198587193890744847688632023087290169240301249685043534801845370704986078278005800185541943871760383069840913259826609780684401912846360749011550855794014271282436379749774048394925822002831692315356511167847212529236897047089093348701415933455260762776412304605833791438801845991089706712829931955653685698871339349259924171691542244387259708837470793553323431823449063466195369112357191720714958892264631305266017947152955532523083066921404606821858747848773125818627141210954337811807091829253923945724765086748340521072630746748147380632115523008795356804237312693960708815010239068364795018143415880177617323432546458507244992008732978180318439185517622270729293072823752184610342746515004162680355623691858459260705629715036390653089483218250956460875465031424550240250179906079347694526830129469104366480417523282241581818660311514913790148887287615792024400888164253730580648314382889160103248811082522938508326561016060646109157395017834393361543342611783495891314673789926762376136269551573736938645235697620987068184775630999571150912707376923863549737196629596574812427594464744076305700975237706842824707014680334840290081114828534008509381138288101370019092343918594604046441652757867466423378767498895107490277619371637866483450858053374058044831157988880110506003109384824376696440949300805745960898622900487860763275198563324869583552916561350422702774384071891457951300473446043385071251483603427101377215484437217700907809014293117441466735765166902304866651630608446472754909012988864841454712922453251901324182864266464606961235383400695014877391772919287044769209021610231114828184539330523995268481050240068444980107907628640011678279346431069821061680767005914523936800419871424237731284566800104855443495580251316163611013351514392396246727049486504057873271380475341836288684826713245647685872950396649291454212566676201593352964446505806266655065420892637535825423311483037116622975110624168568336729542328495075485992604295924152562951847619271165816377475620136549114780221646670583937095522628052097557855043165068772938686958742546002614604668889264358472185122505108887141334823995988703095323919600390490342872865557241921438853688178185108125821076509738063050222468521832496581939929827184999998616742874323229131439658962167340927172431708424401445538875192132797814193454867066052388508037168327395814703519008887232662304307668352961858855025079494847494835789564638118910829078399643807026876803013533744533582326901390332702857621018673736185049554891401628750236059131854833473949135181765899381219332068574317595180453622991360595057470771051508622311512593569773596402355797187013105342671032484755596041503002812072315714715752659060388746211684718020039128453414174896371677070658391542625593260834086007295207577365822091316603243731160994883537304484419412758881340733594792510437297701320107885152951860542219228552224691187560333274226442182054649328097165113526928682358303384032923965494666513529553155069946266611074096869119736668978087060791036184014871972331906583497858421598438438513976876505417443705827341744533927411807660520756838070658315212963288678641049940644130922744708528600305553610309829469499648200729706598067997568729799437725864684231373435175174329855375851379136493016877102646399156475790861720354004689484358503701305360991138747818727194267070007981167270946520897091739277915625341286118420341386889801869331936406104071064347788684862289368288905114098505227761239922086033105834741679271529172609149140058776850918098351038570280210509919624169890352384081216754998784801553499104707573612479188697446591496592750445381491074273852363262325575305923999026718729449893364854665597220804934097589091968334566889888805466660494796162991392785181498859056070904800330823659821016540084703778900869944147775291574708968095862264030555788105302905460064116990904119218221428610575602526783133009476977692864315039362253579972843274770979539747685757868752759144122743176543902590213094628475694804037171138872032287026423541641046361333087494830471766812499660743977663565233631533178890365168091438430371855653007473356937212694969415750255645068724976313809350078569071234482254707082510276910666688036377550915989934992784440696183188624549921455323567208849609122889975314199439844386662151362221577908757200385237612966302987145725888563129472905638571145613965594116613369301904469798058584015383472554808263940810679387458522654898672250773140908937962090986581761768077708567050668096825978344377586761754085232576797580541971824501384780617349927055705089304756256902213924224140774263380488984184992988133852409470421395996474525554910230920230886992766525844029829427340679697632616308016630164555220422725747702380978845044210197667028639833670557136790215321872077473566098365319867505662108527399400526861474106633029218603022705821672373888232759157794135582117910500353642271331653027787773610899711790388858937789604719802435733249153247012380515787949204091725744737321092448507650441044440160860900332042556149103913294094393415009738005140591058078238633357597721930083364563759861859084930737884640083943296949663023965325922398094768943132257734273424057616503041466220395317322291023967882851677294885284330409259409632543893051204228296099858931672444936430453717918385210495559186090700960281073340670611703551319483303228327247438839199315381464714623105408558561098720862376772209574187151245250074994627152291735057937425036781033311146131342262767908210271034369504381870215624537678966063869560532962634732913813370616758239622431531418773408470084123893469694150451654697769487887178891198726213239527903741207132418999265902691452952771705132639436997113064151310117774879237552947767951031096537835978607137238482301194523070996054106496335512274472819666498959645096292508424794883912817323583494603547411873835763198342663326784786596060061568298134605232020197006048497684777017147228605886160671313884028178010272573049340545468930792600096886661672323756589361554404490643339029995601025257877937462086538054824769456127419292700747725838242630250458326182814077662329571920255922293735135101106292877260748165346508701813651313956933510056934118689257805922441385712188354413481332082135847820787059952476176752123971477700242976688935226953108671473549189661677624090122160899698790559280704687317946201196017715682002295697963062674643457221385733398500652331583776829277474373725838633520008876657315305238363293726037038800524808551909433275451997076243437367951889289836980246792862501648748478783591595035209677962788021946723439417490544231842022760239616264255395853922337062699651704477783024592761340024730371566450120919423952105324554744430168899647245525439080430603084102373172378823982698653076834733239418231277265406819351771429940756883219816022900858681295415344700969648381707123327758808951740139939561021529535072952286396276489060507894501831564820095403810418491852713024163616909503119176080448639756367721608045522668661062159622638148997634018582407518998990103764805502868404742870571940898153396574993198345941942072624504489705466932575847638381249296421402678113933524071387354126368054673745766346630707244317678900969855328855732609084325192805074061244877727130054495484198324998326402236916690002048657675931349059553613906707601002384871513823874789506986522292798136775012306793491140277249349817012557721527347502831430257381091601655794509336854348649959490949268459049148825979038712437507845347721163197413338119068042651452123961996358824338822178349387154295215843657838551520860596193049730677819351244947185528376123240894925701616944162243073492663886399844735366077684486107122541432950946180203832193923405302638794047552664436034459296824246717879522632171851754536145564978170496892217170449461815826633829826045209228304124495741648871960034299139585734745290078463917563953831711588914784618972150954440331970913082534064663962103701219636938155772806748024117455733975165729548154913539776333078846765685815229420973938827129502236881305754253083331982141167295161575169494229388217164672573633255822875398459495450577827093163508444105938437181943077538790716309494197007487017879160477638530759820685198227157230108014549131112796991519933352885238896489447309425965929271560240526050084010103743331825012218149536579483602481276658683704888380586866637792574675534029278766821167760029180114256580274795712369881066166632119027214915735161812191852048393123540461077798142022940233421525416999332125644998876888113338646414815266963324946224691285776196278088019488164418743004840514645549803485203180564909904941511013580814211583464473071030481163381833631632004468481013024409862448684008186664715324135797238171191498835456224411667775381660491848243180061937485544855206536191737424681926208979056391342972461702968502828017604700071025886984305312166734588580135157744925564226029523771119141233664422036246328637911629188706744985795605615528586237910174334554645590275199954957423668975482193524871368562841189851151542225177649566706915448064310803862763632903563671935344084579247996749083145651396074653331162763556083359631139868282370424208915226049001092413285001927678363016211656362574735330581859258289933698549142345063124935986746842199849249691774707835581209700888915800847206029788396415435681186676706877954788925011747064911761078175664415190025362311596185435901479104818701893820896136978765521898302034522996731441149364071659293958899664444192106834568503607858128047380870202198981178726760399226532104854035952246078011085633957644872385060809076785364980106506270930659852594724944745645081380253142086993031593971070282492720911200899218722135286220808662779016741219351794810774321670485283883010065897113316146349941330801671040702845204397248816291969566470145488480777729231430285326697220009520142965931309849125659095935573933888326277702411687831678383183991090359984299870993724352828918008692159737055904663780990324225202527707552966050566078994017433076644974782559728732492410800948010770757019666997924674355111396928479008264783671836927969662879414491784619053423104515299192417045771800771283658038162687229972323639813671413666762700418581301903982386269226156419765770478595214674977817941552820746640558801498029396966158852544043687585005021083603064547524809020652305863654530086453411492771533028492892644682596266798642450756659474123843340378561443332547037397055318529625633447210503574247840873495654190165158343613684412081461599720239554367156254798828334887264031347149804690368714435392733019567803295646618198238407957273223208322449231470675523852123442994890319858706598577342805422626872757143888973102738182469059068682468731475101091996950614299546412801593406078088604573138791669844135441413469547700988136359181860245840686886660836207692582463838666203202599725282705627942712888005242498095340737133524689566034227409556297233823433015607236257864608216440726020384618560547021303928123958349178069075646189166441157301156219739814191010169997622940432563808485958654248650458738282001043734072533231799282151456688267036557643856619800169789411385954322472870320403179525651215562054509661267940429791677048986087422169292364140450508661773488592933966346753099110731244569891337510521922048956144005485357530813410955367489791899313798694095153735068287742764955899874109058732657812936913851168379530594138392526241280824368794329970304959476886871957979169838951599300327402219194825194802228961549394637363708812675083915891752386344354011817828288895464827522476355453766364753606124116850553164428723319033287272802100645055778062408024270275894969716903694710038221000062757635317574663159149875194107998484271199979241962404966514077360832395400985996995928708732766528309769438793978931699382585395146504862693066764235537048335557695472240706484466651713483083633401461688704030515417445627981877041721034389919339917112198186587661689324007550407239570199753120593307263925795545186050736245762560381703034643055392130657174241596846662363187395413506458341986183613836794065787702175853683122561023367541051168737485238536126151905346407901427249245714636689656024896869778412702993781511731197704982821396441332546101225214237400143489418348884731354875069352653553953777479715220175070430022884586447972957584401484219488135730269546248513995611400268595857027016148414811720773102353814066974554283792280004195973639503578001601951911761922889054941566936549759363354662800055924637398803867852978632643672353052516617165603422057441866712238860312413094385071323688150618023732192249336263598845580492673464332617753827585767735331277559647026378114233652494495562554676858669052881710277999897879338353676648384168032281064790476431192640191994446670790744873032946637490851784062521406550088249830249762511047688598085670261007804861380641939528286580151538658839593783306329365586985369891979438044237571071389298801087527978974943567975995819782916815194638564414533300838982932040540808451309684607691936032835707965787652350402110839606651277505065480965910591598856454946864080105657999343272465250776324175913267762366612908712539472739939606264928198639459437638932450249773861404058123931060499154227989327231061673523713554290765138415488158401054865201890278809166039942886585265799213605640946915454587800443748239692741429654324072032165145624360104544561830320372095188758449440833986796415719772664067585676408488244306047008452831836945639798659201088429619664739122351690386815246553143726461996937395058536761655141632411225429002377842807549309949264480540637505517849091007124284751781172319688321877027259593704864529341950521211355789562336398009341867854043257860673311488817915532886218626468960205707319375274280022306865796327553309639317289651622424396512889603437132903800283030706665202635321603928176574353777451551169045675299741793419182164741430415957876451975178849848393702898743121065680069490737254859491419152276908675721455457293768817311622312842556066863713748190885681478387692872448829191999733550247766790295988238190476254837424246057065819713746855324383540936728517557331116684824786350853384063059197318787094743850176278637395662424723063647084646009259957482369517922889159941988759292595445752868666321687898479092365969487344100104876248016263667527823405140527195734421066985159556446092698967284236708105155992637176498614196247706954025914773286059788701209213925804194947430255357826083835905530633568109408003147926136054532546438236194412525900203132292515148537621991387552972549561745856453893680103667708464209156057271689926113344433730012870998343010495640175537119175475170467830356027562975395675858083516695163449790142238795928133598336821409417240420868931322481635195597086278952662660321165920867183574637803637796073128387285495629327592415117689257421130721312184177907719630360548859443509764372694562323238693230721501690467570100608525837941085698024952251281364288754359100724696402944713867911577276113282518163162755114449482271374658831734966148184489651416979095933844655737443695877408951929724055563849530633575551181561082433178852501803658471328417658317235528507150671785032800734467643236971078064886158800973256359379448311779729540581645871793501106178237604094009071336043809529466550900375225770181654988359319704893426213014351094533410269589712680562086344303509168685993237684992100392924391925610243855223297423848982677729321718563831562333212676884278046451079639527782206826875157774957813515787183283259435924046780659136436446014620720003179531166051603238458945744018265816709449995210806426887380269662279832884981323303090406069174894322390680210433715223804336278402942839629286893440962463651433036116062497509244172028034658275558645044191944748442635072853094497817735835946271882707827396772955966227048261569865079029892375682103440182007602495977507166408816975840838604628763809107200122974610563073828897575882807619871680491581315555622975345251503009463996330868570392246813088065530602437414622290487163553325540617882043460755742317360225193263962479655498598060526009106721801082319587383342464022492113767971456486282272844619997098490984271686412926632087527284227565684962374401214026217861129242854663260950963485562312183151204261255512913640179270480054373043862768211582646237442909219051206368042996315448173023875049667067471922835643406482437331111208338241481050620910655199903629591057525953664248086782134409271869413843747218038829067401780737725855943442401855667928705569068817751842303990287239123701404626601178027251946418246958020935801352897562064195269553187132072038394536193671951937437424639798435872423682745122935990080182828593932532417411712824818274391419302483262200488575374194773842364037761577171899322853403706157062393814089722777785920302937648717550610319926596042414356872695534306126335703584246957708449201503662658231119256407874009189085385813506775805341152786350571316689509359258992322742340013677450444889570988067677477452802752321394598049507759067477982920727816266739672284806276060635247948018998152132332106747323428823079203101737932644137249176462304769373186680871915809970904792479284685440596099411191296773288344509737774439941289237715878714842103681246630736393988879410988383467011998573290773347276008126796579292074804095819638573355088892019093786294302978920718138298314218671239251376902589230591773850550217247590727189668436795970455605911920156200563871546303939475214705806916965203572594790469517213406288900217356833433845940236398040058619835883666356658879446656720893229432786465379958417447730386564008658506487935924765991385467940703320969271518377967260406376237144580915765148463199349386578665441554508666204793253271579810771277623096766130402222850384582923077945310667404340126798740351647867010543875869942904492518415502181420827173195354342685421441971639608943892863959178792750631752190698011923750425792968973272187284454390396097058892666621976015596045105129613673192386302855564735669848148991531663994321739654764490908664228599402636590503171884742371220641858750369415839339713775434516430563286360666141306902696472955323497721461683811640285389009941627443619210672649650477849434563253534546498178902726233619665715285973075151334393286074368293364142677207058440160777635488559460441672900283101171207426338527346731927206736208317661472898564211315299041030180718490719382374028894054594003887628041953599665176137069754532280209080393211742907379151562532196857070437878325385194379592416399140893035511400396105473887963767341262168338870108768834594855098640037124231955402605468074575250752637208769640289151170543708531434636469651785581333337565604829133030081094551345970037678250963345862007382674203130939359972579930549465040647292290803221714948370548333421656847222823225095131413663318575648182336289819809030433306311543545780940331709722065505515878251327077198620628245133834489190720724305840686792089077362504547993061203105792991153063706109967490519395174292141900081843414867369947510355858080175420594911889527965826756566697114057079313037445444907818708081441651451617855884661669349299595208715294086574266287317711950598831831335000417045934985008184020966910676267368864400985405672745411143650352216815193499171974521990340831984001236733001518581426184118190522644191593954789783405500661516894777184229175371318739005383255030223224882314582495252993893610096031697733327853174666787198900041838696454696173586339858233768900377194868773855863895598316179606787640210515572548288388318435568883519556460672756253718465712938655693874761692868276487300671364407936204623390225366676855726955168915302939893960455093579506804904035091920383469278537539526154052004867308565778003859527905868019786986042652053049474990383829712396216111690626103858046783081911157593622046298053403259717932440842583012744875672053658712191566770815710092522150728324560398792937504280019259479043296755742240951289789600260591751093308162476523628511619586601587337888680621301045993646290970226183556941028925401323019610296705123912450954180543970798350212950989926284381944823169867362371672347215371133338180263319805652292266427886624874381231788296660787375186020144340962543780999923493817665079993030646626893942079287428219801123375962102056547170241524321553690648997390510641264759991217060721945116953895382403441916418347566512729974555088732504148697507483178231628507061430686009158714962714700378953423009897597929717629839685822586054817039427091756980524753089955683212265192842551488289355410958537861163486995790076852447858252027104799575835920533971503683006917391187210955655751599317494145044883555831722624468930748410327266072210618769790955555425747473859938763318567599295518233124140835410839555895334197809564571186110655964819566253984621451762756878211407929962211376533525394028589007685568508488346621029816195762247545035410195758801436171491556927827367225696322009866273986051382367298601745870705586544235017650260577308703970470000679737765670698808496625655116814524626201807471507749838544239807829279355776291462620210693858934124440590601543852882209882585861183880140782048717296006467400024737059597305949605133891508421552611362288441433557405019457001261760462076180849260578589198980166830789408134449225976707077174340431728112258859929483467307251774281316558340773642972262294232102293825785435418653223576820571148279139651838358567733984674579469604967533349443477179966286393160555746959496058125212596491479680391960153970203900483449242212451374149778395240923761622447623219350810121962492450131916662377558838784019087339260569974809895666323754906367037911054292144994396161148823149319499013927099431672465803953262612538826925431102877677010584761928255789790183151137146662657255491503429743873916398974678850200210492629901800091164072719586722287205290377284697567111784561696944823947916389297554144863288562024577360696617749355885362845453549032309531506421253472258743417486789541351278667981331508823123126394681405112758388936141600321585850260245346925430077546017953764375789368962816938734057734239111347357102872706400495392684584629911319152020743132319578704844380107443562883043352655164352508997861489307162185265646399542686583247869776776374685602869597567484547032752452993363203783867687013633402014210751463990991644927453058981118173938390718752739772161434149892817670579411936982563807786459096952675054260761579493996418934908508139400948852603841423759115893793521850845326628398315317679321578650367321635485964607418037092854268104437730896495241585988960527775620512457227389740641793169474792890113354987598101133154174555038286082786409716024045312894089304505386559574514706945550504986794107386338670831915227231773422786527124430852204904010616836730734250668270286352740713417796532255544382680079397363122555115961228811642796365931431847536810805861748674115097564094667912254872250411216505472651916591179007199246640515914699808089162855486438344851354968452542334621385417412292611396429450395093317775526750178094540707293474221177428691521356610022317181735329225520532462234875623174897034832932525660469602418215216204967685642119564218210182436665036291772297744899128095151788468571331197304845681063750078912218644722222034830212346734525377106785167875974483289201564200282863402732742424632170265434053630224288760678491319086054437168506865029132800407102391075832048692908852705073764404374235387315786597376707459432522915354387184185345076305332124463873689434319064393271926096606303125423416572226544844890040737168365389490582201878927930435378147266662342842079538440977681686394357681885815436343953340254130224731679751093866323263099581511232969842740106187793985241069409289854878819268217878530501354787466965501537240114726099837675496148174103971386120836197553290306374527361880419250287239766604947082914614232507111191091291044888828694888200721444849010496679076520723044610266209859989373210042885314114424355365046240079615065076261164697369985931383393752232508686410509171984923491322567333767344700908722336925928774195289270494700636445872694238348236803724283439285471685297972954918305012122045209010681195390126733549629255094562725462544417652152976070731744532785871592015707994933737521680239005951627777432760627345983511763818801763307144773592670205432865835209029327722607790135972649663868188347294462681822366235849493303040959281258386087444799321077834862150134591385426610264098493694974277789581091221595945541354775213498687112671941307023158529941681102398426489836349399971534853476246340513436532769948317731527058928510757468093958119123053287608828462448778167496494805812185628851809324709962720838292587783752026326776805773149933404985243311647802690795485660000454216654612646444045730098756370088166282552463314468154290192885393730521005253531572581197062199876085677201421111944478070733351449728401569266061939267754761621239902794915954168764524359760979473851627505907622026980692896699940524104552320626048425593848261273446864818332789124005451779034547653126799077554727321465524529000827738049115711356040438895079225116129800008413282076831685008798631811107685503386822146592153795305341880052104489197255727145702705155969788871739669176765754697915334309598001253442152390979422794988279581275619732423436824884893551324017461760185063590149628111490749618297260528377358743485030686598644158846290003749529831324233770593519611851957294891637295801590290663598332062217751708148524435440309260954001756923555863525754990003360758325609774728284935597703165221258069310765756637733996450982503045838635372430060629358091460385615823691316270535169373356800232302401715385595922214310049838825901512707475020538007167244616459588298380894916357595066087381648017204216449489231692720438894707411725858644674832683078220165761241463438524271936834685779540343529223225929461174052740770005529340459160577997931316802193758352351291311672669546060773204555322895613321082835808785284550652022011227270263456467208889285720958227691817291247863229664453248798175407239665254759225135598322773573645393764296732272551248560259828455618637526133723513710240433878416607549827089161900917207222012348971175720997310701358236919311711515194058566877300337556584023419435450679420738627617847272894944907404761265310076832750909566837313018817970717403564412618119118961997949876039655545084322949871075291056342808670464194764849442874754500696865002938742552345587368268543180046063832451627969469277462486280879481926144772871563386385016752892722794335317141183706522199303840176655407974817365694516593585391066969299764145464714106254059222959923950007688929825765620592607405173481001498899432611599233859171409428493343068320602663504515188476914938730404231982480267903671774094250161850929095887594193287568812557774656276733047468869703730220544519436935379008599540417607223171018419340510438921184644832538083603697515887362634941083312727414477596919255445468699488377696834428914986308523979412639706221194013094463869154156291905060503523102735647643136938354113048258283597120614752633646999392526789161685733964274496292748374044873284584788387180924809469424141974088810673510924286393249145515120080551338777596242978066235628895893047532590144708791797630022749285506762744051026559542723145999743325294375346368337892038767875253345730667139128020212581456596932411395906834565905790769672087161722361833118669898427127858033132527289679879721619711573531587803238535427141505161964615637709427818815073353643216247366879931406977113448393050655059288200418908139963943565792036705347581991488888546138545569107116165408120483359238494959667866091543655942405163675398281594989997837866535419369998652014712194956489633406179747000294418004909744623926180605257490179741310967366516893322952071350807666653705913690893242320058701667912013163576529702497660472385641898051797240233520598610669623604736310074566033238974539397366519530541175866296417176795678348954909089772864350606108375805342454324120791828646592864731673587592866475405400665030340813485283340944223515919633116642303926608462811664952621680005765236646371444357524954760115616133462185391510318838502405842384355480153062182999066581965803438946327134688445748356303384240522419666811293057359152882426809604590881350367299441510895713003816367309393551970671315334653620654535610725137530804476796551366698503203423415139643599963593747024056415756648742378214682470874725590155851656785384372793712506468128204536485502933378476479011824012900469023787475625377768740148218049943643899250520269759340526357602775527393329910244906214858973910263347774847025193268727547202082311006947961370099482180162805425982473917825009537144047388444753300135186648263725082419629120738570409766066411146095462347718966946878901761896637561300530987114997577023313651297928248018890943854856814520513592978172101617608099817285720671993804862974510680015453944453405389574086105067169957573198839313575825710558707155188546792543276158367063371730848488582339020884820492984675612255143650448961746691956335922303630046294032099168232701439041293585770617830386784699475637354902619802501823663541899317073236697143799007002340110297059346566205627203844327703840933813916934762301068121603192624271131792694216429295302587506803530264806954672927091082253610909691606059702587563308749522971265541035585406549518006299445517766949812184910587633923555093055079403533384236261087176705152825135082012737112166375060478910116803433873551362093138504269012679329204837374457179779223491789483996815898630348709706907753203033711566832473227930910264212833784461307409856110011898254068501235665270921874346379917768280295957244476008888740697667121853601654621394373524360936271965581295167339174955631501723804241821633837100749750531217647366242694095832379384011950567659316083022861503804385893222500264011853108308631819486215312910358551680392687031708234002224271329851420068509961862625904224851756943332677184697549158644967504512874159041294767361235148329511426264264414828011026040999358025798050767039808120994531565040080869696545892876283671710774768317334531697314437453508063505097280798299740274844860841963536734250611156094999374728081459205082691948688170437348977537240739612555214467280941021580926807000143054279410187369853261006352039829248199719410393303690085624046088521224257859944709526839450877116523691318835462135788883722970533777813344005269957578289253104044424761787095236084543897969044692543039260173848530348476812578174730230192852001491916334248233515048019185202534770193606319042030176914292616506554536702765352856872563384266031952049124482031684200781625281394893161637702688912696092840252700542786045218865847158308377414423837677123084274754595874610831111275869449434865950220383618148348719824119674303763889892168324256512390946239902097089127460171981973375937575987704706242978456541661481524608264527006484901459020026401589059354409208014912792927287705705554660114701937494831227386212246711507952722313999506129841949535122072263725994335787126304798117485358989590111932313682067275287920422942187126117227226228404177668980904690116855058021153544162318098028885350285883521307139504883175381177611701212437195806650605236461127442441893971973768882713898538777241592081445386117438829100695456983253514267334556979219546274269916115282008585928806066928137792368577226899305001690279856113195873632392184583442129059971849485119073646635697253953401905183837037860379205772590004195387058042740839758809436419244453652303553161549585720995622124920374157502820541752230641235830324283460062908765371321793918763352685336663866561825118250721566232853772254249853494755939661565455823977116035868783738980214764338646132244839484981776682019080903637204377792742979734093840158972052125677341229704635304122990105781161293986391238815761491184535978743251118270660996388080246146171850026958939403044433741973540286789825012764497768925275943907978156514294144354333018203318055449020833428765985922517495399933168361056305631920359192231678290627523265433975265431918508405674624648883992242267709503172289992647350586523079086596629726698899729757496920784654795547282851998711589475632392086855768657116361948386243665025043599736785303084976862913131777262156992856784418184592905567783613913854422338049731661651466530961202138280978884034918000645017963809398768315746800595835246818879189496098991471108885218246433621193919705196315010561174078104792693657905440835435855979010735210872532473184262690349969465622938931333244191746114585778523879739415526937657603110005176692155817825694944783135984562745628331592401610558044581457478687109637364274604694612434378879674490038379838772179233589296230706665061183911167939140475919662134579600624153774484431610054702411406787378762078178205286034276800557377309350343637559092638959719360263047722403180737512355677590127585104451849104326642197048564786591483638036192690657158308305822330525922351795895458723044806007087608288088318322469528523150350811320631777161101396566631423130265399335344507639564684329014137731618584779514695096274201353377403614904938477918694195407466417264782957991619351843802899087690142606200602977450961539372160781678277517213767431482581181281398648273257600834584866054140421802275520139712550893140119917566560676691209686390526929404801962286398529770675326078619573614623350914169516826525695067398785725340828034164873701107283495450693796131099150570309841377473006523312163719275476419473051433032198289419613465055405120398973015073555532294163425286625177168873655367291601041620841276364961869530267966833259046014481059148300912373398963743886493781900436709416085434835273184321870909963800678593277351424446550605024615353836679545916085868775124249909928521421622028988085814487043189622508224613642757182658863051164536037209051514871056447722357414896233631102646159438498039625932439488641387662819998834715348111745560093867366715769970743204838218249315155066874357246265860426414174503867197058737361947003642259184894639346206211935676135728609372671766909023865746764465502375717499005933699211425603430083370651012215857368677008921002627166854358549373182606355945088895390488270209189815504344832603849154341550774217649210355338187036011813732101668723086698392189909985878821373717895471003580580631479367943516830246249779617415447064567857682318199761240733588953964935875356045428207313194402810779324208814762541345959245393447278021635505011726478795829275508714929618128358137264110665038343533790812577085525969165735577939425968926053887502259949895217173255351970466885310555757847937812894792245330984417434584478908887193481116059731951755076566543774596167896754819307615708977429638238854845857688648897270960213414537634798983597692684458049778633632794542542913999744958161514079500940986017813536328381597588013483186265250280656643454873254387024226655556166422882613561833272824385416653460047734122515629962100119792417921279233449397693176261289715158621297505194898843437718792512662187942684602886756705870048525091167694895106933432461449872487456501888310528165070611907777500138826376195662709464192924019991511893523693676612662167495759951246055052254508915642326201181221591384285955768613122083974526525250155415953689889868500226267858183943210870230809979421061259028771675251176860241970673520316328899160598736224916502341584985246187461026166723825611432251421470421283997239062902744393890677225420703351857076631199426756165462129528834932797642804108524253666432757216180680262332291501610691503789769497835357820501462310029105292537768247428982236100302110586661438723654645202817409243378618172377599371228273481209634088621443629909386076824067252302185721376393932764178360250046003245598501702873821408331752018716277403127636807309339864668963803980256524314013681241435046881156907388885841487496424648411810870507350376166915490482805868804802295432586064342709137020539330467333069707489417294308664999089171023446074426047669944585604179944368245180002933783647766325947282605785232364332290562587338691774529327222911511084196237559868038114904788801478016362693073235336459704801415332176149680556079649017898989041920518242501819926597845098897174915867704302094743990179249557583998256667768385732064160593599318677570114634543578338460669174129993042826582533097104089449599501773806705725939176411026573254407274252899093540075657535620234689511356525614662790493460146029811513168966889291767943021726977459379895985794192651767892084001395479435020129627979210702873366817035586977777405195772670040921164784185778417685363135263943342105358358347897513594775934401688484023332124571442475211623100736863929494344156443454376752775317642485729018107723130935455378416714583437110878613648291428258303074789263253663861729852729457439629933076168635835871291930804486810526566540654147226555512194729186858114325581110496918864571313458710991811956814435824918982493315131476190539088920534575308149826645950562703734076444020481647054027466316002005778714022467653848297539625936306924524788398701705963175679263698819661495802931498964910045804288463854245242219542273927304780253058614694047381670687794418842787888304547648805847517603474941317759319120380527022367053684811410549758136294854298252775918999429892298451791007186031798842449917570358632913659950708120648791447217182553612876939749850156083102207316323054494094523687524656368272137601134039682895947691328796549659802300255028696308246743266530076131795317802983884835682970509856534195333585489164942717721524746090508059004385197087397165100624087873599059884623076343004621381151811159700043154296405232736476246713741310441600612841022252357692772028721661507533221939812106508764751099981828286504196731939428679293894884281904193618700202062908072455527852598164885427416632270804590602151326531577724802263221286570197860776369068998585825330119599546921999259716227309820955840752514400103362104497193995403704337635145951073419302354118985128656223182597364503074461110861076941230880114953374068696027141392538859085805319173000725257420269024282994425782807385282415341650363075994051160696299070583014540608446674239226451257476174981905227705288165368081678611764731567575120245759665828898349739737665705522764432840781366466578122022545188285919010266375881195073504662884737798269200475052880532168170228479468422386060912587266298615366656897641730949031484205602686118210887914264386385892900559845806975140788269546582115389481494812283775386928886109826315347527984531826290200941820770306864366071675857240358029479447008772096926142198714979079301908724648013711914211541907529029535525991908773800163105930370031744617131508708096062276321090406029650072453826442528921780518408474526927191722511697487685060619895356290236411777592950455950189531242715332488021589772692841902883281012227408315630620777600885488186425620284392934679921531851308574311811011851261061806609966187967469982408260791336941231619044146290038695420083890958612826212061379492176662705023686918075944570836525293724677940838521092664458502601168094889318215780500982113468596115655399501944110180520679656298640742012127110845386827470363984966792856809511643756572749318002467759812368390609699980455283493385765340647019318677091471322540180960300857462241368592865073230405567298882735124536228700127258621238736771760270002006972674172017209375884378590671075151582542941820467865170654846621710653989892869991439526629008357213895252154004311994094934298620597888704084899724724222759167432887298078874912125433768866367937624428654385997459107401748642161774473953747823099676852414227682719892169802200075981669771279447295977284682656850919414247970548770459305548074444762869076702664604315543885441127522798950872023973897185778559982301028887897329705480753063539609449422357873074974472764200712987267248693257124391716807892764574196064626911586616884489008496014826097974375359533783640599153007413600442930025407009172895403400988482391871952296470020925605121829222366184706470610689726896771788006840256901757233626507000779371671401871883026974539422976407401711015108940484391524142389889461712859086619488797208273680783904284142837478924096109612892951833032530403744896525730336147676282535951320601535227001879197483235119090204013063149179406849961294951438095096892147786986446952036852329419969780544146088063522788726104043182280285977526116670265394779101946403911674668463262079054966898221649207907861834976109745217417185028566933107773510109714188802992554824246550194515704113302057331148534139090036575959102161445164474625689916897683347335670914399665374169865780987050951404792487943170891755994563208578316199380291503541053341673686837221761563221268173203681699348166461697824711548154141998951962329413846408218060574977213731460280077013131748365405596087138566228055662558794418434391835517900754319348703524632092088816222961464439182958781386376961080195671858814473088843949306550653789772550459760022567781693680552856764099545481242753746003367722471402218064726114245827839013772872346438837938634012351144921379297382358781365565009864249644385689755229171065081370529746922096226653686775903280920306593562313267538073577346949031838995531377255567244844370826357796257700261196179819194248873171105555590540163943023219760825108641999553216089628091288521041643891201039913977833288852229017420962032092367696799992770368444309417940675131424843920021509653027671420717692259622283436301345723580088748367024600708594527493568248573318340958505013301224782555738741484286681231332385997959439118339191196577979779302262124098496507693149326994922765677094978873687015543120931380037824077352008689035229873054009028606185638069486980729816752330905114191178081673708082464838363516021094041398239293549135490040790808933213502387959915362266795055260584296644874803102026725039729842083577620451849706166779104735163254003309077178551399243871109917932772618860001180292355767749172554635267027032612176030237947116445321268797413888637253857519951368590116423727613643381800083022373497856616474545109872411312035271254164717928809709834655144942577882819559918867359782260427417441236631919453550879399659526807266297281681540437721298274191269465929507170497680734986443647128379601636650747785025953396871813405590995700800316387499283673866723332610072701016469936271587249266423748546868830193095674226358321045411127392557280176971775708759803809805182500303793913160257521839371837418892279125043327237835183160659853355893153659309087468385772113144265777498137243424694283968317628066161686561557622569434223205248339963299371832251409543108138180432800407042326566096482881723406462729226692893918925133032267286506750462251247455760057697967596059200520408400114705940310990988794940880036181667796286640410616875799039642207783833455009108637065031136242004844324385899011638444937244918511429818440185000910302989194392405646619838279568892389757863725388103042592504191668679850201918441084930886347531308372571026178677376413625593182106020803780773664845972341651529106279897398586570906905159496829334463663452382753465255674626583005380191165442278245151777872734203682686829827134878791338350056960900922715844206014477754099121921658729917332876845660245715479760142547561218260197706187459972595708234306011637070826938685291521341977431508667945703671195790177952167090590050917062671675061899375712594887923556846698928823312743496165202532253756927830324030766911754658092463773034486713107322179422514633444110766869517103107716563071214981239020957155517561225790994260469461323702982507315047018362028177141880848689412246413057235182784354516580351658447923096445907197181917487484409829312930676512875615794173038508252081683801942118740071506353464846819791669256875555550912364401707585553718674692217197147531367048070357541059665378733013539702458304209811540224206634718951126992765291435343449210961504271853658463830188579636475540297570113559328151010714107771596761872627420554688630598006833560738659612298236147689334540314939731051496217037253234207821683207785640079358119044455853446866935366212881826509330081013286869629873559878376761534104085904822594253312064784509301210110062860425778563772963723384933621105775619022916280073922024955986639503139664916979468694371155086072421979021684834791689618996065893009157885495577243529529446414396743847914417005270581339297529081138429129278919288626109206453233268299738161480231299039936126465767387268888314417463428543645219907799360675878399520735812014815193538475149919440181231734427897413316530367246301814371547093792329913956277973140622600027777332012050429790585744173497352572267884020440620845105298103552183990260235829785001837325167391187610882348428440431075307248288832738641395065711637426075002781976705818309179814994422447245915082608040090465751678063544177791868727557670553694258438445955579524100247459720473105965236256797286010860951484380441801995161452012793638911057605713132004892242552847779447716263070674842619096073851656340988229371761652665106495700974646474841366799268289160062687766989490137905633007389495548626374778341350924547342452626097237113573405990790058887787637737688952139894781008340055366042487434010164215547607367864485749711630624150937255421738708097212165020101957739212386226053224345776726074797404427765051227109599607046238543058734145131863620160890955455352917295815198143985368215898228653152469826061010652204845403513943833292535473499359690010841174380858593694213160682765534308754174915424272011038912880847239491594559471733868331679723890857578833093602230121289309474649058812050124563279276318317649519396826737715445287125699670124852464224288828906573525109107399170638151477213320981416539902375163698842349493463979967586612296823309853466797190459922908511163183831582128776620360787267474506401824787099821563159028808425309525865047063627331231506942351542142374723450227305590088220256134512457699228568671424225093764996405759682206492407979788059902635333790677429057748965258613239459819465560010856592893513273747727084342071740944343642250884314570340645579603015649111833272561546513800685929391328736251572009678770230242400564511695328758103625494330900837675549030019535243221278547432584676235109212970007085279974319936780990419475441153984257193249823910146103847610676759126483972757182038143287634335616495439964983105097707037112465186797220677224417490608122362536751949415699738493309413018478939947496438182513249771846869043343851862662972871663815209330416582961497456604607978260143754739295781452504181031419144684694173987602517273119114451614207965685244953406805961543558118422056373119840921814098019396485028988432461787637302862747022072737553110744066699909531613374738011458719038220736288471222254333253158974318686953482423329834278977189076975610039596438131899932004824242650796979437965518316456152668616726422251840351621183316298030121201773192781140808226039154359777191061458253678154257937499786321787804653980119795936974923894091646249128952819852090415721526595475070447479224453920392475933645173529236529971384382216446757401036562318314896989455731507060569704318155430828518825167624579595101354138522908831666748429822564756184710249089068298254681501436363647443777758250311402642593907353123351198601838413678336252302668120574002060831386660490440722312055154128660599962296113117795264727319904477914462769460274124039968320868260025679565342836388535148058162248643894211174255420225802091502293647162326977970950430675848522299859959688291763420686443742892385627670709999031026058012148446631399076430302472792045660153482902858459053969631968427887286157908870502781042555928368845494505886564148776448809390936389012569642316236644165558167920356180342396175996748218233686944110994830824854561558921448076747424906630815234500939928681347463543185006148808660390782384308671948341249008577615843565735656782799997715048788850964883357967499435936985413361160310118333518202159587165996706513601194587813105875055282068569576037830730987118820345430417568973623632831982755886123097814381552605491080899332628851056482161243372910428379199576356055876935863222685419684699349478140276712575004682124148800014378904722228580590473117011974462266521261537611373741098200739373735089324808524119635038090392212109883823890595246890234506627000711571565664246692998174787846034807809151488235347206204906841730885333271108465088530690464035900703347007140854738812473512792837774691583568689450646073542934144541020688346751357449529411872367781568267681348198415175839500210651924277188394150432372009371903277844657609999529934543297713621023052592619098896354346604472939187489341195143969221763590428742699265189343936707032711999245069574223521282531287436098091259327374596191162296513897391801774353426407107191033838557885068918200207212954892262822570759063901578952037908008807886364702455947747340780267151226036475231254609054260231586015755547780375837044072198120771182177730863985479765916815161789757297888346254851930416192217368369057029557835639471496011442823550149065697801910645396130482176208849190519729485115497605839216698860390334245826347640020948121085916447332997828262543809719969362385453900956169734706470604260794417697923988602088807150735366171120246552606165472332797950659412691509167501954128251797156169885912741168913321587589842857490062021130650833658687412709037927369540378669122234546903274901677119632661983214997372804110805520136969691310230468392787873699037473566863748093431674685868478810754381016829902602359543892096022445167164474863366135551928453199089474100090613510209713731695364079090742759122220284047952904707103850084664911660223670142255011889793408695274420041961012142033875429425154793569696235512051743646847140145092806780277766720868134561561722179321190542924464257130644683850360344564792190379081663135166371202657641647425503828066406869410848382666673383510119995911034945434139571196877481456908188086581860416095487202351812089555697511069829198170655773717372883819455889883459092380028703200167575720192341762857528092392491384812147120625438882424729646879649920871120365212671328468403920285346890793105732989588779863970928534142238301084496368052192286271499757004892979037932534876954789107804821842914358772857777010301982868223184714752364332187292742619606467484946388105709803337687946978599099907943951184171284631174035595305320368851315274691483766179234710201908866941412413937812344670722043933587516942555460769637208067132771184413662492961505276654185597177370838069818825284199148003746918676937679990170822736415142830111142888953112928120226894398262273356236648898359047258559609087448128741113437803472775260377864758378877870688089458466949956901110651380787993402112056830143829143695465978999146045469021946713071758161154495606449381627168704132487585731875656485880788579965797231217838705761424870310110710173426419612096001585835662225363204279832464935780903605453787951780740628286384327695585068376041877554985583476526885215164562215522348431460387950097556892564220831238168203618524677515733922780679366724174008645253085137118424436502537110614972687672625017692953125897111319415702926233153240418406157410453619557394188946289465547562728945599052048648264163489374507245372801411786921717136009087012386476296126049750162037454846343328912746488769663634219712811881417666206606285442519102581464033791545993498448939308926806956687664895854939627233274908079837110772294232339876662650024252418148245138043599767424772150728026577213170988433521680215199215716671104976192087775548322989791822516467350550707719367396772513515532481477315146855238800605307883915773552771152420901531371520227308723371556012436832592468363815732352063315251507614047780264770383901288140357751749818863767911747484164809089775139657151349211522857666385941293175365054155102340367662966155267673600784434462966230236622713441247005567991243262658418057349232013159889184496467262291896736070857147070537689324870356738821041420240564369585493691266852936208813759549283865857363511522705949724209946052175035180425899890373576175794775837742300064474724991420000031443481978299412232666363681423853388000885903432487862457879837237007587638577954178924015750353930089719232029344655166484266963314350167361169588286693190577979340293256549559907670552260621945877040758035325146538289210782679697777033472896911471671022244470943551391498090990078066460629894548927319448811964737671242432582748567880220888637018669904698649017763320278642699577376312310493695272415034437294322590896519084492104032370214196223380187245954632129746576672094112279085535248916587307386169768167549204116480139458522329402128930205970136890659206184006316947251166746703382952519983356732233977210760230759890243409114042640701821670637624516657290634914388572010853326229061069447312631500877411133919797586752332040553274600885116476920633756326023670549275271761614819456089508885682733396811905550882780580939439202406254268118191260819677086887423861941458562716984940059905329364694926394240242613692128514324631347945058406656814447992715986735772623725322470774996355615910449693349807928873424356020901431523367940497922450854705358418111110534507360858872332731178579504164819884265188364381877589046018439370017121785425454991661734110756004726262938688657698698004138252597557551716326077761391056107755591886600752706691151740117087264194219012566369864629297156327119738566104470702867867747042541867528342299982783615337181165157070847406002190664626627085902160773143530753245199563926729166228850697064881161349888959703760987799526596210730824770700297776132786391177775660010595345996892738478130413562720109319206189681346911908731351249633166655181594427624763292186897653746697860251841467360760220422964856306078112923403841724189396751925747107979981156978265045566391395684623397930609831488222950945848910046505399617089263178285983868302000520648109696878509596643039193733236799813052221516818811211248808379336074676478831068270760708155798829121815336108630558433821313092728123400239535328539316332804506680976737128799940395823885731449290333825807471220999792179888312762164304734187058441482625613629975449555716463798113021298148873832693072878366774636013087798384717796109988499569403112264624400495536322262675059675729772392236376408675040830423074000056994002552102025968374992391959542366446308025409095853191024066898908028314640776861184378352332349314999865362924512387260855744689864088820786314018110902184548351558667267315465650960738663949305426628551322175441913476800141366746062349633332218079159766732464196492195475271752574344470279598167937839724088550077360661128778542662658645175446282494297980909465901295874997038367704018079829686633370452333120746114298660231676769982747307674191559025032653841174108926065464662819376910195334387113489812043242438981886721916813102513187091205651650228115553010250628181499410046433674699436121586003745610902747500601028087434755776240279688506466627929379939686046446365080012989598414217416842571266172810754607825151684281020692217675493950082292109592089189053293712373492494636830135509495228685915368433832174150893326197907513018351528808275765166301780930470022769558057170641191380437455049163475945482127941023980674869363005315714035531906382609758027326326634246372493113098846766332487259699332241231282838952321466484934945532810255015483243051482102906944298589963513390718713932272721373554254202580309476610864613065675010437443030419561646518387919899362318595793989368904113401700660949893967989383509857650819357089840985455949793050091603573371988566649001044119336161522823034304324996288860252630550294548457832079999451001747507492647547831420309103708955979531114021832141486470622644709773662157782051931782755337873175204802681525269896961372284445386239612933799459198857730936480670319589652604168666738521847016755860851009275300388845577171692742446230067535141042460436800408702292858714492549535791174652611757368992734054903102988600443457906351436307185948511693043454694189896816185312675050105176587270779311470411910220894240767191125687904731913785862589174865134886996501531903165914124804263397280381631154267509736695876487043466280617843449820972249315926811385781027608979331576268008482481101693633364700371376516334072808147915418425535006116147189535326485145685756733804793947349076220044564234557150737183549227146563341373198732367595190926914410656151903649707922496979396180483324518049418969168435678339849525252775726150868956002279196962420243734196173832658581626261427186367281928906968091623917920785512008847536207554128773727147825190704605439387489360652176854451093401686539634427277281750510298128954652957289360272142189430925712806780053291851496773523758687861259009181667716107794237477864338669421755792249790195019791829929749345096782170488122430616118606805862549615287882536644187718657001531810275608142995810333893412958171670351185921970390500696760227331630090174174740194862608207659653843945298087640662963208165157399660262898875264258528655309428202922290411848999912672877272567732318653626349959792241870440715941996412678879149615759760334323912025978823579621442154096999023671989880137955358199574428420288695476634135013422474240996725937993312761081041271322336416234964353159010633377921738944632193673153196109285162985706458609465576625114358539859618066656188186205243832307966965791322162215529972309694902839492568672951073685281918329782897385286294555143297894726758647333906364755010960356012559533108645797343043027901034336033381528634617731698833334844681783194807433562125842903455805269510298665003409013806182858012879479177329464546682733741542179464149713164815231299779719423440038719885508462601356215699240868004516513792915684891189876521039153414660972568129946291231150720583624677394538059804481733286821881628822573588447092865650051057537015026157731538455993109837203917459535655363205353677733707017860678868240281316809767911093186190034633219960233533755944827528868698957944330012217463129828428653854851127738523711739448781029718598862613742877881929637912906632073444427022661560270068366823570646957879964995295259635447774199784213694739041162066916273033819269406589207057086477309202175684744730137414123683478180000115791723069434443047708701008572762416152493704236186458377785374772977355663585744532729324590410847341551690833411602990103094329684998086053113164243213145331914585729228429419311383171223585063427105090135642146104779629810590560563147266218544427129792011701644333900157624085117956210235581645628550709938443482636050558612346184874765424167061750436774012756255783059402086087503371644271295140943118631290532528768518142234918007050954505755018346499193553828932164050602338486815506049348632254141024196652683942036298400741264624597035371199037593751038661461738698773191208003948176171344527868553073075455447690806820239901155928164822234172010075820548367007010153415416335231955430395690595103802129908126342137991071544293546403975436955729310972226785767996768536800741969984761825531826318005206389351171759874025092054428751782031884457623813114235648151634320020950811189317175005409140592696621018518525101787573962151141800708305925494722516613974757693156387414775978511142843223237206198625276946835050557024568804359428586757537569793445395467575776999255739918831257696898054499607727972106444721754515182617255275286305089005992518092506857533841054707134973712466563755590992629562968833842648774172170064357097348712949814333329030820212642099473297120644149399264878404332831861437189117354975692692764228497897048848601730301873529962774492898544997826626858779389627379071063558616164910201571361966387345724860777090454565571286461259208948304051043439598075694425839347762158316149185726768065582684518401316705668546549734822209950646071668751838866025780655663316421325530737996713198224660523863015504295897810506341048860832492252897525109288271522712533740975212579447050310564270874633757519687045836540768116580990568217312610215378751136935326284459590816291650511075213962149222575757338523304296180989052274572660421777065075160585720296062675062851121897954204636923953958965043458975908939969573163369007132830261691232980478863772254159019786189968371573240686772448953867122491371357105695779033462753257308432664447479411588832342517883668670540168272319059184816842184953232183210189150275305392935068152276979304694773355111850392765207039025277550601294487090289837974693162139025402529430331772595257727663906242715838429437170326590279722877217759647782529017046768801514481893891280848477527577602083841379572438629838534061427824549392407650251375413436822343205724851830918826269864163445294847573748957015938078842068593850346836131735101598425112857029688238851297204559894891165458417264219831101967029039504807007095439157430120505849645951079091305078096289196265354866672384670432479145381483978804467392614213298859417693495350458736676138095163319149991105733858144711904860121821300221936711719646985340456135660787329016851778567481404009198307463716912169487933248226158564388826561874783440612167387475801268128631680815262459552001844785416648080180841917571207411458733635514231223190483114865455854945833400630839854797438427737451842288704866962453955360122077829226890566077583212471153080263442048888853148495314228341948653169731130926101511465220449740847277696151992626727961597691707506605833048006759696161031450763609799475409515910854137690483913037252285997095038054426576821284919944101295537826824999379727341741652601131206023017068079051181601274177246436154656517622912972899350929974879238644550691128567214705842907310101117715496251599457966956389349948483331768450405372900849974997813835748730287708859632663001277056903708794252715367982138005967071264359494126552970316757539353723925498365132146717897945201600340417831252240836341196690397358889162577413979453361928935716675865473988706018969173602625415138674707003398427598493103284220911618505638683248557213372871754827291759573602607523364932330376229562556729078904220802167994263305943946266661802845094117343877551084101246082961054976882433190936292249479606345438884519716638545865364299681796429341257833335150172000111016184004064705162118098165818940427430899431420913170062179353481599819395764533692663434395570304640600244412877567464707100397698819003833900224141461582350965676828906842001761029050656286393643311931546053970730110974870832338913640089948444645890494296468441149179712558143173142310551559668844468117817616124047548061037553337391641309595151594728769535954150274565593430453726764663595129534127211610948518774837364355519118296808113059340767655546334009168026003570761416722538461797193074543221375305418214044829109179709883013319694007070308695492069197496926087579110221126872790991592479514730193013937771566513555795386855189063162868247504769889856034561848352126368025079289942571103348189556814306193438966690761834371113843508147283625557635927861167904690136649249382388218410335940037068993334146795880810565979433932671652321748347311698459169993179766461489115125186721487325184423643649240961292420790845132076971545338344507196615011281110609540485826488197739831085669959681585874990658465881467645897708947180081547550445117613086360194869891438162498807078353869991405302032528031397202470439266895808332696059412437510820337778947528895924136245376767346036903717366900319838927313735145523008796019032265335820423399843480487302916168049821300046702247750051431185740033969384625933847701337489503245554311362096000425782152426465632284345773530281031943101547922246987900636169815241468198951910860010587646894047425044125928927802456202037684627905091458010463991698301320946321991373511845037244811903784222962856427538237019361209311614654436117021583805169029923770700794618162337703904717243656529156173822082765067750031348044292297602209957782770042273726381123430494653010637651813933481733831348740661061804449357289353999471251364609385331751978799766203116915787485001160551504102668120634645734075937416799972076918270176597859142725395798211284070150268132409834252000357419449278079609453844028228136215151067181856610175027618511029871160247550467868905875667591150920331378442705713138351264316545952211738483347523855990368943523632422315368237351430922010948114658161632395628959419637837593027532638904635987465464505287170684668335382246241968272700549043838735709164213313807217158650104668072932548977655570737024008621690648924769152303357331586029187713821154055133502378324660439661524296633692459617809954730648944196151627120536437876652048143389948847633072724033134108640570163881846483682116981918785939687168999690160871458970297892194025713328890667525118835093372489202844218713887676207436536564592261969033929887145552409697483093918583164947755638884235314613342359192639038169551565913068710140021752487213315601466760947981366827259022083911951022309754444637748972564077792548951714643867253569148674714139447291119253380825575684525202459230542909317247409344569508859400562781498217351169628594630619930465559199398078468432840311396513508270030198359246266872604531335280270084380962503297643014831861863886588278933422661743462493119828089336739540700988602463173259669973054038826802240720006346697309514785164530320283416006790043572791263052638775758307969553777122132603322394947498120164122182156249102017013837386677490667638658222978792222445086424486989719175581482477703308251378548035835076117488634357283685072797226355816333197606680227170428265622122030677432837423396615021591408150959555723595246225519074995507462895872231417322576038570845435359212637256905868992633737895046623432442883708736037624744425486914755900010016615195318062556900225308748096676515712177289017888665073469448676527486142967264489801861005472086984315074087667344560432125053467844406242071678590934551803723206237968987373428659993204138219059459092998948188889955934212439500978538283295064100492281424506554871813734746668235502963163326602316166904649666168120989500031661485506377359302581964592181775093069761743610002506037397019274459910376506612810110795593645072122797166030036197677678322279057845683828109941271041348645571305290277042642456103105005007219898267542329904448912211157044185239572654054049554067028267437974368282215539562338237550186556805934668382962456026503924503316717779004685211421889855318567253450703362819944845237265923262858260088344438347148983457835407926107493158254025336862789174317957924139190225334274899519811529632199218332333825314995478563736506102057346624043343471345851509567472632669810167692522032983315564846023974459656788877258167478009642480332537642961581237121241069955428386436121303566769844434352431740419193271889164676885698580062452769203591078854827133478878231760185597870705031758555620913138785749334893642750370989191317821765697620724103135158540815479570084400160549978983899630315436172216816193469087764306297927365904567885279406310683399352868460177786257457240321585658215437813017757394978705716671958700473898758823125961873692668583111983428955247303197965168716999231475750880625844291059944815991453348686502574359065930718510491291267075397826592433095600902868735627199149601036783471920627180818227550559171752192322289460277158315598895089248775333992220234120233264145325042683840069436164599080122236659093300393735092780803306676884853170723229302331693730964169707611966971943797465102685187132441562794563289452202668990644386249118137887257537323299985561951302802347899163647875518308691814452088939263225565377726067462717114477173563502854334572705986241907569472076863112248383977868283475048197522493994892340895745910684087356102108377001243058228495901480211010091090465200612939470603214720780197689873434138328934933597303998216315234480118102076717743893392825306604647994708961937390947567975062465604904989411924460468094213672807947351402368340854436774393119364829144592170711836986299209807127933445068023822756212575980655553316602809166178802326104038046676656326566132597933995613223795510757563951504094472470592433085047595876184072909936104935675430444189613921237822650359346510792222613431854883815486515501697704630640982895285831642798277254956915749585896184753032634178557544878131210304692613056778991902359672018014729565378811850295310303182766082840503451475524142486114978584717087364843872371311177966369522861868905357718275320627513247382852212099752324046724063698751793092703383790853616139797804037427193411154438676487442026479909664605292920296706923809248623930445827991118694259377908191006092189141774830010274782623443463150119067202177974074775351103807159325644497347428037571282851539239570577387824132487788745583225721858953214294801257540204197655147456169832997216161450193292310588616378719851040778429845294057061079832374662847272129816268067867456166534126722306000622866407025328619838994818852027360851423659310649190230049738392002853694269911373677523571145212542950897847556791572929577237505054058645586978040900501433473580387587785589865562913431313441742378751453141589119524089078231331857968562541960501919012279615530133408250840468533248669172190989978810505236871732415377210578408522765838261917799045617193127936384255425617963772031892855965863730872312361112494576842184894561166469249769225189685418746165470674858376975622298607723630491875985363458887516291620978660014424982540209215212880351451758540922833441347000469261524248428395164964522504413361237039411281509170056142462019168986958975882963952376169851202434667556526188506299828034884298860329348210668188083176020648329026270860382299561820712143966662490453763170858422385184215687974344977727652521761163303036702316148527949248062613758500616760873132770688395071076045138502222943531545124043910761960346436550610762622675414265731911085430959990812489460907805617138410492926052141658096739379021926512645449239119894993512115593778503446232359463604408134001089186962004383788656000150403991725219656355028489553513668959399362656547834164715671912054815825237698439178920567783360687466575470306176710302467869970875480831311155700954764594661961672578775549716347431790653721923565269962758196468987646036803101067858266030810792144081012990494420737509876990258775606327360737364293723382035060657565245227608710343072533011757775944568437935636037837033168664160822553795771117488694077341025517645918237755682728888256742141104185221668047994915839266342112199492848108237545816244216046359480421097189463637428679720795120776657622185839181350306100339782124743690940000657509828146507536968513006926045475932802293933730599318856108480033674957168916563162237134451382781846004813473515039069248053475930473393537853787273981884120031760601901294120407991261370326301600664522791330287187146046325870325703279141204641349773781491073294959398831794907816749343103889933870234227872441544559647015072284654420617264899432240667677655318920832962560275180212557713011495806017242770974929606905131694160424526367244878312672068875404179999396526604732055171461910466710797435515921384326237919842641998045220933591643071820223779751287460015993839892460004470540024948640616048534545748342767953574146865571954165869371363133306516344099850176490186140465401011538518134551053499756113320095353243910428294789318577377755538358598311729319928280936567724650423307871352084283305719813879436593521480510685590369071339825792497657986533907146145485631024406008044035332763640109862377358403767801388135355595847253209165353275939563574305519839275658465976921751654934807543604479710065599293978551275380927905082526177569144951234116429136418331258129635614300329243184165942563739454391553591298105637621000401805198392915859039145295976128514072819704419372527078342572731196827734386463793288283432464847912026487256868239682404901924568868060469147965107123598626943598144973826439666772455795895817410633983737521206193452932987465963944730536275062931511550576858826761204971740564291666659259892417473111712597468934647471121215967191589158848618456350453272260309811533035128613821191160134135072510218260804609119131838897369844630178444423751127247650790243265075279407325589984749984213893604166525363229994772772254661080837720143790403396983602951699929613948886292390525984552762700468654822477490807119107614422184678228957660063733424828212121548445957649176224762422443435516032084759826566838875368913795488549238237574289559252715435278989663981365432147677148816529820901941248493272015667751863600659859135775543955075849012078256997688063596170878287202713347018611263819318258195093950189508573992752682462018193435022833393297938464710073357924314062955724394657725252836355240208015694550901373307446677608749268920346564827488393472224066712117298173553121482794950112352149827277721348361898054356304949218928261925239092451609120435600781687496028072693125016678100966541969372141238212958158020516740196175788232882224235709347469490011883308580844999655407089797146423418728907996821919029398825503914388434846058607147183373699357628577987543530090998516160372380561577222861549390575866922711143772913115815097656890577341580536676044289126600915523536135987839580475134971988653099223020741960609974106304697954979209540480062971909329851897673804669443355955239344494494470381668086792964640602799477180216955156199929872116998801344951795116466737309337243766649355999418857499464179831313318441406451049244136480824265040128632990081828017211655664615571476890844344676414857943017119028163408187105462215919657867332794531766309394401843940410814771513290146509423431018976072267560808317856403383961130877911740201411997355615436323056822989610823131963843342570392735506193673442858027673139995236502725143093008201493483592413782401919091371007357716184729283522454288530366016950022426816282609323037844412055791880324996708640563017245046889612722260555079987322501772775368015799572051007026720467663368745009745451210103503347153323104603269272598745328367250613879268476285077602423266507992213027066587364476656591735230861878606809814721340127185298371404747887020768134777837495418370602385848777802486910855693960066252341879824934636376373117786393687739787509200772729024234484585042209254354546683583949768483817463713966303655623932077343147118311855228106003419023104215740531394732311410803201273390512097445448621907319649549120407243265889650290883288959667234946514938698999464327303034260980285291589530877950111268163356222602050504461726620254437503098581040048545760548953189569016613702175869963034520908749871887188961707508493554999202229626432459695682644083738716584866849306334275777103215585775679930649196128059992490766111821325433820059092320350308579005675337649735176448306012403127154468872164093727093601520431916490014660482423484153390211982282637023602128673656152065752815422385673616230508997111810435811755610252295391622817140157583710729346445509894058642451128968453391267024851349215832379691553179388778974864342403391078745742213725712318324715843189798424084553301796409119265877702833284950974900541929359509444989930233495588789971147522949418260161875487386741811559532046403504290761804385454151208687006156171980197250023477285285250677551202339755696199162191190040778625976379005344560482517645559049636303281133225465520075170071066190852685212490961356921207871719852862219339016435814615398020278604429209370874048788895643674463513802378536628169441990685097030957020537759625329312588420724990579634947204689979409314786275860957877623585548752049162449120879476363676372704377717869013153501127661638074289272318200183567853326656189524482176247573586298929953095596699596087398997275377979736252658674009354776212877660634456931881585457710930562781579570531548357968772236986048205738199355912985622763781713384366384070873204502855468173683864576226250528577515773832719584386780147037346739567453243760898423393219249262924375429988462695429279183732965839639036949962286416278007307525398217045195995490917086268941313837395495170407258471602464637192953792271212255079047400456516753940753203185182962241690394018684436291794787280365038087851375515319812054381691694460074180569410810216816394889937639848466928785642595212879450828260707425066649773229025151118535590137918750635009603357115502136352157538212243768385719128383549316300370660531509979538228536732384192923169382307623790396831119793409548198011033172254784348608385457330711943438917140898328205007319794654670439240431198768383234924403214358161130994076600140019747751044776283600238608599180185474545965514885369960244498127822852856153486666649700228445899326447343930990714730254824134426039374656413608379912240562382935312957966169362536142489772700626304446847594930432353222006589370780782204690633018019386555744951298770004521334256155889043336523059679075311992161509768089526155622824431469272499560392493010036807404216355563038951709842366723403521622888975822589332697579174505115291900176720325716089734453834164131933453651862855148493691012693267008737782425893864998392816649567231332024457270137323743693390549182489140587036638493170829789492272643515893987038544018592680982550874141052430190365908991276212893711669468331840825591925376791287061555461892224893317560135606086727928653827732100279122763742504289725755828583754015194067910252448106883602600122851922262099891147028802709773737966194659263830446142125653277271871912723115686466374665629006053014960319455189689670238531101598458396160329347420620325194179219530329045683525754436809790449171780976461805862936128162120655502192490819913577455559943032181401453606721970632153480027071119628447977744024893152588168929359111912782724352578437395531326194332866105699717220023871926904527919520543488303162517709177115878800495835843067802412800231725674902735479438158552376828522646897241737040246292407839886789117472596002718432226694761638023282542842854015227981100555015558170128314150478516987697427259684769463043554708119894778623616940781488987828529709341888084883069247776092139833203780386743647740421616464600906198420477637788386910357114603732316378745749818836296445787772053359110680481195016526175672014032901085640411123044128716189258966254223301747859740019280637377925779900964482074756525614766746519757318785185944236302935790157019899444693043275067937848899880673616859280017864490199861180030684166512962163696848364059829495417509547483953208074302410748985272096031166292886315811643453742629921838419065157946903246884052656561472263664125351625022637918842279313821361867834049642295631950513257328265816964416721394509939369580908040440320534655005762238481883211777437909462575141106766889251366874320981869479880028049931649684527722015051966708745976949274599321878311153130941945302915692531488304402933476687814319778489711440865422544833202237417946268228223800496750865333162481718524769552221040501952418062526572856532818150600508618970508215391936280067273160874463728956681980661890880980523510858846094409772621337944077367692954776747108399140955838378160409259387180521795123051331168442629409445798807770449082368095072821463135205003494806047433396724976539146676625483391735488484262743348654654014326942348562672997899547296965475091720041237151192901308764724794750857338812764433575254352496473878361776990732283343360647680565423666702516326344082254061280387007842131460642383872424131560331738115998192549501825424505659299944894439432949220837619432759417832307588667030903958669058695782419959537520745828468075699174691514655773094815636057764147538044165505184144698008763641994287320244759696117292447697018002603587195995873380495155465420124122072546205934985347656136054161635831673563195374261748073095569168930800113699313511490769712169551083070099636393262633701477859288391683085925070841532022324443089108258441219646483516584103991602419777505604692486242115126285771169341436273612181633622191666107286191445165491492348343136348993281607352875192823982057869729103025807341772244685066054931583642946536540406265138282117093972654011894556484959454015473987667766081446155607793302329558606866039639065827776271656590645099673666160834740262045253692262410957634867295128387189103240695664817850460613992403207462682702709461246126119410031134235716519171918530355023909445857489559093136449652033669222407166061064752285271126968436831243077690134210077040958820869135751827261309844477109076417995784927417205471076544838848184049520893046782956300412549651966706726325342781421896920414406660174985686630771956085607731950890638145522514245792787707367291627644985367274821912295123363960670960049497210831312788322192202743837140429136309877780134989206540294282438059131043390517127184925873018500284062225005385206616525837176408874323119845075983891353191397935619643948867400117790074061338747507289052002139592035912500061696406379697479121587327761897753818196556094124453422459537035134434892658661898664108621450326187764071281698661402554091035959522183393280492897619011264502104208251494239172426097392248202052414805637936530033650292525636151789129285601528992579329964801069966559082348580633546126496442728295237195395480786316587828240665993940194232114848116330333846934182430248676825462870398271807213962613468000231033160536592369770294532882867893426562453596273653738646518973776161516251395526729738865269921370707658791921893898913540581018306874728480968643601390306107116785156143890673976319779971211213549627260453383205500885121415001351173275110144543098414665858413553472446260800959440514568356101926700740013872384096148943531385399952848739599999507319884910604837061076219827187276377803017493673285002197229450618831689975256883871542070543133096088925571080023730138482434365813680608560163407720670392638589106321297432884592419668409821748053476267277432879867577925609476427410781098761490081308536761135673474235308165524286667350286672667364575143834388655754370730304235610356269831489924769235474283747251874531053480870961578265742098906854185493861586138819271233524258706660185543751314588471653398202769093826389410362285254175344453818484304223201407271590335777458942302413458972037990890351343528267130109169407643225305023835402973431657527328804786938547620840796991774068887300592789074674158553040524420442389592025558321346706862527964701545242274439132156136606279938664997160474001385017424377045673314111763986943296488216294428202911333999003002189216848479799737979368364564258403083968723164566100980720724830076328569382497064018422790258214874439518782231984956453314251216658324914380707458885384271048246169093129783503179771606876633904137736125132383016789495724906826810276473212340065296405251607138122509452623120431401856290593424994074462369422272829110468205818623501077521657649593210706215495332624173178646442174145598986080885970822534815473077132523714832429845930471836629014716664104821776624701956683966791252657374953209232232502152331903354856729349683721084779054467877206507779246548102733598828772945684548391211014722425072218204213224500512646428551456473623906805088931787500908635537458445607918380515275371608640973519458613776897857689032258693022202971995168498267537356677056716026278637864018268443642279551923654924698151548969307088563452498864295865567908777713088084285387055058457676519113855651000058070915194305738001241175120293792534554872712663774407067093471757213502849007707014667690236537188585591940789851672920846922960675055685290495171134865038404845057257620998005312602127398389664588098942233223884320414931781171094810192092946136734285232308411753940221893631726527863934705896752510916596859807759354506091222101851857900748502412601644479264224014525764558714271026601083108272592896599436401010801011888231629629880552106135429023482530418295431720819973492569648612245653914749115169283195078389021803257408757087574364856047447273612430075127464760285888221470998048303979182034344305838754219173505613805008152389313992487629323767085755345456628907231987049833143866806284966102543078689249493079355569024902470512311784024941727807561303629444662777421549884140040684074623404929963556509313538326290957901463700381424905127214404553934609074269799775719625119750994451196349800587172345693249380363291745727632124405755974564287597004447889363377861635186910801038900104288326082542792959871652230165212488551056558390335623366176114935413015360418479033184765671967494078021180998828574706056718711894282603813301930828879826373294707407569507670095394694312849056038146522111318038783168534120803408298969040819747109593135034467643121169739675320185037031283493600890870006644553387755763283642231557703585724039795059301907878715755926717730460864374221693756377357128323320066836690353803825832177438650249189911637876290133986944565343463504774385358628481049005506137705744994830357883284665237354618018332385721079994795203547176457519077031495340698809579907322929790306775847007296400746818874280801278205380657320237674920091175651646284445948953897567083457226448670953296570441176944139010961257726384376532618458873642571336309671826516110876561966755496285572002444656107765997014629994246210290999604649997181840162912190442137340039949152876586988544839529078864916914117194583861744842578385979626673160238708965043626782701198295124033399163977654468678155134275796584093118861327635987449624106834043655335737446737199460411752720449443716991021100713682563559703037504491854988119842834368320196594631116122383208686096693794169706685429956996149895239267474743068667779412564396228122851466334908839752434937486320632811948226478064179148316735579340596332728686533254019475499691184553619487951117364232853306955803900489714201970394046925690538138816933892128770195709953792579819252920431230029991362988566181130672961947725126898624213194232929797683023305781092240522437541691673120060502777018380854573282898717756816287299785353200530562308364802184152023948711833717218498387670365640067904001190261109226087901754072888745604085556509768064971692855720009299728715200487642873124105151968267395924584980185764546936326084933751294347480801737386613754523959440056109900614181245870592856274161717183467316520048205859778010393489200491389156290400351245354976934402115803708853217325905698189153271863313408795205269317734789101353431093954374688862010202424845970735633616862092536159486797655909646952233042099137475924647425439592962458626258059590579968568264907981455391831072460016666501958930600977475451083602512782047961418949486845170223933767928223477521659548701751518227124076603659894026165996055729442175509631322673697205077377430027337753436763671375951815817571750327224214200021124228794040523213440390072981907509505510350074732054002895835336236754497876977176460488428843248954983537812579972457140894539211868214729148295660139106147561841222972535297355430591358430123406769985515354937271290409533994582430120806198690461358153503626195808358962232606637294619421890911585062838244838593868105389489826073861949611420877090006061506830308007385694417051808845553942643076779221138764425396410711481025071039926536827423751349797601458976284950220954327752422417495871977496319840760083359927285603971297045499422057216829631459894759638747104938548539663005222365233533353603060767909663495270146073716215845980087421243471698231535464027459729418214392839993066652952166825914560634659435441233263558111476500489723815137698005662995071668307556491384456848967117863056909521254856968819616823252472679814983637561016245960800519287853190150865675481817631598532348155365082814898524869746106038508396371357177672268612448507505380170109991924823161446185629319549748567380228896164355078696008282708570465068046638470178712132911648729032302843934205207324339065836548518494423576608816651197232571424947190549473952914776154955033166229593475978633573421808351144675547679351704454505999760034219792114218569491352340021911146958266288003989966418713727641707006627313835506522365672374651940527650151296725289613857503301244445003403114461057431839977829047920426168164826392965197169319013113720463666904548910491030530192554487497914752600764332002671524054777469994374422020944022068290227738973018731297130197400096763940829029156710123929364432809957615855193310086577012998351236648836741397009494284645353105673597464396514242995253076691520541250823540026925783477359424226229877184222397096078187966466507664664167092878403447194343813100655723181418578055501800584911877931001178648883507591270791393887567751338722257621838269155329256868622556939952913402579039659847898490656808701615786383779065476219362550027669824430942403626478147632413194176958895631870334722983932690962388123384079152208811579458752163639381074834195625820622184835800632133687966203276636611431144928092754751626915793402487548407899059993583547700074134209328181938770333249161271432023056709534672495670062016003492751832209603578873365558544266673005331820119816684574139865566523627883545503529031896292852324217606176871105341735711467658840912594713881707823980524719987131213409363859073732044485868720595587834759667664639201181046820373389919836233755155219216048932963465367220772679358880463115056690018634282901286627766287400248605507875564233417782772640002160532421524126877979514308297833145210277039515246610802855992193576716361369329899364668096493347270104087488228873867911545040685305820548318792212243156834963804305790225808293044242088174083250742619885203178809203605224860739430930639569889695403008099097635485086325783564806894963253083971768913115142636386646576057969076628366756900446491620979386562563603916581591095877940490402812638384358907998927577146507135792838617882814115363956736130039699150295638835785403681782877166937158650602489117204649099747130098194111687840087125803991311202173142721278686072115813491575866171186894571501360380281805581485487119833400824169475744294147488075519542659290313553639108911426905508428572853164610259812901188433378832993119591398327897229186253433255124436949731861923267828635084934372512617678982524395663130898286396776884908740121847677984535201117235780223661197657982589969348367978107023843794034706057531256566909700399768151521145412293828117679140900625956794184913487651168924176529974568056655628864484231631965559995736608954784424574448054481218643355270218564447131750722780050415351923457849182301987427653278375273182529114250341802013201092674902345253746736913765048658887615769044825705351501219848370199543940124326515384567890729732586881446631752232617602817852928716680659722303254758335740929413965068441824153001715021910705251038933253362416995565219657010634208471655443699475813258481525401052011210118110674644616510499275062321212606068226723919713499100832928820246995175832521311886095202620552928747319056385554882408833529968268947430080927306636006250154764406541570803157112513235635581530875328815998847949452521267044091824991216418501444215617151083764972385039954001140585785221035522317625898156879473210116802694026515942778117765384897533580590536111728513818316611132129516795144842732041096205714561600893578593654421625048116650677418621218019157086550254786877247574723684052262031446467955641229222788845164096483267017888209369785512992803233030237423178764338832175624398607647760434764767731017226771592499839760158174754628126466474664158313753209568221233376992509602390296943032680622502431286397053808112856641942206773372938068512880140296249069635443029586245455281039249967628969058519426375613191354697707000838364433099724598064586651363244482555160247116640620031330924064281878669224024952811488351513325893621670421450709900626955280168377325668351558694899027242768906342680690238117062489114633426766059997546447322227741742715069444485140424851192965406841167509710156162097551241679668950823607202540993225696949375662647454762895760980224493275632190473898593891455485071697870057631429580805388110773653789019758458839136401812392828208678648620821290465110508160743335823134004892307624307351178865169686578848305960557994772562643422518738803007575719185017223203850506216673354454287289532553702647375409548084651512787134017620450096938475188843446374595875374234920774776178555577857304620829827038931105995068935117274586181341613700047100777295602907652540271269060773235387381735074163072653572175922966750867251223645951693435203503695225074089553798735623102147136060657907626520825402042257896116206182755007870121931639972328804410892778011206238001251331241806379911840171855468201893920904568146719074813695830210637628886518491569603068499389375782401117057080252553721024077213583283434621809303186299121584798447952621366560678297278547345650400780938780766150367570175803151059361703616835216906997897505957029339205848285019865300239642134897934461061417903787852515747905855632399596323257436772383215096945390281664887707080295912474501709403185138398353350159747116848054338049972311111212111524048103313304122218712460067588203455831786651671586555402031608326827910887345530091475094462770671463649225050054196899361187659270143365110729913435835603680122390766125528186902930080132636308000298660221018631107095926457228057994961482137485224861644021430322435772409963164091376003467466130523476456151807889143000355803812630668863195835227176797146356987331623664946291519062806900392740879598545420603812303443916730955882539230352909800765967543071112846225387603696037687036877417818446735676697864863514581971249124759988325443180843136788431589803908258880541779363386883467182886798247332525108567456850620784179777607507644791736406301113615532225869908007289037282273129268180668759878648282144372981100877563637441863055851511109933264957715146072296958430689161099955912388650318064402810293922213187382498079807171939475462944841422217718281899044963717459429408707930572913008059057692901263304571159261783313039864370279687623969184823527978472587960558072154190401235687920527964374828353059459942756200698791143148937929885055167076788263511954958099056502759623047686948365908666598590806790003829622008885343899936943169354075105746526847028201792947357355009674833091243608861338138149807175635918683127461292768751753196960771925681712803645343195826893040538758911774922299680704578211109474069737897820263463699178204427489233865163757443769940777235792160612387409656836419280706690429168082481824542311060929551345637010374081683290872567446564212424149028245028951864021366288583716149734976981483972503787612644394615931829686263879863004482596308149244846663847399692506900962028779833540491907153557063697841782734039158690849630303866527288187957274517363760951082634158334082819207705348202158903238818811201690078096900418699711699758411663123576961203846381587718471278852286570157702363111355742998563818168301789957087289551463128485628749691229867926695171417103604291323099644908099956297778072951114586123067927805620180912121852311484714045663243516252175826170498527123298197534674039228148872808215613320309445562677548069771886498918860782517941383339762070647345660815640012177264883375783185720373840026529980341469821310832921109027465449938374460027760024814248496113283348432351033262691778628949103708218123572635070483220596338591327128473892814068115622468310198014375797096756901926273857378872443874697493264438507806026156038259625209989987773022039312715955043304286782657482075869478486064030471090364250735446578626687658534517307879681222413184899865692483374183135622659148314409520483251298262259015067372972743522309399155102269068031013960711812145704549010354705140861018771712136684769243346525206644199259601448285135613748230021806856815579106744142096730151867099820089107599148630487182424693630018783268971071498586988598371709991268689216285117305099350480799004690128562272629789838877758793967379493673363701267193206422795371060023158271578092398005514878911648447328260682151361750101157448331196287439882795903640701256342681519966662880773730991837763485001379289882557008155351081310054262322616816211817479852895798528638742969176305494875689642020098440967043970092686667155235597185789050613910131031052958244088658320885828819036089553499317210294483452377404532078185771001308101153133032458866714817689170475489642416177965687229118596588400748283798973965147983831323120105320644131098089568942765987920693502350191726345328337970166124329513208935470595403301015079567589859102089574019320268795591407157682613183839907174831517671497988063198207829548584044385167946943755736480352486264295520412970424235784082191850324107470526463596943940539890840471204443126776701160192863096710372018801806220347085985846301416875340252211276097761080722856884437081442276297696518844415258088302471091613066307078620121874290064796510843292079976878305828239237239993547972314202450066301042765835753946755191885199570684992396316528695465275322444270884281537944467508237476786151921595822259457217831721360705297662489531873124891143119790253121810047749668923437353557608528003554142668937973875852795965350562499549286547416824617909590372464824484936801105434664922046302856842281041464221785534834685302464750319977973292915576917073506405296272003889533039533416752244223877651375675839024295155027486487685321611987186851295125267404844768097495276378423285360608281618228611327946803048731064970429646277949952177553288134668448271579191311093384780946268840565591796832203156900800773248717813913672727590775502925982625801542863983564159916602279063814941344339079786979099026089887974065606941700033996648523400967923139919292875412258136848059925585321998205281220627023852137559445644638353876703895694373877360008613806957397685931422174167789669701058049049510751608354676337719024596630226129016820262777129224896010684267316470982728536686798510181480717108576026124956514102394017786102014867956683719499536827915572974434704480556207141564371929797617055065197048561986517600799450321766599999157661057787163361348693675528900975196191170507798040183419239564377941781251104576706507554215563559266686179777908629169173505913731494536386509347646505978552590942120784234580261396042306222551383124846478977065623649450997504382836808277791176968657770085866568019607031818281935080596142080749451348429861460857059233441699536156524592369724225117409221157846411531666117865141660819977871222078806018705717858255919300764899541284568255795736386674162303536495771188572194323346012869239749996655103430824961758267282381963753588126421199537347222687551577803504106373613124498399018108859100686550558403364996034999194059660446614065444048207593073806398281975569859912115022706410000857899268642473390667060317336025974926812446327100557781915020927677321747128444117453246450071602321168367188772158313958560337699901425715672656697922066843044030306817041566177143744943094851266638180232997590229001209175915578629362828659209464853507515821844113785762465271822695434460972379937176101412379932608752871889306097525393758270439323613369622251858401431039020313420978928589293449983438403106495345307669320333324747736361030104463523119407384690927349126534378195581219979486391247350736993298739744397920971322585601762497335021183009377147078921455450713871204816505744373894401474764815040502550075670188728947175894079992195276958378575731893041324481976037631706732936108221391428760127683914658158091445369362232007942684003846573186615072350972888007007227672828611829642427567061276303061495097670403396621899896843294598446927981571677741152128491049666882359961095535525001965746297277445219987584199242393896576498947358860974058133315226928202410929226996134305598952782118460767294418123820614599459813607957136856205593172969375873405325229840110191596658609939797813362364787880718941524381856050337490012314309194840539545288066112123916274145639365262792839153638034173863965800326587884379037031413710778433375241898030534766039397211181620911607780458363218862370140821531434409356968233614067814695344844477784997515718149709759873290462418216691521117969524917685644184714285196039297624099610003843389368581043364078556276612334632234923241001547073013523352476610402609229575152573933261905479372526316310488303303055991306526279751209685019046136688060130129069073973843002289959144237330259451985179581020580620076129082770543377774427503548218346794086008618631971439913512781838588621879737707882361588841288379425933609498929192991340622415551489633115556974838924452858017498694075793026218684959287943645045406211079454905892415151421838164388595986753261992002618568417768397141977285048441443435604830759875332036385939805642703756107090974044500543712130031480907651515187231581768448883950642745199828765480323404644192709020732740634044546081253216948893878643250651013297442025469364742260491271696645026068497676723524811392073176473944939327095475766579170759908381517978736073076829124420327119037523422550777197377977211506991853640717214734463808707821623652015925849930723385440165231705548567966093627816305565315057455065503751679747939006116649347801712783138216391158004355221729095830356201187096270023289199242245992043218462761539885145414446057506307938686327316512825001963934167706598835049364557442786658338466619312202732588920935366927155905923232032577101931567172453625200417340732886337831117256502452757410086222596185760594977603194064108336291411289580900567655244667820855625699144946814628302884290048423013816414951760765628591550256238717494196651839718241452876793645940151254869548453488679056507542983655038497767814903312407120215284071148431520001102425050434769640606686496285123588954203545899154789204768768284682185460308652627777689963775825851324379404257584810332452261800402634463291953822795533221136285473936638446871095357100259263120930684850561282517863738016274172942001349435146124744568019201549152318956420954266198823990123495598889450562201025844325041950088611616687907439083778348283591961285902992633781513926685308437587297557455333707762352933593384207075798907539133867279781670880524516174525146323428113216385077248838457486419729673384297554649313182939510996352601282415570815050369532210374893870593113232899570799897846454642705547546758334769692399914851774577119838523035278726860144327377930182336664214598262938350985356101238160212706572728605251020807547406208116709436866206394776233520545930298148963289338696750472407155494029620390945065736945022671875146147177208631434415863864744069389277021165139560625514427783282408551938314863738126872551336030124041551460738243973497952046361445253681795146763703465554160325133460342251401897754713051915032520344772203537408308635838498790310998822489610158419769291290073949270531089314491300072718856415758288931900447419052168520201334551367667375539490445809750013533293115346834891179471325948321432318172874738299034885114175714335059686384735878057160298689855247116245370040406218291266245079555841469258513558860212756730738221320275131573370870757168259010761226038291333575743159976613319462519187930246719658802310644542740379052420150066854501104941522963917622528325352859141569662143212931039106734246225076280948425349584934958228547116671103439425298100308386449995494923621754185754277615463762067632375467334111921355790810052034032344115387015901787931906991797552617162265151730918285264212690866657811325694699609135591116800496921240248898373266472318268423862596831807426073866164202700464551516076831131863889744675875174307586791264607693036592580492312187881419000790028451992191264442402488642192646791971617865692042545631804328975668990705133884195691467460271097670086093086226331751374092717031386317514116574549927392225724461039776876793687112837877161130622370818031734182286834534210880433921095243181447975559362103769993070744646916473287067672835881900839181439532684853519496719643060277364566223226456428357857386875924310445741499487361857006368063786276951686349353543147830273950024861961214742387935032219420838846139958834706220610818564627134527260318463654213127227141749857128395580681009953049124300146729356551328534848859166439579725625639174626797224869108202258149648962082068222108576046057030404460066207650371873236938779799459123686413787524825354738763760383105658189922919314216421485942330294788203286847435895666202693150093688526162976905756465258559244637975715891715504518761873057595572527298356377539766255042176841658568053261417442130888748655635998348447545392637841513557972172393515961208061912576443435910721842961243343304958475265340686614051133474067074039696576027769213841038898210345715794398872679198758009774923819927117446425283320284634198792825533073319994693448870423970743725099203118656636297446947563478761569694972457913280430097231401737254387254245064524111029202358691301177878811696534600567372759447274367677347260986657964356966152355416277685135868626002780075991793933507515237298910540313219953241822965039995699325971013442155558448439369228145940100361628723021074068215808012122061867665902053592103908938391097494556132939939596045905612490673270438074180591597366575940628914823386155906614531110632492390357767660064875030329075189101450415399956349261377915565551980748474406988526203187684329349343583370753161169818889199012255915079526026639281737892477406961030338094310196849647119688945553288755777949979525371786157212919564028400257293301062543525821370039008240140432817250826547023757200205068931001621380644205973038703388055431018083584760754579017941173024891816181108931504741481989036656206994910446609014168716061084841710800706173341021642697510894266747893802346116770919233223643225714642983253231290161632585652078731747212691573169754059633452883532234326858494128996021932444016860512621992856529818940206681576430439516416396078196669694912099658361268693364068777194773440173891267107716922049115357295468513738827370792456686031932484524735500831986369379555498766173183294796711219107332491018794494630333314443038993236313438841619388772820755326625950002938046165243407910115710675000488932937196739964841178954824022604721776092163337263045837384818677884098957718613926706996043156724790116680028133125238641282311462308816468024163122122182660492444206433816750761730280505594798842434436973908608003482849832890520928116860765511028144544575948428625325081051757302752473639991458161885275387072618214588623232459744553498449642689649321982544060261292885792409656938718750279903209794096781137882980935682543495634648631932150664503911308867077874324239340229477948255084430078686750385985148888061901338705779236635356837982968685940974482642693913822626952175811238189523058414965171042477573854305253101210836340869160257662307320041861336444392581420201479163943636268550272396472209270601927386532275638646353388682588225547101635028167704635095487541640440046650480785752399858622733810167880473211093666765754805733346145255514910218331540259727577741852118482521384273524487457624565563075247486708220950178651635440064797353831981872415189285964579329097857041509285827791409796670235558563588828236099663729918393681591917494115830311186892242927198976106417972751617045274408001856499302931030017184252491295817786320760753723529779947688457201375743968168524966301010562612504756957447785962286444438720647239856180120653445476550488608214408542055231523392362866830992790342446979512813033851163427711010605931960203886052553579029053888486630976115362723639623339464577740965391819745190362581087429344719282492877557672784960662137222272456392446227015767328943192041381384255395559973314340332190187782454261805437680340173988517494270657105835544783273256559807522763133460277878339786402648960867515170928253379375773026632281326348618265097746477547978848618172057803386758337022569356654681069962178420326118810341207448775223187947058131553434279507728537341257450417881792369187103627246675736907831341753603544613239922639814431152610718300547446974173755430954038676500926370480005529577081319693878453310503857916463820541716760346345141103862554803522294331455054736516091209635619390534184616996184134079763049275246067364795649960603052518331362866581185545946076803185191811939470877570658252182622571823389029815864140142838181291824570273738998102902313782944108184068892293634323711198820976466777160962432987138382779314092280353076794055132662395416952313445846278585850646701005340742836983730261622114337540101325519846075762690854389175932216463396464363025925026535841848465875039669373451430822683920770362816702981989331547993722092251816402755344771521260838331530456988766623458189552940297754990475159944576689985103860282733865423323372972146822171107189116534147494160468070587035467717647364422042329316659544704676342814319628062980979736872347653303071663082165441038773246579435449701856792982445799624929538100601558213144275219156397019455384215190953485148951868289080181074906757378605023468388561125904583341124614977066201568701581161075193300865160241046209712352511928929456271716036622768009822892418318039181501106860462718313276639497966317692508930915515717922962427590610019394979964596960526379236392637702574071270034040767820695154728682057320189342555092819266022511255602283303726982853938984484582585025176844997179094671734281727593396522420135195434416836374204256796048079569032875004339786783275253255085143455457194630291195097613771892441151923472337327762515756046209202807358648931033681540172560631725193971253794786690289028479558475672135580418991569550210115721803250072410519408319948025513016871476164935053293869742057947912473568593987158000339332573007582114842345790980779168132535933777990696754229466752909171804612036159820730958047190974467775202275792448181719399588381853302158116904949162952716447236939324139031986834571713958356627192146529272911451990949074845480690734669292887100424416241933012866924052076273867712709279925686189954100241129566130719538194313630630867038345069911500745214369169007975864602283401897686951274163998995614130577193711658537363216806859016032679731928782858338853622214408277787366141782032730872710067530482300254269102912548980914891929892159532220992121296374950179997250911186115894293822423781293463968099661702327764715152942192555440422768567897984640164090531178119160555367605313936973577373793325101055059087884593965468924861663031860719302538135206581651443699001275902792575977927377102299002546403915190303744922851644983562337595919164984159693550865916572611132907714248805625021684649222326465333018254440569449579203208839613716214069582165880002431115015499176968115775262902271517531526006826249433773338584312171393232005686557492599684074748838686721089828777644452968171250261292901803799272689537869252093149585270078408166501058595237694051408777814343503795306024956304015531504614201938261574941940069684447301163334762856111867984793025907989016799624997659116798967565654012749988903173362457605738578923214293476754018469476375805481263058062609381271679503306811626488729841216248822385476675264521073481391000686149963125628108786026221817093046691065522755143183655441799999049212570931626096284743074590946994823090113042440354509962054748752996739521921740466680060134082838832036522302034098983054763891356163652937816704240572807820026213437609088523724686215299699643853264042951547395316799094648466674749583450303163018616499754933016786252684143227311541199082706739689141829337351646223998766514922521875654067425241475617266271017188474008313180017636450597404829190951691649992492017164057598740246056144031517892922099187876901325688748046407553905310117057130039008774806254961975246923718661550531487126278745685743150950287848344563663767421638139972909168124857549283306873777088536172020671613906475370332638469689921112559050749369476597779098604842968395081429700780758412405220123183667327105198977323573807481100031376660078213749230905401777943786483323366569428121710756451139749803633085326195022598850781593008841155225994235827158311857138625048043413145725934687576133766582842894974030291961690874790658883028668818501588706051797912343464945318313333540181899061050399899006275304983431497912692755766808435838677578372766941130403688362427698838952217297020976211566005686180074072039263253782722640209989617319362347144268375784910475041183221355193713203641091998036863019939295769584906149729146345915423773786879048731680217927794230099325165041354729693566053803875014722079250866706549411479609044598070088727429013820126811274622287657493621836685615650365821074974061615213009929502515921219109183757092992827973039915294982519242102324616842842766361501440389485424009538727240493040290209400943850638699185003857312658771335246332664218781632775190622601494861909830063528654733202717893521214352940355974618538532371481476426313903018752738982991672889106111007427513509381553676909940751579621008899724544875011747319055224421738551144700329292746691542568802155539094811125550281950965359951458426932909883967566377831408277384483181736600736086741431462457361070184629370814903931879650681171769805690720010865976440190139429887964446913452857902024195559097244020577414103518160580203876162095693740143972661444874303974282412899310334929968242984090360385216738187729138542382673405681632509186073108791985686135161113324352929297565103814803040193688631225153208683650389529115746007420853262021343301627351696271224173038812202258733029735750813149508604989233844690359718370905671602909372063369183156709272037924353524281952629213476171669213956377484891024551642120314502188186820980691161252380277894664101994244518600766582903648213773135132698984648523955014876909360664658216932911917980235823495703464942985861003149749175587143271027374623452753773714293101743442598761601768954460565400403823159364158080855100973688108340931428104284606319262784424959395652114041339586622104882796184362353251315345135172796883378793917110694821635980617594244369358115239244976799344580889635048093869782873669218486998204731205604458109408675593523568768190514141240053888115305475070317649329048894094879711028971912155390666851141490277446535766292841094484657785045527960207098687686095215444286033028441943260824399998714662398027338439254066601876533463820478576452532362169442557418438368907452173109374211628995466883530572005076192532027585325642371223516689509665005925401237365146468258836333732121774608955871010069258578621103119941103116435140658323976369599983386522252911652774536696686597596318992057702015359961222841598598829991686985711064533712648729478596189347323700687956871263123917580197906814300633942699357803059680222891510572412518240010724868845799249562915104045229258254294685919060429316736942528826865847337493210240056780059403495321089957100912861660436224683561688768281042538525593545850799943374211487246234378647766046878683668072753888866055002029762511646108476109831164535827845347380912308286156386736086698134359877845558071405239445699945550720670976282048952787827249902191564173330794236654559289572212170475363538172948612708051870058046049061678438937746520438903354909415686889484657227948041476387330365415824016552494375572889869841381746945649131399308718972927103153530984500185381006714418840468877912281861654341456311094240149623944213831831840581571118690232207820725951935613843850841925083313977238833971242394259451969004911538925706283958530869861434444575886835272846457343501281168432877917070767462473343043281624641486830265018413977570849232945022101220571572586657047972655132272030774085018165662678303003764722823072869957084213010998272234475352172204685896509174555493430774136968981282957970931491605020927315579461985588188731771002084622693353391713826541062102370032508691280530824538109470240053506636123932658090171179245402533442392055964315916269731626394489363210352734885684593065912378272234267496018507401454262590196474463206194852897371072627497577991420639863743671960650465536596352569411431767343776877765335474840420558268169594108607865537997344607022408606682767748092119657884904059737661256787335023734589915199644341510885710540497523268630465127570667930377336707630896187849597094682752050925814749974852384282011057253301333059489056727522422485849738129092639944262288240147657109697186182370676496380939681022185513999640918180303936099440158194871521741427720986741147544013667451006897423008857229930550303649117061309829710417199493546269253312671652264676462499970250483422497239952640397795807969625687491578017119681702180535525160986868666032809784730313991744490817867426846308312544821182187635994722480073938118136803285525150786089728757418128203049829783598503335792213082686536431151629439635547479944772827911155945126981490830936692582044151350935669288482439467254307987905309015731856623105671429751600862193760183629833059532047684725537439566363178645846078860372121021556564453883375413889314529561517039612446712554646178146692479691572083179617949114343955144442714029102846955172155710700080595606494828228692240619750588154088005223381198130774382150102029336809762367448849947367425133481104120995681455557116894215633895024269213691518081242505453816406632044888729830630933762557784246949542374615461374166986603342701996477155135568178651977395410287612782693235745968065547606617660301345001720897669430546733830973453963090614204650286107212703092018052401095495825739801242719288946348495615302547556189003484333225646127780132054055734511039231326336763802084815303634546854634498504016166876116498601587705290370239733681170942034280192026912398638118182088584939451739107366183055846815949854259613993001232929714238862414173868103983484607082299859910562443849445317432580091021898389463170648886026811664153860184363010557287538300918409605934145010010343223488884787746499885889215471983261117466835531834127527928695312126339713314692004743017685443207727034680554999772191635761123416226180244367280996381889688667246585717724935271257573407432867864733868734950637585963268220983745035172942539134178777557868368642999827812634873105591670372126750626639117075652872769359950955334470802778355595134582451129092441416381028250163528297389850187098608718440389829379360292082067271825776793352425376076541695950908139355976940397182570785883774555082601820016295286888068155408948445758501233767505085693333616562531325672982463919681994742595082402204437094445822455551920467522206439958817548034674121122447418712547284975119186763694402489661651672721489503632087835188953319405849532715376703985256733988215278129048276522462931260402273309496444730972926978313343508535737384677990405680233016513186841608519608480307920221339936268958414660559201088112221132084260683558245094311344341065256833377023302461199181045085212405788574086924673844428586735064532988433424036203663276578628880432545391533296689018692229997635634890186124505737229823717628169153504021880588664415110815033097601109277642686667179233198719865617834030930237438760362648390102507024706787363105006343459515314453836205529417970288680420271015664458428043647530834557484238706063593139141644624266292346474350725649005061033329334929991763075291311918526169186562987035070500775349708055690176017777516553463005459125915977486390931506796757599270703065894282275148406072226919269133182944764407612853904026068158134814304923588204397825856319428558999189301525939508626036534438080522051403476157096041272646235940013799297248629680054029587737631215556130120429823662722561423812039070612378976130841532642764738703171533193746150375995875673372567885953133676710767464722415163741272822955169979200513765854961863925851478097877739970241696887195931333064137807218178446406964268131222297607511451120575517544156988211686661959599567359068684681478221754632242261672908921968148404798322255251687430356748907362416970788120302537794819094671659321833399932451320682856861931153958229805881541215070976052142633796418539484958584959364146603763659571530642399122673110779850675647613898294134851854478632562013146744930882345440098553047263881731021363440440824632061225943067164987771978999365460121556862487339181525440239265079610845052890902647225639899743241337249013330023305466033883973555533330167067116455303117361446175385834851086913508240825301267384897172518867044453826759880106197726483525340394343980563803601141125510933386289599431167275526050605742045792096172754408707913727606754579800803524085216794166732868813640696278793373255403433238161352033862254082331422210735434808260672103357395764425979041345663656442794105024070393569106813183344677591254340343341317748057183834969076770004691027345122857523940761401262487612425420745290185005099253373856372501462207718343116321104641943633412499125160305695480552081238159043943009091228291012801615617332878215283495422776974614721801561200592777542021086652509881352248947349282087048654075595843752019604207454591163897046182088976543662616231530208733187018781446550179045992722899679921487902139395444831835409416674727124958212922468199217967670996337090802692079381797101705248437720698167337763998862051573932094592341300203507037595838752950486186747098465038445290170833309427063951971568856655287017993432505075643946354359500378649648422447056640997945116191877653780085288820791299752471579457687994421831762956218873931861200332566747968092727573826353058316880534557415794800951420939274255102098216494375714317287891740437048140851765519109034090941771014780177207061587668275311441334956920886339812451207729452593888181655100448756073918149488566260154520604234185401513973878945763666727591109171002543990111235059508451044978198670824498638393920177973580842823571276943894350711494774119303755700139109592432967271150809540392820065933241117437477079653664014530893795533392578217449895732943578774885416595236368291724918948424048179229370588771397669763942364771371052929407720118407263477271295341066112352514968096490606916677038886290626942319660305148180155863278599255227099145994643458148212228044109764014046996361226399083578198492792048426449688274808405709773666103413098579039648105026953447004479771863218292581433434866521833547931380686330863858681201904333927576283720425224163355328163803250175926729829050730898741614911756547061013055604177413960741149370048775588704153727110002973694533149289845006784466622219465526656052346516101605826956803465123999789006459426194640541634103428948457029775737374972183226181988157215607174304681749430378918116426845369613533451792548267722478369750854648261089759490750979422045858755238807532295287808503549880321870936857436570146043540262225988294131566826123211025114217208072100568327062909465742876836429800939401564008257232768347412869863049769232625128386277029740971081713928381308731198815416198248054667786315372567685564776941321927605230224040967156793471942080959577103405570550179105463088518772430099285145401873271360314655434862556860707662111073766298704925506336309981231147586749284645643871119920412711616402686830128911118232466846521763380546257478880786302904459827021418694383400052761789646376851678529594509431549789886473140141610449875028117559574624918180340846631515786554621807838100301883912805955949627910754041602887013688796855408158655336298706509556044407306027941893174610562545998716579113331398250556049542221430167147014382209069588307495804890884104151956990025867731642343862876676237937245230414701570173540592540709271732348908979990679260788999858140042275962988659455401071783130124038921705134844925017404542179384108642542076916149235124334259806622584076434425334979813297217777843984671846217421041125173427399183921789541155801335009372541385108675290988389819902722337709423129288166052323198519862071645861082017162206237461770550862890673763722732499386185092187507551316964708506297030032032920334485660179680463701396296009295975391117703930045128345449323343918309396265090367002341843381426583800370086541764181389683432041610542268630874228144359483812731819346081343628790430115719986118542749817999834617007743461494578522066924257682058782430276927691015464760858123002295263411290578413351357732876620499500343993117010723348299302116775099319961073145226174429427858762494372276854901984742059359817495564602707264653365240014136385155813599136700288922762654479060811275467290550068923420406071706289992832820362866586826123899957493763182904042641818601690194130895546670307604750981066320386330729026042143835646463131411924900781659394538999195239405101626017112620444037507276780254070844084242734413571243153412070478257536694206443772401719364308065992260746981839062079489304722910981155473017284732903210488194158630122826325970352344814992283160578486375338306759786851354147459899521627974776839851099313686628622333520222722107764706456103510636690008427279325255716583838484097353450200728694457800033481440887725064484324673167269529966861059925301914646072377926594977878373018440886849149005969082869634232271093268408647138302107299754146100107784488249908565705502244619238306724686725311881521077167358211853721644282592453611293312178644472448602187611876857920772080779433939083475269494262044922640916879501031296853967827604596326768100535717842020973296443924637777118902569377768199151907326249879846617909667093093100977101215977178237100289023468650683792479477971951813972010851742826361008670731543576677979414703459101836407227010709710846220872371393380689118758475152930721843048290299541554013161029161205841155567853687139707938595796736222594957715641060209434401536128205753201805092762287269820053314304601017149638990012504072032669806051847544205090337378019557783031097347177845223669532960157635935351153970858458090387585228876640898525658012401753462833471774228792631532160729542712284811336147662617094247088101878559951351766945246918685654401196324361876898683395020981048366352770027026249615561479412396255061096437509370528122631653229656130865766329425327837643820555210760381762349323005661527360657652460605037663789348283066865606932619166088456190163361447536760322174537021037180729240966204420757556067086108693240876957739517667429781843233245078007546723169324898594558238130802813604188158853378960785069191855077128348252287500607866689721710135297731161522900063366534764168023923590859718328451270484698763445755876329129478017632994272102180119707242012391018944448718384834755287521275425407740709190211096781650429761539375834911436869124167240692255608163104087429728952397101209194417309888151606742152429883943641120247282865623900121316657102312564625190466164193645502249513444570829724779555263602947406142301038990717403916092182417216281127857314283518557240679906901926057551631121460141758093077756362246102876571137697244221929691482532397750563164787061843942047679472654720604240402038349454125612437466635746661531824538372894255063888712303790809348998291105847763143664546010579423215130870056070998494691760241352223841693130740316558296867596790871604505185124256139878324387598069307697151290243039186711276804683098302047948770298846667382523582798734767856422848960833145174442229291677258649238245485919030270572176174849420970473521124532230277824174228174678034830873923693485184944110984604110084763576462651656750981420819750491127037034672820868567510743028327565008417716641924786741607420234445670305647216918448095414342351539047360256618415607121871788103334028371370444874578958986300142359835370994306650833818073109024984506864274494024949992402582450483293030393284928865965301921155579610857601804937928544108720852340730717599321263185916431302993429172583750148599243353906030792931461335279046722792365150784175361676403055727089970584762214007353752673825207229429020321640772626834531840943784023344287810062212809301654151110989217587381182037403354774697868405413433779072478962651258250306397529712021498074494783032124937203333237357056910539134865351637432461448938615929145473654979614083563256864456943627615451438115498982343588854557798265211299002313907392546639320247179572406335787921453095913769109494432471167489267183842696204499760740841316307204843317705233593413718982545494479245420714775183570557188190846238393356009049978475889656355225608650426875726451819592615654292898877418233852446743779853284047407941030075013768820660147445655410489527889100934411256734950570014376323116420120849347716453167503222725911416046658170699161786844800591676721880847085487259073213450191363044302933436878069072226767495088278667276211340188655788856381478224051856742946543567773884648504657208957867984430088592876426562160860227572723723282903847142320496142313868556471439313204732795067074140176998369843114313933105268106981592295859562940054118011875614767374952522719558835481260410718395330281293715892766301550370377309321468395450705678997873127622626046066229254095879674964518991307944095639317681041357843912884436053047746609071071592280213273553654719878569284999683412310870747861722842296537454545862597571800655414558257469083108194257701081492194659710683399244118466472698004015055121207965756917428967363365031055799332530675099863320077993647653499729505150950848924278964991041076278411661774072373496359402325625057373761520750296115495193973687389199199650916205795929141898328385992098640909343054591369483306655836363472961055967680943420992021879630138272953557896148434305396790426871598980259339009918502025340034859729970511755151264193517072037321750644393190087201370827544556557539623920912625757165882743131071376957260402475902285299188116314979635451755011721158785540192185844542086898056735737910406267784755557362804334183034490435911645993451631281431785427511650216601222268973246157319761135125329807762875303976193990170195964244485360283170356421381808320684656216282012469190324757585614160640377143062817047120675761625643245827124811717423989562916020658791488848888445605454345446586928352739241253189355838394103008526478098400746042763465261345626836229978148284606916531883192417243506855007545736832086748108837589078181385257631436169519930435248972399834352260322322250458829426727993032668773811429931388741814606466331585101784282651769447448471421794859977670671228196329695218755878484718294474947494329592790997884592240267525441056665454025006513896144469144979106528671342327387234600257128563897298584834541543819226928875082522249894802352061313165038480227264406904180598055841940103597286478477578583404222667155532092745231652497685952270343458020567090579261674500215363593638288496944932166713814200612376874183534500190090715634891166835839648631772280457822481041019471479164995395074447217777927976363428729417154923564195758713148071816486054323417677410028009579937458457492364451607792658199597582410558500702089768356197792052817138847184019283346931405429810066210453130879031537629691665883505439227991739230237581127972330115073049452160553251143163015020343397051720770352665677234012770696968613339918009338295866503961170912039533385200208693464621640610643607794170520465327348881036831525931638369418104776228167731205180953033608445413094605325469873561714201148958462605021472190963803818103626641609624823463004225256605674643898902426750194351406750474960326849508841767928285926773489861772347481832866882740862633527875440551526083912477634325150744432653472704546086705046201204172301540558604766511371183359557673717686017546625947529787846929664785531743936512747285157102811002024325972719409750625548306504069582698562164918906777350350803770387647509953935883483443643263660046882512637821486577694582480191766408742717160866561237535134479146038717372531337968630851226126097988468029412290027507080692574239165297010355202354190501049502905118158219953772636718376931844236582438416479327281644570588088526614530880081096188449318184045041903052806480299410879755966138244235975317878549337915769415057411904060006561101910849951663672723408855942588541841284393242987775620964106091942930799683489156158186433286901100825418339199889071485937754429706305161086179014140729356041222323645481579452079691055216303612799306037428262324568659507904184429383165501543564650696357909747092077694255706146629418406203068337257827472623849295865378403168356660045311250252818776439725491787112435971672435955398642754079214717035938220368768255928631556160092711355379835766649178928850688651942316798426249211748060817464393709825842011129315879209929143615668748875986490498726493011823252269628715167721754140996057567011291238492165906321342498714775299283924430767139459224304869499179065165831552140079468292890603791904211576044585921168612739712411803030714204700454326045426644730287564037876059527409075581576600766344202726107662066808891156241190414064188966639445263082299785889445791575146455573406708406006030385295237821304230831755205957951637259875490081882376252266165822175555187007705030183070845702908510713772272516420573145999311511055811929975065135515070826269542483656525717602589501874699638670997668637078121960576652126022813641809797052786118638073646428861012379316380599433128381120844041499598691074519241388679832515319827604070269884642518404096817733413707846996996763798733154345907486482799462503180182583574562535279136750441018585459271519934286508624078569723634249925864947249746428792415341110171591011226660135815311716814857745386706874426395951114278760088837103759521920156521027963205482629949183078983930732412741922100943311082113687574204090940675591109255331683303549328478505831169324446107853048032592767846158298068568078411046004099372485193759927027081801153297466324916035516425495555201615196001966303286470225603669940273968935774348463383185079572333380634405587585222638723869609736924009700229049583239987874459347898911660771058952326206436332017974857281645608074037983082334611722030367225765159189872524649979522464884711994196227015399969328930797390267504696045272562972707463924052985050009929929470230968695522609609717490857442483959289012196990592880099124444572667567152915023509842698770296337266261231593722431514330272106625855078383408874785179360405191648122733083569465897611818345189496774217737079654458497305306425895896691224216774547165052387612109680839259370185413284177867315151101660053379325453059636145841944273603407531395044183836084237048517194346559956156334464567363166908739578659231676750959942197503951073214582864200823434324837811779077333457456502234509944123993529510041427622854730212823274599012225493561732458436389762304434809022449559453925023326718068248907753842717813354092056205217825534642978478090918023130968575491973411827638279639618345581214737045530053059376908721005159422341332453093053504777745864910821203484019524894972671149138189059114041020344821282260573320560637833909246273300987633812291872577552755822598529320077874383419350568582328342377408180499827927128231717301043618286731380769218341173784040049315028978501423870828746362112205323497268066227836137316366006615820916354352649256899251042483442635901539164017034923396139613319368048319646630946954579504050039319980277401069792742005701992610182860248039481714416268502647608178536442396808832251656210768431785699002040801154775455945141370685741339674147251178902196183061964473857319810670825515139844134513400610935060514127173437365012819491410839347976709764261713241286819524731137863776801369521804321437700225270257416825308694445284658236925838017986340354052226081100112017421017957569612009129175538553823365219287588477715942896284429597187591096596752963266518552592220886587063740884879203642183058513356366559143471766624937412086081332887593667504231071295062798218657226913270327548232364087962106597309626878664066634377613144989231634417633612575016894114268261652534287497888559474012662132915278012116790780166044609547705198394807316246566909928774792033758148598282532696231608156637542562829597817917329141948504925989855655628521446635596185064436907398049009691397805134732870612613398814336791571578891569654215263777817697251748765342742514505353299660014282391548882596753078455468067949157694860699115560629518514700699041979857634029565656879602183863292581426184792911892913552797123690043368579847579499173508397616007751773798238987105024314924693896122877946519840484294323557219941202138833481817612301123323164688860769141139745286759889811786549201423598795630038708499610291044855264933616165045893359035589758029087860459500606007502566713419885313349406072077621342565227263058569621587427516606658121710335334514097299722571341126867739318610183588474124506052389950772980608109583185308641594125928900100042937493431160831426900896492231356077774610607581358359992983404869685090954250954507854982247237776343801357899054320137680973877207737636354042102217120822874191988849486633789449917900921033971964646825658208429175099928344383871734631675541819015168824031620743663038192811078897806607140254841791229119221123826091840097566475572207023174673829351628385578419390587252691831259144284006693147878078999227460947043423263151326844960034885392003196541391680437010073930054184578587995258770356768209730809473523338974902761155278859147047991633095192024240263281156156366497317162498963718868967454719854451982325136752618865204696364557012806096576862313550950091048280652211704269643243011707957210360547071757765577121489530607582239943714727359988002226604384222142683737676527787575656993858294761693382107157348394073983648668899983156173063349796014996973073817046155650170646157107635244619161177526979030625168409290693355318981521822636312781652093308713062221229979645196994222804403241852203195351047055771337412076683560199047902832259207028595408100185499319043137293019590610218661762926259420416812651873114058119691995767815952581870215248150160856880500495382749336899383493560484560448215002542661864591492391665423539166029736368388661477545342168690711811819391338648513952912335607535760512839484810547589160148370885981523242069529595336118664401743692806169494510363042387411090431275415443650110052691860946296265527809420610497645982072163444639756819839620387954601096119564182348383009925058241244480483810635709190607225989345668167802118700028480804184752473374924467965687543256834609975681246785733861356178141218383749726536873143223179708351117990815364857337594773166503401654115167777781402132193537614385171866729701379444609962607683134311091952128501447200161944742270403149775969660308499130968644318321339906101882109377879111720321654536471149656701997621415627544841898987525654647576638329051133541048580450808288919096723973624712326304607305796598717518817753616095375356069815586383431506284167051283966525105536705830291447229309647373550169630704813064159034030246735113812198812653793315895410944175654716108067593152969676584526644354852823634287749276963782364878296398930287035460798149158917555999331947551886058544146251151360599761475886056956487904880017665377796156259263626002026619464702793630779037333896388952242603535107149720419030470983673984908495576124632665139478299322308947473238001722055989008745666775231493093004371691800615150008939801308387807474153180995167088310162188945706140604690275277647998551642207946807589095305769306060000074260033554297300252693337657644137427119495141962319906426753201484643276163266346113605579514296690276347229199033142288242738182881107484680750891755559360782321425936208853665403824165400257112156581978285259661726762658578647594417985927229258901337840177516417699896047466804977480468430356643173857352917544846813304563499939333608982618932131141422416587877361566350627844414067737476198764499050038002161309905622883257472943287294910158163594315480524371501510502746376252036693403368229866341330811725890997491016725863514369535768980776375286825375306766228184700116867965737288355192481767223505642311925263283830522411683663576923411273873996774119595996308480580502263964932015358761238870953517164990567653862502494034425525341357689378131381200354554894236926168625967537657708790508710500368692332837829096392666140486676767316435550738814961731741065779213227305807297003943351291743286364961547029079437637012894702103706503573195293126205941262700782745290955089833112844836325442218186742873696825026051553056123089495926309535857856589656415570780908472336780309551272658356553800337510094738037005483828820888608364128977838002437605559411624615641454465531686690920624571069035059221509426112847357531783847986442550385949469230691086354732611803284826253774249370781553016276413365571793230082906822863871739538320471513375213774912285503553089384008966316337807867220177138766216093635228342421431210369318573174433535301431964992917870673398642751179137565400328384689096234517740543803094053310685511168995462334656654006384609391602541139877148826374938180379660415753701296655483239211938765271731990892491734895253225932274036498790816808850564614285014551404510456687250384487940192965235440526153255528694838409176923909323406630503448204372417089064392526918027941773233656125557322191101638785486549368135602310811490990215951327669580699955357248421443537200911011121474290618750898312074958090500004619106680859587054066234485511759678464657693083544037825082415225750034529347177851866477227397988801512058262077012525797503990676477368592037532104584213495033830064003677920860001808512255849477749348717344515813485945443506843072673604757496275727907373891149247731329765754421165440680258144922166356929058458492094241325637008647006278855721705641347302592100605128367873060336469868930163468755914462378592647292421936342098957310888481574574802631713794660032461237163833929044850567252970437261371011003976321893257107145372846863320662256955909257282946427888178933141179676469401555752255984290634306656219103752638565744610372932478721674658522250661978914608959745807148333756124690839381980728219866708619144895801277852604527454192738421820539752732030655235011083401408263007015317861165280718695936937019804063306384508762213722902325362064135234308779183825215369232189920399929972268200095598889233402125066727441385131585457285110191091995888344133682420701529596813148844931977918881268341350310886055802801971671836935991131555270099817109626330151180111169913583093901621993637367117744464912278357612516522575828751513866436255261971124407896471035584636079049444623805132300061559902666879243698130908558083827331511995007651429527038431316934572972514708406044932284182111689541951571175450202435938246832982086119475069125727136349324774341277351552081331386652815504192073936782924045084305380991772566968472949253902778564436586145271181810038845276391107686685575952644775947315434195829783482555457194130787000994601320795135660922003131204088950456224233653413760701891044267583125248235696383553253205150806050496592244103972302624677551996206451011853400638636185330601537312971375367837800603152884997175415396462614812510895139163880846310549902543881067791460094799859170319430055318221070375758368950129171028710067878064873460081809753221259629477771265354618278965026604150902533223123616976496559033563135224649785763493821223054846716915721227329692145309450606300118730106026004564391207296037325010705758184208254080346592727043392806626077518819042375108284445808492353800305076472524151021419387506463840815086092321892235438246906344874871909006363893050168519660579379077462527735901898304787945099260581635169278827867790858702931934700339579607203550564078261619344040552516441580650776756476489053813880647423498604589553465761095225865415703542589001164414354434475350947426644587766881235042498755111056412878906233936924401728260952991377029899799377845468814160804232514251557923219392100334911314303746626582116510506149306569640428789442708529736906534172373204268281863585649059495293097472896260913076558283965883252067858482365070659095321898440033420571935966974513704137825364050746317995565707401532240206510834164636807211211726672381772492344410038851479867125312938315318997074419319553146679384645165890246545883925746230678536671716354386558786301812241418120646635115648681185246779929079788206817003515733212125374501974829945589899718507468121388182172840068364516930351555505870340311773122910320740957361303213513279139220272086941939723028328097349035898649100930426098000114840808148816945973028421030631244877807820553993970910915311247543087314618707309818602357193191589099836474835995900895281935573723341904875099576429031308844269792081459222732539477998182025471038779243207445591378485952937566196059716941455539041396638009734429696821757892625224565906440033614907035678032209036847824268663974094232235479196168428104141286779758917555466151838377791150098579384458949392712728956197491295040347207632696417956615869678731671983669007812882035964443320377234222812422333386457338733605224087773441078082251001612125334853071664650151269451386422091059310882322774072053919513140755653185763834943585519744724232232378804506333829432255545862515918115256134867144190608437088180370650766299580005381872632425003714248583948440134290998568842191679696917891014167665792540147024572268425782803766077666605776522561619648715057409932296630979552538847919377571859258638652070878958029655580282884098774654385348894402236393343406391909187338719808078258357850614476334104133591266001234071466123610627494125112259638801884371860722039897101259990340945870544308752683311195932380890749135419794341110077550391773748537418025747179946090973517840238480445012881454672499074953399069953544271692488785104746589758572495626384558340058007602261980414913782390442224167004154789773960447413008350315087632415323036689433242477486487743907152094886517083328630308616319313343187901019777641601666563069154971772892893959866331228217265538440175483477802590826925159045561668684109778816428850550984237013679752917999474553062592526164879847889358643145822433059797837801626334346685189495145754883615474671725033221989571946286848436309343127614705048858709249919833455901255145879158463434803536042224545468853369947368872389719541839144790838088886797153636361335408772150684009691449633212454269326171226717384084469962012358105073222857592908540901540868345483012922927753164765521869402201639259349004588892329692440562481420838934179913115351038695076145948058180790319901911930671827474301001223571609842115501893194032377045501501732135982673736993597556756820905928525464437774449527797228345186700372657522744558569770288679274399467249508178169516391902035124162575881197905141834670361659320380792334388144002643068575280967708083697644599698618778744613369443339058867614295836105887377355728043049508554813090748175274120048879778290357341232725252935179092915086619763015370213113896952015966419717572728680143406258277391926431770875666285301642341875745147662652876297635504386340724345227237711270040764255054866839165818367182945110824325576967628807352368802873712760220339658606880256946305197010734346295145619890850515045614187393591679621613123288799782871240156190502622490995149866899346294598536455579850120122840963502274490871028318174173337388486706011395282459249383561803803376710355140679239705916304977550154261178875727738214381489775877755313988719598713447759031673825029125944745241746324203537956970983843957317095344795165923047104842071494845253753817221993220439525091822514826948368441216295473853349230329835483512574233030274808213637337047147847755526521133571635383923219460801299057985477226340398149545849527000537946209849710230325051554470847912227530301597380081500548552661275930483682132143367152013973523745336077860966406693125403257593033607473861250099728221880591051889865357149841981570064435898132742760383064888180426634297459901135986932418137545816038663468254576312215092425580219034247713881627068016365755425371060509087018158626029425690849072612430261646882450755829862752611939012659666269539566004539581456427820803356284057476253698198827815429357557015175706226432211578496170396775114072154292149928851019833644771965098459125836211699516833383596377648153880746570423505792653947386993652061670138557128213264347593085647933077853359758458241228882582954426820684346008109934274541657877630918955385741123256536919731255306113663177899823803561998495273064277078717539968950993519172487900770539658738271713051104490741634481567106112056032473444740208997366718080910195034857989864080989511042034976928950660141424348912952170868546464468259987936927052702738788481637576618740109217354480568672685636873973369925981363518357098820862059467426357316701101374749375870192283692065485205377631430021020868498686159575785784291190199989765805381276567724471224051390561489384500716650056670522873042972325957700867038132082778833014846568144043745727413969141682579797148574033603606733524684731719809623313849649418342896899035821194755053197184272064350900847091217208529783431827555725973955621722380281869712163144901001841126552625285432731805477899843033748180854850456168014986346739392008229623046667228430453147709898873757207902612881442502147992735250711689460236877783724521958388508255807890077065008819643013952644647821246146226315806546272603334160493054043836078481929005388230912993189179547594214324570403653302772443359142549661966698338980925692031379499365350815960953879761229982337064939439775898885916088722002885602509367263251567264462416480051043063486389688536594337460348191196300971723139375617436320845230856599901342344817158156723824595554303862422025152508123115681589280953101271233837973235760541877386377508432335178061819763989553808829231299553410821588788721626855779320893845657981194803768765976786587180899003435575533774631945148035556143954119609460729954684810554299077619642404764943652215327293821781345947722928908817666447025129633673543150677506691069878264859845117506172522055326403403997345535309889583930784923433935942154463850685883742782060297176145771133746451296059134412600856498189536829677356087253572684003376972877512171942735721610147316129415740175555537740379961058764690211919535731402848019769436981599737978846793210468147076063148930032092525425049927361535025044027154944744136069949307368064798294044799568314783428436997614002475391493531278746659384653480159865517765096986936196648588940722870034091995935987140856993821080200408125987613854548266538551493194682354424412338047127808728510466427444543845936154800173517712890926810496277366610637994405989474042422810142261432044273670655318098640375456084675081543183514440303693115445353596595620065029773292370598666448261903816893803663254486832444096848437974379642238999692607813724549502065576767845628186628525135668942388275578660843296224167899669852746893906874290873999830047918654360608953040194805533424894444200343635457547717976216012445134694157620912174840603239873675671641334356403672242086269932651019314791324855111871985295868772310722492266795632690132204502294036692854238880062078962393661162286136706836827043355054227644742804630836496595757546311013715495635470426486394496413889119517852782800741726013165100599666311041341667275667663595855005500408234652537459784105550106389761580241254682685187718493793008824647694872176269990786636773058749802088299167423318869764152324598241412772827185458775323221185348195981721430458743482252180004049742966708879807803980278016084234259315403046625907292477802876034423624950911363220466769275817979458871940961091560549772491078945522029485384340889882775010146269798564296082186727006298298039159065871232493439323421852069973329986612740597904209834045690980241275600925816420028921535814540156366357950918494251797079586681813116812632653490028090985860104622019435312228865588426819260498036460487550559291414553879047421345358547056384828510395622608032457137690329643784721465095574578065122917561785041719481048955656074377555619855911197658334304244170106936755198681289915296132868786507935986758919801675423291225523044121089213535391284416626114117066793394621521231106240746764530493685582656888107485079255836389666577601334870124442250985320945305101878095437605719207986524493832231189472707934389653444722355197402283637616495220597587272089947019473505722001026548849053231075071504407664482645618498691008825459134147396084988284423150240124236649043647169076726359403325995542909490151915477634386933910509334842298752262050738353668613218674201306682006603718397507027555380774821669532097443765739245534569063399056202863267605056108949758656209231537671814799115669825447451276273423142754647654375262422574826028709308255712430725721100485369368083260485834964327703303160674625039802214879184807769497358722530245714773927720250592164730410568149076984861363758530230784132657562612197270289255745932514187205544164284197481798851076552858600056119989293853591996487268195800368440187826710003416338878676933470487143233977556697234561011824757227895302380489697647135388558643968179297251783012675781162233123970044022356261862682757131045716512012015272138434981918703273308386587864026917161592491797940537367824538449331467875718420534393660982752061108525056029945515521034990493196809826608841392330717268830509357356677415237863122281996946748884287879968214304324134513302328738962636189269282212103260925180985437591257029885578093544178585679290129172921416070466646710410169016572176924332384785270642448682970477226806665206829113852072061523925865550904901064925787709806923126587079257651415797348696563426385298661507394575238422433475075296170685051021901853599238556300167779820879820440608724351863203904274877027006168604811917202587052973181716808346821720677150283346498438831474633696717985807952880131272886413276591974931891416059448916795876678800120078313475693466090637548325980431744905680245091577411386965070057420835630956599055750016592510776532048609559343733560648349051547025199002148595570149326935502681805381818665055288532532859507125556239022924987892186629036574935358509410954086246814319243200025032478219572951448651850334712863413944667328312686304899591672907850134482964428236450676867122664758322258013641730376851887716081710588907689589336488947564095213089673671384499233442119944868895936822339995765236338359805407163065984713357682608877700902213721181180958544011773896472897948906108639402649858824039636241203884911636217272064297063295181892864864999601944859733735964471235909029335324288281260054862995764738152418536224977249666088465585493045248548278041782495583254745748248146357612657584905487853530224918421823492238334796579467843338388659504013119101446339344514164810713864149724170997651251205026830983528772629487153358598672994040961637912838525674678325184909907316959037436801935394927819578768762551759657545502758921180016217181327395029341013213956198811097319930765202808984893320479693601989005531088662186965177863226009708927829269816119775258332272629865468766612841789171729483047571521763943684095678643925519191639696251162151043379963981395308485965806587659068936035242647844292772879322644057102629857357453169248010736595234023884791955830536582758728992728210121489391717345593137731096140304216677372271790519236077347631199897648020410365793120870530100291810406790985468642102921989936781474919381959179633361691119117662108078022506403429083155841752958477172845892854855153515400492730032280448600430880578610129919481175376654226957431105154011542258358245355650311774832783996881764925675717398117912954962259327347647090231142954923546549205464723511392858696693857441944776451632620409992222094577467167979053520007113893895712869639939795435425125250791476422542257876550908211516986004805820546572242405913044188357531428286630727197264296100511081688097881805389059977760499054511046908075911904823329160124035376983063500062522084782546846513662802801478284483050018415696300420960234219085724030775286225390256257960997838505942086296747738746774776074536669818063397945999054798606701427905663395924003402742471068799554611086097044292448218953497915998756839945054873450414546167475747274977215268695933544086898577268062647339068735300609486341733723075435639224257908150178505254041420230733949345933312661570891056601390649522897353123522417743571541861100482788938760895508303432185268105008791499120034630450194811839528837769739248373082047683661726037807887191792682977839378531779502297324570645418896364592633211112131997749959796350397238068382203759218580134547400359162645226737905262148800612734190508755991299767832931743129390964576876020451787981258785116204565375254536274482752178542562800671092387449198710681107284646149896044493990351964256220972319991079488345632841176769475482927234636060443196299303414061546562569306666938218104721884447649412111826914081419227683478416479592585345007053208150988484838187780143910165028928358770893632231481763362670515329371222661988352473616844845235300391442232965033745849923484932528547553436783356727758308020039802848453877603729366229150144667264022273450076898527714340374913560068553464486823091853199306197620970798315975290641605576889500191765363250812227070110661134366670902006613450236469815586368223759683747052028130302136688642924297007126276868413702752047972952675836235605204164732879508158754374131044027701037297359318809813520525879007933740292224400654664472059762632412747114163502631283297318022176742713518126677498763880021272452328808104401086699614622691155155808973990884476691961391075380782836822386462895765767926909391085346690467165500138153121303793593627704548589485271714144662221166701749328610655644468789257667467745607056267275835215298609444916778808779349859474711130471845075034596293261999661045922377665512079997182905183505047190094876020848409535698303682173012013854952533589935725179490660937526795860431643767467054276507205248705018188301015455654107003749199622731088311067188869428088545286975976431133043304810221271230091738919639235761468529532652744272403867599989185408127992270527473904678833776333563308509499950793259042113527728150858503343918066025637291810551668601716610170936329433222393818633193527143407095456520646387149900979502999768668747477395577697388123805110681408407827684610107686010089343236154591725618841922966500405807125093953262291553525949502143116502480067220643519746394376782202488939169880499069635703119629058326305170515510117891045007202736462357646756829499326740436805106714292860314001664293741742085701719485631152539010606953955613551034827783146999637769729137544048939370171690328968877388356033968486966090403863644741627192478015592207416937887925267589992588428850228904594969820025210018977304661979166307581970436365100432055753504663168192930646942290754610630495332305068070971477522724906025776060825767633218435476450723273755450619962016729034664823385989038525951520107809617251344236488113499216108377916112860187130718501645125056851197776415420393626804058128323578733613476898410670551100681586460796517709456713950592771443483912012102173593958408861557680331877776156486707958449252955697402851480405666448681417241511391177311831923761119516208698249099039123796541606074093342052242125880095935360656644333523668464176462845714357782058254471878783313993456026321930255066010594755873399736599800587322992222032229720166643831823120670268195356821093368371995463635352361926136592969066922731906405846811743769977726187471283673927687599760672537003976480723295197909926936882325396423434288065558064016424604517637872020233110637098234915086838054138420798532780105294415369245037131044697459063758523197160874792854846030702167142876231898306750903664987778082086017860474834747771779350773024275742101840908927044740769113264026504900956536658316051833240239643572791916816140049012922223702088019942138411951602712796347537157381440771303113389588005803629452813772474232951021714562219498380444213251191862723125435292496438183349293839427096429914560169966180780881023874834674462947541755616836965130552181233217291013966712724576704296004796057592664744631339630018914404477576434261099525660639423552993037441433607312916653164922729899767594621605108418213352287697389121889446585513219981170878708943832725687773734902372772485806603488070840802511821464999569324888668905458307118015239133779691749832483130444282545053254095465545033946543884383100871288951160010044219854005002125347166480996736790815912629064105315261331474074947925845227879084907028037060198400508328805116799480160800973357111376601053501539807524499018729959790701840635309464740204261320946428323226480008484523132409159074026348199859653025220829264065336610564528732023476479945733897089098713607275421012713314875571178163924234717214480097003060551572354219276527021358999078808040906495213168339732174892709451673275354509353497833947461714397512681145339728914423977367104509729668994699596256313764439251843934510367692861113153930073132290612780824549976677601576292061815836649550782541032754969282884297203421062510699921255460518330049300977961004796548965754953013180898541134515414595173894590669856596208585719623858101144537051716651904808138247035323297813416723244674746058308262692758067097544384047642077817214889837837785956129021707492263882278100333102814646872020611828783761356259096830370266771685857702826453234597868516618024322209630303772592832436532897743937869622065192568028844285547701032402634079261531397548439613787097367015048981559528883812393850781487343299883404852380377122900335873641635793559084900092499953513945518508369382799790013123740121727833445157479247343373748396940871142439812731568509345756333278146449162109108245133309737574786321557706385754703650903733302797040718903102764073651053764191758649507401517713111408354416980821025273691138325513370404258089224448992547311471671278338913187264082375860411478022083917530788144057376183697697603766620106027199057743353607773166913514811079456725291238322133971519541019286314435201210286253577943947184721387670440429723798957472643901588378002683173468053621229265617339961941508039098260903817351235804554690766113265302070463360208568419025847509435422964519066009604936819011660210868762663302454807545754873256437314737777947864950142316670825490606340887529472841485716256650524113547964524936168442025850120052511629929454543910954558769629021318865345078838182937876510372641083805839873903311821142365456525619351484222918285635668085787033101081268785109568378446227622602641430614478138181039333778052200930625735429628652287291070853027363901048448770524513030175900667012828112416318429683120589400430522514024291833855650445409560441613376229467541391728704856707704706173988139357745883558211278895565499095749491136312677798784108706154826513279524345952978535152863211093339822090047403027676779292588655936066239999113409838030471218480480989272210699548403881547782273387528891178201800542020796802196653219968581239083523245136667161126023107757057034961875111209305307541059934633747004056334209330415169187263770299340803394894248855583334295293244557912321351210194222484436290561239444574820082362673019665906102461827421295939451463518481370188168269487897570607058722196707491041044090922224339691157257541542435460544662951261733049171848424177963313625888317230067878000510352322488511134814659534253836695436757471882100354398486801236796917185901975384583913684741020365000096793193560020068017992447719409809164328174129240436811181506680565160864893935552250278314152779048967539886024641274750314795496878894122370799905152703515639579058821938375399925914853700101184503582546576559636122718277632875794885207790623229268427878406902833750144139758567031988461957340889350442109795372436318382247884574421964165644035010143302952956240181764915234436121933483295426810910364935843795300105417421699509985719219193792875499099997555645719756091677904052966012485840561392126391250759158874099823872992010594382268993804293627689491293329611851462691239121485963058272648884310471242625145478524764375001631946057677195903395570477860432024348221311695985399754912822454085247948585364209752998300591393678207878606836921862496037876439762144055196373350485535356015179805788415160093339316231232213156841625890935003070929744715200805286916231090339665745431600070814169150356440075753252693083481240689501616593198007450804832172341461493051096247772333432708247270145191642087343075720175184872353678353090031722064003871690082139101369190804557032316477245660242505145268311958505183586442113073169048303416222280377892475656830972859579019643574279016549871359167386250301519508660166098409220493390186450908502101829512492463892732897754367320106120196614877066263859735702404069820901392340973716576279497444967994826380132369736604466728048778741560471138790121845361687644149693399403104588132276974064475682734817204715668711474205745867938334846612904516249369980697298698030722569973488981731060445821836753323848313509739599880254800017440163312436436626960604056273059784113035803745153512265500779740885831104753918106294000684677960004676334951376646794295486186523324157034232726035128036579465301972651679818782896342931386399860537924585067416583598872255304319014805708312822519075584644368341431699377707191632465597584368151162725549289645493717930192662401359880881380910770507182776296572011449737593787986176978046083976912228728620298599580739175124001858783381498051374213693097812366167353083070539563397908073306058286296323839850394806807774021396940603128587645010545281345640708699396183618550026076639370337537729362047105567163515100264637447378907360493408761851917864256878700271873488093908242554677189408212722052002161322080848842433050062837942582314085814837371421065100911372447913200093309011663290461615383251325230617216859955096906603634865994020806028439725390518723870690087240164850337884916837727268494840832106582501053744873392679752443968245703875327962314092489680136993637054148223543807629211204990680968507559215396305858730575595094272006033772661361043360411255723466351914116550474051144278421721030137341580564349212112228601423806942564201560120263808162527887642179024369417353274516565485072632577578378145177739296135442885313937079307066608097351766491456188514858729350486791781726816988524716141532112926673095388852468358100258669814773973765406763524552176422397551052184750555759232269430255693558305118436696021979286191221044919312788110751992986919528523601823709809859260339256659345523967459584814943120184261573515863430308529203846529875723469362630013635560727610181081187972878690192766749618393571588337439363043868622745246177899359823907298118553002871592366183656623309235099287492711981129349873018484605262829792551471321887262593837955883548430659159509299603425363972378502957357769700670689987347043267045788841201972653348629140353423773959904958761841106639545706335695514422555051476910903650827701734059848835200131600341323866205241045453391410711337049696941334414464028318901082387381517159149056400337749927137401755889728877028753695493683524837116106090987571331054290026019815685820553720460930603893521048311415521994378963096567227413821958896734539768446957331249527995477197146233867357071549576491384120950079700598415682652051755740002381717009109825641875557848770817852475768272637913947079452771698229029922568751793962037353080947050632364009551832199223239857331290900307834314157957701681184751994154619823120135130802433206405112840480052798832900109807910178063425440053039284122184366867378332517665083365234730040884523850227827289757071060135085233164683664638589130994970923773446329306225942858649671122051828498360796320780607607658716079493119421058526766704480167550745979651327791482297596894993380024969403897946776891260042376000568498074053701447206381074768429476640562406917814099123370164379273596578911621071064420600228527768870041816198007377810049812581652667315478104999537098397076932038645340249132151565608951817007964303329269450409766963033353811658216233902587568013302830007638740178322417029901298371341998349630651103013574543259152239699184373515659098832036410209618507229412359957802639874665582474374097800537844304608415058757456709787944640146665491939574616053931899301709690148603118349511492317573609876464560259042843941948365282644173081103618948330815150410091423847543209652522439397892556576066091903455947989067455361098512791854742377841500602255371395193418471525104867302747495855645931526713749776586503802317631635750626907315947091312737712806430636822965816249603210898925490332467641211546253835042857318144552341618184589786110241535914014726146013521924081911193378480703995635448400984458999555434622318789098340707185640797351857909792132183728157278590530337232190344165511479371567695376166766280991467225761039300145962413950006674537964509844407801267132920041423307894184378640391792806858003090958524514435165548835664579905513953388273426722634669738378828559748293305458701291780147742460449258422488007753052352383430043978150819670427021694919979869607908610848724243192599022168367059434272348567275779526342604175549015497479559117928426751555633001163924926449415460266483922241620051332534351291728332519458180219141379762245990444069331538453753466693186998956002289354211014202198665289713613895304998690198054607302984444964080773041068847993948561164236563262166682148751459644950135054451253228929741843456209313017132313834751700413253295022762153170983984829883542091201036161122491192123891362439417600100773624517571557397984088493742667068493916369534399450094277031421172064220796821060617836161397730491746480460114679693824407711893138344652572362153313285866019231073768013806829004145006918894532740373868359069990333128892361615022369665516425929267947214813583147743157881119589429876335226128286028143078377141696602105505017427629268772687330714761701384171912594318900211211454826556243657469863932176272630822054740681432115718996781570336798409068787553894804812481908424532185927362243675465543083996914487092643009883907550727966299063854556223430778180016266934684467110541688584710546832408474299150088642897931736773898119692208739216007277154245928161371620507864044417013613511138588226907505307480148057880483124696312985351892027999771417700358392648605182001877832649739219625944168685473616377583707618064515014316365376311930138736503174490451060475376617905121638404858852665536956379510340360871190890453811376366794410044542907196236819107848957128923872772413922967547870411666609336352747380427156794503366937033586026253400857567164370131306067330532559296672020623597329289657506437846641150411626464963897711064564340922789714151641778350861103793644177382426631659886646052903211610453635717543341705979984912703184600637488749524287021444446293806768966553175983901719828889381932562578354705090219368905526342022836315702360440130246727321188335836758582372446531987888378493560685731079096949083261753059138409202506875971983659205183211105545167147196111691894385612939820833499185229826052850893869789583940716891377788560984537984006812901381785505924127879465903622841568133970032643941891397578932008280678955361586696930673152204656172924879370105459338886802461308956270493976508566472220291354631563853151052582455666569284997142690277119745070522068455930945656207108548698890195164003729973128085842690855479751537876895928762613786395413425710844282788615119677969463610060628662328641989195594318424661109352166382675316874513409704281499953726553845175052044490656517460121612401075169082894139843558540871297263818517021551359137200564806755307833264875477674658398204434586534082363311954111888796693249891197170006561826300578092897848522156897188398700814919286052571814879625127079878901885752812246756229846068023696609062875803997672469401476592549818132528682215100454222344401735632647285175368100091490175176640221331341027072070011709204290166646248871486149769385182320289695477868912768922643053425440435909865661551408798881247120343380510812003590863803722396717018067690238198706310562198398853646319766236339709179213969364942470599017783449745236822918678622263494828139241154927620973304346406780053790517535370060427332923732716881902097009470757814056119425397904870440330654999908914136381389019660323007607105977083425549644095417043123756550204489377549208120886231082717857396757386524245670386128741558538903777830123303261126576151262901315327389361272752822036640657168859491191489310793750110964266065667295275043771896515599972619281440134666314201867801953597146122414012775011473282776335537392983417209746932170759981577163420068155042462426474547116521222927316620874241312108042141041073058546059124184786664209193326374165916766771379795211371438744333197340139066571834775729607007338823072796811247093286712516833608586451642493968115372094264010506861072373634358550647083676001444042336451337505456479651072412412425342601662685067461702980861514714740963300119843669237887346704351410320637589481014612145589200010378422682366196581453828908012534591923700771890519485868131793908212845933732242629582638529574883346470998282748590548952012045717370185951725466980995925349038239902054023188855855906960011153792655216534083095592605994590675493438305750186482866372349727799009413091733801190146083308988610744024685352422889210518238014140800897805061590706439732679029204652712707327074277552007905401307718908753618128806869194476057487872449939176259167260051357329898983181730922636401034149822745815558607232528932464149156761474135740927503588501139012469223058103905644543107293007429434314013751417244831574551385982350951597714147797990198136300259044248224705445862853752323911333113222887445113258669024060347988991415635461607432782420837816830200850656547305982672419993827236334383793377122454331758539092678334122401698782072563398879023908397852931147494657906493952433024828273004551860938402132309090152401628377743740336414662377819655547033665302173888588776207090539403818171314000339248669771098082949547733821134982772739703969329865355240949051530017323502549311942903589810868420575440639664568660147925742810470833230483158124823025431055224357425696361417339599317402769776913842459408928960586920213896481342047163107180345132038537636741421523769863221990878969431905489305584879922288264681053462011865612020159680804941824261398101675992450894970667799684607470642170080097456064359527641960527568007176979681225608020136085845251973054823742234316307550981313380729279526438937645543327753198980309644540564607967322953112356314274107759327714883951465208999695119099547547764498117978546283378522213890030137664817786320900406581697983815604879747897374775682209603928208279001003957589587713332050746851153759745103685965064192215901417394086478257377194020665313180879475721827141539863105435315423585294921621654017019648460259991145662913634796116849443785265237345223695991754256497889181496084064166018123739799173436705145576135428038588137197960657056832704914430916834013447967937533543886871173992148460697596312417539884769756403824000006682538353969838845898945120064100111837516144812002888110495277248825033954881028597585851419539059996476754644338430784690198804018183340517564277363605646453198246544311376999929262495421030612826853425072053138671816752365434485511490971656904312423770181918696217065428968834095101828033946303314882564374248675385601132479938744906622001730010410233986564160907001497626235067610232795548870747348574599583034037975505766558538314864808268349269702772021537209024918449990124216986937073341753826997589021775772904662656681139086497353567564787472875790784217341689900677827850398194497802389888847944915086599279630963120681388403194106672892586627829516624339690713205158086122664582619926186801226454378096976795250946473335712048990744878405297089480667767837474901200824464761230847869177158852171523403499875734171724334705847376686585390792146985928449022108951269467600428418424002787493590624331119829370655495556767646562290389250029939532057119157931187984659890091265851884406616582712861009793633527233300106137732549886984749640534162953100233938354981982325423606247962805113278570330649711208238463207937117363673325220486738850497816151682259854134365162104323679799590354029348167398514681412930206180467326876409491960001834613648789858059618245248384044824838027921258281961031769638857761327105582396770144390114363308138714998935255493459998547909214575388698604878389045466016794731062552990559703155386247509348154905812068507017941987576292982158553679508529904896536837231368374113161784322057575882266653350796115935971573919678784215487509846831007141912417292920055900517696944329785471814609509839897435815312451509557347848175733571454045704856066889012840754052529727516044925521346451297553474499503940378639048052019166547928631610918205875412270315518925424327428569942036536124190701284452080586330660883909119680470395536797059976861626490018450438643526073756581763241381311816346070143148868818859770380292972654304652676681008437789108881121112104905009308301478303687674686829888784591107615993373839489597901697483302317211165084432364019167317909010489570846215794114825448945270334494195603950601902625707292457933909308101156488799957844619638787430391611348788849952121648862569304632570886372006769064960585274209947978017856089272386314784891235928441443403880899106733643261463853228794080378679789951227028305017591120721745910839976103723711914107303674236535669198880394965752385401648087858946135263019259976450262158179775936602442346141317358642115126550047961159816683698261072670235956167091562890321023601713555293336317488070233695645065329635504992493899178380955662014063602559002879083107374705375587024910993228087952451875368375374805142219292459775312279203173460228497451488946080557114054132899161986874251359080139809319264249276802151644254047186254138449039711637242441503663442730912075843005901078140697398151893084381207040301093149023186966715606270483951499107201519746805254968786879817788184462110316443506079516662794170907455123604785423846313884034275223676139603360640867233501232609183644196885944228973466734222031676527008119331284408048162256038501594797450311889673848276967390439530899184500278690996960718643536624904628098086695437619565260129748320160694340705695122075447862300950296294263445734210403940495748585313289531645179185430556499906665743827308841137728645697775626203364795839707029534836184997535715647579266307748243979716979172627067674217245979572414692178445185957811662548822490134658725800607943009953542635667449146421691635927250533777774768179221766417930033751372071566350211018506837681649278168659507426943313392836310101642493520876850583518121844296339567758296917443100661690414120465530331460685436222186082495195638298490046088100924430855633331956979425853918320661923803910698779053191230171341554412936134209501248227224566253675038908060986972629166269363166629360118526410820899041431440379523146884899032399884069744665133102359226750014393823126316239966484954762435482108977766640732036512967245355295475535801008839492414313660529055528998253646351771621148561370791350692319653219093422548791445145324500193785763538426809021817791365016540637614616769823673504306026786024798794858446926073762192816300640157764815474633885967113253551804948395606256934478912331039106301735225277169285097655164795673035038335821616918568291292542703003113462983237961766252585916842115713957930901262798088701928659391667767668611940191015289653061967100089994326201304479302794251769382654601271501622087161007914160821062698711904885111343656312707505421917147781838809315975616986086381912017614559441616947141004398631329624954860069605838694182700711966457421865480848183311409628364524341508223906926932984731113358507837760300425891382270816980840702848917615327774781511400201273957515734181204951063173569201807147311274216920471168155010872843990424513374242160062792894950124816846548306417478539243023880717996383019731441611752871874093854308665309098495211788205155689063340840812753543302182052093869546963772925386256597123157962474203285816602168172300625228523813383999958721635406252197558724925345726027751857649945594259279304300694538696199366149498722568565168379166409120994421380227794583035702789040503376719519230996251009645663383352608943421326743868279640703390625581725696680764114035299161951989881153160409099574375545729881531729712991580797576695829456536088412008692913381894329974590742825355847158189571714373459303601591503450855713747503390070302666407978190693349384092234223969444245748746957224020613521335524627898815704497203887415084772313176503184909607671081675878778390415607314913070884452258729075085610608153443488239561688099375218735815799621502408851320026288058738016475806717344975994807163293702515477165173589195357607786150590203296031802019796230835674512831329215511612517473303978038748415319825618538373074698137246782337671322150282533987227411970185365293549915182133813641724027743952328571940718487099736046073369389156312627272994689328286229761961264654825069800764500578519274794956099746961367220627087497266169188000930536071804636722521100754370721068524671190773233252940973699036516857248359967877422517217842341317073021620575410048488302716632403042483964519432916611514840447170549011153861354765168066799146035882201807987723019089684462256971203703885583177855039636891661457597363672285116721528306690409139941941667276092978060390415302941846108196878077266968058200912728248549299777471042490139185506332870311812825069036829616392028450500650845951880773370269533326566215921053210116255323301339804209416239022630889922635020449569761845822721136534244174513046974721124900788795250054748177627931504444411442091750436208167029981586636130833052194872868503116132825569859012616530570867392306558908742598919418894800957121140918098053217949738827551914539629894891570993190713514842495070881737421311667304371920356459058434207996730967295880637183560006069085451898742445332006850914798662595434616603423546427060050775976784555655470153329374230942437166126745651822032182646002504567303935117636392979105144807836677579481787553564430438141815839440053780268816350363025960488452673985635368904728549080156348372279864898857350593275898350342776963026240968998978626924129270528792270518914626605827189214045035112172767377443984503003198178816229422697189031939802721634706668850808165653790409539261063160353353721320582464875084036676394489522369452806430060041528712296060707027820929911715073351371521945013753623650836332417445728956621170107733642069694814142160373041321653730826300508662292635238899937645957608270384305007022278864651083331437101633726498697836911575507937172456630424015723108949539093519065562951330747030367555783841865160892560033966235601909160934475700177838768166962076476687591834946243952748138386198337036948362238461431545224089146445345813203510800148006236172103821847609203921715629512739727915555134717290703814235188360304827666282245520491529422550358028901963451327741947681657586036522405168844116024756835561476664116449334765131261550295693070560766849677361852404635048531501462418501915037198215174321237389458869909584598381103114041236975844519319076585665439125081300398637058213111623259805124063418626320715489672357967674492236379284138375188526210173832465951125577504249286584279744598883211487294024264181854612717873965508394808829712925932467525825818240510889701122455117479785217120453892296556514026411635496128669314999544073142172529299835282145416239571853722009605244035799811685030285666703421068637234036734443873176243883163879144331177915071193980074763290526748268514551122844245488055009841614381521890241382588104950332822812365177041649696207013234992878374067229892496228823840542015268964279067134409338181188850753982744909285939431868558331671471287720760662578027749939699645156821015101194919325152505160528197884920828623662433650606241929759987239384165420453383206712046995204440311453725080393642626708536938440197569851419266217233844903918279317490880442548007802484264213022687387493907636016271462611534285692110280009322365267555029931572288770443072386647593763113860511239476861596808094596114669854029109415762891097496185979171440569696981437287899789489209641306769160173931942274477888187784416683847066674963303990919412027327576290512933026323461472007978925096136300922409086490164579262776591401608717099873275225512604551699962942350293404399832125965517640441839628531099093721249751885156870163358510784205438082816867960107252807289245974156420847922510082929111553430902464496359918281151050708175974153918219481225586021909370453317621680769684304361809122599512478293089699235021057254953829124195545772344009551345070897448623535828724932407905145887537752529445925359774934412031645739817891012766130030131566516827962879918910186387626708168133973445743271094352663902731016351129418518482673258319555903702835711975127349281744721672283712127055951742477044116492379942647377205107748651749351415561280488677251705657427234205471649813851356849560502994996720247604455457049496420261996155941898171061487830408423082073485641617583327523387143566683785159535747875568355354953846683746907207473778763967949868965213181117045147180471829118543691586647303729957291339747140153021962600378694641494533637274910134892420561941642405708086850741952584548354651500169284585345173251346438000328211478312916532583582403753065977086445376211414002112622512774216852399776164665936925748408419974890521782206753004149809756122411176571079633588159606848386643502106968868412749806476765682973438755059920426834022184090812395912763957028931833653825845080683243609979375295210985330532113654464447033514464988812504517140909031604050988111252900705367992929591888592127908094808867683853187038825768414986006764324100547122375032698597999369001573590179745778814328462227909570307845760495658915892077226766625329427647703192918684341719563757160113982321621184207901164024474971579526043277018179345731022493591943151273578098065344690049093963126220533787815556299505129972548725632260836929900405034445214407217336069151408252029345908713015329324456746628566714850820832867104608609502439206309765617308282868297162820110652222890184991291891491527107584063310823744388099873618318544231485479440053837985974653199905905066552645290548357027970281567450820623878186753473239806667067745196185622533951039746685841636699070671694760801961110964169138811761334458004971644962598236945702692257323265600543208239178842476159563858565631160131713947546632284144767586917776287071769847780810068315231296731708857361375653736567029693031003159751813530474230465347948873707394510921949488849216939624448119684039167668909600230752542489473402106485249422647986638780001614216121942648405896354913802533756291550524868890208433815006831275275565911420267803263895564626066253356843716643830642241624576501761931542927238463335898782992247683302004405050841626072740343508165382851686664749520100217477017307782054496689260941040073979937787700623016926052958895853016134918394079356647510577848979956162981223843097520425956722505547533202536020205814274121502979090889122453828476991230943455861237955728895213974236771458504810770290433351798856847100141328575713844498407103828501323720662179601864092691885513817795773070991414515878289393463843744400133780107061744868857574183198771635141208849424565527824467350627995803322347559311034620726502304827029191031164844566115217079952029872618761681170854567810464045016125535976391783408182225843304187103739708008126524493435352338809761985664911276583698998080546168346418784459930025573109388483022100380686523031549745181052258552351501289755281442204855940798974528637181774960341191686122934243746058165254468523835367940941183711857813366739163410712405693188855425945139159965305191352968126427950423996447015595422411442821369478965221394999348097847450482663134858892968671360752079186555009526883427375292730890518159613081380048211061251571408110524464735417537771535075304646491864076315589674298955611565196170777052513094606949408065054591338819416299850061044649007792247387298787751481105135958248707059467008882849788134953181247338723332179402667301734100338393496815546892955209631714665260608096943899285398761526282450720884165241770462421230046475725082273832616206998595495788096827729202849923848087706132709845553204882165701857905224508591676311845410131429188961587021952780111031576357007454423343555531846036188564104606280098845131354892805780230842076674548100392530578930112264136571987589108707831675061892559363953434746856650858395514268642624521082364658878129147397641116757178756299792948445085498814478480899918019532568915070469232768370175677848006830002937793842710831379404080993016957424333651450243915342222485492858472399118442109895038952882341732466112932972505056853979990153539519665548808102154841791831542145884989947200637333614974352506112768981296859050066727468535341462824025041219098929256347130582759914535243636438355346379362584399523314328670385625482884966956175785152533648563630103367283632418342509894210170500530380054847938160092776091255159085174178602305581749206884550179243749975458869568118274906670280611537303932801039506450528827101697889257075579273921820353064440331870695828461570875449603957675773583330090252363144946745424370310183498244579525065526020057668288883020622342665261119749946822558727535903305626559299334236084472238802115725778907926467757257466309751988406816903380612320033358795124047049592399537966072674655614131103204951461829453406979766386317443452283174128818731425586305405507844141622171698993379369491074135319104962189345507063151637222268172790133486773571927367149793158231574096636731874799847113962335537006803900812456352162242476765151942748569764824722892312932434993060896987015505064927088899699203229814079156073307406746122838702635902239377580458250196737290520547742731703799842279575171823793189932568204652303564278892688967082442537913063387561452160292875182840779651657834527499813063268192387810678185666522881491878349292551218278250624269346043731124348827367449689076346725182730430761782313003149563967292877502918952241917305896332707746834435064045026504443747429048687156203298249624534798112271107345417845829831895441442878195100349850334303462654428712373922156472628809355450134328708872533729998836636630473858024409381179863933154581344584276582786311523961985484516869806315766990956453125258847294353132256642931139679656433827649242817457940392081172423690848809096930418163989007221102938098424555053674306737521886639485552281592205558634328749313392360651180684827179650817059658471168162058105072055761601019494559658504521804650431429602042776447700167620378867827582641763184117131762963530165592252614687248293325261125107610447903191900563103417261333877764989409723826538163349146124136350231795442955167521729574755203133544121814046448104194162437679309099581441509950830076450223838150553160347863179753629730871026796741709486795195389028588103726284104888770735747585246307783126901160728528052748162746444365091946064485544242178628321486412247061192440160022013055702177864870524313494033150437938964035486562794937781223316668584135679260489817651285250486642962374030922830181893517419544238063780107017352011820021580305320240943249813763614805068070717171229441787239172706822088754321815695022347135382704553269934526509047065104884424860446821863060454373279109006941713154837313995175271384733430214929199227332385507718559635403439535450435476156359176168188096277512366038850936049562195394433385993200669425542981428314522437170844791279485236186766078462252314059627596997419822602331741998155390300856537172868155750607407761177328321092642776229194705976917931105716072859546911436710471831862701722473599559233089604848531558789549828189570137254870770711726855251656760581683790238937236427879143824336572797976604964700811271070603455645077849877109045954534064038195815133869494103839269454285869488444765188568004266383502146964280289226590508554646051665291942713680835120090267827272339847422334490823460588271232711371169192757806091604278248017636411093665361931455249033802672162364715829731026678963607913801740647202096179531669542470886449825953003522947294112230085791174030258057159356743150278622880205090373021152084857823402113346185268506254895471609946445702993770743741323486050554576785353037176764653357304182533326083382504834614136003690291870090636583301372345476495040097372910761896577888795218974736060619985424877006259115368830962230706256785485828043438728608270708401345354417733393310102220336953431526959274780592839807777617643542709567132491842685084339871798249222909919221828768099324685564545473562949926982666722382685796602400899624646959074233218955927273536483101904342610087405638322486252858681991455716882309951871453007335574873349349277907892709359936955373182319987340002874270060409802952285013713084926309584163239016557403815451576094959223257820853188606342973540614859802844709027498317686937621002860502303958090058071389047071871224732012517349914393491960783336956357274172631695213659240282755874939791453609097224491658963156275445138999217458160769537664433781241125824668675189527657659100561425685303907705410007473250921252495833204425850732522840983408952800367279111006845884494504457579091602646247716258595741242289800376788895122170405264436405994306080535976094431544521243085718024671488105142034278585789217394223683937517239724885702431237497311610280722729412539157661833440749796798209070997227992223582583026382046755143439135773479572935589874346650579673582524323953440780364267226398719662026570520440444284372054920175122264234319407783133955265268123715467510146819955545355528620931297340436128044142197644648349156553613446750548114874606271982631931245043164983658220322393636780110726296495792713973543391864609465898630855461804684511475121063565361036237457309417915738820204247479559273778972445504277600090941729529421222335655311601394652806509522767894478126429834973604796351200978279658570878368365812755474826981074368370571876381365023640790377798977647835661649120560059811089316719681079113259050904664363550697368146512065223416172785713033235382729434381166125433802994746036095090251568496411413359347752310677170039171467631168897208098917870820369156975931923653689849536824385502809206082747705547360529999152328604857594664405050888040797332627820074888737257608280735710265913849509364628975145133006681972700913019363932029004314310736064536863032523471444467715224044814854579814294647310389017222700680952205144630191086725784806096728664096462943650392413159845578246647783215766292581509291417758122325231735210340339689505247024048853854889910695993427026388070405471511474525390215348913155538327622098430707790005428656665616366942100667364590002794651716460706980833168414529038269108603492160785037856887230122420737071806114158677719658642635224288965531249651735938645441246553360656496079335505086093562159026327774962225707904523468385826252209520165151577153834374862204276213629983799556589093859598193958752814943309610044396448528825991897915139584254832658547817222721810883465021171496093779264483607316331110301567125373143146425454837323311382140959082239867936760832776470520672686167644727297942457503920298158660741717807874474899224237055165511511947249169807661919717573861589657361494009418805510840661069878390090275928838877812886798317117481500246538866119246380588151206468030137277399700645018905206826816588248777031410157192754526259529859540932916071229396603876851933199601981187113822169259199315899927345338550405792785006648713157513057375838734899164461258527911096896916187131576005970364951639769486632028532946093924061273528764278240990392569725438186562916812263556712274443638110883501184825992804671067793881467027246310407030313855413985352757611686753783873987154855814851208181423081857968131501298053201077739365297886704467322497728630070993903330627523370555475056484595925720724485833632427661050647550482765010750068421268238345033078342635506787712337035528860284151149506174800678090130922683438240708787998061580862000922369096592871990598776318945513675041069736725663973850943873473383636888824511599622576185040792853370980759608163256279823019860286651059466009657509379449911529546016064403262972249270414303238752365636359033300090170301898754358171499481756531087380633639799773373625513477207875566812847204354925828680747840439020128734440117616709762043107158367792297256560666348463589787229811216626072245545048194635795434866244228196887076785702059783478292416746238599334218545050148079074766476193900887892870851102672072733162955149438920232809318939640785717806166742064494855803784167144382066891628677878214963591182727685059618469462040931504138182629037269467393523207303546321441112591980909345875420174786641471459656719382629829285696889375946148621737726810225436172875902532127504375667343951148051142664545690809644552265174912123512266093980336623578079285000114277029203187136242883406571546299428006779404304873795829456551516996460434921497698944846076866862603077090071480608738747696054598514798567799118869205079924161885143273995314911711946767373080583596323285881606691520102225974205716479171609879171731702247523427852763086930638874374735220826216817090855214953578789863708709370847022196705342697732050382321446796527378472288105039928916631374457167289462380857366411981503301171183740782417068788579963059680644444565658417942083937312146257843957321416106997661869242141606264633650614573172919918452468478139797845056945134035107963374453838976374496782276093065567495338749357867049727696690695525813918898277728652190406363871657889582198466951462075797433620986009488048325271504278224188717288808481479034271654241946559172161222373879500514171859881072007026610196140399918802798216719899917335598426772936427093688068167395360896719102911121792236944914098904217059255343855619636913640661014932200998903333153180537106552639146363215934612869847537540445433777472465949202280412540424085642045285129495613748277280443563058654345706368803251018492694639741804449162448158937167183787465827195122526942038577447128324726938822114136846215117419435640154599322714177163738048260693509549112643268548448086305562689629177338963791152513595234108113554948245159174406222645810586353430902652533280958085667781977956956769169726557488817005915471744143958082958219969306903854587327150382906811018602999292013782097473270359254807182894817191246669859987497189099212483932386510175610623053278224110165347474803411590356138582640790908934482202162950461383228069735878776424796636487739532841256277211336253785047579420395823413497276998580273342544348865495392159385082419019027982639529552930831574962991075484417799679059624968847390314093888443895546425218231808519312652664656762897521416445388147904636803873515163224298355390256537132185136674747458043782030391493167791847057842731328386960990402283585883136199123801620263557818389272597156634868824041754867055722156670661537797396834954032133271589545982929337480810884409763301711723453271880325441001204945240046941200097140189288762522529555739026148645399828564038286137875417665951497104554524717615654183878070668142082318498031372745720208053873053763476319885629888498685993905851119515178664860868408701616266079105987904371941911100074632698667858030604514214812148796335721010020181632467313116723770687836024520565483601384099302101384512285964379942525901825661052330484164281411541729252900075904859942286076332989278650164869742830655020710308618274833687517568685282418162942650433519632659970429459370916839406190602422008946000849009245614138480798620228523046631652314230689420263759238700131775949409931573759488951711548553833386439597952784673930744609795393499122043231334770866659188956968845748706489354113213201870296730141013936696087330986636076160075460524641140565160333557407561321968142448697994294241788086617857421738872612874404607853303269004054690560150133149648869841415867730344398646537697496741267298419396136756415932252491842877288292402075677997464285957301772343395522384057600409749651469775676395386117740239269220186523554906579481574105438891699762907479877976411686182810784476234477882705605401561781760606850259900509369684357057001799771077641254284160374895131354686139349433507962811115699875252672012621986428779141631424310022911849850662656061695599032110145169220854347349993266295438255809182133333065926613443629070791338099397322752222343318227003576376835997806702390984912127443880292305642084131869027277368900311981280585188532558092327740865128318003644427827215572724063443840646026237028071897616002038828109976821813350418127186847706334280876174289526132012535577820871747525271666082112944529067308019649661892708510349663470638683903928304696328275206063345316184777894871940973517737859817502590392401066153979214458666197721488262252457037379881331126051920690124929977940881316976427828106041923811633490219426019084621410694872595712686533044887934182021181093280115141699855863162277703732120814492237499335844233557332311506936959410645489517489297537653302911870823328354517242944642269384842422310142149160062852955365731191678241446972764618399320115708437279748925772234614532133827483428856903160703786959170795372069165158511262813252670566094403033371877304666522148257833736043217636063040443748167070748854612670973457210670785943697120186857102400798919402544420544133165857690476731033004964714775220343178344488349248219602139345556739035949074752131384348309648582071148609194798858074399761355440014335554116574427637179085567487523974443196263642755478946302082775168065879109613157001550851099669741594101376312303349213105213012486574209837786751956142023223229669220330636156909165750458653890386240069145370251283772350760639011424573327721999948296298062403402421097124792704466365710437707830688321532870543949165225583780583902481444191775615785723916469383466893332633454397174026550410787080189588407375258298419172059745795398624784139995502359187643625553123556758231065509677694683173851712895749406066557343621048065756253945473303293799428760269907659840637921405984327956983172724548850738646763227307628438079815228279685757815071883703076339827364597707382482236259670779312464204654689401877785464439062045281844589188515736821471274559610152150388499649436250050210389027739321276292651556584898085910877335122921760371990783835185879605125151424904676268898484851707689728305738368897015146410326511916820001909608802670981119840799846568988072216650984181470525721694453245025050750926299121971698757442202287637942751783849829270769571187966716581247086130657626831410911864978434858878170005860115188980751832638772249024764952317694291218207174144403215764018113178125238821864098446478974041378846421116747026905962350575711254065503168873240630585895547632281604334561389041129336811843371282337989055491921495839988653567993071420387986271936843192680005427888669985303043445911559719132906324292020245138739161693135139931996247252376128605242186123505776211422418776334465945239041243231293830969199583277569179054046284952200917443539215834226197030075098954258538152105029919613673479013427279427093421517038782182640272727559027851115709810384835836316998647261769409060047933803642695395885614437384963467034019258914629046823600040927520183978910512341741456966911758302127262012299682348338669836525371163499736021963750948948861681654604925364151019185304182209636698470342789024633541265005090111487845439883658668971653811159426672225496094582692864520059945187609770873874226767160518989925109775447303539109005721559554287388095962009878403204596778989098866680245394012233918060559853010949454500600489783524082172451978542961044568181664879563377875479456442541940776099150138304161454265770696733445201682124002834634569850437704259299811928875724869611853230912787681058297082158254332962465030780820506678144052421654597054684879740364618226259340145699733048569996779152370382124686358704997461835377404818284452035595291408013861352673794372494700554509124853728240769248780186381771760023765088643643079350979707053505105980154365335169482641962130920377387748619891255691163361042372946673995613603984089614484122996424476638552902661074341979284155203078907284803248901538151733110143844953558516405060345706047873196193804223551573600330734759676108771826652193338600119591742902792005068680607818870790541490578621627918811634708003586091859404610733860343457933501689502616132087703766185402029813179523457267321413527068279592970274326413845212853521688106577591357009299466098570888776230113597695085919364177997710177695864436322620894373613347427531499961898657836060088169477720511561286058739193374969689820297937688020597699763823798823330898816690115565868677242096738471800101712857247478996587522966162967345238408391918811203662721002338670383455427486255554366291193867535284289955599456591481559611688338449380227885181680682056726899114947013634557500812250926345369228152414190374990513889324722774279468558156849715562177294150758681381623777157728385751631623785346161018242023405999816345813368216941695763483291025610016148802300294625238115414723997023378478720987404455282348573919140217000369940236627555665577047663095494600112469309842812135669595720931477192779284921535904498539631297639903020812765915027320010057535196405925749630626374325584483751793860444600493933264747584082237245887347681450148841248885377427241817243926356580552058455694649341907939789930167561072986902571073240429880947491059160870800184760229011066378261572644990328643652851784727166897836126437689110589628366420547038113126354419474267381398871906354855477666007668231592106686315965056724433328485803300966907386638271134073899280204679422704971424062821548804130189647339795189345820024081618609694869152191350611771211466360365216401802922424601058604769248027727537901582690598246776720796927612758865455635395825879661070470657114789893454343848204650961997166983579700012065055747463951593086566480276044005198088590726973340896969087065394463784680359119533010565524400282739465854263762827498343293215908728429191947001384152380753810732567918112242090610263681852117875238250107300986622619435846940445336086980939369697145547292259979928708034777359547994707517718611202087414640492754969462207792649800132184933712942098369315188993524195163518973211373816575889704789925226105140809027799532391782165320059116012547000330516826107196978104185593454449047545950597729182563266386881902140766963452474950319248086491265901830886033888587252554291777862314355403194742630761349935075371069619978254248738874209479806192737355945725114589261657217420128316428464979045012716713740630447947709976441460868804365229487786191255528545824692405896122500216132558365535975844887922977456710122922196453520212787375899812136914567383374293762151862328815324928378754175581454188637410578328578496133487985980503635290028637824255116464224538494503148691019645856986084128729283187057506452298988005509537993614634713100168699955396990591868517247464445879189384019661570350168972519010849738974572453609839540729627745576381033279023315585709930406320805862719921908963073126125175073835312883617894253580521375394892175178260384470428569873726342066543332176774084747712292292634144673600102435836219265586381131529237449569200761922032717356114186829249697938314744200633493784621005559374906118299344547177811474016428567810111379874943259810495665929337793550275233948656870800177633152273726295655101946338075564282457701008555830274162341776588972813733464834938605064555185430136836598812084384176903868388819426752275411701283908835597794286660847199246383188037295540473293905157442417001481330000189087345909617843447013542824804529120970959680536064780669917214232522428437945797999103709116575987090810244015500282356747387894632998056142079477577594585175493863029458030366354497582334308874781887601508121103324742231272595064988697187516476336323450593661318045772263834423175462993838446934057023147031716189356463863981185347383376495114961095696693655605701626456993857565835576382491277117252798622729565113481226275161275153064432081884542513302899317242618291263988141282264602989649946156359284653395192317385571162782047584133201973157099465328507317227728545109871623499368398364718191867968222005847396562843471411335938579494365339425822454576350766203415159381161241913432294620430891554198418725715304212562117546265263106826991355404020739744209241218497863074622514032902612952409610259519710803272952714515024363194215864770360528759077037214640350632658373991822502311789431557802526956463201557349861414370766746652121815889033908111241576100317083135880651568696562328247018604606948812359681615688589109424479620365899579406546339648845565548246770137945780642139827092454219257818946947817804746249984141848233826343614422604753100810693234449934832300533668478979161218064155203266039170987845177889179151193546150774757245522125938380188579489368935644790263158142092846563479293054603822733405881440690347157071278543630485666906940390462759534336872503061223887814503587733423213780836905234731762547907183734746467753914131470784996721560174083801806275191802008804589224663786343501810279424249194813306997788550944227581786588462717573492875710613132919052257742221407538617388016412922944719368424671241422992198166684152345918854818792500926268813078336685295201905454121289626258598780024158615995107382320414314780215890343036307011402296574587585471937066611352772813003809813168922742909829473165905055093314138773093288864444331216531956675921197461356977387576354996257820041797530139539824356069879524527987258319545318049647016715262050942139207444044469211972485631159894965008935756081452336064603918547352791452845687783113456396873678727458788239321055038490199953054691475062608893301192379321822752566550218944905215620025557967597303488555657311826165709404974275431579580122858063941799075285453330414994012579594614305141323205183397402106327181546156200801394720583746960293212838066596443160310104815508334260868272525232577146748936414270748291140784720047694538884669509700880163613113131741200980151382670608541856488337781070129690214240222677005744414414073419100189020571883137379590827427962499519681619291136047339912022176235304061127167907879839794374294685348193740529491927834983525224726021659413315127105704223302396588007087738011256929861403801216833207524742652597979382600628446178669054240488530561737135386616686574347731271293222161197089250047418231757825691704173554079360203228706459688532275176180245954993280613507328893987583784970935281145798880535990744616279264547695128773948838898976720351564067462254422559716385507910901213884120195040579127340190949709754451020826618688035803422088842952033430047595642287095608054205043772349275722052730976745409889012696446233435452700250498250954063601679871039351884134819852220301821353779581027200249617511157901889286469840920492708131834091315663688201263992220260871625238314589425294237291834821778384913683342942028111588901632786798756030063174057465989827142613237697577154359112973894096741061688394729543608259319286395762484699578065006530384630443590480551309032778110644490779051892698621378520531795307466628853366203205140412096281623324749135048873508463500563679165789570350693130577281528150369308370198819617226919155495118161022162538929328929323817439021055278321519840373669990381566925198349039028121238826208185206870040961532705445403796323962279135250637433173050554432185207419478013458650256131433606047049505542587512796780167160105594772222852419406876867077597440524876893324358185335051210628505834645749263169425737385466076865686843311434000082715672837805106405289652858051551433507762993529090703114999207837756446400612462129618988763878223140296848375515868368668493075798718283468000304599919697731448074875312353607364220989258874873101149257652315851026483388070136882684559191110537282716620782672849357032600094055524448799189080562088823547207259861878753227660430453975053896239171940407390589592841948057862122167786774960249605764700500729459887429797645161308542950872414528823041744040022872547646405432014923005353555342185696865690140995729668451620233297621888174471890958930051785285022448438755663879935587243625857484331647024296641316846879039172504351015368719096764288221777763948673998513080397410070332598601101796823851114257687335153745955906828820913071841160588528223282282771599640609167059510503383050618645035955093386634979542693861797982622983219521388556770913413558251191090722456984331991805152805972093159699036498590051890101291356529856306867312899226257796133227383833485753073811834475341634526870069275738087826189007116387032026513916140063319249226944968716234579059607716042979264651274962653856936551845190518416707820446423232089712127226447231315336477610743442159295735517798012151352092971280713190793564197678686310035244211937355072944445668513815770347886009251189366292416639438074434404057039482757376373690282943145191631289639257125489098187488243015173100299842090345964679361423882300325889258141895192890450398925606230485532856807360196291855123238973309273135950093262416819227771394122046506050800031907056784075098315705347027460696620302070852303593357436761784728731957544534923684196376995503744822841704026074934374302221753912433085942540987798883764865928064543096085276618772221199353020926710937318759057552308082654685510615386740624341814720715886129657993106436245326373922540400172998189905350824572792958095119490517783944189528989183960647744365102743023428059588585792869107440218610755425307915610381118811475352557572967561381037218808661184083604363063039578258513603237598012732359278941659169991617918270277095704204696484874296440803537551273355833990477934052327871693746603242031521321895349324913452983309428012964150182221959181396959940067653811475921241969571196825872668272885170749761379582396766944543564680829380390746978185492538174435694621205856643260311661953468978770409018049483646460003736979430876522355070834520153603074243341025122672436931201301492646985147259752691652358817684511121013432439978693291365977578789211794755533988418175861389068853033555418998527098558147723446142289376684984240239001693395550592862514983435650241117952700767345990485457047261837553667643365001511133688583692702260791329298540262578621275814310207465181745588110263547690676892716686091146707489239920725423379452393049898332832262747647079730808402848879787973993124850030622959816279860476382060223023328102858460099409381984428136407978036051700450545687672667313408611993587085290597252987233816795520192283727655077910013546831583173847448182194422616558251351385879873097252934739910032801836506047084462600797358168685698289541343812200849971389918601031106815208844317706935093802040233867570891766121276074234807779564877391265136162386006793642527783334534503144671706852378894419903203483402050135684861445292277063452936134536758720850960560518220129544699653395777187870985224693432543126583902731448414628841726516027434489086203834994355292336986466083731491067533153426733286946474448367310732752426399314233051713095150352848151425312222193875909913414238759660443864717258080800746610204964273446092753903221089091572146061872882358491525761089668513573565802577870123217280471041766582444995789259116585727585794200108908943291253069966708161960189655036915474338796212311769786351629821321791117419658387051132967712620140828508324956345811136558616720916988604577646729630474570267261566269261652480656619123804894793526157123948973916193247846536310099655248330001407484118128078145649328977908043671976409068563241659876973829018650206846761930863287654460751823036079808924180750232523875226229136413562229047082116955304611685126386662289027509372457407644555466348966356786401895642412029232595279830868540889959388080465659760037170916149531652709878483711518528136169838553268814187657299026330584278643175708508562993105291813005888642964527774036043632928953616018483039138442138143514362434810044968793039662551953900392665485383423895746245169791912259289863127423554859960854950183392565500257874942838797830398310631468705514649559817770884026547727330554582934828358668819820443849507006197701144854802193426008912103968877395981691463588343501009003037191967622176396495782580679340402540814045245336598261944734625768646541047923067742764225157259200854644437049507182396811706304409291154444911220975766778068474337621042274699570134017351896212407822882563852024568553943088923193772821522573931097073408612081220114211424999130490368130873873864291565041726571581974325269186926064573656886414629148901038280795486482846436626245744381218341474203443665220294227540636042846784051037093797869037172415827413771334063359159655226295652278386846455386659263125590709859380802867036219560196005684939409510347822207256972336826237182541993459297754196257951880542006013040352403119579039443051659084154013638033110058059950387288719030532418481763231358227199272512283066924890402761054047641208081044528818584787379057082127589171348754750745866969567946679485665830983222179651318010411836028411959335803442171685142369119988173487086111638138503112548497415972328676928027110342398889092773664476223115430826547645114388903239618989816620457582364570252292706229594878063269838632449210531924591329002937489966543822827261993157296173878430497099665971002666354831798995001873584576170399200146456259098489730492328763107067111817108503440864060045452203945163818048068962689271152714114421226976193650341318229987668915258742164770646790861017408186978884089217469419670238508931769968537235755545534666950821353547836392175400567346321471036661333033387721858287530230989503964916026391174620229134268634765036733089363841891099516155063581951868049908503967915116724307005856943189480481667059839646106442275073947048250336607566468017543488617215430496861268361654797281378339336571987050524549255377936654905329440778188246845138392729592943347616262438593432129313986398505362396154258874743765659843438325851115923146544606038696179359159504430174858938435740772242638870172467493937381226112725968248891949543306625444355194001800075731841969363818853007418931886155078978902726185734762434566801594950623247356955017173908935353703987462406840122951138572181173356620738818003964798866791847047494825298139509772653569833328867485332218942436257262649100299322910071685351114297938751573033169319985602684395448772821975940911139024710192723346207863377053697484600100540686844319923745087909981320616997173681365660930297262890110941518534535727851890187894702225287508684310742585839171155279634844257198693717336256289025991535884679016519922391262199026524208449748909709167419714827760436601270451774309915247699380269010909437235964077311503376006125787262310071178408179456076515419081681461712888739103905410515942916614718620957097760112400883616756751928170930908143807797261169441350872796871632037191517235109142956114375484171164390694968873065091063029737262767571277405224372696538022688621662425315846512941764213693234543619660130057222731735558280717953947847932758500798806804906977078857937491842638542625264989328547882021435940715838247839410583131756447133466592636532189944903978759384576034718716009909556452065024557813438416454638395877727136481861108830914843263612521707350136033483122260549005918035932069665474667930299929128884708734447717377293459503094976856859350082707843571725107854460601875856933134154654116273839114560173255723296796965031211473763141059657232525334538988719783643077128945929568257523668767037080505818086821422811797079674527932789587479194727040499038597123314244895400773332779926831932404343670218287037505715367214354513152843085015950937493405249843331800482344015818365253308818384961981795843684898673755100589675175497637999117094111913919855885433584189985327511631138462816097522937640898300690486442513865267446307938862830477016395674756024599160392480093429163891528161938073698335441783397732583651461898557175818548341460813778348980345783789539272335588828316620311075491466887861353922810894871991954634588453717212396419117190960856479383359757582532921142679680351765593614328331845197582555077863014017776532686831096866240615541992019134130105143403183444591939820055324882015070227736366299430239208334764599839386095155157769575573140481718762273665169717118891095467632937067456088706217761941572752281774919350868514657719433108170677272809074794139847044649301760293160880611996430118455052720347403487932435709835551321827622145864726000638230770321187073296317179802668976589636486474027342545090523602503078335962930471596456881323321994916763986617281034200934277963211549518666018860145673334058366962621623106917406295449090055923311528861962968453740324767510195038224469165182914851572889990990252006494033083905309049304942078941060760740080927999134706013776098138092116527773379136067170177600048134671422919163504885826060526501167173510170066740047499633023266719503201538452647626823578396185852285574659502841165932112276124952430802358398078544227651873666771046906272869876958916706659318260752888346560706251674373047024126657937260052501300816621404728549116524746709776427028272501026076966835948672581116245331972346064184126066876749014274943010373200583551927196229645575863956287759701023228556741461508656138031656950911596231403662380481486960873895819001796967482260398461634280582929243218049198069695192667916714444713240126573020967247371614334155300977332000778924015056583347268305394554937174878378286901294271040443661262055715214000331680850860009504734622548518389824021356018068463807832050051134888977510766168427665175940682195897515989857753615633902301266222370258956840165037749907865372927178942197669641240279152317503113613648283360988026947921613406040280249734304219071220727414074280136089757486738661414727535084358287095581460776756236003490314533820078836367672003730261137754932754251553873684799528360828762577710838104476981856356381894261340326431855466687355603487335862878495515013721910182657002450894485058463190528591642051864645360403132629353771782423377140809490867134119118878761149337597604113347362491553310095231046033610352961158637250570779327751901095825979310826821593821968577023317481652357126390873424407908609439677184690828693096800779542711908587383459926969735674563450328397637443258745183746139805105140661300195594182103726770161988729028976936521714090267682560948680685828681034182974092218167663050790894796557386404255739597635051782743878038624548692496665132789848706143962214342753363675721152873598490121021413691390418622879636056871788984481470584573250795902951508631478742036756808699082581905336085841359256686693862151425012647013806531254265136408250578188708294654288064983127597912939055743560172039738437680244245288660634373363064042950309073825241745944034261847702132810402085149228702546240281277716705600009650941494036406841586618360246854972374013856486707476013999312130778996831679591790536202643207565580200254506579512807295803294677637543796309893483513272834928207914506275520483785895802852168867950948649978890177177573769335879261844613025457767595713888656171016805617829924544038151513366421503723410364126685416266694925311468747797216488544064003937047339200149561993991955228465238717251364696135169248653031020545323120112393005652000710382010824125564056385989103073212103196071494879632071324029077381935815601572594451930018003163164431130533594439488109868028905595231962422938947863978331341423561543889279983154218235293190900390691481875344900850808164292785595068786963826618395432099295629648471696482159469690059912589930634580007980113126963303700667153840400932137197126514222008301283244669424323609422408422937531823911077524919594876753542645266635409017400493837748588769865433231763533885814513190279346277802932300832095529942110378249360464832730003902999019080437525502715975537224178670314751641096630672087580873660809316633510202256572130961393593458394672769253276678294941012352703514813976627744618410794682961648365066884268011959420676377417344830140620483553647136270880233806750764381484303575103949044771842061962840750212268521650816224820415670742004582852657463933319045906994384723310527377151447689775260857606246593042313961147556338482523168729473492950402674245168533627049344384793400265002976194729196525960049193894459176783083646672018609838427692480915277788290691966173262356458556073962107970354285774555982222989887266812633509853322804954115040302102205674496603312411236462489887890477816336643726024730016690792876816330186129759006497025423282085123748156070663104911083741616611730183194211968698553899822966941564734268002999253696594374469701660014914149573881183294009258664120313955920670523899185256823458418894857990364924781848763114327239951864943609491186059041865903214083299530332571412008638403044053539002981043779636459269222706269583649931763339130849926170940806514255240931390774663270287790984802521296602934891340990513407314692002048171463344834481791726032527505967108562094167183272336019074315189832477960616065429557210743668246666669622267130593473069707195814040191203562409429076733656069839580312484181788500222919657571660629229299041964165057282982416582544870206257415278301523861978016502048752247177028074615248146374341180965506903798721599741097777816130488430119022525608975472384577855207286030929889490493349227887383407357769719467373627398152473158335252596828785913644291902309553081388960696649868704993574711664341268160063614238185700038379026005195346309155437603452172063966862491753483082890958943125654768939610616969554804023161910930091750246149436518841370272768954830965876948039815988152613249775551316030257032522578345668251992983626114972052648130490653252153275339271307787229718962900408389885494557892210180541562989994949904578034989750776565609857414533349196199055245007031501467544027566274504443948903654133636427919520598220787829339925416380310838081942009507511029440476334183012015065815130054527409769616061178558795865260951132504684745974023519829302884136355091934092895525768711631058459099753750430664925833563175343537436264332767531681430462041497891257306661091206440525182639090998249766257172432952785173654380842852401887595116481244485466951784009921692957785296387352415746748529457031723544577475455491473686318889606984573868719552523071596402662880210176530006476104208256584703709650500612798393920812387732636231716571592506473435494282801023053778590231288457830005473141422921132494635670326319078421681323243026324479559793211193843706176506149318364145200542414803551546494787893858768232973786036203224358104360838912451187307601265008711273066137907565249324042484444677257867851231184650840623891804862447494261262817139922464454104510534172787364584490942497559775181835360382614131905107501883983655561965347972270191444348040223056505786227529794562621813603633205100185779209735787510818129930900967663793939239509706422700177206091694727207279196176161329481768521146702860798331915416353173517062132572635305874731552099055613883736600832880472239815661658504928329164923908021439630546380606232293761277400243131990806485253257473844774011655924203183545048667039266103446050071551515514440720949725675440135106129090782496325619052199249522163862622411566775930997131679186383821393561813409948948768029977053882771848341052043646582036101587115610088507696429698419723395783835252934626053074598268157334868582390412384230732804499234369696959459039410709886468504858761686532570380341817699471991882236721266334986045468612490675557904754535516442677777182910514401517093712036251791951879250744952335399565695455577296666425493668837198996500460027168164559338564739044231594343418807891117432925726096984823872270951558551004420099556555866016565681746889698864715198069778825998709324467366645732905260883436365106038185251147130483156543222433491590479866966335689294662967344193081904022790497160669709313484488700885601913166526887820135240246836496576869691327802597392150764963070544057528271213043810415470340704410311782724036677279964762645323276218205602704946591403049718176213092452292270478144761358320118690417891918106755511782877549521244116630727506525554571124285687174256184640636534432629596102231097325560841412152682557634842990597143401937838693599474986296446475977038736095870343072190113372679580805729826644659175083028070370809263911904476249926997403708406621292412882269777450232959349049059999997612961101587152211525696957644420079617017287567453788013875678520421987315091133994167081518656922172024389646470226232391282183674781270451441714794467725410095110875405806029911508282311283939400898121579797144354424085570783515679378513720530996578806951026588643623677649635248992971803130174944158295528719056055548186579148952560919025795581224235392133900978770673340679998604885070444140653839456522718365847043403573702142021024827877787637909343744784126299133898667807989795022362713378393939282711891131228771983737752072762502694805753721973743396823138124704946074603328087353956015424322519669443242950254501071840515634251407449382931096404685015261277561234376469186439649270044575537685658150710989059696613227905288455173823014647631681913561101877210114838982983041463164072097312159008236186454553851399121075947708462845135329295743040972332813905398276484516482220298783548302959667654297041737817064296941949249310018824373691949131478169521769388360304630360911299484731001421482613535195639472438465506469178457139091422074221553120582662996077504490612999891136313967184278905778182021586694919383635293423073139277621828160128249694981640284494177256847728187230820302747510732904194085210590238532764977375892373101743246893138221554471463895574605999237418916761334155664083070586793175522748768983198854029902180053356829618563520065669189953086019463153097261095656335617909067945071960795060156318989289233547883883486505686125366398085196665458840933278703997647936399583292040603494413566128819237114156131942830905502354013300725767187373749002079281716561229328978428144509882038758856759816335343230041684553506068039554171069880583126050244310083266356759451179653497436018781741075124908938112506996645053268631897290678821113580192651009995333335940789321833135773442393206332085526487830995255981638135570097915304446494967247843424640703094981449892436697513278697181566778261953774753704500374932727935944646916832881787062159087608554944309647336561947444666832009571364025142171667899858432850412048308686977565646918168162615867136993528256990176446834086791447567678530376763815970735904482750154373448699500448580399817644974521778415813455302334249319536692270739519567045941180454601305842049796328566173810037004357525192845684308232690394680106678984933842167836567594958354070393710507999328976220414851298263645166719925195550346630879918184283850959985750507454296481333887627976769914228339371545700376307092475434371189709191739621295371859476640871614741328706250908266021766258109006902529944716251195409977907272200133459443107670014535709494584573536945921671382341897955253071196665938420360056478371716581832168902367284689369719851583060485758466767577204123588596315851900428378963506282566204535523563382342317466555787814960428762996746315732232298888441840860157471284838211396326327954652677122779901450504071766257361746352650897104523333283604783169311387143768143200833231217168769723022606018330898222319903889661470887348361200805756921439306334707542499901789652217952424874097383869698691880940749857775365419919430528711165529906810243032058602811679212867011835037811498996716299932886891166560941164811626376791475658139754860823013066214297262671180662765959981034806723902923848593119874847078763376867257813897655593752129964415013849772262380996713905036795791542861966501437217744973649491803755114084755250274883176870225970778085826312657009459898045611746230947138183486388445775000507764126425201375448605274998029531439291224906876287779670255963980346111342752440082573402121794059611742566017226911920690261769158877140161226263977770268889648925819704758726740077092310444977440941707331784190592950145686505011548555799399548612241088475384643666685375084518891405682722322946832707609834486247368466283129446913218107637556499968977179599097206666446266699556178246341153640945482304226608922419562216738088249516451364660899637661324194178691243379961696906950223100266343349630241506951512516141205808701309226472982746524917336407548547430257849037040962753196072499134042698150638284462571802451585474708201039232061444671146792071932623427560569691578559970885059871328192154321396478913521424935243867363678324204360188986304470837223760937203568359401496450251609373736581430466487744926093287680224530100540150551086924525966504768757505363304218248863993730271262421601170235899125812462407462791088987064212112313943331314932016749440108793366853904247571923096994380222357631918595888839327476249601301394261992536286470660371980455500331646258758597005548813737610380339935341878444991617814773199169592961915783382043777079867305820310471404819136025687216354935364992554548580394874610681185516002869915045318136168265589923793888897913059142067845913818118784579712345282270397566798135668910022296848201553391589695524458852626949838718668879107638551431719364702750785275084580263309656643604299904036712727645518103055287484462833552839732279959219110003920589611277890044247266483783639643323843907966790931883273109003598148533144006010520106377406008391157518164827940088156664638264407160561235797822132249017420574028737682786982140643423328689751138834919659954330553992882326408232493511668460063507799923783787450765843099387833542484734323888616265930445720522658146750229164996072203810103820874057659127663500857256632170353250917135847943766913609415866551589783493806833120230754926358818700353296317459905980708872599145121116939741877225655424389323393984256742237257575748780153165998788212423407333678182076433988661803271487339452302610073055487097430331465699268517476036190927977914393039434161712572064325544605529036120575725968806266221825554816479273158241348449453830643051882735064872404405210816863120597671880189524523769648869705201883734584670796293806268781120981373022001709469323317372919875388741362681384771573365323931947734039581357875412400081230642076917929120459086265477209622209393186409682375948285132307407326093597300591253094397482489610978581346269647127708388467120322812305377188844367555474341717853506110001700531872888431288136442026013326767065844522606473706303855718759845484709120498796264228992515180408515664995688521773539720488644557620125526428066447626192896912621199821131264132988105452709609817029027736290804204755727778071406144027900089956290775422334589580106333284213540157906878822156419139421149347077232980939344210124040609779837834085095426620057827377100996569599888375648651437222002007874245972265352333981792183979246723514560347010161357522378742117566330735598564217302159767341305489767663102300548256810130162535143246081758192240251169669460639649283995286487790352673204157925817286143221720938503567664782761492837467784789311610839796342358062105358797249764395956751070988404799136326218820417887655373392111620952434113239175844326876885542994377326468495604426263630639116957540092417456784283192444990472206281468645510102303656311970110921923113960742598732965363836300016988864644169556251180909541926087311706706919782360055376280135588450130958900882526832424016792887122190572921854739519383692029162184176503982617938488144679400353515394886694337968178929377316866152571129959340226845352958173327457803946180735751883491833869475711739790140836458220397717486838774719500547304856836650500027140634157687044861511544315200642144803106821636680362662896723651640722150849607053446216399540568660998097913151726461456263773610423780210655191213389589604064273305965670351583162853764427868890319068019673379843177657561690509906321385765486211369691584895090146751505655373343208890165576562604633454715918140591684992800529293543702488659513742920170609710768809074865262216973407358997208796678604360144864800368383466312078387515215160770453154935646449426967964947031490535138837971538771084769056411355257550383330703792762327275884086651154999185734882237103976662205177191663235077505519923548811195527435478646736475626162422601334591157076864202997598014650632010945341880656407558079322553443101294031675791890372990220880801527369933386530532522528623501505433912433755878785107428028702086214360335900107250444425747533873757778367737418928520453392847209035226074392737596097957174864011189616931705514604929582385179613773964267463927622465745135605799177778997703441355189495024518855685348746821527437054063533820795952130942294716145057035086984482547011942715077348353931257446384245846088582564262012387822581315581027476734321265685147957776081872947432079987149240709801066596130199390578085109078122335652161756364227293087327198644871192052658232977628661214762258144111156491154199285514424652413041691435639134946340256021187507326565565990835464400750895067321054636841106396530287072767953166470941205761428668178532581196482767505751069929863145244765311454302454100758525851428074583747382786220439553111255117401820087534700962232742469433711311738666018443023915079632678559034327839990494645203808804309121107800023126450781180240960897834433247506294893179173724628822939753357238161632536738254780059835747620855889218398625984784367949777644748244234549973636319094234066683026116511119071364025493834543983776049981251691108141652741606261086418430771964009689289207252079809963813149577688796471831675021219175517531722873784919764376644233484911765612401536954060291855214917733883902052483071888516746674256324904925015470971370579100766630946162895893106796692362536113948099374864672242233682087225197474686845873908973905677465016497976629135399420775064322795377695796821016958731139814047781367005104190079326766236779426579735845643496905010204241639657917467037266815239046481127515517968690081324196052423070971040277748513038880602163483049944803090804534127653704566763631096571958982463655681171782953550214110699528480196046706773507164637686128875969957183566664037131830076927835005210902861893823405715661714613714272242256789506188467429360215465487331493128520463095858097679984012727951050193549677435611372355773877942387768718674447334290203618723273102599392111774049612895955384630021607125190777660622764533140611633011270247692025365416212416158398858285715296691156613358788741616458384969650972022073274817246479144594408182528329869424296468608857438242595321200592395834572631308841113400172640797122430888780042222166360052046015773624925234039031285740778024527932603316788877148848035551351721891684292901802415549457386879386921841497188435363758098820080982294050037016011410018177658006727906440448649820381008065348043098182478125237236183117725386202870433426389174449256353821545995813385921061785772179927246115395643704122793515060189687164158869871269260970034219706149863939141715261148683721926572326429017997317482933632746424965980467915627656185669917670425455508355763874634908595495574837043634570519969068026651746029324876081489753081255256351673218793487341156597428445489949566019202265474740317234459718207373170749104317544913969907121374272130879840198962667303030606789141017538262625013446240599984861312286841745325175439076367283135525676919211779792808703889394414939264891219093183736262612181446284560514888459505390048079707957035566613963823566111306889993998445141595171780373902873135698704562734059371566328297578613890428801295374153745942116354829847046456120405645480264786753662513832831114167285814992650648100236444684291347526952816627914136013808994696031413215585564787337626152090619597104140147706883787970628423442215765583699594308126741897627809079538746832060518100696090134844866058212312747735282781400431734099879236164101382523630576278117619100046253633252266920252727189600168762174605244551473427069600887866728147668308298767309292379545451328852994830401023987774615276504921962666674219054077773641856480569019895600260201785728943179694892938561275777589305117137943284369180749677918060209294516565165360462809869836663002079719282755544089623092605254398676086537987666013630378810090025091636847146182846327190694592546742506511712754341588647257085748901195617609196812452437723400055398744952480293220423370488956761810891693001169581094949686990644514063240944130734314397585708617584253099218232603795654706499575621955087460154924306770233335600032009079489737367234168203095336416810712300648399543654492238027152013487342616490076352870113624989538174630415818428864589907028228982951030295005976034032351615443292240963011502539612396688559957086360298768441860739506337333310153924739191021294257789838203205780999845651259107785368423499279076808377530901375498134961803427873227537681329733559939431306052532507417262274568374463804007181101483885178748074438902565994210643843132820994263181217037617280219217648618152033026060161703458070061948660778800455363335764440910687521610304763912534039611297605114284082276266876719272576838420943014058088417632313977898935127125332062610934781634046233349350598101160705791945480353627213977822737454167840355416551903329839218355429886136699189421820805855293958903559864779889662296394281580416165213537604392152408283120200306289811045395845931593688731677480069233375962496474503397995365356499764301153282905298470408763781820568644181852033190954176226418687954539785529712879617157989509748642523422903656455066178142697630115230072005041447435700347073763751510896600349168018832892134436351496131997130596076005843444942928526337502071484237785677747197587478517747159481408345221103367968191419262191675493536243803273403897670455130104327791924978847604180561973109561674101140092308729483846667119139507671545041489095164986677254323760379054421331983499118504083919958772238151906913762848975706551186469299858106118085346928516839578536911460524657609634699068717311256626422920729220818984070859302823507977488874186592172577054007480472423503523237378957368047699939598677493709488248750261165042702336948995636367731607830144362573022128401378208508741865494698842009814052199930977067417998945530987268641662824628443542334187709625905535784569885167706256545712322078795227336736247435595412796064801917730745971974216257958517145134866845330336218128841966396612332449588491300111655255476977032908751425170599096692956972861120879739187531091608332746297821624780149495496238941299921788292742469305558701603966345364595621739535854789559771564226996466268841039578669050566302410950087271445610546520689332382076878081926617705482386744601933384197544366148319474694696737964672253583382221666315380256545324558435038155858509343460918714992604093259762824901477854355285755843676961808765385417461209057046228790004159312599211635098724438710865383479829121166859166325693565994336879118724449503475377058398253089477425645836614262767602549944210610411563781173430119752411912333672076081363786013045767747911988474640710608732143359146008452452140909203963297976457845207241494225953590941168296893279426065354964164523272177459071112830600239847743099882714223224162299893102136445170810711126984783375223246082862524171396795410343416931126071862899963859441428082607832456001008470568732190724067282101281576481099851850640506536151725426150466616187107167139395123585535920068957584019563338603240644953867807932789450811514898399253181770523901220458985410715014889278470483465049942231955565251395249076779766864661273034689922066901608597442284175374610122216256873276673360977939598039519312674549569111989262533717719583888793221066048031742345986006753948469965682863395388874411253116987427179593175225600054580230336703477712662231073721446069286779236238332075040274538580736154851104667644334013584914775987244286289830538285944062384893219758474212790686626062642560881510968437703447832221259740863338230394836304101675520513839677847130839093493782299419482978297266883947715646121672635925636264434887853815119842833548722011243740430181739716911313208713038934279711387808838089647281415631135561044806583765233103891845691183525532966731828224613922599474512935129385012049829976608199081909857898476772139148213356249433649773328107591694086420443575981671930496708142491919965425928961178637662156209680225765760053135044991395086340719232399335546866193958316496419875756898725508050449683538943882171027978138669528346297295258389556461135232889103167605194071247746928047115122061207140464748221152836779502533752364763957210718326415467321920844960132809452102758249195693423938053290583381511770807728953742858604713138863291977449606296996311321493377135765539579078728415170800052014931874641103726360375602764948268594728830527240425922093129817549945514831166546191875981839656210036349518331254387479684017275034231570016497154619036167189472956880834465130549833345943694198271109379788378437702720404744484765206774795658538858185799123406310057910907796813357147097503796432815826775219571271081493003827355374252097201645492766643641859827563815073894550683398621021476699688582171552671862391765744107523852808552084525385173204893266657559643146765166964296563618404362959215082912926525443812841697168119533328436048037396464825172269515347192127219362640078504908334143427107165335231136541079931075645821080929073362422663771186793431610486487262180547705772754473629980212381202179790123863640445462856741294085874704426595910471065327265723183815088899865400390648789441092156326571498555511165111596913162736926169161014271885940588912544252009781576421146980891777639270050013449693306469810758601753376709871748877304179000748883121630155451181265652555835105792783171286197554399902153405471120643588162044030519610781665655571630335308507953539080996115400104477092188230162589635394479078715584030527812834847194628804230933020804599213363169312211590364495434049667975627019298285512999731600787581987367602190206344167151137733135033061472635959445130000105864632585681461665050671760946123366369406554384566741490420797056117779199385205899170567078307078907484507116479202761570281675789396401387472244025465629579527020634557504468193697324541180763650681049004308229488271957002047913732167478313478183499484032329933055706940568197574859889153121996836577072815003364044799918638267095833212084649249506117679412510550296740444834590233156144409898743542375811259779294124173726370318900926349717690102209050462875560605327241961188675236738543413996865723368097838710352688966660060848561137946044236348164249585183463596914619171372970810909639103619892122414844362186578499739894168872678569690184151995221989890784265422147231821619475485969729228652686390650439311020105467961261860890285605856213188147511262363744657489752135346992360537160813048195451882383836102591592304159845322688654225121473177059650292543005166981008244467145956444584950104900607110957111588398640633502462309214369118187683973930885129757749991801715152517876902520132026590969882980522314039887907682615349580681153468350556661407407476306718358883059535358453021382089764821236222953893558633784480299943452008787297503111132656652710768084495631786786194812990333176174629563534269322669011990241980310195618696895541569466308335120427402729737474934334927552479322521320624876699827645760720742719495868281071559985028202497457143634240332838837364660795526385965794060664019633107573687844600447194642190129004156675784471979852217463378799206372340599190898526257870129619444981986230249752200032936256110451825475289980602503827379236723332777467906717779968913648602359764337344283761862200880984232216924110307636949235460266983345230465894164566787376085581790667247708203254986905042743213506532045922902285043778033604042467984857038063030744569139428053132207870708493610792709413760257344736227569750302632872701529598915550445758201190883046956154203793865196277562464249085112772440998246571485337029071968751885535273395137785570808907961207399025221722468691020125323361785764625071292897421389257766819299342584603746646770756499633467619010219671839320355045685915291316030225555266932860858989498852436659020948018324790522746953714852604538625340828211116889002074424979632447080238597875900165826181190614771879237218064385313697988845089547873686390977523966324100265193745783559668637117904477033057031287815510381125441399443041975894875722181983207603227689219900906454460883346570181873976482508820439850128552098010213276835830587962664111492253668443083524239542556264359214425422153345731500612029713489094684850149289152022912441607802772294115458776312483415814090543488746100642860365142571130582456034816708762556613124229739696945697400050139254528785511795855526463214380341326487799952911573711066417424366419678390135127158331488091798423100774359532656083984811862563345046075268009302773633351297130855502410569338387393422682332841320268955996992413501803364200380544351317519091988467944990454321668512540357792036606258312364818345905267324406869092970302680395108634729293454709114743762168690825864827208933586586863539540145279093965246199909663446416142479689433784377543978789425705090094143084374566830690579040330729233565758562941923685357091835883241109432711488259435272474838502300276719402743061645933121169477124341191426464833058100406727633362406261279385028284500446432372265285498323053795661218334591306909479788737508303775947172886765872033936352736451234046406441067932699929279380114112610466711507387318935390770378046785356566002493574810960112244960970066879522846578873866260705726969203336248829327097692595499270857035010163855743551986364096256936172389998589973031608342282074117563417616038775081981104144047456346406888575498623845560656883116527478882660500608878555827378792754691991992112009504855055609951976287765376558543169179047394293027981848173582494187607973237112272510536779220900055834331566710947938360577445445369210924365108651307971566813269927188274035083717853679672440910400570278091225234390728890079432397569186038422317980012080514431961191177753772925978843420647212447629247753875351310554027198438873736956273280270500422899440135663221019826832082617815466792120199296929283356748639370626798002189351034296576304216316256851825211593569526477761866575715861653088611711116493343187149048074771529557539034796891036969955783906017624451535161931800005220176940232106480082428955735651453168370128345276948541310978533885003389599267976405723483270371306085125550068797453871224905252733537295837757612779089405168059849474616906794426110560909837727147555855667786153563613733396627177722276749182076098612015471382339490426582969194252897972291669951825978519883789272493729270869474307907800156304025387775228232982210154772828901909805803682758088886263130778151627045628635216604984405439322338313744448408873928232742710008024069017178008898917267791214450789077622268616302355094433285838318434171505871488204014305324998456370781623055534997237140144909685010832927856185358439760957727487528766160719146882773457767180344561880652818264735901393938584984954606137983940217211862954174600951637091460186781104703935642013275469882462246213772921810355387524604727715723487421139168937147614958936343773409622766842089036792875416986204082180062681931299110766950976839084463408014990828630178571150816075218652684771521885288846434686332093491561092897221669054709757244668569086385711849529353639439522608620347020849753818577224357806597919810474419910098109937729801196025205566912142650826118208736079423974538959386829268182365750819247847347677956679308475419266158701365290044013558128726800380059053767859895545750286296968071792089776424224208049900414614207240010429451605037120380562352621432381361886178331484916902674107173207103102818832971991123713257545210626099417139271204184814157569123726582116853987412255722441386789563358712059739223443103753168319181070280028696382108887243183560336868791828932682464691607114258631301924487898899047943721420725523857988664316955186629485590848350088787073690090239832818470161992475064771747830201542200925227764195862813226665154342252095427334540822690484755554484674154492971919297516369504895676495613573524755699605423338336121865973133916005355328889232685383673513331977894727551768356827619671695901806285474063450816911303901000181178951711461000701936584842665322832271998771434408574165131344751628354346828868012432497241947583479863986546630247022808085081487823726102428632371603328477096145762152509302223300042906239865974975620996074470069624377440376999856466142791038124240783843652565468130220812930667326028428833175839975753892607590140088543116914451465369809847851099454931799790438366671735605190541454137265538400134295666207231917180576907659984823159584106056530236328818763919346437286034574268762555838728421542615254693586758305931874488173648626413790077534800657917709516255291506297231494158900361782561398608362835543240426618244041187194741752548871513466869688464981589915388622653874312639376661825747412536930658159125082684424319703206014526335728810854552709769928555343904285516227509409872417492107528495028714754480481294251806959868041590965180273323210037504926741618956879059292195980460757845896548783395771007442639921088499502509587273378908727312807174377416568569129677508197769407002943934494954984237685585626086993306344400194682587936589623682490744789693225461123915414986331433778130213843960914872730131808318262261367714503381193550693578461450957651486138302012807328329970094921809474942787972963723227149129773557025952515678814930573441308422662327668108285840470214383009988693852433577551111190567924052537329372558947651434157226005784343115218351382055745495761554620964269119718172231443920727794132696523881268248539004670548289881708725350994833755121398630579217250980139201435486701023112347607118228619181852839574201435267902876421348901636382675156240615972358100189022285865655507721898661953640286938204035565485156114500169885707067536525596097517193910866203457489704905505490399036146339459110818229931120826931444609299670182416574607794861045627189395418436411251589705929668226007871156929427008266739412292740675072633129548458978986131330543852529831316736834710277264687396951346942854478537407574370390854917021795834639287023501499962033715832161780483692881270659740083546349968533282174004725193351747967192389538071409159069752763135261359942398078568579158680237905213742339303090368895547658543636385923354294743463723737440822722612949867729919126197580098063698973243430856947333452492988766890614020147759551409390940539768265398227897021457630514490818927345117758327934848527328558341970857235889118722187148384987401059017196793871254477389655821143686529301349236235364044699613598873173962924060267817491567652248073453668266814232851454170952969062375775123519171115867109158776039418982545047539775089806972758291824728519452559931817303821448812512635659290845950001839459646520780771682772776773180951275166983273449584897115437986403060919130230586202657902563208665797026339983027885914340619748789923753722422465531151110088772076550709655000952401002899303819532720128738502451570506356897395084942559104635398794726611752853352463531431469311417629294290782408603691920711000211192888694953217347381896144795218745287296599283337198903646248314411559378747937442263944488512949001354261580396288294231881269493306740488016969382916575904816964487433852469328435317499608410312418374041294631035816780478703694666966090172634398934063538363435665627225002290739669297063806882129658293556461306761341688184534030320132055968510423340167722017992778128973055127012943871319785468339403053152499596696701345946413684329777343452324900419398719214332446711284999793153793437042961129532504484243060881318878599432713194053091150844609943230129866206162425804201798839231166442312833927702957966194715951537174999237942021880222198914017056909029273115132665659829368556520413606811520789493564838031788241467839073052853385953011853008429626382638058151359721968087676815014539604647076278246195039312896642091297877703222505066015532139093132374039508952897681237898532387084451784309555826933616244636371658729919272703656790664070007446990916322535434472472551963846018529946651124153130904890718647008940003556170359078676428141491317475094040148010713126276712321010414362382735578500649284668455921108543604082973909594159094091934256700680179892734413379093162533344351281326624953306436862761091194415357128588825995382235669796849486599836846934597232173151164122970511356534519247360769878033233483687662460741233747926090373433859412640990632731717088065207432600354922671853136270824527358105914089042219766510158822004669728401816974803976480936242338931595561036592341054209925397199115029751706649052191713793308603272722070113214772430550731043390213841577286898806076425978687468070976591907760436660623470046578751512319268395172978772248921214991791109178522104970010146806387220119154974070098919247504328702474017318942210939408211639453345652599379420654182286830754623665346159034792055119243903264300575244904645522733652760234601678687479402591105175681694171594476560088896504862211632620335998425479029651735232885208776923334522718223561631484278562950260847382823596173132032965468093794170202293912766247122704739670645260143204101480649636939780639908852377355397273377828355003536249764274450713474225583941758042942498626932819473311041196540907483615103691798616081960460900931289924672293267353508357981642784274782189877778127344746060142617230236551282975502375332534452805422488603117861305819363852716891835681094977754328698782934969650324943509710355590602027171423590450768182636015793018884616076898092359793412228570102040546325611714664390949965576585357588728708584670689126317940532816191948105392730636142972954937115063660677044455645422695335084846597055759394558991946756808905361826879450000392011714108986726261937687515100563371166999416034391108242348315706099604110809538488040164838440944654456981627115040074542804804201300472495112226948870217363560869921893696168459350418040442996002883273435844539017159040238924098365785084271785728686657476098284178452409641597456243665249642021988725138979440334075866487216580209102657077361465925389557496455507843335884927447036968691764192964258442715824244093246165581138546387751403387167428195318298219812488383905817826705957391849804057206354459774659269648643814092880779409887856130025951385084038356412450673135459480642864532408528338608979685681201329473912036665990670358296715858302076589282734287747557993524633165982810585090764251286360779014033333421252265463607613459354335333647645778472275165989453935760633461252955815589949649767649282975235957188792223537261783540256872052241450880230501306575451231830633146394897225234093956022513286870683060642095636583830591206582511702385853655990314725254811788386158143932750199662556654946260112282096288724776066699104708890368398721767822099239173277366075705800906594131340747048761685813636369817461279964273688782177371819134400334156504326606987159450963287605480640736258645471390188605527643210004757206672478412388757945366437334437433600612477403637249117339223408157387672011304245344782256846148335140866128289499027640619296453021053570144714739372749021901191538923299616375143030574163735103195223447894141657180396520242987107604595591207746395370485107366412193020030986925861260033054982436992773577440210616035384086048010214956857477419365818699361364536771199198686294715113778696399656988367585749900279354091401045360848257071913841849859889216112190104063470532346189988113281712149821859184933706018631790054310556313719316655913524474536693909304829995463493965814745495082388484041426522289543153065871935285236111817241414226170686259965164070263685333464372605978150095834947546979475034299555337031126814570713947398170315227365248066994152278057361296534585656413789735157747550004735376100504270317214807602828096319495617242465335591431322086970642184500751588693849967203454065719703029042833569979177672246877007857486526720123040537021652734613210314523412567045394250190449273839395374896142448310961483170944952960159270221672142836897310389276507527053024126122542299084403804226242989901972127907354628501498242690712909369905174508391775233565946645267853567666344067087200807889006452873958001816172558073549263167398221269201113543086578239094972184289889465342199304271972103466807925287634175335672913876226684755380837905518383547319610191850975353990109891715582108584370975445482178210365165701006322002176120082539989364129587790624182367954556486599555049207865113106272355561876795408314195185130521673854413560911945280215467390228700358852605339185354655396310699957697160736372932009503337731572722647530578900308584896567468666990222613988549761584400631313788065638022712005765839540176445746978164799384498598702669295070300750741059684161755281860309489291464297711191842667801387391934864305161824167993393096921327112193608756113887236629641575261666015079237874755849395428249594688627587864785694156999797022839315141503170829222855686434846372224738735618127096245331234760820660515411386544022525658885338631591824280001171982789968264918462817984435888221693092754869067334442313410222565651210284615204599544687484168697844469205407760655037450635255613594305073155117545161843214421534944454421188481163031335852198799802979528620882066148061347301635826260075431680359022386833760541330400389027938382960109705301985012519941254970978924021852993992543466735471881489745893079884476587101203173028897788061408347411356149752247044632665718328285792951986496042675965686110939616275820596640927210618768349614563728715913149236797422025419100659206984700482865934148094944355438051621459588831218622953743453544930195504712236040859853225548771876545417818124765339329181520527036325311510920828449865688758741549815564646126643021142846498541976814816188080001147146594839658406161776531853633483353352137809743459289156241900648763530557174039077775187298192662447020703894846742958945872915300685925135641537358277184127517769557781403656136455686599929387095188357053349524708221834027293348793459314572458003265243137062280443314800202216609645562972852750145555121560802557265786761117845573937378410937462170239543135367641455220324880624139364858222484831241965690972693572879587198126646311080270516072613184111162647880063399681014442176311861395619456701427830662602199694159833656587996022007761846072228205426224596808849205803796217159278627886716111358755083440682751797127498238154984123623471686876323561764352187320408870892866491665243793241923919512450894553283189282197860414559613931890933557032348046584188016579778242634691715605282510866055863152545781866421783992543070047316160711454001350741081833929632700697478186207067169175407040392262035788129126037953272833721210928113290799902625963411717823866607247193397153512167608413193342499599721804349390813259651201171429162025350159229802671229227068046285342143200302818535227869229664773328187377775152404781755876130180289447089422423019306814593673574534646078176822793534832116506757651072170544438729724206206471968505572289368663652208047663237048404130945229167606268174722543455208095775006922102684698801931942505225903881708677787456199746194374275683899716959748454762314598504764570361410417192239176287594383572245844029133262419947646211723910482869879555422580007397714858031784684550067885712304809013302373311558876558527887034264845531969712712556886019058972967833068593018093626741447661171271548883569416810036855311016407646374272402228787236427076431242589299768756549119909445360906283487354213162150187816138412419885005346072010798100547281979596916405963817676656907631305662887603774842979598968603020411044825199481286664297400058508765855437897221096296526006998153533524837675561282875620129651055727991947387974108854733293756972916498164059794706282119432023086200738377773153726460943335020928775207039525425180789132616424127094279099079154800308874745043713415349110118968645681493902018388374170690633954933841324436566824749389999912528314182079525888268163592263441632488860534758296467462759539532781176209827540462708433365056366744809377858485641481845894367829316718703459099827736816283560996091989886153627434062902957298256405434202986708088134456733562040377572302359300336801724435051469159470519985167798875218661892477222703900372878959076066848056431431678600286649166879290441883639106672850442994985414393984510106300189101831170354820415937735545868935268665646866411003129827415886262131780805588679876359469891514284620909636884093602030650727870622652063064552772164922113738606448453099236382270827641224417238504296741338168399026263221461068746403710830254065757510539222549368306829852890327291919898787924153386033629894682576184462419591348392204477661685324960006333214952965781458735656240587593050718718129372412547909570390647683030897091295063940036769082837692442181844372663495590196497248845964505358781479129174570004324742650858614864399583128679839880031972680534733854278853235005682106331689892318323914335582481483863219497101727358779549808217996696987987424590078169615310794512548099582881870955021490883049085206623880090847020022121357552445779094601832158744709131515477589874290900558845912482681092904951122427152838371430184475926766229850543413460330652540872712296389365925056155273643533999743887570058381649354524382040719344354025235969888311875054250597422812270638420621497179937726682193515011836510049347098806873640867059866056918327467660539436601987869934617167703590283279373129905244265867093423755083442417501276319823793750325719417041262348386801951971673412298147642148947473921088278706760264621485719791477016602673199573570577118529855162915206381734706892596377717928795805490481041523588482854583349557508867163508028227963073520579729598843805449347070571476051597039814037933189836150048951241661080389956571605752278406051850626035966001047733211584522240170423138395861379010652930461215174959562395197481909598937415667848063316247576391977889863241754407103514498146741909699848852146059050189368312384486209216137336685636566284536803768979636018898607987507853687183997060634328417628434943184367042940006533244417452950390691400780674282732394080511481175376784258021099531717128384781262683556694823864229955626855604653800899631274708524538301015838323406663952825317581046871577052073463013590677167827895051463879953094355659110450477449490095682723846045503441550492821461437432335477400557767829565913958223545765177031673174499655177017135610333056719693658738083394690531042168940272138724536929760508924612958073204588113830035334201331498535186192390804536777404465050237495756499326247172728356284704462206593976331086085699785477199474549940803753405184042062899215985222475584360176009686864170382539904306942337013256326295680211144489885530153462777356836565699299826174855754336471958100991401526410127705312520161573350805096493469630861148946842895346480878332329066713238200824528868766254480171216348487419732679005736217032338643387741260980264630325962824553574492424672946547519967986698845189488020733435913333120214748630308488058695676454191049173644506330444533596642660934817985621901221828512995632789630152281728007864979622843962237048002154980083706737032130221618163288440547427232529756647921718097167119064919352386270821809544594807387530849915817331098139816411550722472282732671269697540531503447216977668210987602953970627681124188144614030295767610469351900841743455718408363580298419912161694939709800854225323069506505376619006850696808840370709997222650930801203046019695408410924679375097972305016824559217898538234621822449176361828943952015752164122768806525008445746270277838305189265413018489485162954100925816911646650157875880199321882153494157380177620930996163022962111255309715516602927116575635862460028380762473123439925952785463960964331227835856306296389599364644295120613686940935178750619302831143007357648541905068506796897681999261827459825984990338425679898577506449036160317361452140323581838861664737330864862606352375172727059111228546250016110873570072133759690776758589173540701321336854251220324808078316666204871196277491008543195786137145716347539240125566340084747186828648571136082049119112279313907041082607938719622274055414470079720514130873419041895894123556917606607803949201316601844561337644452859905581473257967194437690710803148263992492496518680049143618940086376593833342175781156274605342288116723150487940719042828182506045107969807493282605247899234738771411932130259425560211227852581420453705189068505737865260093489125099181303125580175974287527434432415907205094254367188377542079532784399993120471285657615036551895521435504588157912356210622690413339450048003157763407803277766604349775328768100712719066527421789035531279531053111888802404342709811162082971717241389914487405826720638245502716942856322884821184876902084027364531140404346400495204546275093876096772091928137425275306364418081645157843901659457970705361890391694083184351414326718403448684909134987864088709288573862684338885642856819831878198215463425007533854048048529485302107500674355453315130107431655402675379793594015913760021637893676383164532272478081502715780888033992204000425189714010566463018587099944966330748551325185321537236706706230089641273913010657627595949708242546323723106970557787122821637953718630551243635028188639550079317855550589858145231842283320598148803533484049721852523398621853834064127997066951933572285155019356808586884812837601824354736616330099002374198082201211188078907666108089804683456035830227808865145969939933242053327846267258520695155146076344209527573779937334676204874889453210319447214114046535707049380244520478365477507580450239099363921310998023216059027417319426055092467622967111273960241436107038234241342706423321878690264615268819992295170802501083402526761030718638012825952445461071890591566976207959034997060607878213771925118202166661927942505017845510425210373445467605179966412529371352674447604403734680585142880127856802081499494875153550267022503915549326968797340594426488773714584310991153474941820541659683774624721141052543770968256646292336983289675665098454107975642275554732222935068508358680742072569429324242639298761136359749335817692420138719895033474429720353486146453048276426161111913431570314025130680175802050645283236333310251797897095913673610130197210056837953725066913804331601797744958907313294019495911650290864744931510468910076053579486994183349653574300190602422593562859485036651175153895637154477858267205534878949145056065045548371798985619252201381548409941326996349885297626070018098888037635524974280386286909294310829807405249801025320646179294834260192108057396925534738017092311214166213743219711314990090716954138314932454035000532538559449915174855313037386592105170036698011256758123993321909724465782164063931029272460830736412352900872375073756258549482319254693734100332984617775464157772516031057141589954314905819493902309898559940195717629257202146639455364905656012971021260907017453534416850161288875733432424800793360210166318460263840138687247279518149286871380227866078735738493701852843179532354645465852926820886249196002009900588655010957569774579769189206241329628006900221275986625735785865974867462710616806820949001013995740202907763064863727525181788536609811548854988667926630369759885462120494537482816276064167792501259064174190725639876001925080117989298447737005701327432422202789486068592803153540471209303762100646263995037136038408303625052910993702753212282027810812668835895867272267668677115673496787354547282562169081841324242729123660302185990420680442501175616292281017754331260636604700686348663219667381088434917857684286445733479049453879395939388557413511751091614343990037766914323340862972073540412578829659614423566854917597760877938271115924243622140358976281624250482613514541678465945518983604480697225745976804495168672710725583423533326203520033323935979274582786716791082216513571455349680814067593033869402153448592883662130295930934060895370460115935218996958511222298660637454531768779748667015626538173502818433514547198529956404316769764557110907461984419919385079838200345362053209401947816632821807822706534852908377931903531463185846539945494869520526692813670393124314108634618499208075599672870135476288577356040348283017233975626600117150742441983952145810099811269839378292930446869344295076620462870115393258996531087948505215181374326716552523482937597302574024193767072690638246737872067681389489903423428972118853859128965906381791894395678373370737702626545910748441304020713461813976127750229033053896359773445306344207644958251773072331398360832101995548176178607442846425012864697628794135764196583300844584165393630635430088117627072689511728921101733262376647943469029559629861936500899336295938036471097773934082210161724734322216565024068528777167582706585675882404597134773724440930456165544801127884525993084004323382236617113797200874592557720831314326147962065946049145150899034942866448501659929676000997131308718293283584622215730542034621541127575922076179304750757810922890251688061548633911767223689392486020163052445080132976325207381119197674646515514620946824567961695493391995899986159637557581296581264435277442986581091288848283668786779847947884544644497507877868715782096419027596970063430386598660971276178974912048230573871077454627430962065821102448645274711705382494054749791599344066471126394278010360790977567663638766735105014279627574067415766342566281804777337742735721123248380850717629288731926179740048299304387016932530286056082242808960679407138871182880197695718349059024368384037996425796180492118683034316284410406907220083293547120998247107460427716966924252874057734159148901451339078896366026152326058389819847459887803483529830801852581121077063582325878262174867594061394457013482561428318031192081728702769919869731978139707935282732311660327284769963118101342305410956489540812359348187810563058989489232774533390727117332331743087912567185361052927636296697568442505116192709271420845567792345677182033131060571022445320947359861970959887472240558903786761121016650761908112993424350360135368509435586114928315072875990732152843424799001697607507608625198677968405721691018828433380235544212130623184645626778625930462075160400630944463366149258190024262012884717958469280718179542411125484742936931169495296134157209808406612467864757783181868454787453156949606353927885455994395878502861920533476776391295674921519663271915774982834597564515281695456065642396701120639901832291192679602232614013451947080713814164439866097780046326200129665198225810811635708575592182630274241318688354778210010724494940010662853761098866940127975504892565886438144891551182134357266868751546828943945890433699012452085959048013097097818554069548064781460388632813019065307621131793562764967451156737273000095862017960842373468212948013499879842436620372293688627268181055305062161315318698649721987872363009944693491297973057949031690370625047923712058586165453358208907636928426795912898889022920096628776534401153712243595495278058006419742130339516741880880722484874236047442585167539031434572154006092143580353927400857711853280720577254196611156939878799906175725745969487714719825066864724428704571623407202333589797812782959402768103582924888140353409458642219101605039731328241317425186308897297030065061505597407409958008346666338348184656549451395150971123551236873503320223960074026628257390348087878385497614309911905075281472264893197807755481108626577256290948506266525415432517700123095681523846163730956900744273415741914144760968390903796846309168472208941366892193435107371269507987163454672871500788922910637784671169593162277954139645890323493811298415149319714998157542869234624742439984560644727329802795823499941317376488606215404527021136025499143908731985525970074436545701805657214717385971953938934081307751579080412837339432352257934696227242612076239141295658534159741752228020314328719018625091059808075115843403642674769921498545129926713163162946718689814487151886088034563715989712406226071564736674964296225521718504749715817241951895137292903437008332803429332961620457330524315458365495759434949069903798359723641647734283035988440219853956783568956403004514715068258627475582227447996942717684987650135672833581497277373221452729195679337518840309059864546280919844447387061019278365105124112351934913592196960676877023705191630994459315667459495628792800981598979300359441381308493093413616951991138763786265326797542156720582881908476093567196775428970348020256667598851742141525392119944828791812318103355623985320669435079106654075431546986892069967772875413440758093658509403987725546677912071624782621586041924509491512843990342345446079631187381504548956160831745778174610339188088795498440213925851627102734752718607719042708896656291279920837236727050505190952578217382601788866394573598674062178234502838164538392832057324804200968261832644982034108283102238866062570502221473104006607977457969582090498734314704564484697381131078707285847174970630542762666076522869890140364594525978446802980079221229414426739445298826727661977812012300877325674518155169253668046394112083742243537610900959990427087458435261364758355490370268481989270102779519443435234720375784266672294318662048861640648410247340531823631300400262080292744595862883817900319087311902793282428594357186531459261371149170943404136901985623094538486839216722270547814832139547815484742776892477448150402975633743782680886121751946422031576148942037912272535225679940988391585565542160260351667987748820559525522074822749210282273976229673578232038762638508399727100867753094519932879504947639984955588345146177225562097131397797308565128978427673928847838899652412343065393022401427840772025817942741401184258754171432523152002383723958458077398711731520984014661059776257342880294189937030191761302982717587705073468161509948685045492434209211185480537548570513655186391003257850878798512791991391273191777698939712160703145290877541806637671706591664322840753780424605785625931058588645344562740161652604614473983341191706658601843657063996336824233899116264750060135855752278712716428331827432159832237848296383029160071746048601321777625421599130927035016903280636563077566287833183111860818931946757572073671047298410266775292899119615132234225458777347275820434409159331115511583961602300320479015140529216355776918385911120459035886918443061191663350856261207398217782182122429059203988219591749642953048243093658921823631151024802720311354871956008159052752010876433789539749162642481417761976550480150045449454731343871466044955113783332483749429647268866264756593062182861632558104921765332913133851592615854705512765704868846255152123381469044158750968732754637650896692893904366708030644575328394232999809530794052170580337409252264178360576673891555229002779105465314212143025613204630160036013344123948047326867530811707929295548498610573390197302974256482590434546782853349525249639266238984739064486431798975048823479067940894260139178845516863878323940263081388203948506267757331342335579701861427358253530434216997998410622527024826550453989933987594334484973618629508314540742944092432349519815587704791512043909811412695834637356393971597517313586391166377640031257747545407752949756979262153890323476914735439169755142763398242427953905695869057656351373945653494815394082383213834838773166924811872021419825679082629989594327833224494942251050796485235573003844998969118800812947117098014492220079079389372445244682657951682434594718466334722673246292338265735860460477637647941337004815352354445976796496141993227796329982804760438720663253919365298296730982734649348161304998786683023996119108145792887979675293997755071930037252091508835309582228054616936417942583162905324821614844734458150171477430839821397117872110264647761204336851254456425775881409967588971596764434477247038793396529227110583806050174082867557893043517212964282938385293476640157029530930061412516786219182331457899774911042857164983927726399115429059419959359362647947961132679196175435288094605193498866845455150716549536569738400584401823273876511496860376933536059211626607778881625202524796437836771818594383132867428628837040951053794984029351287800690028149923832166508368245110887364036848607101513750413324606247376965400786581481940907139850998839902348609721561443914595659773296830384816566277345664557719191183183697832413152299824522414012455443627824717007690361481961050981344844405021354283118126923737359325578335252983626111351222563133127056944125998917634398824619465779127902261048250203295381993495757967331386083145438672237735802030426338181851907183109022298262341710610191984478178125441430085102447160421850535899924030926365597191016330326581595146256107105825347091938975675754626011889284568297515598532599393167734000362727787230969735009865182044953553342782301403166441897940082946014134832316307790587301059637539150842204456266235133525580644974155216507205678831170965818311566336414415812354728941038861451584828189376223581079738476783508943584076586772010445221840559333210789836953405733985700362765996878486419833197311038324502186346588707321638035367462182447527318343522128448552179586930102187963836986795823775801969090405647454442089744135469367219660490516822537844196918053957238277296319605360342765166103775199774934724451573175417883907343757193575642195218585311109608751840911083648095021554770916463998327963513877585497013126391300901810646801752490435823403463910098895153487483466671157556223295908945505866078860541053060030411268057441271342328400159156751379922429774114860312467492075659792603264035569274761102188904927113845037638494158503154763434119843683711752524886239958924102986121512723390298121794230549784220903320928932941065539501900289658937528383416662154906398518107053933541357335321191638706673531618990564057160252926356988159372660510565503103130096659978523332603986613484739521029853336085895290309857333879349249470714351561817954967991405291870387557354556023104500308092288886971363874260833286020420972878692643137776701359096913665107171642281930637356828504426219663688091168270114532934352599173656485135287507921641291207797133478944887608984157144768395395089608447998526825750435943892000296004123303139791978469363225694859926876725398233703663641740606580482678896852082686399537290750741731333208540584279919118310001643413561726619732584567102967938267475101131632702604021788507069854954540529466200430412257813710784525173093583296849305880677952854926204796918838180059335303768359578062727761133054694632606438804895414213181924606095700455075221510377487933711024955656987202180936728085570324956791395822125987511232046191418095896609586550827682827883177819017599846763143580744536964033961052423386612325554973505543115153824991119214100880404318679105353360885819582200487732008679068257492845869005864204604459765482471342412007287759684999057942749996511099841200294364583003327239298209593036580502733560398580504076166710643449345961092722053815467590972140612258592581422664690680594270375030189241828478078806314428064422776877709406215380734193862131483090574525191434278759251989969670553671816819027966400047302430617802713056967215137790464282272317300798893525699062011654173727368392921620991011350457457653867414459587383037847682529991793080350226127622774934477865654314383712948713734316555794728439586587346710410746627432250219342240241788282813500435363405047384982180287960806120730162621495935079840269914465265280648907813015010715224596118833138427665018522831939489413993195672553393784883755523612676272892138313368232489176417951959375736400419434797867139341293072885600280074175518728901780743081626861329467082912174050379144884544295410876330420305847342631398479195935877590741007267836240832495541454427554221229083026048062592945992560679038529737463284673308403332663916744644645979954766178696631187727934139647746412631930386182384278029314998837340556858938403348787672638189708685265387063151010818830413915053573608768935054216506297904426595021995756332621963515035209199211416309570356146597413240842085741480804945367206692545845104142465113676871529478349281838950996695983600230241196048941147170911119260370506996159670322285230226720569491775779172534805539628583852068549894743329868655542396940937216465141012073302224678035721420726096597111124529799029499086486057834963581051386904502715453132226276856121413030526010207221005380875035337661496429254622841452443424826450687059468360995619244192154504265206749150766658828718264720536722426504429794895413528636127041777539383890647253287140713919730815938453337708574435847890534498990574067376402701386872365062940784288959667398475583393912528676520537360321037790590579514376613348041412314705920039085157242171298597259997702509577630858072135902052678850575251545651189223585181344515850170237663452826616449701197623166756337359507117845693487882858551885830561861115740299301385617770665380581147039213485942210430203777970240703887708545992978727399114712219636582265508513602807391193130136404748171172601150138098050213906156923973195617070037279617612226151040406994804098785880805498450135216403562899327357243783340329216301647283259665736629396711192911147319864196543859595274197979190145220863641309896029397482405736965303366121976910393348874700659824849442116699790997662271304576856585693052767399592482705711025452077686857079613258909737969012017359282070961225688022999641197111619530804253364301352585439016062966091910779949653282965035563883890949195389406250406898104064087636475103939025482920315034711208356197850044559148972994209418558196566362030129080656589319192070942820362724955940751203940633852421495875452365948432864537912533203812743030787539454558729079061447965595512425710372031571419532119135064856661389565363605724415611500021741308569882469384970062684422974471046922714889597599731649423139177977371043953544363675092194764581637478316095214335519011170942470240755492085371241813279049545268835770245523461879913469560680221739628166703578262991358471430519526912890763048128272338606561469087175853780509658318037318398040125567054326795050683397102957330835792808536621506148435269699539141829087745059254402173347487941507638685978236382341008308459178172809550557550126649258821676769849788040400938166024960879932443228599733739189167746228164286083978594713516834856515454955058594201425029466798072723446000133567965218674277660439589485443648623088964132443642245185076094153798904481793336389980317250520776462064555267612940747115007811178177938035914867334207885062046064541654539752684798973902823601521698785655319199203724075304462450816598127297905967176659317179313579910586512854446809094170597220723251683684643821712624233239175608938388045024040816934337973716610671270142887200780274674665049004768446922171917194908897744022109098271599210347098682203045150029176487068799155415907611957052666305231865787243784060832037241087220387052043532209242009365082725360439045422246874365414073685198904615737578023073328037491501811015153280484762155599401203474815602601171583982080014063624300229728971592213194828698922856882440717030093720029715944144108418945548225311735953018655807070417762671222333041486049999440857163812023950696418730426042064556039373124214987014783479003938358189907159214616984127430955339603765916110322922934218778274806941071947791070127728499064762980651479987880670599648831212808403482494876020049226169638323464814008607434008777120637929245138320251401181566982923829827182073998158906088328865069289716620984016234364587792333213661381750385354903349148312416261081448517859794915731312955587704154345312124945348686194564498327208491348510371661770358407846826357893841972451306966643481050675690055512851989905321951530367874694991863713230168776658600871024089679120097299246684434843593007491534119382535460146789439878145444203289400514764593190807654732091103246183381087602795552114773015988669806627772996083565722458832953249231442532441816712310952407077473208456661427836566987427328240354608081054829580836521566260387461318450132652509517957116735021926078622558151124347298353915783773983167451775583288999674611622642406083409296556952109563287305962715494070327630046236596176717392665134063061007851653388504486556294628107062549592884034212853549601313753878169279363346245579067311415140216875774176625130985441626669554589340281711355945269970882667429311274964111519184221648728372478954377920476661870605505818593597105945636275534945078736247005847475354980544430560466535740195188011711123513561272082021912878652220605514232079761348234615440972856027281258239799903192227525099539257770805576324946854436374614337250501988307394942559793626303924772115226540565654221970173009471711225257486841175379319410761525610159905441748636269834532723000302361880331270968052004355168606341627405405412649181293932003032399447461548192566827096310132753221620268033199115092498212958347737900017878043911998383480751081087601432001892946956292059521362275307595273855658764240529966963365057875927042662992788561672917105085977397031000919071405945840983663051546637069748444193810212930130513388615913782422848321729798831305439269535864387107107197643889436440675154093715264976718526440251107207396038128804619794620260991028262224200875599449202474186105031687893936885560759717271027744022050658727804338750414570374931812330893601444793783307194084989789290919464811377506838845575621826954943891794380895427305036998596207510682258709713289654189462160684917930425768942070826125393068499660695535273186634820999682380877347138679488202059458835868569457730678736827036709003512225062688199391293237884145014420641252145429982050115913177763702751598855269550668209938491560561735426728166210456849101526851768666032495033180662299951192187778581048021757097561212897448902506077317831019122618855213163568604088301196581403468491160991894890001882179184296693366237893652532190448131654090309728251108043495341221176041525819891656414266844487492206743606032510345451259961074474358828273635013868365357042057537914150586694449527967515819180219662228307498271023366373549557465398107502763210194744218763940693450765563988774588353626025808703006578484364036722893251524041179833688383749793681260851847649145315880691706748822483713426787046289125414546684010119486610779305210132197956096221576004045738622167742566958002876695533914106897548115060293726637231743316049414301250236800536013910978270573263601200652841267065106270011788308244640623737592864952019101730224757458636667589254567900936174574721961415398262857532845045971676241471499970275649798978157082464628669984762783629735155045674813394294777763013635633182648979796648247195888965080142527746352896396252423233573083845987697668060247067882000205087437056339746932130169512519580098149685379694813995840747966362822888522680472741350498112538653913635307625065530844781608316339720585284741639102994005273135261218131372955623707555057838894017812044883580390870419034853679534915891604591249801298615396885096168142462745818119575360853936949405896702450987977175756333788873547857615390681184720397485346427039482947943012724333552194172866680932932388191592873271502456327965292824169236274542497445930894819329417041659961799683792141782512101501770648570371516376568988733404946322961960920392575583695255382453730733104021776432504815336802573426597498660301673214873503741205495632378350892361775365795525421355199630961662466428935749263848929174114627300596856733228091460427280173129401617764612103903986289340493989428771303015299299562128748554557804792001802383593009192160270458768743647705154689276420936908770286085137474255884522013723407052001668460484440984159018243680012086375436608951113771241357152293212624828949689970395194329539698618174402416244825877669605352106424645364842355937976199279127655935468089185206420422177764094316885144803633019434571863805125662767059003503826620184462105810374915446385440091923382915043585368660588443493711654625861354812226275474894940635547284724834397024696573906861051648777246589230100503651751467806688810999212198772152881525298794571626622199218019696463119616842029772799626628382018610598341908925729411560223114456026107505777616020206699364620452720091240455898573173872138706338112263099662683330333268327196058280302296835458070799746164722957233591985629281294828044438301175215802138933961151100489075566538005727318971041015962088173220699346326532290983710047218933167346180280787254861725195135479287186789705366333826724765446469067651634399652453190557669350930651078721448436140550625777158547071462345377103360177616932990227132325969098979890730831221570864148617251559154785290582546164128880691118063773727910971134995733370689800763286489982309108271874514668945631125944913859672640175352309203477347040386805293277558561066108550545254779401072808919050201996490553789123075316433666372138526685478224723765778518378952907981257406278572382329261144280068930163801423055598082543554866408300479211817026642498320128244183463246168276364564411357119415205099440540272202494060634849113345197529493030327119477396000183047798296695184197507986245366688804825490213358280307758947295919350703207480069020673429145210236440434767642480191035074711883348765016239189077405410966193504788368037654192962494475087067478973399986332134624471494216992252813967920184212174909587728665364648370531967765563919746061118704237686396084081905658491647835718959856012533121665887843656173544255962471299068699988654880585506329885366807244599415695732226626733869729261258170309641610346852337695314943544655149022479317904912531590795060994033077512800349318637573098511506728162072937167064697280622163375131701197311741963626635265468698449575611081814338229048587705968893741872370541424603639781192304109948454859998322056361521337241557401504974769770107842472586512094000255916328204711800352405729419194166299362327706459781839326104516914593102525963540090818864231527331850796500788060394497514549441343311911714512799008954656333817249755642762802068402285302495458096456752036081024324249132869333086074046138285689512559982598526824454403499669927289890941646010793413260098314928098137241321870372284469217172145790608838439376004297917263891347233789621896457180738710728538115146759160334276787027895701512688911864660889704793600517478336374996663991371980863767359702865763734711380415734779122025342597536336846801705981408794475789913329747470692081790545977296375392667763062884884567961300107072523535187019382558827339132371805528725634925788555543984608987628979242183322767680499691193662081078195017327279934599524139739871699810300097434081453265935117791638763898866321176849094625228211045622379583053152513714696518565205350006942913990001157181657594353313750580494483420292283360508961356993558608582969195057790719263338354832869320368178722503226905786632702066441670705622914128910937161186183513592950653048644102558682162068365856443386025695891778646132132768851992317413844591128115683234548194101596758704549558504540499703973700163966895734892135337438706936875773867851102260737622152194384599656670153927182953718880164828666004877178472176212524409134352615131840207754190254742976972232973455243731936897705841382836051415126104237479159206481056548747069478380525269964124439376284993021366870577231042001824341009244876992301293754721327934377459456980736110921848510738287696928077315192949451336754193917957368375424512268009301273951405174648978513696294355808960732871127079116807789833743443877074197744067004310228681638927077508066405746526676182064894084146150612562635420859036643505782269190746776753887028398242768858589083126299194690275770679182353624528478962806098665529176482101483673973057821654439512706012240768681144911031905653697943154389722347117247023332220295517190370080064189855620067724413433419488052945515933841425888010020428943281851787320261050538232551566813765869996093826602802778119202486517716431815011199961119228257908750302236029851705678765017062375578818919965753280515610716404880641451438078034963485983020220638127692580636101608697408117776801230042472348848589567629501765973540384016815362431579410237656598977040764468579833319561148478266386138809762963020475575167088649668433306640664752157591069979956799955679663253016959366400595082674080969999798617886654355250362957317885741625471786642715887862026024454107006148390891316931250338391427159239261458401917277705073457104037020532672848947528361376800533024259564468002125843937479612861100093723021681195183139619634363084777423271383480746917400154949045874629230738518410056792495428456411602016634587580180692459692225189026296656824274440613379672914247947660839759080162235028488550027069939994427213886600803213988308013640529713419737166511426076393527528650913028851145693769006223309766911798547418097093441846572027476076195967120745581761533047372128132987420211762009304548219859885806116969253117914450744648834932369600046346745785885931189534965647429601087854200099401835983162227559869208488679592238059915418025726059381572216043679435993773871342342271229117832035165267064633047758324806696091650105622668536088517554872533419388086362723176500635219665669917510512500178050684117962980141713449926000453402994686961191049739669838686304483568610381905879313723807116258891477568856276577561159134964059633937010976645429240648568566016157794816497559214903043853736719784195689491945649968325397495006483239798382409511277526593950192083281013798450142303998556042580398622584735752006171801178554486242291889548894850142810002213636280529873770352572326421616376578519897094536718563670797696120707328777546695025754171454590769874893013309089733275037217066028184744383535044744255665539137944870652056874090706877604141119961039454257427292064335502987998015549536985762133416983786510294886895327455022663887685884511541701365981011380165112073721282895986513128158956404747976486684558471594093552997062751974309445977327799029341287556166699748152553106764791861582068722616132058851726629762508744472783973990847847672093976875238263850483943497909746635974258268503776355414139527840106823553747501247946942991770172757342098580000737946569229791133632058950425786242220576442391236436243664055827600683326618347591819523982635011422676282424983997934256370006642756680070259204060313004793519667623611097961347758779289609345851246310754655287535209328634047383686525743100647979336217651539564382347075996327489583724989234030131417503385481638641103493947807128749556848484109072143841971409161476716165757158334029340608218806433183713801045653684455069584506264846226585480956121319295309859682990308189882411905296731469126416256595910876167108468736231758039595556708967989376778176716483602007934239108898272207152232227333130146563304647609991600063021861346652276543478591500338467908894413013180392907194820520359905968109319622794882242197855382404068390070194971755573537631810101283130195303838434287603094659386901179707689237366187103159190661966079382351836982114938798910495710550104368474935653653737444148469367421590011530790852300508998371643579066553342586495715447775312020916830696275281834978115254852216256376489975124919787846719897503243030168043631764663144689633502517966757343808682204865009908871167544851684760957550934687658756216418532848437394423196914315406073147582164559554172880952619205684388114799022420702713688835381827955962198721409286253109026550106308020432255678309327524282975043151218447125571869650121044624888144094267282250830868033481123918444085860666381289821678126197284039950712060993477747259441165551054801566568927313239598754236980023132580822291518252799131386684265638747862867253822562630473225181754703806258434102128632162106495349455739325882113533308724613493673562545054229177727760055365716804378957675981636836069962460195292469716388706545561791632656955874626271237755501433601827832127147644492183720991821242802622971289205561849475052501891532117930968210847667604904499896217958581408525534721925361417042770480266994718882601085411791857695228844384518159220680540730997312956469945969161911111691569665765609516908869548735123092158373078768279677759044733957706987783196867211728265782693865608000579622117020292913395020663682376696801499699759306806546047101177231256494847919253745193199410134249914826774019115006045656051081182591117259552454758703075931533751610362564084330159152140543956846330231335552346222843171763249464849664830231706792712972383814481966302842303659861635393296140967251470101617003172603229588421174441420426727673727280032029260311072645434069882497664014000514819141576296580661631700637843597668755855069259652286734523560865647252364848606636341525677675115481635497153632227577574918570227259569565667166367232391637334511938575871228426399786013915283314660255434887350823252003441075479619751848883372561106153358587594772773167569537190969304737427270840330694620279377836024077217825284452468138033837388000923578828674332796858704695415386506287519317459545152650392320119298643807411183245037240325708787563537476090331853149762124281998334822322570689046658077919363072982165370580731575158785128071080501240024372873250343522114764046345814098241759299545778812428010565481656834807396760745416359188095237403972873636877412589499089652787668907319944290827890693061702545558131622500399044019561078760222032350305190902848353191839950581341409290610626101050974761075105609553783468267756929902027344812272144272855818925756177477702649919862652466658915567453608343387353484427206425267972040673884160131872549988608843453591184838319348822939945416300789586446477596265715892057426885159419687376959411820489722635333136364166164028780239370522147494816249361400925674476203287619615922236531322480224583538604001008949470031765238494895636148358669179686765539297389561020102498545213373110973838442005508069724040646761733803054402746661255388069701691266755605374251320898679615086773455204189367692879372561628089727369777163206159664602434421344829376193027867616851807960392583901011322637741943180844615549880788436267050890830155280706809627031898342088620265880841725534866491573774681968126382588883031727315481771580874851286984745583418376084738471658423967298791366198961053302237364071672437682268000701189799204333717190989992844041147097908556994705148068484326040281980836579791114237360667270462948098102938575467117533701170034923735332767436358409811109199630023635652055670957993216857682269203052031823878290590405290848661569867030334100108889394889659353326428593135290973304375332500495015626993494755105353856435341173585561156527217905414962491512859328458986490533475490261874433302253990026637672521558683539154663382385598384021719196485872279093146948752793413390095415910695987823837623857914817545877006687302293244091228532842944371369476808929886507472499667505489348601766208044003373776023640991510489707328038679046419070045256795022471577162051467558566324550159272693386673598187964226002682081439582758038772702184264931370127633439180669688114608742351627473262094256238039714368458861864042654218108682887264308108541863199931143165359592878868960669828368437454948280872114112908004831860986018485892155753790954191540987785813517307003391023512682589546762128078388644094950795573883553473925546314053810253199874448511614221705940191340846962984351399336361194495289465303150040155911719096581202348777504447945956083363313228996657728781754492993437679866051215908408579747960273478080977809780744651592631002569164255446245683157316215033081080543775423866518816131495127376573950577326432387397999757841228212638015382104732062215708259146095763237044235759798308860777933542176950819727160490458351598813092971648784517204341299478092537958303431573807186965623878908637724367359023721468384558213422726775633333008718656519232034461581243008871963012472629822351031164848917315564736410125092137270725251949394959862014762873661697405050890344959315360534460209344433385082643355222676272013341675554651038540970485608932121535655724786179815494926008539376533977480144877305200573551856735556836391802910971938633325032855177689110734590266450902614422997101424798258534135002108412243153692021837845665139677899347663788630166227404614404354833618063179802555501029457355223875754344806606889249590707742977843354657934226537756792916441655007170019482791858847600486259814739384427759677269783169859673675918526837391141614194308738842834598256491207947087552519895143142556701088691764197144679280653112721565549818321166533457475953574214521354164760530708720334025784277329025711350714846982034077317571637586602988909729885340593033374924279848974241272738196768264589939630113689436542114326244840170033075410005404096190536651483820036654930018241938024702326699143168710100687024868047753078634852156801297979210857881142554486027553221624356342712177307009122156725769008127764042661760885353154066629745341076056055121250184952419379817995076667834157169666499511429768644060371882626804932420297422097275457222017782573806933429486846233434886385530630114108628698331084325017836251136385764113175157582732108898058905034141393985221074552866345006709516963318936050703153881854577067388668384255101578348299344222871653512077135767852384157019896437321318094099338824027838585322318384426081709680460652617633953262370862498584828410800021520019791381699036297771440685550562429437826665790021501502115297857877367896130341777195360920213994843015734838906751590475749639709041352964063810988404182122904672384905982500599959133405950481621370177013700239684788931680985154716973029607004404384471620584287517840166424234580799288268547688613807802566112270610807036714142054261412227755440790118359132329626165999983177687850433700915511152490833359756639856329345396868852576959898855188091415024539716699228935277520400271210778191100131880300439562391240489314281853648123005948662052246409130886136442900810837406861321079951631814429815489524644994794315226531046643853147208199267202769751831908931957596283768990688036013435445724115573001792491016382563691533719173695879546565636056692638845072488627599101269619696341144202735343640753404011486555264049834517710270759290670918485354318500917408127370391621416344573368434634667169721704233138079127510130565548613355227020611025347322085431987760853461281998830893554420916373044656883845243614176897043393722508619272112807496224212172259624176419522726516713271538230881216070307090356905305733945272603665726499016314957567888529977273013325152336820475234694668561877548519426461466063173168086027132825144750539018447589012013802387258503790023215801603810999846940628627552675950219840728101168427331510053479504224745215343865119940415301229029107689117930689195660009250914543958213060315524748175864761023765385416518519070647829881487520606219743300485739761371182319043108930828908875774295384192352600999508724095724467085815966066526364567323693101023092108618676283968746062845514744490961346778510968417077604075112805532207225667456316840269613559763886431931219316291356899941087581054516111877735537354578597901135272371821748843903208611411487527621714245204634884808233979800436956700329458034150662550347300825846346566063569321675207440903798247231941358678301785400914204771420777659034544650807872253107797085384925334624054666766012158614894337004502530082674111982228605299884078394633011834798126389680692719490141828577210668440443853169821490080783963882154799616853035479815008844872917473855457148635651868479203467938466480677514807443688054679085101909439542871680322612262114997013500229305692236311373505715066343876925625109743614278352133323709901656330692442012061598247527346061368850838736414499400776375200087348314768842248097341492700380218208102592685292959150853291403659260655912947745219172463766693597508400134767901393373214147223890486952553761606906940019465287143455707434807567839631029855312040916845811079353792329793578762921220135813569330414071719126522362660114774333184932406491436395856347242769888225345916305594582827047011330209201119911780470938971080747955075293779766708964785273853508463383446771346543706747508813158801355955342603248014665419269779103207393327838410956256798823388190614097334062123593695983613274685560549337586853416502689130467822047493563922431212572124323211077720321072200738145004948791329466687446635802975035077112748661228462439544153753570558023369439313346135692505569656193888851915529934185929430187784077003025309832103273169706689217541298723336570686050544263750367283905304107159602649185886081759275828178908796426184461070722598409322389155202502790868683566714848537184209873309881478765097125390476396157768823097717478610395982895255901748218784910928155924009075467367879526921066996547852784931020981371710551529508402300808571666223435707959200187510416686023502814765281476328159915004930230043882477835417129853290181985315462960970170876208990385161666268320953342429862228809803409690366401811425801125396536757143414019471312756397606865485274072179149511004562455710706820671294783508876970723490007180889479964217738817918236996365307144695990626986197106155066473982925885047312797841959472282817656947337980764293864629197208183887340717839501464015116354194364772875833575126049683060969539739926740211264942590056077066080853559306202299755000466923314030230534501917645940133178807802845246522364974081944424430242174799849337568799865612151801430083383745798183644014316242648175887798934284949095196315642288234481328395741527334753186286876710672383580781378803184784257516910982302043844353637295401834953327008216184135690626328408141721551347827170710829696901027949353400823599478304540492837757319786629709660481361583769932674608650391536649453950169321815656910452860222964883480491884756025390646079997380106231467483427231127487765370773766107428695478569877978976407498493507241005434772783714268508639893295528512404214118366886454499798583521001212938321926875429986284337946577770889364082436181162345906167358360317345900580095444448282728345189742957167372216788569873807106920166422127353662415292632519913231275709286268067503044462610617920234830877371317982954700452957793258174227343330359630511559370514357365335395626821021097617481202794351698146010826130650804913661670946678777967088185968817919787902503293069075878636424047426441396470866569963720135015691561853449231085699444856297997189084163907824857659587296503642499657523263334917282509356605785979232728496349902723361286179443943896106271393096514095663052599208791447178125589148090443348012363632742481806623597674803552924741878202603608814518267345223510404534183497416656005190301566914645942837538755532128919234396142698700250755915998263705304126086813315136561544841652965966215004107206337225500067103781625011355814666195520191890793164061178311633254417574105691390195343583813404691251091567582552656027379870416706148569657610196619171279582556980806149400313639168439488365577520214574118883968677489049516359963183869371272525389783486002378634713933297654458589322399393653637029929972969533072676149963381794324367057374852059751493578084900699483525559187808256853706729424367393592038273062603046447903877200912343774016886475725386743617822396995925314518517713583683527276293268297754670943192004485277368923079810105710341435759081163703996534256985766756900892257614198185592933583219912252299845002503653279320815446073148924677924442152962752753992884973569419314227301315599221255018655982864688335718406641419178399365350106234487039750448090937497973258652909301206788751841068052888576614471287437253405546109122445369492806736801250938689255958594928035373181607703528590169808125056910209739181771396622172805971549209892983857107965669608754329715457643307082857039191764061562657054148549834974885572511542120801905563473066941980499876015904271379906890119441872342053186081680433139984581160215337265125135990309122413805163459374184926652904194613529091789932187187806769281661572194127490344775096596711062251742662465550030551290948533665776068180551125138354784464893596099949764613981357663833582671101670271960461159084700657721368160420571135704178500325346446145366330727389634489567496740670813476293383719682671083029649772723053676521297682808091880655055500442656598230160404229841218989319399658766344276948443264738547135875268971059210974737734277564025459772677273113476954255395626881658161087989136161618905148244699673512987918551681023440628644512575937770159740064165779631443055692547147439249586930901158460101383008784722636983758784600694426156749479732535132380426166969686384875695261507735557662391341166478959448818917041978544225384406540408718395569169804920459121139174457830156167613898691517560250316836530451917820005756259173826437922590812833327054982391660575378389330361230504303388042542400207217253420366611557582689895374740192386515328125030201756379487609762463143986096823293796992321544103688446539070162687539095986204549267061064334230024926645149325270719817570013641508575658848323916759235751179236131751593805252060385638016330873578360929027995294833773536267988170561849467587166084406620161778441713045076286435748819096278042191765606374776832344243153094876887666488793753909042053943128595348062055433329857304683396319964300220198956786866641810988317483983258147772173916810325912158669259609848040612175599984220396466655731108083249152356765016593823323598200419030716118629632182553667514040944481691521290671885003314947227886119332147739767166134323293049024932993721693364866792871711432020767657478774987246122196003228656447574486875078194659974039379125524002983583559231383963422789172732819041755879345247372607152811172253376228579060835306787733231718451195592703302392109416275866867990936974077825729553316718070002180670814661248596307311560852744612833968220746737949659088482950480905575670767495458465129013618893580677471190094814359265156755609558600406714317866937821973942449386969844421930819820057625482673593101312895640922318331472624506392044554450213774194966627539364003239937081844581274597037834557493852574154963410183896633348148771656646988545545635979593925284502442496628164138983441059805046786985220168580119014561795044458259748702054331518137642748700330179512751750358367247525422411233888805249955490590280394164362562625788636500400256672910492267614634643144432129516301750620372754162777029603704415374056741802986723973776710991699335070231452859239111454087794901666311431704237214668081285226011773689941879651257652792189221779396746247908726609561700702284684325877599977516246809686157591981061760851969691966309716772105914134232633029655490305549221453500975740484162457860144242560429543980138734646924891538359667772009723813037421920463622220301668885347613401989748383733769885333180132715526173318125332677794699693964058221315116718944986793266778398693036299113591816018302719693040418515122863270924754266215288540219785689490740118069098999889599936054572859179766221065204528968017428892093545338903297052751294218218806455525954705218960089380114232643527178505971447521065946764049306173808829436526834961181166012644510648798800058392015288771450092526781018919823385535088002383835980614522554886029199259571161671785117210103259064629717881522837228424152331668931386684330096587795933990348414225995013935885437197173395898756237934202851260947416916231094795027927865987491210412180110654943805284696022619728927867195464911158816922329810711352846243197887279186100230275849004156991341154426340315563196664007363739567963141269736948265041655260033911418867306510018325004557482267975811690893470098728698989643079569348930906700740505264789213878885558153424987055249807546993012801567043789553441050906344142596133695640756719818945952030591621293198552996736181739405399920461338839553626496871327336984338445535208718419482911318798246254509481890541327093410316195832743874505708936605361880135489969359818213849320344802417244235827464852641209408747960964738141796824591665855896910605083868197524055293502166465135517432808037229298299979014403499809937443588290740279668134391598541867019672526823264599516701698604691632540961593827606236662747320875313649385650753540881128293452191800440677226980643442671460934332612941084477527711080885913084448450936155311507448463128123095336287406969822478082904994023781309689760863449758937621123915703219394525559649573884064650499262852188576203465427575364903600154261608627013510997865068858336354581640791940503854298611290847071389001197845724984638550290164200515604491682930526311485537384549923416036387084364684005842474620065149523916387445196250170525580446562350229614587659879135069125625412553093950195909070149637528747605249146041123287799024054973061282236238813218783728564192356538583088347522969690315291053554392324298655211492179437692420120328985326481029682750230968394818637695465985903723696374125177433745657046842214142706896029555238991650435959578364492330843668119642770718321423507641373131591269924136593297203631481411308244922780032026131909309378856272511556379847030500548925805667495534764700778660392483938673229797368515763904737849044693990129998751325632826973154815796021449695085714978018344702312448217879428089198593005586179541542136518617727383868975239144402297385939592038945187352830018604074461689854535715711473268674042102899991240034995778884566190445830991270496402647519421397389104161828316272078427407934491560601143815354732391431389481884508419647184845850773401817709575428160419404574719454377463115615069204901816024913458642079063067352362958083681580271667397337079281963965097491467358906059110807523826045868765949456990597191818283487324227305489250075541004286430545251039693220882187839548079331117147231856053817691530012996930411835401879071985364457397959404550648701245665816984386867517405427588167923101010934526371381244692816520179725911759389284537632511031495749818899801283483371819815371764113029612998357306731490596299751378306338359259819458507808566187338730272119696387616215153306433530516447341291698563194014205456023856970764673100150300175056830206454412224250153484209734363672149975708370074637244067477270145104385462436107328275840071843411164169277768986865616519281660603089125085061807191740929726374115473350482548233906528961848333457278843366451293769065066806262175182218726658421390213333445627925324315768672136173616020083407272722474652908711346171992042780015736001849522667114033078593113382557785301418484521415108593602025674962644404682041291816088715819127391159848654529210037564916025327437409617979866011191677768399174700229791735062373282929715090984568657753820646251592215618172846533765664196404972931624873690492213640401151759241467626790009755878430238546313168992224985137985327086940682552397435086545393695344004481784413859221227722974713495778893316703919524809026376496907709609139860323278715573987678701942427386224092238521852888079659542198523299322156996487679954706577013491465005057944305485319938307203557912731472534402548708473365607555560682450653433567096457434566994837131036246946862226716949119418895781558029968232343497844781362943367374026128952344916924826935320225591375932596493424522668415434195769619024100424990861765174667525552194075492551643399943572139755508845457050944388821295223744408318767262129970373341545067061941271903494738992900011301890655097031418057642954000811165855694612484435205970495334197557493967922562254373204067416660511888105027962455327903964233959200780883240814666966103988714528410415315328499779663063153401558427048806906473344259310266238735665945409319431513792774975468765552609598610576498965685074737443384906132140762825002113980097388998753787228277737853734175042039557231747216188926575882924124408274212626290936271428194417439507652082784318328616199793948574841904107295719356607503438170214828371453127133340127173898399894162471387496292591502345999571660297855425813857244816169319122615060810963889749622447380030660880613306838193696040989319354366546920451610515842082388466470456628072107934617827485891013731385971466696271439946197867225381063408715111569697547185767031072428388386282160319030338250736409525943400374513190972586484744723819454068484779059349468831009344529129016622353434454242899350607137511101334405143790423887807087880091870079583594738465008557363686992265559052309328187526726780245770357076340682707093283478100270547584774643945665045568022334883769410383156483118846479019637597286778250668837059695076956311744194912575559370907369338584136261504302765186801213052715980105805428007616157443479086695069826223458636461919363203597260856982313311634238669947608970950974558141961457799902918688840485285270502868732280852229217494550279207156937537680218201090643522312446025338403467398657181599085314400273763082897009672258858111139545261289164322323978623470579128570827057381718831310551164475128803237435156568207216253786118583413015231057270869003698246687734431985467671126296277104331655295261137874216914660442868651423143800712174585283015657516131305657056801349631401491194518012270463126440149646296288691601544303667649320661170452548308210467463308598307240217128782331576542090370612569653345327705953691493736206726865006399724839084257625519159610450419893511921237650762800307217930214078092369682046838398408671141342604532171175862553955909731044967047624207425802333001100689276684106188409403326487443256594153839762513839054956197871925470510610662123496003988937558998449500339046752005919318035972507638864461200128791686321150442494149270698735940879581475613232841523928240654129756144393518578142678781663980971592137508047650998950521949146115099528060962661572527666505469720668698935546004123893289822706358605642662073963471287903782670647826715292437968802199298842741685149367317056143452452005531000229530853622136276551344105961305996403946610568880210220749285034849134687667070506256490418190835095681507625634138673580769001750027444987076829270834807579496221441475969138602761147180431087268290565362380124389081216849943060752559073517526651018053751261104482455083197829431310112827690161393181677897356976588880075003308428464697141731967794464014586084128529711223256135840030858250184368054350869338098218191099998146095713695439763420239387456163344844385381889180469993908017249967029666578514001490212799381966308883439870634246251450575364715238846107032708683833716991879810796197372882800437496319526812507794661381659469409886301687638023564452889512172910235731744352668793984411976152412439096347008780342214334024725257122710880173908516016303604162143210216233890211775544579285441609394262667574165250192894458283649211584839255677642658976228487852485853211085047601070225130406679574001627346895170862290579011786564199100278227030297521042998150951206355448708338568816299538031622332184657691015184749132096636170238456666472977765652193581056144632607418088925393699713193152066002194583894042837702219989985221336208799352862355388787495661262512435183212543207749180870587218410324835646385422419034169069023248098790441934476315798701131626114824604915820920288097487428476655765138545788978848046793538028087612482238242381751331848925852428895629031108992404435098155953321437279014219900105416009852829088004425574721795593457803865919545736195081434550603457963843895238178945815800210084888332146059065564583776805863585797940620010427422498785496701698822902027168255138039385682175624810522828654736894779393324400722211975179057904195525747504905461602478775734844668710833180066310152018425927401796565580804158106803098006335738883758914984572595949478321507872338653746186806425073945044480459725977661629730522932462269125528921312633718278742097681294841667837663856786594624175292829247252091778147966119038780474101454247260541790475959517204832480546145635411117245943950271203627748579537604723458381177019130283561032413824612982940581795807875336810661406548995394819328693114515189008128029449283236284929846386048919483446384285256893842600883541137576115125109234341338251203583773297940042201642509242721292480590365982413893592295535388199940544080702454770120425152927165366174296223738416398334639379276556123687081810471477139460749185524625500059137500428819718088768800922837140193297571523341057325171294995488402542120384821825002439703758925082397978461949424099853144710531427578152712074907472675944697540033386123264332213361694674152582520263411376917678738799507313327567688930360902134452290401900879747930549093499314333790051848497502760193462830308616892671530378462529567633931558209610324507794905165859189158739318858594879692086902824834253548420678584770834493558689834853829599421268251958248346402798192187997963113210613963692284468253271617574927419840021900590031761459167997027322232909052354001713255273017387494398046469941765834329042310147953279274783463779467391475332366046091120814279272300783654279152038130788946707920999821446210442456799010697205501212999270328753765511581319297725639634792828275034207153620260754726408589262536865468394418593560823856116610892644857866084198800881900757681728787876378828319541834253993722865091434620063288514653099669519406393065732094954340820485879178682947072638713828140516757133347237808307093579131038090891857273468381390884753569290351934118392343183455626047745446200444828581070249372470663304397340904570329451503551644999150509712801646889421430480935001764059673635924681468067277964500710179901333527746934421856071712346688431248918806312354134811898964817452186571235300515022877657377857839808856591838677212045426675511280112932359682206847951823982429212382093411331928711719916379469750233340222479106609351585146010560696376032880036001385887279204643202964431867056807587212990804441801642850181695000793532111106459421079100826620306579241978723280491822992669245943729998800906885292327680808535644016277317770411504961927879505081589901590404385398885245946431953537332671147952568821075424149077722290257841500346481568719401780078746156487595853734909869900005449010993505180538932712876219120602017808834239656635757011950996701788902372247661822376922473567283693060913458552945388052741350126597658667173259024233481818448979218268448752495194632254937181164119721287283472809723137310717372550877481860421506786354379725650717014827985473625727722692739364518194155432838209395390146478772101688743283805270168203188647470926857765615934000745869641232674053383543564809667935756042526255589562617157167357877334073189572339936481287415679551051870644676872451261958942111732524459531456088022830116052403529900945917763944019202589876591464666008919303490168966688517345067416808628748086041396485448835703426450051952979039039626689255892697476839085397358124994165476829036273018572884378875169142229907958149401424148054120591847204255325401268704379609322579741336633644417769579378084376052164141820300654150818576500473476881113359206379697946222692168489537107639870241187282576249911557112096211947962730219586717594884413460027014301131312332876590464141593172265607859687524322067441457681310982309308565657442140750471866365718617793506604419535048797708823700019185317803964674983507362587183859422915118041911753997067962613624755932847448873912677250911133600871602628440639892958771462984589181478116510111650050717859287145677644157580911040720864949900014077645836535174879920503679338916302783999652420768180809221284018954621258048377424473261119858511094789135275348126382733866059976570904032019975614479844235043226167000947371211073067281908593895875912733082054400091678262816800314940046442190301943067791779022173132129328033245199959312189856497460669511941876241042579753205599863172377170915204554827702015020792536817739955594724185041912244976880811098027680949203913305850559700598415492782023965732643926066956320043391287346885681578244688342598496126745025053725218056030781057872526105647974785638542098934278732597757772464378982212998371603719180853666044286330082004577887218351801006376299845379125918705951353331532435820668387056755020056321956737485052535459745553051670765566893157831329678376148774225338386820457118018761933523976792794242070964953287764345300213379099445727539780007875351634439763669149465956334580737263318881424818939712305361416980988663632952321857671283691966939235412784554349063491565432357696292149248542735930993414297937330252374982027571292449452724600688352072075246523339234749903925181142053786065268671473293533224157972722879359386241922405192727742414395326834421616091586030084455932361446189314515924055406869818107610760065533560575459799336259225655141321027459934287724925606734354088934169232472374043142055865473344223622423443641360173983026032291941007106741603272122640457493847992613569047865571642576498445565524061671801716517601502835918451287298437454612831850567720134419423387670919183212386318310223163859939938631156443657203348783325982488867036549865143473859584420191544431833204261162955096629919398250931665773364066071465347032426108224053643546690430446972101695665518411455688853395063360263213726018769462892215812096655599246715341427490007691826488912851385008306584259012770977165043993119650822078428480781272834032061082273984231533357777723357814819386878662866472293174056201624666213040930351250316690488161813017618570095003552973981126687578858314718069855862274782416319849620839238939132025313749698899836190415050437958620353221139700308768991788398145884721420900477004098319987964937823958551196099364717411530908868735775618934797926168883455404353451859647056927808574043404318966634523346443287784679880650200205079494590818589896598342330388416382282525472616299397415401990487085185259980390638148155593961180460728859260863528115248363334465104199244083021959108231818635006565329068095360217363631625036358118862597744071014783516452522730915208429941934470918175781268905972463765389664672594822080328561188807943836981602558618952934553582540580785587136288859299209228923778952501405599333211955905912894875721980642985601590584814567169903370832165660987184821183407974801584289630287952589529769469961046815240286681500984694163261747193343444711133075367620960692541670639522530489270866303462453580890255232935098153530648381945793532034666202871215212424498229852080923327769307770416178273353301955193037102853434883765936989397948650583687743269399494378334859439107410822889831589765828570622269764406964714909823407995192963247363718348575095467801934515837697944763720035965244781617624512891432087105410503641808940366613978598683860513079973491529067321847600117892822468448701647350594280305733528447089820835195698482354877874246137093711182853583291366001799414675432817096811013633228844830852301374171430772858170542570090629919833413963388846408055505553984917984503304006220076990306148312579138706002280110466642218849020516953083314757090520787446731642809476782232430929723897695994045657082685434646869710417000458018306165536460546643228764681439140509868831464646286288741570059307300876007730960836541989451439395873669663753064075575843086507299853107408051605572176722553832108904560681774585051968083619134078626773121153327928266289405265439271891541784094606443292927144887660543892143295241331881534450863444766879230196221091973324233689707958330158723485110941319073905988995181311884790666101640782160553438036309868755005226883058659803823901307808262471656291891235955570247057865286569940857987134890774509575084098863509493904176181615149121133292353126375598743930606143620812577913362501238872689485377767913254306346973115618188798915746687305961201406730153826540802424029621918100725055570764771404486600845350818273778290595612745594817687240020911858881032337749314288728814818639954638054266467199942515299626806799100184168522367316782947991381569717375931919328549693079561358690417666038466514771690566535923806971249151621716131631148738429488501080457876117116590244059434231639705023122874025586928789146992260552197205277562748801475453806092614922810591494464687339926681967283710974582703560719296003582393903984296657412480175554459177595186963295775187642410183091154674292004866223403135981513287265795006341649104084627763034193796840072733648647505077137451057698687638700100209358572081550154284882827343556730919729562135896472162240410619136031665593419596185490019398890811780973118149705130511091248420083952654870651660348204816746177508650099954114832424619801290296310355203336382913990703538489653989247422996306501843504933075978370984623790345818643830721497727032013557572900121677662289607010503528451066251663260159389904687541015631311239636923918998611851803073870464906073437518702455403774866901184388668168592982875879421274627219132104928401112030512458946894483750969545770540029923516340069654036484971128155851725121968532345007258492050483637397937320377679868413069936299056652240968129037257960836643515541791520168980845456806360792173381330889080082854425404339389794670195681779898843683601491615080456227736993289274477903456395715609104369767317267480325174131216807411405009784219942966483756504819328419488777354905064636301601239409136233329883428499506378672351788761052260473799617056393691458693332166900414965621331554027897365849993406362607287134858263778485852343436616300826169789804761425326587400319757032145539540952765312235145760125741747814695510081456657653976915067567387847819589724232332094049082643854008442207027402857542879614039937783835079340925553477669406233522267291682985723415304444710611663334009597555256874838959367039819183613956070392520110634288787419946066572278392260872617739418754565388726045392719928860394368534414533378526296052225579422169462455064420770378146229599211986291569072238138140438047643498059999513233414204578140411453272266857876138737789745485879483344231156010789193811542496178914639704027911811822924394716224616255449974959173479244803638118342863111480664330818905030118244827772844992058092047088473511867660214329238027512946816488321570412391960159058314566746963334555847852837237782484587039578846966058977379021312321159846454737296026096024711608721008204759591152834984185729352592270303159998266896185093870478518572938791383064496928091867649357757911122228559117542302608391436222007571451181742846250314345904956980510244023613982652976026319302630066323023984975983077954104396968616975152948709182850794926511577742113841290293285485582195510079036944873929604117769081545488359631161203607165793783495994204686900480334061943715097504180448235499647426392616249106193779060380070857811350202091056337738994265085260882195358454536122272359336709196094531524293234392458455711961615377889565567174520645304951695717097585473090142862938458902484097565088995497495371172132195216850219126326737988973101443640953816609369869602810710585312084189522008920204592762647479881102962661255764371583431159582414045709805389030457241867080622707107830550223774073967919043596895258217630629894451742969334711705265674964966064231792783841082040071214365251786367403015080813600889411796594628057282911901346970463184869445251693235548499749077507843060275083362901677215643078237352736331147566460500187389422856926629645284267502894092610973978982188924084025625180465734849376870997154625985240639494754986365233279793847684870956830517383279603517064335639533669454155960280101680917541569821885966797943517401012555196949715780532728938579866140122219428151416272192799355657233493269174054433339415726314340238033181236908127933462435563593138535407738256606971602148083924141440933422036086088868736971124282594661269117871577905623145965372871223309508428989902944898209286349526332025037672474138337448143134042275211527281682897146421952226181324321335618479409869901638742249141355675150159904841411767466409340230389003289185819116203414287336867180605466410022352178638993858838856088340924682754477923967412757217638105639233412469669325657955528189191565749286801382334490430556414215584597271926794897307306640363747743236031078432740899279580036566791714791542236725360568060895208122509166132094841383150733588724896020858087511448850316598001393684275991161373184248219712067626919577276505817601515718403783438511320555019752718758295793400098003384447667413514565418122259323088031328611753348283975010662587298088005040396494849272997890123076756553045260967802826706079569871087738952819576673887758501106627318644620626946752664597604123480037412909079765904206132293353881942177505033074416863054174487104537346876741777090089368810174475667937538001538061151407730319733026468741620947906203533764167618974957506028428162601392002201542456574521731699342967396986718798924362868018187963439926495078275510093471992121740894047337936602999548375880899355161321729015451157508479243395392910714361823409552917080280924313337367780214920709919040734538514475677831772865722791245650934422172958548992461921293402103697443217844443779004517409469424558685821883012132974844529591584163682413551390296230343824573994018125075895194786739036230629912292642285791945130492899244934945735328697196284441514369243904177366624193589813642635340474737220113653333727382093212132257004054771682067387079269853923144185229973914794156049603183457825116839424248041205447506211716198110448656353545679851899106628963042743340266663697445068703077577406099778070786013109267087608501122069742144748998314982990921985017034561909881607135017323869052639590517672490065700192627398116839637708603969277146487779143786506138735560083906415264200800333304790101132956713636174451331226376591611196103458709428920275619069382077858164279583794795247357031713285612064150953496889485933272448175808540531731671108929029536788168499637566866741956275448668941982481017012040292126760975256132069375663882098846883483381294865979508881909318186366519170408884062036757234915800434894732943093109735257771534534232979705118792650209821031583062388063627341375276241828199029554845271002907159673087646308489228291974164580703504641962417873194027572032065664851912004067589562599737005338981332040497041688326077120471528597663577258392949685732018616991219261348878889754062774493726955090332629481046991216275373444722048076015246034050450119435769617569253834351610029123353679871714143124325276730148917289759157154970949958698803942938777522043573083605196406727433622041265473516624173491039122788067442073351495735406565655448352542711227015683676702051303632868049595397703747397467152651828692123596340517777305577003139087792602013444261173971620838755892378388012211115569982774489693645002683709184308775815579083701030987190153659484995993021732010654176648569367569744998282164245959916800927679485130181730511485900605579147639374451515489178507790834217155250475306885112482062572435860897877873271107827158406506465087669181448785321235084593911085944291798043879186452302896142640216575146590224135360914780135333168449495974162797140333753020281743962571458499796657641767306382203424211945357186817722088016291579849775918948152472771398328102044398262891926534062296396385150400184834398981221183941150747231351947914525980418963699304238219282341324991154398888962584205647143639914773908197203094033382313781328054821070002601448950329807886482718167702683620058660715082596183129327462824394683107978302508674298053645257142504222013133437353409404405892247530449357098634263288786261988814813431767499296746985827168125700497223177003184489574951036938601369317550129020317461255842078677532409781394640919885092702720907647681295531379818419973900116654608885188231406933697966078513217990567816931037504786262942493230402283702194994559431117300342365492515685478208784111328301229215273368672802740546846306734725039236210568588332170223179102166020721943117703094947182217258336032438155807369508508398567510828091158320571148495318804609818942919328250584758205486534375341409479798397204142143577532590923709257804493221513733158243053998090095993150305163686036394290202704542780734465043942479837554941747053575720425544717514264965073847348634560325748489001140814007937846464327829742541301031185689389672602962878030009447117519045967217416037565967974934657615975810471753664476237631096112797016893454374549299237904116789857987352369278081019730911323899778811182890362376539498348820120399574296775393502725307175845351984077052734141779756799103098909230914609021484542133591931645200170623861147168823203630486046746460361822811981307057704050603227326643246431289961617743065700935879704558970883604107039879210710530696418572817757939707799091048138182850825297538735998180779149680521111723734991367183934489326287184961778971713816149691304887627949402961222990482222138370359994670125651267135553184005296124436460379888435847488601791720240276201108192647721638028724292107474840309451107323431114796600631004261622299712779397787966549447219991929089078486814655116953093041101920415455555336637696130769512815243718158988054458103229795863515945819156498077558238495914711997305605323376309452778052077415031917546651631477651692479941568276792386936884880413947308213903037411565330019367499370454646894876909445734568125646928350643247710726422587641076996437935374575947358551201097251889709153190982139190452381434827440226992198940581055331289996667321845336483335268656158190052143407318300277118745801567588039218801812729346626100257761668910967867445464639222201638955301146406543049644298143901851730589970505999985405932244862927915465475194172753087487206385943272634156068048606635746846976190416217140717243486487843376810881095741874485549656472598052525282260279359587746986458255770897733456109892882886908330338642709033050150953750583949458164383310755235270368029228317316435772445902285513199628888278059954496331668847948699876666877434611615111066193161040214047974008089896592895613647622895224089959652970815373648795311912236098369667253702325787785270728989210102830023350389918379805746968005304452331401235752142102049567157543078337300159807920578341357195912625518927886240708617733223750058036950101121129528467835086791548320866631457600690575654314209247977542486591123271941599097223129072008642879313339610964953290545164171395815285710470918697227281365316369236624671520693622922422753777440413288978301185208782369966360668441767299226748294239658282874580748501515592945267951822587628675619398823664268528954492414866055685029636257680970698271955847083259265852306744794810868721004363780064917167228275540397185011947293868544779154750123773084360939903597151510405924389026041437775385465683105978079678009404767938458605403457190324887619232706629154916385228243678297751032426957773676002647868039359568639317078195948792140532261096335394001098846029217268324356287992632806817788262681777970561183195513875970736224291043003321620154993599449157681722581690255578512025645085858512033200664198499251736988834120259272008490554795218146481215231298470661407685180424483064147584663360972787904313929451071120195558803274083076419596107382295515725185586021859121988863015074653112797772879174778525383664385602712405805607372610742850728523846938502824196499260470165291212014488910463004093886657529469680127748074071647307524799040447773807175410749051679038829816674328522698577772725928802620642614910159366526538184408954632699509573273814984172150744186890330320258844558759938139970296069164472833710547651858711606426550374504291725697191027759905035700077464142580651172957924376638527044342160930062851758274541292563720501955977983430269096434698400066436188393823329635072999234576458570500745238370856661907619940707199690317742712869421723397442642414797994413831797630269238859598330209679457289052375035427168669793709464518369608899131652404475249450834903563648801061135237750715184419175945809226636760061164166288336063709946295497490586177046322673684389982448751476107578651432074348667376127612621841978998866181125068882857244149066847142531626696305423825702109077842494257337468098704841873025316577093466641820587011621102846497453972532366407168473488946223404033226925877201124265512508558305402810975227813612415721467568526902747622755498572257394561812281735313521780207567164116743416994622186501355879122763300583074233128856417326444297222494682268118657644505727866607973448406246644410436916950041865167459056067509805694943163475711637325683167011130543008856811777866742368337419324825016570556169945910773059526084084603491383218910370475244055905503337558149851360448121225847141569792464024804121099098796334026303755014428635926813355798398121724737744110237437108872515279423242627380750425755262590447688361229336087597427865235794061480980871691850689180309920223433959495357401136495507918878445528955679937759921507750894223096578713799697539766573539696663100211453743130392494440597099421319866342241569391269964950680061640408453487581021764361839420913534657573204882128174328210241413682139496388803580226864835830996443281838883872773033722965648732883100683727595403619810155918285010380932249380482184786329104285292164222586852006164111264251727074200756823214819076965448935174852260468474978527636487366068315331308106732056892453415759802955464712945671073605275371357424182257441758785600635350406810446034677480993483998566175261518790608483314740224940281333451459150440142658214916842860760547541399436669951386149856515306468098635968771047222159297814676266670901923835073852726251401327443554270934998041635759584722368266755527912925473800262028903994400422372012828627449925831114459042338240366545430819919461814735306815953649584898347931278559406548002910590992645350274512858184556382078989668785288749955019098728098292533490382570281338178419772828286095683434605113158418751766762185750138132394521836477393728401934780161856978249720875457366925853380398420949595596490542010700251344062148856702913245434727991578924227954229829834980666396461595865079532283936032759636144553000077480771130085500594494676378008173450329800325963948181440464997842687486794556669701592251818298402867894644202854847669353296075761512498895258641353396849811836203319797383591709883909248367307109862697392444182006322694441436715978143838816078539572320898243612277397324028070086393965298772703657735985041820268360132619454802051821638234043974901356957389277500382696110082282009441620140530202972275796650670849506575182586578322701091019917265462818375918196363036552923948841109189674352185317355092250270471880016476663688121270116770486666774364332405129550228581438952674220012430367294630761391693748162796191164380884962772731070353434189527956461687191904188978895427774555891177977693105462123538486930484955535910993273898599658530765722508235713139656400454503006041860240464865713686210137987094595821670653534921437150743595518107624201625349084735598079330580956232923265946577485079727036289628413861238281720844442060991121990966868658632612975756566637857654152324846756397252361702220538652203082875068435408081317345426479551223780732071982435848574750853768338358163566861729724920807068397513085651317821429165397877746754753460743673192031637967105207631238468706207974407666660608192860911444091329661475060790935456906757921887056663195213141084817240082302619138785830251578597899573877973024682717364288366602246183263161427603416445420471129161260273412101376161496520973435658166380303206330504427422816301749949838390066361921112279440472812817936824268127259891523251794920268540218024468134720018845233896665045980494368784182582396571348596251767970773164844245637054337770862364274122054357737362506596392886852723073651007305886585897193200595108851903228053165457530246575172894192437573733418422112374721026043074902472355399543419176758501794514429894264199440284439190582534565053438141737123286245524002139551058349960941034995534216604059232878628921872188667711412999332854603008004760155554757558246212783242597931257306590267897879999749438953108381397538387939456524589350147931409517779762379274244976454538294387502886259292831718524824980469983592204030105300732827350381101066505818718951810167979638460163104171479547972802575646150311179130174256519910334412062228564892107607606517880390299541944516529232779011876538299831866170352201403306404361942374534094763541298591494989286754981089100362966918225979797451972733228110066656675746074667574182166021811567591414572212263713948640884231011321710177999502481719629391454953212292038870256631261307338193821140341324576270563439051839096096091562661257532104786094476266504083531996958725095606297946419482040164315143779250051511434343192836600719312019259279722783060165587057907183121137387371352641852715336091146269117171190651922912470035335457688772417485824281737711305348893282776721259182240208124097699104326182749776837126317100001522494146467980742537369106454645072304066410889858368844421304843274799913911743757787067342150698732085082523295171860389894891514343379461598991010928285489641590340105330699380040058855787981466256294258539468658658679157795933870247838791313067964462600154113326363678457860412737222438240336845801476701523866726909311151642775140927775905901182067472483590006004262187796571353922026538240713196482703330532431268526612066341618648749034076648270249534443696100584144375412574517378290232476939255171717344514809405279204646675769913619486600439247367361591216759379078719558194206408295643948676739735460610960488437934280009067268009743106832189921036438691347552265576414132191521298761394640332552840808112239064171899376361638527677323438288431829583745317566944588052022120845310779364023516676233432688235508873222707306359467437850285115291820089376400253058344454902760287798386236100047636366612684957342370321780316404983133471076127484125688335783584493674796879690881617947287578063533567237550622263498416065478070642184755867797633550137688413904316639211101844859818513689307807656764105583527133033091677262646914671695189384635005223108371466447798033187405186763431012320179100255587879322368585627482565624438201230352567357685423135017606252345030334960417999927413636677484860796171471108309457957189856689128282730769368370775984750864955422785031546034034679119481950640295045394616911216428874733209627818469581092215918755763926454401133301861416176723347288541364799763809852433513990328620962876028198412853732725110938579773813166032483368157749732062650605398431108580554826138213771497360978036781698910070045518195006244124051407778822936394392133891668790793135807474395290759270821248407440823892846577944682671571688337435791190573944049002484166770835435502917274920887928907689824756569149493833199044442318845006974786398352602999921237200246405905802360241472785636444710717381620703058998030731335248257048398660766335472989810219336666750073941539530439870427961202622703508263526627590988297521108539786479762843126170255893104763939265951195246318556104017040227884879898285659147537481076339998453190048330111154123681139251702615650081413867587445501548357298883638660439650651138407608563058577608230646504873718809059910357045638335178426590520071262971636147925028339963429915894266670799807712302473359068403633879504684010439427142247434039332831509716703486351514482007947844327610153283912496257523323939267504744318169375535752004859469781977663435393088037899597932813407313774467551818740911259590518319621654034047526255466846599858743934936331119125298292193198376247728701371694061786714120184766790000499471073668240874010520274119270158245258440069702748249557985572371073289848568099896753984839222892936601163841424938735332473789026858011905371917080929212858774619547000628664332953266284154236033533719779019439526188836647052650936376008201260320673013895093574872827034469736602280209407698360570070184811307291583433542363279437548285322546620420656885637868714348800276599636733638017034543722187205269405754602088017930628565966909370730019004636184536995719606886940414205115426470972808971907360867758138160410083485358215512896266337969594891336957222992973050266215228934371710716303517144147254608832038055255200635826853832655857933290214662584004152358617324541585643006625133720077079476877928294618256852064618536911942581298550454343257579137041663859753450546788125337328430071182023514681902527125397788049612074156970144869164180574804591182035378402676838737006080519657192820876464419882010155840614894005822216000015575424321852420998371489034758687634403245637045457230856241795938926602450958599887920598979415451835148484326095543185535369375911032333318385885845244944270922849208037751365340220746569626625814519342629253725329019741822704721000345550936417440773170850283355141572411211714689005164419107665240499973700955561829489835941527600115902073424702185829669820059839323624996748387460625994594643792669770138064759680792761036960884547550149814228798231818280981184422901353699377516830602707358173950525621350751343343149323527053639137498619208049548119830799931111745694823335886784834363884081736135345726014868064813263867293232036826881433094626978686781017856648083543559485411248178043418763125176609920534937204558948349446857252829633051833759931804964071898790453867706802085442434174124835090927713333927112949971428437840764541135092808578613468155203076184632365270414270396482123473257660527971169302725035407423456052125851976197454315460354606139655469257708850773252990334091721916003288348722756826977586730087635030391520753816240962285249699758522112412232941887403182721219104152143756202787119817230954202069378793947793329167094176574903468874795059001072649944574167166045544150691770052114516973820335010391534333170486083883577199050791980665226967385398327461491650022202238561344677857980708194451178682444746636571049808552886036215925145245190986179694889662437166488870280151708135415679682270112200324208153771776331200555460785960343274426509942590682771424414511550548844355806711050950072412613631245546928931252655690862262740107432247054862740276049068798708565936205458941658450949230629458272101215484291339662502383654391252849539163896811129809178000327147802228133214997189562482362696262274778359996286376888065794577437464708873572237484054021168556519419006056383128761379387154299202761329965849536426623144158988999866119512664694975289294259718202756225867595464861801114244197861177041893703971933225229219033682956250556468381028734308652405734997780431197780437386625846522147057099103507839807753405688945214013827031249482547441054072727746409735176164479240363376404471297317809827819967248949195276974477241077303917675566961450836978952268785391302203901621191408569590206492760674545278508836939026148045637766389184157029325176795333658751055823907859826437847365488563036088012548601137009723710917978186713725387247757680896657542560161232072623887850815926428851610470663024561483563453178270752631137867172609558366577925073564682928780010460447609391284341443042364498792960015004277184845009181417332497191908374444820310504239995603711697765332518343024119429336292823823551797903527580220984131293624937510422806651493084721275937287014848785642476671619884398402677599672414526792460333104071674178108013268402568625881756462891692816073927472842796545097011391968806451591782594846102166245647148925444668384404430424433474583559359598881889196632001727716040920122150640173607910454387057487467412973176743591865216134175315529034702351529792728173259767378918660921754797279700547986009330704755574091950745285842366228644709325460961255827931931762431352589391023690448453590075321963792638642206094179880528060334842668632080831844068536444826159507631219407857352037141076088495607510569130384482388271940694298638408836878705749020007633019629751524908737868811212584154042483325238561171040109358902540295715120320904465600659625393130330107187743421932854322375160975559651661036454091523244596356292274138892105455012427746000574170669546726688010504625941067948674379873912031869293645336653980351274749368389014409321566311832826169521780740966168966431303396289340111314610530144844884845299248091860396231092099585273277057106738653748166582282628034269448778307057234179596557484221490561029507521094639487369534907367134612733354350521008152819918296151055838905575661503684640024769428564342173421744181366352462897974217916614860678634988022024468907822260819974462024651526486483318161791533014798098378789608703890137251235596943957724500834219878883034501887928353580920245740965547593558454323852860123986336338925805410276778879904931105407177320862483858585184108095637497618457381503071613554859796396673679292113519839025211597154981748878004084280843727365417583103302235403277120157299678184048686105912907489027673177339242032316152593893097484969637668236559273892074007189702620067233495991880863239661145840487090782805759695161028863489893913891450680813476480979080606782519010877435254682942331467607383895150468638842538030600593319213694079870139867889324746472463852193225620089731241060419635174135063785401441697452089753222298980303300748341053451083249054107035636669982692771277027783044360423913368896444838125505299385458781919597242621214180475502614655604545401849810988356223620066826511207153298743407966558704464783199059246496772989255686031812725999709795609054786262142428060421125227577909314839024632579159991520886709778569527804744242081745573628247786747943711024143444912612553253738669737877305369712949608504608055812953261650792640766353606509579919835117516812987250748502375641702503420907806760824819676964659269607691334884114528761832827680170341162550441834493188997812745392746778526785799852741209871967010643106546553057082048523032784722510485098169223217324438460895680595677448746078015279216696110446137978130189263780595551547773318048046907916894654592785328198256359960339210580620019151736515020596391752638062735620283891903142089496468546550609700189566517489137836881539069159163478135761687922583788029578208076918737273926414220675390526084164783294551199180080985378161266186061931225522550693518535720008164957417466260614328064503899955909512305110777482173662399251505258909183947598914125834496597780712214953616401673721891909356679568886411600420201451826969339077169644871424470994875904550006901839161775256340557829066326585070967546877818331452335635282492971093168333567057849844732863519122448884333171310163819353904605946980996236481447518947222298234669812529024522485826079123978462562753518552270930677073015830372721644081491557717568727875616740342672419516788130433181610383792404535027461572714395259786259014004076446421715554386577633269861354555377604698956013816739834675821937937972487881872094789376411106357522260698922182972038062397166290101109431742076081927725229242157659628895719809424313569374740984943070105770116749144929813672654850784871060992323846682737405151441956733888956546178827188339486610994743987240872122787898811331316248523336400808952410247988068787330639324103612357462521754319450576318283852609854426442800773275213344026568222116619822214279397380569097109233823219410753646204267106094517098069668323658448446209731749666169890881121110400166874014024710208773364663622308378046101556554234754570118534828255002014212834667890245345658731776087202850185928942083909237384275490664006762473408579714154156084456096673869935305948222013031670513437507258466787470971396708071751445570439337200322351437991162779988086585318280346162089308819854841046478853565026012988504795607681620633947338988142498860345137831371356578307708652172123224483386665054258871387761216913167731062153429816261161741261921727110052766481062571010968094235995666940720342396171878563182301058397775605812859195723864944344248834673521666640568250151207342171225505391483290980268899137824226513502944200781143718315850918786841199152732630225101873450665101199225440457459792225796261268328141027228860656244129195070484234088673340234216845787453695504584293078175687984561312120476885578089840725131177762579038321175838553407286864554451342806340189017093695370272599611065131675597316271059447487409224335263747248179598401660093556276966553749282713973739992066184121558493923211887534722346460602805854090060238824215379108471659438639341600356992414140154026174787294201033792852716446204767117102933120765623363023825361069701939709108518140811853732521031700071188717946390219308518095072393770888692146355162286358028238529632522730652997516887029469547850647498212627716414484092865680660147807682512958782045321780394678032943607499623517768860030464814352566040816462284796565988153296822258109930229832221028167841359279155627974716614446861408108736212026144649586576984334347779253367426606316748729302048122514843569763581321591091866686599051123901024069980000197564677424593013799421140700074842498004220964524892527147324921608608901735523932884744189608016052776592154731302421855162097589888983041797657361224390368408875015659053399314805800052626813886347496702920138824570025845303997955102254740661532001623233171677192064851912254961390807028666907167450017701959513088894993401806636818555801665878430870473772858040194085373125278454303777945365714273495792688703083643492621339811875379815357837134318505049857742777624014368546420045143975873528316688757598317056237708211331365885656367540883991718113437703005006534982706060149311034664491185272030684253190458418263435530446903403754836773950093010727289500120221054595944225845820124489866503178801464845329109352289588630115317569967279129621416804774758114502807756263062895121262843693757981947311175211592582905029503532847308196632709968076310839481843369407660196160124682131914334777289404110949941419009709159676140146911725975357570520128359803502817271037852478220697572063436456225305271327014811079417267702603991156021054217211743599439620058511919695533369165153355235339560864669235330446060915233786097245627746968172741314782760137063629097346621861972618730356958908395744858430549521306275988171196666990100754732335631353141077124598329289425488361867091269989745788069668993899036945337104835014162614129173647076663536612949352500958376273374724779354780989836138847642006915959918749315468607050358395590863471841500195769845584853400641570203201272035602956471984096513644213936621941152107030683140474862221849634022115131695477484690232942537142600596460430829340355326025618305960898558511596301520815280119902232802930900095887766394780569173126743262193274975384783921868482576181712993361473486237392779615632605930701755061777646063302927035338884693161773978321651985343180914661022763622072533213771228681452388468426480399166057301296097039420901962035022628798252543624278310178370073397539330775443699302284331688835377824395109631467414320839772387026331307571361416941982019405573985251867556382390623955507134232544814064125786276149481615084790421163621110699018953752720120938229812153193837214967206792306316268985157387112285154910647145581232651818797650106200015476785564271193706649536310236736410729516765189324856588153104935257702433941910448453596738565769830266552964233022462517885654744550570939100176791333170489561685262475311702377290133036208711335368495922469786067603511149823579977961324435804565483741701891901361785325515307288024828905509950861150424261565634228182589788068642665686977965324162615486295245385021163358437611102930124759579646171381684327620519098803951144683291913343233989127455982449599918893021261766813764333080370876310462685423170699720795939361885856843310910980857686466811017023663342677867256652234010782340055232673316021203946294487445562194135104155631860521416588975114319335579770941819016832393249913339244794682472093292971593625979893282633559602799778860092483565068838416610211492288197197623434261648825934607784645639984149905492148124666240904885068271459302773196611411872230026038677023311530263190282503053843444745238070529977632039576407631442354707106116492628773444985941802111943349640701685978235849909680090781208171339387875865640114155060037314357398137030775186112406173724499138722535584974841502032080423683422668398748538405455024839043387893368409490665965220900747850369236299764046199937039398404002271388872653146607393364113479660654649888479988921394919565899582492956503380038750944726151998689380560753822215004528445122388668420302591075736443101147440943318772008178287832906044804257035392814160619060223407876208391216382370670063432118877686001626632238476471399166732766844684244267397575063890525786740862107397372195838762340648076221391942829933800820907251446798630870049204426029688397921622487095284916668206947994311170697669408666022683108225476517010202678690791955177017371316811873021390162936173680224286022728057344668974304198148284260339447674655923867769079068251584420752276737709337563668358737649020142698369068385552468169542706725128758870771215872649738065437636458771339725063009924582060424777012197416930087775782369552038522891350987942247627126363139581982305735954820042507721145241868392767638251279543334108753900611827891142839254781066504280642044429045964160000305301401585569561752097774327574480701894190197046000300936408611388354370920663811727468701168605699473028974728176962054002347298800779424233998021292413261874811775282193373685874958106238647137570816971412749363480878985428064757284440265321892116120761946373879740344878868273271500934418377140002208867636121512741377684971526834361073016289575252925749258781484974031707290221626151630401427517584895696752749253896876949948311076268056140894912702938473136517031317395114364429026884360702343685664115982497283064072405506359361501813023489412845366942416519598721903541860707687412849417466612792408959924822606788308926098107828092626301184473455856484547131925041029373406725963352771137311150998426026322310866610209828139004255860351403896328700667339080285599736487465079384148696573200413896461410324775300011878150525451701855854854326432728090375280359199903875649336391632515738369190792792997107225633023404400474879624926561645879524001786596380272530199255549685200379039697390726864926070159433263865440556555904252072606662491554766903526870391224811373559782058867114338022377721691874344999082802977941690818533261506684814412329480158975454186632042689075387006608047604030423326948529848223802707045334968272139413252765731988078773099962504468600513672013960954015585720719478257157691198558505508552237873196580232402270574414205463856053425964706847564056031618549303470798152270870816689211141483298675153708752823925334586374066820370612962584436766504244791797570391989026396600828139606304129241677388337255142322468519731986380137756296915644595682366565641764065397799012497002684941602999449397144269731146134929137368905468652292993070837644902162709881245717468520578136346857123946454922960123951688674549989723966420352473181451595442468521699444492592623790362949711526178635401840174285027271154939035610051472852236115603941299831548470688911732404114258112887683062688305408872693066369430199117401917935994171282174836266930584249286529611679537238162991833743895920001780758756995653430334488558095848085379713653886263173642524865546114696742265070858042801976827440799734530090857112061319113176874447252735379520338802945692053539333808096574169621962098195232495318422402290880646092304647015757443691729099181735470474337794426804760091237373824967723069062896283778272316789459139119348102457014537485326247331978148826914683071559914897967299537268326961397968316622156621520188747369647134724854931261183450200479023740915431700456841479953341434276307720510423638320120440409111048516373632847440212018496669441181883014843111469838220097448764008850422697975829229390995632343247429663200037387446382423324250237842005004707961001331912656428515220781369178562742604744228719454230323082790476864875493787519277025426701028543033591150828303979545180579828325667428709430050734006684122090278603052662423647382405758901154711104488877846016107722137611613550503952759197264209685286198958683357853303176541138089578261352419776096879908419776181159590143830930828335483495686177465733021620433565381542438688853363907104768209196632682896279979042690622620177426387445379803752778144806925828496859750686598463110477211863923223670268476650720007008377722776106446701657168113534851352932454961919959905093587105526423404035154678773663474948082892752647244095843996005308554791523388119725446688181446411375020878117146505281847558703145857699327083892032038397778448917820660411049025396383486503269832339139992870396814079508504544998569322098280650899090125972017669355711598638819427537275112032480446219355469237472943717271689213185232876206503880817439636811604193522477246162980539048122044762531658140250555194144742362126730963993069095610676281889521937872403379775166449494258492285944910139801783009429520708122000479331955227535888723874455294362918935507441248691839666491731217983453265001263081503194686133652328338324645761796267244113614639263183961659660249337534142587656731169441494630697781418870670997535404147116379777455108107038904632651031942547411074462068977089230244233396095361012734924233335166690946844130608381504875506139528816118570111827286751190623451755894599289896013676089644601242993187729665375378331027020309743728913379940881916961812617530654934954849901722630825246347301218110536110609813966672611830267379618996133467030319253419380456862840596021054444749298649764669141709126409504884502069207240458895336274399190471425584903198474779290197359649274275964681465941464242643141026803702929314242371435579166423820800384041996635589587636428418508785174023563728504811591560576554971215414178827678583641083474855800840971944111822535676878740326455827767205492100207371598897336222469270341866716974523267860276385505024597038431409016344286314385437866498649122873397993774908587008722380907754713690018293072863685895234529688644821624747130507676487824981537732388959360545396517126299666697295156679029323495491165542936400117792530910632373161824491361928200288411599671238669307156924843939171950433667431129381412856820307663323261928981443348877120464769355385625109346911387469630524787734000759438144082655202532847679668766817206228075987780245196288389794122702585253768921043227707001187550661772201674294085384857187824052273768970281180892251644676735498290483086015105335810768042142798651313260103792601159798250927582608106152072285979769244223166691073474723552858230072078969542422667141036187225755350751722472275048325859057941506000222057211630064348001256844715464749922432113862274840852224703642278848922877029096932609110192502188710514083135479520799813662394454586001566900159635232393608482477469335835801993704297394122007378286316327398354530350564504203220142769248860565971997361987343951342218192803928588214658583813615634972656716402485068130386437300811268326335726214836291136061791213401738202000639742578999360374281730963124270447412560135325218511222059046604678224411047422642283000423199532006007356353886017921440764810370897273776355378965390706681181778067573931570540720959184870113900110590856191528642123503815986218923027968235687978030627962952850013033387880298893635351084033283293263521473324289325941525873768023437777758303907739302043117775282913023216668234534960557526775304420314336397417795769973662602313475651002840500723421504656875587119420111825426270762051167724850336304227610524535830686507661967857430527275383637964272198492198053039646317150641938791087478753730352087403172145383499782569148195137494398481074615374953443281342646717263416268461364361289018896691166348233001023805955737480170172237325367033901948875856273359317768056165818948251386559007170158205730931482846890760721677426918032287478015129239943518013327818362855935632054425688305502053615475035599677291833172399492227519860052162403954841930895563183485455667206863957351575620242517376570197295556138115500223824946947767628570275554081226076539227384847460847301109994808785935540984321211575802198852670244370118477111305315061664721884440325430922397603860471682925529230827836117067399883533509531724268707494698272130786086916833114698444293970176938055971848836671974514319063403117763117753092765479549638920628126280890719898500127493055256788372654127116624261068100775863443019781139314287343530984589292827822877822015307198174918527955912053555655170051308406098432233638296598346154286723584216222748007460249671034172543815993489262782159179282166384545333438561676782613776810050148783261193505253266769035840592643189549487001478406838855695034516013334282098552904924399743944306357144545756774770608249693583837451460558652489839727944314298583200782731603324545243038598117953925686689441026551520830114527285337131811049890417533169906427429686477036318445609957703462049792357849860516324097591221098109972816663943017654541632624818540820792738173188155452191961166324597183848640598018022192369258840795119404776075410784755115880948192748409215827758196667997301572484462196529414873460151091275640549957784775721021597120338997646577958126165124426480963970162571227415264096262167161436608298511626087050183994590331196440865369447796581784533332006274447048510364838973612842302925316709489539555932503627113148933120347811170720260781749982432452554363489037809959787582042349484610406076625524203342337785405520296123016686192496328119610006655681249220361060942755340218731134038309467661434486007784207757496023871385079131653827005924200525499386636948839982887704110586551769885876730666430760143342839447978070232589523400525906114153352156203904489431590812355630188112191043596569901950043244255818011603289046052397896892181746132356749937976914113343235411960957613440205970996281930844118896696296954687533624160450673932257336385006104547098584945326407925567516880606260507159935709765577363401865045996517057509470711501052069081875610952753632137716523048747910881218423754174900680810383603660818875263574262609267864099149573661234522151087573453933390701610851875019875636942306422136335284095123333170073566177150440823017866756446395950232062507143895011062113593835641957947426695122610920364720737157565677482795973686040750514562342049639379564806405357085219275714966836619865468652173704083709053881466573180334620115364470422981706030063903454174118799082493305260118754687592896231221325389558765136466348120836413330031930283559047362287712812179152674365847883426688453392483282909488269308235716024816492061461899281468944163512015105477065621038278310492373335778185735572481091683655081657290159294041747866732471981446417952703977603593705296765197566616805683148040056238623764582583574152367449265066773312354525572554058796216409454017975283147579794930835819827317836235328564158295291015759212357619581338391991646917510817744615555779530777653368351853679609428986248737611494502573944959015561034505976949295107459508301965188107795110198025012080333038874141491135102624579046135017862272389175578212458163394968582186695823203425845326925387169443531770503757180011297583284702253638142732039343694733071826305170000040339056217055093071072298939982131054343910389675305890050089485786362827090139545063606186019426378374561757728319561814914826767459972051825244335537956200263402766116472592681652137236276957136301234081833916861221554572801548215347074793784806929257319987130166450408570530784376340985091420124498360401726980659863505856553368932688921201809506436250615219874802049118658889464554330971641873286664815417272466938215200392210942174684403320455899472624304545479912702276228360558111633214211994534618757356661484646283589209305418911430136475285453918499044528986306468586314017854352833124924290922250905755046453719214832343319648138346807040297077061450855878184841248098864726714765024264928598604339592546847695067089257693308016569344924605808178042888632120598073083331602504822516949177673005426953516348336058192211229451935890370089479678894467450190365690931395439587633491145316083246906793131222293372575877703719931198068190266189497948614808516063122753857602461768266482121262303517054568511039876269851896869848272040638877053044686534810075689159623155174062368919407040340910256277143628460928290391679410066838886811339802462824051633283723168715685981693351519823544190898193432926214420024219662074978046404740488043495042643984863595633444015220049547263612619537814943489740033149981487144088969739935765979989462429408593169304451835248804779926755610798473376431702354331664261596251822784341181216632086838910101120456702625607554365194185023009230558659367455604654097354274310360488925240182826372757134445395022196319956045167477994690605729075924771493697343102476740371002096640099313301726534385171458877085041400063371298068766445654161045908556956358744414272377107932215234231653477617588345589648171608236165651405317418233620938265135470715670585454673974442142579467181794720601102923622370816649198310403020561683768443131764796083451054123816512966434341751816914099783352091287803540497324633822101425694919970365565327015050332029265296519303128443336095860641252711142945503474748985744741237546160906974780255803609769483080459217077186197088263448635218443651284301161268717199451777458423896489530471137762728298670509845964364685849177234762832449221396976406597112832032767662800383154538434116468275450471079046376504941882178382596711968741156161210104296594653396826013649345796713204742644969617086268796231188149978575431321457133705170558799097112849897043550711535657515827323590602108120805016218286566291449654027165450509662617691288096699078423609189107226970918338709494477975924467429518902806977483990529487992814721266104661015130071965588192645790793693037394988026625175649914180786276925841962111487137367955881855909484985462087115265457563559035018776396343827645128785483688182829629384036364490646813135626415867084246181463435144033940460665009921329280501526067297539738432296395207435863983324901077079448798443354501803024102883713572665314059357300565076801807780598447684608685433726128199351585754878045396547921539925968597419137232295752914194608423257860097691860846412072599327783723710994001438333577330877171817323380308304742629949853393823263763750130659049040611013070556846957398242332033515192145164962227093561592690146325657399831715500405813083781810460151689566875689497763305844287431267421067940453740024392493484337524700546462796448004605768576093901139997550761066380658652991499321211295322165821127247507190479697142846623520123340944352115343150199494203255843059379447532465749666929220425469292338515018143191366228061624303292381452484980901810187749662811586358952759342921106798260833616316630197960477014207264994194594371459779755446460620618101020096486426364725603184914609529635724700209710398000610327109270233463823190477260118424101555913639956045633639766693388913145702482287423315990315571521550766247709256592201796326359467505688377104945205708345173793972138580589143886990381962797204809698682320887694461262198804515444110417841961367039580947571490590309535860472189534527547172133727103010382809069017597361132013966245162869853051455251726477611293042462881860825386467745995687578669368840850198347405042402649871546234796288488816745946597483168975447032902186470431697094041192877972837822006397235408858034089914334401391721895731740469429365070428196173782159177975423072400699626559910982533910332313157054862234274572674707220179781549621546993175150323356031132495155044005052548855727071834583462198313876046856219714709492378523429184949425573775724106913467705794003285572445418050452458079715027865716796787894048835685420177709016844672565364363706916832672634567121764211230810106540114982329960203961647856266906739308015957192792086551366306616818833699264505563094946274082617656662427950998314151898772735425949438661774717446035791674748938036970124414229827993450409016001356109031922792058130263031077543982044519372558391518425256679334160165355339046898042738607735520942174007523013402620850716082671695957894804675358923918299840169842396225406340277940728617835993090595983757628824378874715710513460062956207613166354247681294187234307932559581346143478323988787632112912499479666707741496307110637473072314182133512394378185576831057677201327998858598134074779157489825278057899377996221216944252720957602145237473230850416410119899714832426301620188800856070750401555698458867963080270103806764231317116365419888988357626032459711976280998929431288448582251116249450528770196175216236446697857580171262881878394995034010621833627533324890708108063982047387456627052020296967050387452125022292784989640490891895950593103767344123366850145207053169578946309286587939406249321513410682524181159342871073232783440095391621787312559206070577929180946320738539912738673870757698551016912590583803012820278035221037078593267195521983443639106993568628276224957646147742737418731971065037081924205111152936146860480001908661451123326804827220294084012965784899122234928234683430801996518663197891750954904696598099022842368116270353467157010975855166497889582513910052288889544299676315245388184510576899267679696014210089647924888381295732950225866450266887596726737254834866830593955291484783085811894747550985523716386384457005260236902795973745335499288611177670756483571879656354939476492944092018840626112503000739281026807196205153529825376093289612939354940661781705056524242130772079929975907264127324255686882321793117816665252627350056266963476756888927277572183794289608557159197093085447434850209545637811011201379098481587474604433881914857328491251686601948634758530192786630547357986256152715602325986770066339227135241776311935512327207767303415943940443654458881154726109493987880325710879516006537401683946264354156075745715890220588716250935083922523293250045215833252858203549966441895092776120736031617397036038057042313999927540615750409260044039567313777269499771192631486340851761458444721072955689189629978900994020939552712563528971558109770640881343552517777014177428773924786064692512251499152159680461557738610876651861550695839314092241039303822298155843144408292316022570977402509314272262410980249111317078203277133427278078361680659129759350574503729580514728997016621819680230430890050939999217945394815188710170670738206696600457112933244015610486124718721220170467625167693149845580314898844512122243677552490265732194968752151913941294307838668509804160599004470367313180069574336257408606470918265025800916349549449198479802102423300516001808852962522023485653333327386140084065487344667296528716804923352369861859958980991591762143210043285095632783197979418765208211455327559166358764097906257143552435103471787964464779498435722218674908696992995217843209113665639799669203533586446949451247631027917753002502935615015685775214789334457380466223107179564976263471257797778585311995166741123029703960167030472672972651089397333696176380303417308926386062480063666322397372231648045205207375097408785404466626739145637002072096655706146919634776421528973248877704442246736659316861608344366852602328750989787336898808768181184677905196260313653709229184076360703374380648014618463462340686779851961256479873328639509585824059495377012738249007966197444074468189695411793790681737249942053089969876523118655663984754273563047365640154238425207647979219213114357720290193471269335655254527261276699776791545950988764461061669787731046177074713012514037750666672287346773306613773897215572808677201469018690388434595963898085380035846458271812139414470611434750652546402404001446814303278566041729845366740585381549665748755293208971874787441704539187473290309679061421687379152202193187692684121156087635430711550909223873514819430761221099118631216502743741128573942001905562589613026270096242320619529649074183903133409149187949373557841578832776402338390821569574087732965442975477220132504864927001452893621175889617409578631883303353717879337458618036864302479742138819096540192675532373798056881892158742005161990064486266605614277271922413529167720929242049457512923093735851930104961423310779763890315148700657254647184517994420713942154671824342269772751742998559907589334121380515870857289412000043902698238629196973967104480575632617044774779055846988541645733923005258356735892898309354731412643582905270378068856701412970591430589074982479992678516423671946528420064695417329408649557885476472596182121525733504157615433053764313383312543612272914571732731573006247058018497630312177380911223321049936714518639110551359246373911905035090389006850346673082549623508502088734958969391275101985151669044855709808641174065586982528418397044740934619400756418562855415404839998637394504033625747666952802867694980112549417441486018188309393227907568413133411544527667337900305404189494997685544544428972390048219496844266487628146088281387858056901766896469344697574212395924557877070154387630267908158614958518015312231842136697354015560580089798507425322978643059308658248196357993037069001170596794187123644777927991512165495247541190853586484132490813729231170485459302824372902794828926688029055563163972644790912935777671770646516770514169160161386201454479721820089058396689473909364462174621778042446428828279014763543707726755558678013701732506606151935426986601871552521020777840124381973097507468247268006988706286856696983571882493846305943520028323893790653275977122090142462929612379510141916361617172918734491779667768493589988535707616597454108163795537247973782892842050641684321826203161639196783897563370907234214690449951293832109292183078325681038390037164494388979355153082162288349866118210796455163665170604553223777186693219272613646344553674387521152143919431882520394967594227017052655201211409129332106395288919621919937362909909567001678599229902435508345042326990936711205784785761676036195470158795979112064745063867068994863855029635209381201727122851084782761412761483975334772583054094998605204048739359645718361001027175057030130077846944953634592281691653392736376957007559923590552474460016137502687949893991424278144728723004205291863764528115421084122034718485152059743330565808593230701602133933033951422372626696416039409764658000458100722792320773272969995886929582975309454285183944779782856812593150455866472118050269143584135728556615145688780212820560428308711476996952796317331733361656514978059941502745792694178421701752563561393607273334843618285189160802821656679687801906416637312936485102085516903730061289215197430627466561028410314250738136526710189876894043032879802216007347788906554054048173294668153275180621480626348560460371278362167749293924017052079725556866359550737754218921251442177050478490262258007027306797762318791563042014876826980290367955857423147206539735491695790519674867261336255224372069983269286418178268488431109734759733541917953854790108101848085946477507995616810429120339455195723804352697483648421174683769318814276872056217139283743892638107539712742754538160144914329217141199922033336519576839337150664537831526381075796182973758972414694661824044827767814616835636859394789606783842326010016949108075406625889673277093577945010169553964027874208922748834856521028903422036329531485435490080099366356475379135391828369509735638392607757189701299338622857008796217517724388986127752009420137090659305115026618268796602345130018672343930976761464481269073629401762108493761557355042047708743025433640295442142734866254696190529742763437567932889884189585928853363994028437415201105560841196479139407299658082071766262732668151830342058889121771185726355375967048474154095355034337633399615300987951956156950506437404324198025445066194568756922692399516197178555367584352997164521529154832096038463094638844305366761372900576641405484307050534068203062576046829848564086312974689031551003953870544357536853756300975632605321238247953434793249067731118480420763829455444303858874694664676325546222118822959231531772669933385590930466676395577312336011186643073915625040387098436684060472382005790883888189995020014948348591998873513024533478091813853744761983436579784851344269110485326810799436239326598604389522806460879786673726935161038058088652421411162282361625665707758011650210752441853014403598096696259325820838446748869698048213820351120981646311617682964704379810740019628383866763279137404039055329259149288556411392349764987760529340706613887445883609610653181676249080676307405993230182511715182055781463324404368517280612711303937883427965378367178981641982226644450275842047528700070146496697433993054044803481360716518875148083635514171861169774586720579966942204516434601329298387114258277973157092690117621753361546837705585105495022565383614988358398746579480341476102315351647716793811481197346602817680038369406253206661559778261668838698877916636982708337581541140585535962216115362704340247055230747499595318014163057052331353959819800487893504805138456324750372837181928171902324435752533702690652837221892951266475186004234495071276743686268957983336832358217020617625508231850486968703863580630627428270903013731164260009520686499366001873399566278486241907777858330344809262930328885988398901143540584273386048691047722616541304174070366045218453462714651405238179817636430965617940190080188436355679482454947131195272790721925275533270421674776538728462861425908777671965077422204213815068062901960616333272185327228874413684311972383534962745355346857671715687677836046063499782767519291481233368896969718532347882080041884445761650924969463644526773440772241937074703068520824753504702274176663194324504960140188159809062026861268092312750729299384900421016157699006615745613945157304023522920777700757481342796901425864591800070706834701978883179806757412470352080903655980816045275120860212901665245134015186600546223120638781391323998168153576999258849510940453562344479514941963501633612978514872112518692847962463807201439044764765432626528112403326648604715094572482833803326544670301763763727024721734012881507752697048992057732171193817060284203013277721281626610761946819603314639119253532127488409434003602724994900315864345873462585703709979163353950039965162131516261980191611128042396310425770232562516719871360707715446185372475113645535875976468575501181453506144240032613165019270176622573051638059662130567184303531398917807587159101237791767196975169486547001016955616532626964653112849645664764827884031365777073924253945579430582752604456777964800755790369382210948896624911087383524920169549068594047000165049443680065479451145120641852266686096890992491805425637668170586882645823993782634889150185694712458181244390245089879267772800566578459412093082164250661068650666974873366624496713540762382805913707214689391364721966085117676691831591329123198629880120731209847598530097676652044252902113249149975030879342754731414388349712918003175109169738837494360016508097301710288855163619786925224648501643464115923626770051133031976332421071318103160704703972850082861048426679727365154791896000820824744506360213094950844582429807621518739460229954853114813010880821986532589033403396738398041356469597262107823090662024111899339139018411991738129248760153523661524299201135885798098690385753513407760939443681813908443007891412343829912445137400307942719133360925876524052992009237992331254716810575276157163692929472149112204325447974060880998312061157799206282484685583847535325470292987537170460698825068118665158791875071179050319650836025535065322113615901983111080392850907777304440564163949261525166380527982591292808976743756007056654968267609440056780171602113951897471784032642321798519709572618538064164796386563464298283560437271916065426908520031147905955563305725544312874263497085284022434008543311845991505690532343746103454754023549776493337943221671295934003495835569784632031702756790310898156668726829548029059975804387376915841524015305778722659926523140863492941925706886448925617189739378105002352129180155504356297202560625189165101955948193425694557243046405158777116263093097610653896684853754080693597027275551333825134157265398144900786594296881767198818132092329636099726444872309673989810616103266106075975154160609708493090465932704261382545867116541234629785031027226528220600909288164879170919695895965699107734493292775871020249512087203348720395764055647250451066463691885126026071447481276597012688296839311259925956057875271477673225711260348851499668007133055833353590879155884535198785961588109035469898073819274911737230995639788210884748318549324107699020060305642022658140085509945598972974775015288482840918861859977445215480396995480127513937692190693567904608512589477939410953439081283162008506806872373275861750947668382390708056445141666034630243830787915418434958432434910998959036122976357263526533745617576703998215963675947245576599477231517395027564622870771819821195398865926477904607630367545559146798407290055400881626975573365421909512078867023523276151530906184841058695603297719851101348520954221247942640864930909293594377500030780935481145490266148055721599228711911613243197566965866483419696328319774703816602157532342045318795168635245141427501305174099697103422652161344286779084627795663031463236722314736899427458098220490892631990541092938814115902822893997790666698589187018027095939592776941979950583913165076991990098942021246409098280759071325291999754830047036583068713396988582137285166592010031134584646703851439514840227662614633863247742032294467373611666792711165281859278232486120071255209707199627279517886622823722045044785933695230979445643550048169377402846802781834541221611835623741613884533674707796867977756631847556114913952846838668835485694062852281236251121842302522565348081239350937267300127065240361668413300338543884361630882434858889246160991963779587136714745119058158947113609687768437148666884950401043836877346560080872614217780576007371725871470279105947361906877565136084177823476395667374148326827633672734943848116264891753778985720286814856491597846820434568349251254789448246366263660174740938926155509564067081726966337111654349997827674582454559506195751486649970061075458192149539162594863983325731810664341819263245235803799947637486183100145917385265394057996363069420592997215442198702955183434791611027447485832574760130326063640347522156542734357926978274538235118995090699354644712942926942755336392884643620411002789115093008989986791864753705793608928941555155004426107055591743980254834638546814982047617487976846150574050253717650412579402574202370274912401062240814591080830449441089696110068562076208878995523904177217592409832534851332888411429325114602033276438444694638365140355987820401634371975928259420831143089030278991909279301718376420924180503426682287048640499792355532006698333586082946631249320972512040498194899770792648690811390821967788169747184467886337348148053485872585518305753988254021437960122114068049999159089483430124048971638320811370381829841230005357173657926018620575165352412403274582404763485020538547868636214320287169873625820091992392222969299166210087311871473477618419265700932317269255500641606390180227833912248110668784839674164919565250959106019011173946408119515816894060319475789798891002717423972839443551438833857847803772824799809692134109258488803959988144666274269565455534891300628507499653239252367432589665357302907706522406130585586064417888940740030877939504742117556491702783138198019259461321034642972268536851743618257199273952747289362446911499836691061664963579078037921539879008119501427375108090055376566163987697155703730348291096870796556372773542145984786064917044851798736662584604853585033640421446722244660579970186436103373624456992632088237624279052179716010826013634499941980974356092572999240374513235450145285506223100263874376823354092835347662969746661295458884348044757017785657428241831796852785025416041615748701862856769963666134601262890110389474972485087153392306552787636083980858795998806201535534469194805231641862848794642405294263311503017336298353226315855545968605169551467814273901085811299339403808356348808458130492783715487743128088197691167628809374007534283026724359402677236364466766266468797416374704638876226039489687438713989878549424548491773237387580086495818683218725360545027302257389179160548762627663168914879013422491643902838374471411386659285450073846184021776333985624056855182642772179849277487635812690568265010964303971117115136636993184793073541179099091212841933407245246140276423847883424924383229996264688153045585288934587414910496634104472542326850931961197514558264466031112964731093240112889365502172812132370530447711412492318714540504675786898799900941620937898798498234785530425890655278283638526139823214495414979599573097230621038342526572569168437537486927040325453086837609263265761100279334258294833391091563377460492373650017002929279669944448085429298742947234025890771650517087242284048754077963979276777301490328191994218858270075257843269890467534845080442739532525240912567548732881268553746311088474446467945163470628411488294529758986820076825085021590176659671610494862473950358635617106411240071055416469557414965160123945941204894337064307052840917859194310714934239495310409175005217243465079743858582289019992133931598698315721696878795626856682604538511571050330499809639633616823260173861887401590305758261003258509898900510205404268748551101672289799669693161256578575782563488588876885965850914696003915382718733671409309478754925485284484482056130537296615496324586532571060961510706731634235633721718842169258484769790212871496031482170841885700753293960313988908873016920327139732151162234993935178297495123661326076204439061441019310315622691945779934483410677824993250306172153088729261293584049011987637633041190904280023381244833110270363876877132277186851190651122507383893938878084056684869723836226153047735859220417613265397809357034993706245264465001783701336156781610193624978605265726327352935284696451769298812354025853674207758111836225721822213284306909007057192301383117480764397437767088052300581758010618906421266220937334750648404717866608291571584838277220213327323409480538815737258963590358041948453946481837770717920754966900791849241889511061650008453503409028853066767909594691375176469948817697689414020358887528107864121789217075916142468746881642129651009959427835304665819874816343174649542375343709675092830959373464546075896671208804012077590617253986252429230609044535228803213177454586100489368428877218348026745393460020964364415896794558455406949844135662825818394897015942995289707346510528590738540423315396580460104425749272243334271469082986617886887766044731074083719557609140375675553007281621255419101081419997051975664884407613745797575676305601410064965366438060565111407703638169234117420020811125935480422462048787245542649176141854615259195804765575137763586605760346950199579945796382951651031808262871480732475733120550849924045021801743176259241679496822855234938193095067439468585258516988821767329687491692970383812863602663051361766046663978716704778825414099234562740460359435851150841554587591891291306261250159011132617448649034428199318684263384987274821292793007575662595038254890244267101795042525529794173870698951354712793666120686698952471795469939260077544589743330634288445019822345068275514877909229496065336271629762942109764182862324087402896454408959921777865083291295390049069087397598654732889416044660714127159839345272675028707632916669721802190407859354531113548542566939329277509890426729586989213547368109627544034523512644411983442743657404107248607195855845212781600055498695812955362709568462852817406265663329126585210952711173356463915883675105216528421399714787884259490386034532114858608097487781671750142621991196955828906146106084350488631892060618083638921179338593579436774524858137724103423956142485489665589863211954474924604589586810106210067685763418872427895740929598295402146574610931025006676340143265750568452891213122236179567568603475791009349547361875687395616352073212822248514969342738036296442100393974480431294158644377337485367655630386115655038381798456152421973771966147371620951003453299842698111099996136351666618932030049681119421877505668115503701625584484365732339686691391598947344474174493299517776230612669360798134856110298713689430767637212616330317190388819736399895981408134023786754173579720351909679671042203426341868894410951574494059243698787122003082590160030602158168883707919374341034540025796830377872538077996579233648180149904681427367581139282751369693554059223402774867360546963237478222617132975455883914766593967365771665919097513587848775791276409783531554647964525354166813052356781934531826164599096235841988939054921041268848972961045680107485231055073547539170421634220152770085218154267413743545333863498896689314435177606075083567411415924119188278544994132210380532781041002986371976261406374598051203460111796045302250199273809900581187095489400199452770730767824226740250298394115159177156155095903899069201176581568025705336816279104307669711396564101056652527114915624723795846353934932657894232301957762635440105299585678179026068026460110956350309399482138354903256949969453211294921643190562304129118141137368575348050971077189318029972270000053834522758841009814780023535093971892589561112733028621592934239571025138699637622732353050863649602183133724741312713418316162589263843217726440423873744946223848905395889722030881615814494279848057844325121419805919637722586764881948308286516899244783531299830155620545437114556103892823353479486856923923752076606071101019124169164056502059631517358757364913172704771045523206223345692361383155337627459346213562437008058974943386546290292091782874688975503825333483049233698309226038909636018001550177213487896082090649068168857174823823419330836254842428119312906183915143407285952463116138766919752780895872799402706761515968594298780001360695204045073199102343280421340710297410231395952734841339723725471312815504381311092964791515872286720062354949521002811653014551660384586322741637536843729710334012305980275368949880708154890805260000834541612992684011631312186900422293508275921584431707408112106512577693207064449169004719241812614854463316880576788835225983292127430437812475130167325493856064476662757894006336117357811146282871587864657417867795213093985541356202280837692097510323727139196827527421952155081601995553815682509103308008196421407250111136430602500386132935865021008411472640825588962775872500265777670768551294220138574887217594024549177776248555850582887530546977681248753491745372225029157096867525384726225184331352604031384011471814798046569677872504654021534953013485282820556539212554703280050163661252328961721585025774329969513452318517258810226534110128376755194148004038154585357150073424792064285609785783775659126351708906198347269083079914911315705757136300399944758060651071240708186992628806269401884820780137997121459128361375756793634314243651037248225367262458054575154497970971733964107787589381894004750977838711601190903868351999180640490404480873239353333119115849548440180443731728057667263084120826487744198087859145391684710310566838453668604263102524529417276982309118542937832159793448171734908654324088947401910457882333412308009146173418804138526706835645573576900961995891178737470378092004388372841192379210340243251474107026074758483274460750444652270865781596212372130741537233819479327835858185528352529613953733944141954265728289258177512956107523358385213166333098992409771970933369890799105502566969601911145807224707294951487860522741922969445403609592845592218322666811357185866895732243111109692438311858791719383746552265999269323014845085223754900289948515380207557062852778339533463302868340033742106375687384460443156887608087823782270338294041052507229354693957866908222689874514254676046396186342406394395099627094207051817320739042405884761512378792805633523912602927264670823239611147398232910046724904097265713457983391489866981293746162648989337066649737608877612273040250102017006734444238712511688478879332105187047097950617122111941823861083101048048767045739538833147628167981292034628525981510703526277133630224747999741018275143654183005247534642375605294671512267231898644255716527540297264590172441149809542019931197674517813450553258889309028329779531414828214589694751113585774739289760942490582539012680870039605354180687748270192530143520655521406844123507239357505708424946568160348391869948934767988004859145477895910719354069350967965480616682178201585074409775178852788974201280986952623503772684971201880814838418137914610930524838665140949290165913798278714877728569456176111655705096935064235643506375387827058580172201469472556760300015703650212426843025065525816114305836807958284645253521942092838247451818874451123197910632960178884663794261360268917967242977116841043138320911568648366252142147710607711081304460050749617921067721100342604618262200483204173334066598315856858305068810392878234182759846701837142604905009377061724170556224279123836712734322756499510604970482651169370686641949330339011132217917260382428029989092085726306947593071120350332289115983574656751335360196186124320472296452309541223085072652379981378011892103111779025187069712151180253918184185091476394283682340691097676445710328538996965827375575110366783879589296241694216885050816328560073642165318592751793738993993759378423179583793390070808324182500656460394146178402470256072744189787501680701895441073156538346973984467305162165840052987453903194015024778913001987518691675963012029956710842270610060328618840718024901351707035341731517551038285109593626930437001143010266171735998847576312746884161101393297648485043177140577668679019286395331662584018688542575442005250607061875636998828184514236466450641348842716637070710632332754660284300582081129741240016889419303538740064330054616539999387415667948861759398662205272025983424400989434323095035290417756337689187397837676169979347222424072290111734963174768203971536045068597003451944319684726652710466831560969487593365680753977926399437940831453883194023808780535253212997387428241188823504650320590652143067210220327358976698475451771190716967223880973414842422034779585062681994865242837204442046343756769719575750243874372123838425315722810867221067894214879181027558706432225314010564510847044590563016719499052781319531528798290998709933787885255766854666162800178932109596269606685509720347129251184006517526003094601830246578052078684181818975120898886637562600639058788994449361618723483130550492586226929321080348105182420405506616366182501571983124659026856574617306853808470242075026972882154947630641597594945597575065953958082278253117308085360937555463082237540102129872130869408811384362053311700364287479927051969946402785371127866403690652832712883771597900071008666679628924886762362388630281957813144988124737824095733309295982258567728131382387475699569185070716116007497928040460353558429220714219176798451155301633487319973390376420871929619201732998770941149781278408495159144458932643191935303018406005501636318907569822713911422550241762833830634632984675919035178961603342292825352923954150610745795518743045767071102518156417233047760060214887316712598619896323384984456533516531715290155819981384959677284404667715844411808063233508770845618806824825517460531157712333389750439008416815547138850588443360066126353743844811078722275122427045508552663708223206982948789440354065330334993306739523096318009893029865028007407100619282685444096630133043798711067753949289910561734564525484474575746680349498442894814986111236130041411055864044519779331753738614598214695905690070452988284153911645421816985185718586162449936050028403791470484145159240475691852284846959317469779861470740998587147399211174059071407864604805944002385672612982920128353158597433684039714278845001439905968592201193468447650133506431580198449905927793571177739818959807388447994217325213517738782908873930679247855944038120990748917000253287500821556119966575758545661650124197886584893365023213469897145261285935446214915708501336265044432691954721093672996308156554848285555092041070500156448366295976322112256992700840995168561397263688138693186452717600212558041607531542974256432951510637254171178791244680533512303941207140151662553618374987513211317815844025468607648880527449211821422114879527861355950391280619560351785075295147448558473219179038711064294497620253502054287163900955590099581695447849057952139023499403371839005397954721088226260060281411291102263578343193784173807929552821260799526156122007751412983651112259715547313677317311492530359860398799995135986889920830169355513363813302929225555309827114617876588600007011264466559591989375382009119313465836656096305123087543189980712992413083146232421714870980846778287355172240733096486624325514226712551957422748167146798044735140159676613732197496770550999970124382252645221322497816297165563467883244340847174955140177105881514432414975007638417496479766914642332239509269704370357477974792037385999749551818293871940163189598807050830958566111488258946080197713173383817828471102381643589383756769559289940931310061882872896154526592029172383099892017856225692313618287085170629411140085272272305056055920236812221920399348954725579941600611714879676389692855280101665906977798040420529400516676211605452561922641766502357402056566399099414320203920039452133940047509352741815673597054091084045812108171110867980864273691685329491832092127845403052201099697357486514705702457606243187599893826934993465972434724466389067364883389307936581298535760054944000456866039540340283347557754229505545255439763952727756439610844043614534802575134981189080717375930973224692377821111036207403553182448065636052165341554836584766134583486232449461175421985644803699451692228351829693141369795725504747058608075037175905508449328501593722195793074071603382966029052794778772527678639886545005473070115037303742975961322282784504680475288231951820879693819831886240858950219665716663938340474609207833357520353796072578784439496323301353171960463423136928033246796707951876879283504545405258137775399366037390162596319705911373482994178091878471843031135919495116709120349568357091523675955797873569357600098170613099856584345478153547891130246142109422548328588877314122656224492613509944014125257719057102432322207149388357780465739322112499033996955070746239876969250599002983587441859157096051199281635614191013012721853153544932840064096010696546933555641463096306148323723954561180042721316413952253305051232754977615094936877861164476904332261513370878855141359072979704951491037270413092185922745001546439458147554012834427115608924202895268748565967641725058872600429332687425449446148620800824815218595493879380957381001776640376842861260922663451790481929394227815755018935651076097277554488413882040927692544597215898334209741820849141433877865636270516915910866334582364722623257407516800287457791782969373133263302002182616035550105801725712735592590179761748580830953602566899150584968194336813220337716536561896605692506789074233798336148078130579105874205906756154906103770462554409025081612217844862261333745756843761717102007169267375648294400749412401293934973823503004022382849116517248736794032431280466511130714339748211019457059190087402028381574567876795836657530273195458186116718989871362792885929095491206654438395884852788501650073203093269282009440926431664004181072168126068495125878732276275083673289733069087650118008822496125985964643241880444592667184733909879338360883474099154764141129621955113397223089597721307587965470084259952741213366176862057726872947042117182167532450158089329904214089376188141790559279582882800599273877663722861040212875547489302582517108874290432750768883445802301685892704823844683860023659417173751050236206007052584201466345046690888668452230140890261126916396552250255078524848569169127280564473727453954610569042541343207281065023459053054017204908551658088145527988015224908296567295990632147053173753748979868698473373761269798108406671903308210393527310781471396970835672798387446534993444450514329862573321237837804932033741035392981290198466612229299873849725144299556751340307956987760911013173624083051760050845729339606035023694493465086608966795553451250406869841589131026772884265905044724175596397199880179810876047557525507915841494101525532424372590177135424495858465814388985021266493462706480012980763365060579975785679310686277355683406686899699399018824645270075839394439781645352069740938220458249458307987222277563810747651827701587268677868842066438442097846186129028212567087244105292888914140062804801170455617736054866288343785499313076694000391542718184036345927602644408906966457176971518883357491006176647576067374224568936152522517059081873988581970972064519889305293524586192707752686645666685144373499549700132091189035993540803698305297508999624717691366521268936917769561328566328759832772528279439722957606116681875683304643124157076179491408316867583132994267805932923820781373408973128954892850339797867183179653843234814847869465306824840993749824363251124697736530152798229879933259739142592749665596470207177204154312736502713130926877354162623070852970080996529937096661914005007344301528834269960385931555100183467903998242211633125646468205603001920519295794629124457204914290964175470079010963444906424626704464859155026589805196403384170365623242392933979642535191193058045927668849403472823955311592344452403591169774021507412502818245923661379301718996277012565722732330101677551407548578733917859447771214542327369162857233711909576084139219675050010003333174739111880544751212858876095874581788137377793683746994172837521129803910977091311134596015912065330027522085015025728526991097031485372077413935319925319898503507140777838889658125403220775649598728709599224010713647221567476615451009502387677158982744499449259916370635413168923848955854156314919497091626613736722368846604368008410107270337111594726491377567278904200858104997455490580576770532221347810578524699816284385997830986307245661155820753674964643078349336610124646177396657424488374622706987481998105775222302617014486423736075607585509474317057812749461335946693971675006639528154180138002406982711265296531816285365581026903137136813722330909687300474880343722459088376351182299794279085263461906907407444394791938760387810824812860297785627416977072431004210852500496024138243759183956024985493416887997707486774460901787229905386172756745528833391847725389765806762913977980520061944346816457219346692744623250059047547910464406882697579079048197122902240976357101223266179604425667065250858652417016057964652213163833250253240530749110591143268389675867786983836749891085904661472634814376820351908106071156544503722690208726172997913679512526373418938939871433060752523630627534165626546707588866567232448344075210586333257879571824978494043386039289730485418528474621080627217271661034158306265326541329511375316557687809146706136747014161190619013927538514534756708788803288300242342446546204059682135426194970230295226033339036415698366877876886988220762045060245395102034310114364312080658378821911313643709941777302227612154480791595570166920707044434856538850319842551906401764425694620801346131628494227637954123080694076021705165713149672104225009447140599526774003176595793352953731842272160877015482224474409063643677495596255690754900279577894106876455843942716436297278938204989393708880796241877597511422742480310552562643095346767514986330207648455780339203717192862437918689691073999973723624023165864224106038017774622479434286112956797689040194295695136334488925014845782314524772104955133169774394818761674994680750798220156484370968801886303192447718858762289584181935873751858606969778295987599330806587513239456860136349548924498390500093045861875736512254019663194530551377047148160006258956603276250359979632586757432842244004996619481353899458926986408499356800594992856777012446639698654088251641561088370898632632364968356028825891659827680079079923860375243425733853088652893427340815938021335963845343435703288919794780100898644181980834763125098698192785376299505672072691640873812926206060900313037672549555743721692642567740159664866696463651446813514304898957759855704719912839972081086672517703030063407969790271630908663656814411246488197022377070467224076039960456756563315467896663380349144702032211063783345111385655116107232922441081679861177251772700937849534343126503027408663092237503457584174765785806041084248212596733507121538484529397712793350205382480336424726882989219771227912312203164220055764329797163821187949540671812506367791621322341623244191453064167502745483892617333858544039020246207120182410661230499093880434982971578335208348124614942679932999284404661635173881644736789964487998734453248613711401917565678383215182196612710693428433004057484903608952299320310759175476094552586125174210844944962354373332387224342468407260302721416177678698006221614530920250714473801958257622331678187805963129611985214736623338815060218346638315199218498706684201253854450104279753312070932861257670337009246956207276523777609453923762011611123816599027821946807076719745129041723678751484678994671761638872739213914698485590631278295692647077781996164954491545542689287697322251809628115409977895271379754045088801344927971848334433877753271044200119984173224997400067587258170254015285085046515743941847174223691560590599416207423291210629676387592224970310678786693698905284418653128985186912383542268058204409352411166598912464399043683568259906271763646010127443827168782944982034390387270157752007862921609523502704333393492241653688596936377069313248969808343860532976937850748078242950932757103981736655756786156154102717132533098688697173969845093637157364379612646060297331661883336550787051809107781526021436694552298575601031980999996488414182336673507836217352351747535847731359086150286018576783350419116839096587963698177034661132262636387394047879521107772727734569567418662081132603446245324822574589398833736383999173873475669543908482204078846984723751984369555977758248769376570442683459041606914840678095878232319809442407444339374804474616790200570492850431279988108762176204847753611315639747331610503644872945653860512077822766959276050812935704776406591485875265141354917775898775500242744176089839121797497605404068222731438219867574617336609575763312846894106627062194163964839310167490214919452677612914208281439010842799000278930965387663976878641618635484281569335256594477207431152234408584716693320960883170124817317417791048283493937058156582638496776167513837702146089065997756126560600037192560285130986177057324729100516282845993866305243537023398380444017712099659789231848490260720128038591163366067879323444287408039922784154218623814355394411540595149102874583371380302436088312771454599211109670176202793641550784757534587682503137602398505866576450536400540341682397442619739945111626664202057731680452668793402866655090758090097015411826534883413787803006970237971126208053723926278746911030249757766514711723124706844910985779690255841925729930714979405269252520157390710274925321980606673407302212846762213335473514980428152221980698921793025493934570710336602747294272917794016953746192799169363045390644090860407750513857276019149321391895140927251559378075829976519536995116136582690785096292975470764657461047889990785773470799983595771833822141999804753453909509041610073713899268458756415080412150881389074492451722255117796407012722469479346587786905875164267656372820485869088549356524063319323017482996020880574845625864590925835156855754363004188756980277615941410635018239875481248139205774059006272291093451664508763759828308239320730548112116306296630140805595517441489384799981733115843398783192983274970322468403109780113838550195543455891662223232889171625332857673044880966198285630626019931663924641510930936135480354049256344621632593906051021835865104070480764627530877316917737987399923232690461500047666866372567412615236874450007156205964758609409416451303573979651609995414598175993242293916949950818598957462448691488704130750350809995644342497531501156721860848839112374229406772345495199307814005496576815286768060347966297138043149181651228409901125904967852597166181441547309243618332654229623424289384504594731373424680780913084858404645136450402994215897773835199462926752750024854698186323348879840009394904063786325224264769230591826502131110970324263049634084216187072577986575390084578547510572436740800986823251539495969374714737283113727944495391404180728350438476586643937903314917828250539810956138003481658219091845431174066679943878420561940211089165063897719136289117207004629670524319976057692388890118496935103738402190444987275551492886337338682141633826639629776473867124493042725736441421539708121115494029665278242355704741646832508823163733848042710215848590671987993148712521765271954307290427644539024424517332317713190459488539842038989339804628623404275059903928572039409612406054103672402127189287850817709065718119230156526554983894689174201681374000026139532141988061928923681814971463194015951697575624521214304616969017639288285455357224382921088515877185116333760739544156105893707126907097206142239712187615656823885235413651139642364927498405648011018295407192970662482287941508703554138312787246671175322823848616426274050664224311411558454787540879704822226194348609267747634007535604663806986281888039861672392212810979514974351139442398742989631487936928790898347867215176647686177191897911355276453938986577858060040254082305473392321684658274170099887297727895723916748811618002663413288969714238375899689544417561803840768554590904725844001755195854874389477991858606911003288999759226435939547412771678045348137855190990816093497379641367410026176994529020382982619552229518851839111181866140510706104467761828422439670536754828754902162562825288069222411535789069034007375069731279840821910377481984022175609211301746756312775919378956790175875743071149699273595169334901987481958842305541949405231564903227437871200748580564146980452987210475495687657766157140665856461107198653755869666740490084716093695567610108303310038556948914845764781747867860043619933501670068975461781922639726211031650653481232489323667769493997056536282061662950947397334491195475346667839135947102150354907619320687710184016817278820919431449442326267919111462478224851856959958052859056515977385111485336621894679757317954766188441568807382595638205869508711502544586269069708946204478716075526340841648670162018673970204269894272368286086200192666498624095824264131813889942471343262033489771294821113873642307819342458545757637857201081274452892899282715657001439117279862277032267262135467667459221890285821905914779802416315592682599090257872882870582880001074158048975702612220200680927730434801056377299535069391584159881858657212273995985430609794361249055706621203435426848800416721031335543197059793951626336721154463232726992274345055136766170276639316549815076559750741974525967565644974635979748871199186968689923658191981232170561212998601044407744194097549696056744148659780845601310437646167769716706122233001994789442633760961056227016943207248788681508917203446118597371343043547101108059692016476824197684315783252276894480643939999429246733970207458165679263161544187232481621793797542497640062526875026107287028531957872069072840318467766980344918343827929209689353603508630919733664146629309354828574538118939524803234386029729042744778125328961269199274085514809735502593253889604647122347222899108977263861582467761431541745896787713350873745809162242145388469740889591690868818679994070510825423193442505141933205608342992590805434294746587767381255955426882154073458799347080491384376122598215046240171456703256403691712708055287802500996194341394238015882536848774513746986873864787395165539168986512935414075522973510064107720367371116066114248608594797017027246640045724252140344860917990820973265525504939636787543326280602924486194423863445939236201888430976411820715544094629446661584447859460563165827597150384920922888845445329996679092329394591077117439904883114871517997306631948783407229752945176402719551578356188353885112221981865321573300129963250899010431615399461646622215500230745337812983224170456669387447559771208758771178940346578812681449913404277015365043512539583245461824993817899678123229900640650246600308935848723894687794617575800383698150903764889673588738833921879614642269096164646698702229322528264892032265748536027366310814970451607789560159937288309804112584519864559361457386235219744717818019076799402786728728395307373534215322378407804207028131568740715351432096033684070242525831994591777193030314584278389491833937776392581936698944346162050894288816253528630168072693790820495892284203074427648557370856591124127693483483709646180413414821365831608400197093951598559208536981225877887673881606668685758197068010369547029297683032272030317035237296247021307315197252416641517164380016564722992112347185634820724252250048085978310150460410434401001838888269518473715530470307168881473564620572450804136019413475634310145399970309593155824750220162912513703363085821388303818025570279061924853611421845336958161562669770329681635939834325723086170815085404646993516518713869734138573289503006196231577496262271409901242885904014874995032924346457828806201304943680925022439175160124315399972061644027077121962271351606997780423985348728426168740548064223269053734094179723560996945409993666535312600066287928286134085467962703577388398957683857216416129475155773398772235206183123358170962325892084734652163050815290423045203800189723889648803494472203612483226631702062940257129835680799095257581875536711310667628871578020890900638818593022559798331906035272476811334723461896640543420380925719081704926588608611356774272726172973600915189246218614872442706647169367979569048041206435436193551892538431324760638637623008796601249525949973318174309089563350193880438830966269197334501835355421733772255515007686799858394093483705571263785227080860019367346453979502720122866092047552477735579774177037198025855928813424412134236314917363352642134236009967027548650817301186126183859505611250641615465071652063394214008666036111858283294308446944091315418707651307012203005516672120817246088538478628184517262319698497305489417178449487449988379206595288892310329347018854696883770557722495981645356302067774669250503457010041235283895558790322643919360872349097020739037858708843784031372713864620897511833806477482492100397709526805147693050571795513172558140108521619889715272964303935275404084271984537086908326196996515755833903831565325192932739061510803650931918606139668949752357013290843156060262226536531743277984164215813644066276786082410724542878728035907484066797749479747966118190282169779252560917205507276539772183872419231039877429906966422113750026333111998533039238175895979762152062654482088051050900829519568119346989104639134386579037506296080796166024462985456007014059660508055041251836621269339820994232220303161120430500778579926862713203581975368007930106654049443424902659669225459420400477310528613862821061176590687023736487756275907570057451855239377175144564491005665458446598707261522723440055062403233916246916391332947961703326881049145508018545079022002252559966733182317468996532482746443329206667086169480333600805102280957500696361105601997812930299399902284859848130393589163068271230939633791453238168823859210453669524059285508198039579612856482001426181437207736862486207488314398632076944219256367762990737773464330356495688353179679190983535476933424140126160590985436365214452600356694300758208043659125377377365550736112783809974363237502851053137524583733094449685806375398052048753195539522888912162948993861757017593365079638314915544218751661346092714325855114835434092105399019496830606627979980460565592350630367994200476920618117834844493896030682284223919005102770473975033338141412769816706102031099794932775899409474608324793713348194542491332920676125039525173132765474809034087228012291443858108660740233638681259637985378444047000607197172619178172382644793421993976442857994252329015630187900765956039338893506427983384663082782263649002735270719232287394759720995167607499659161610691603612977400033399234632248536457404882324893897422349877605647184139398382688781971265156622116685523427211972274319772473720975573229646222250326402652572573729737504226689468423890551372208820824751518806809614605994268275724463802981817619948357932629771002421877779832351480701794144305422934132958968801059007794005717084242638408662189406968192985528842191205627952974326781676672928188595720839095321109722530644165170739545982746689694206458255380070775773764963837468491416762407757154733050556611224511982525223155961352862305071818526176863903132903007085733373328619681385411261785501399497842514273510859931299992258956166164061505501788251181037028219869021948950122188161222936106052976320594967830741769172714992832770932746822024622119476598068013174331943644381669527124570229175410330230383050935844413347533848129610796083727602478056114968925585952926254145004495604271108216769729605518992738742485988627328333812494044576860809704693821810550682706652042399601528549862712843104641537314307232055062332475327421082870562669372763330776802434947097374388641017660120144498214267400666047618738779139086623545737470195014886432666722110265302077283561575503849199165684494359576561315308777016955633307939416573353237132702358710372044106931770492752940588758631257804990074952924311459209689258468304370143914987784514403762773029602122187777131340604722947700798164407528023753132868979157148148743458865459886685983351072173404626652485052943969960594741626581354964699052115660079024602400911628818068322646228350004748054832822874702186991425850474458533911074207490582105842160451200446381957999711634367389393692238077961786130481554235503630097732954462093539995243049598253361855815714405569475578110790990913495127532461356579017631512700849727099014651978329303150942049097576194708942428583390313794804117500697677358501468668531911364426235557690498387345808947626014643661222043327396543661037217839601034127560188211479414794475610182365110528230593196156894368505715585129111348841803230369615588423647634041507512059756705106800460027783361916769333318864033260702754423859619840494737229162917085122481188206325571806488943542810109641661980656044938008301931776869703056699550657784533973382045864420479441830504796526439467017438012005387961738486576739268307443644498733962904221136483731351029863547860663935418165535456530262690918436907180891965469242580587802129158597134296879476123073989550032122089649874521663625083463516484932767844944716797040125461919455300557368635903021259437442540150577267960195792992676687133133613462190083994232356875876579830946409116459797678547377249967802562677040566750160105741941312681005178977913519574804631580725389169606802618002961834386378396486918624275701314584076596755712750584613935301645015118335262015894510124244301770415577059239241770804109170258248463396797871763812881144597389527561675610196555369000800234443210759204327328902841251475866107707168202176172266350501287131017448215843310785655401770509545440501083438730653732771318752349217577204520613842160196101204309379099537992941505520943702375838475399688876025839880293733614359464057272390898950285944006068828509002004315086876947062360299346623261300636092266145864392909056093968550774236067140078021472181451902355350113406240997766928952965960566206659444607069853266827841438629438330866649569894803691640507810090155033859395443169037171433212793474093687895233958619925078652934809370510754260015326179853491737889264194474553381928918921917596118040340647220947297546866849158031166165705799508237968300637943577285032665422864826168815359962376134000156042044216530852588089744112836113160667921011655159224262424707990535795623629755910236137091788453144269221760285118441218667101975090396588501961188115204050628776261780345072656251439823109243460812627103816358178616950253281852068439575407419182751217236842851669282072550235369795155601119026010417433805105603883549416629986730146229384707868597110733724696986776703267978559492336785948675395572182121600858326477158106871033280237930977656370308653173953830048511412509024266894497457184213864660344676367609483068552672766212997242788015155114120217992436290912985338883089290848029080519818835384957584769402471658478908115976236827535625502173013616858614005990097794009379695433426955874238791459286161009597592836121847251020892121198899896973115377192068962454845202599451752350911095547930099727848285826764307447386586086541498458163403206079419998874290983452152070703174411362405122662307014770624378499260875482686995026910965069403524018462261331612642606105472035981822885494036690665130901414860355330212175727361940488225071033266117290485821152124417287763523080249745099660601006061290354033790549739268299275536956826562339905841600612673449013512912227588484226795373595621526824906011339328041970424918573449279968301901837711073474451459449316114167647484230563154182845799431697292476872054426705221445666223566526313132403038690898481975257864421119978011123024521472508940000928720190456513429799058590723259740756696796340684409280143995301132422865483389992743489515406089540704364092161381482633892432693819134908593143881384893960559043852876855185689544955969257918964184467458928683673270486479404479041821341279878933754594054291444400066544915210556416824714810335708532374506307720451807376381946767392000641710273703520064052284847152577600930046048564128690663559711155288827498825993880168752133944889779074651219507974905988631540309567877146437878860430213605629052007803607941346922026174131140374823366636416555158778684844627170549279550935123816785525120425884407966786355416678030246938728157776499304234370373764496956997080164398061945707621206808482384353154690086981608443154427868774089489747439510210539511014786233468500166924447416043377709461809996125063916284809508086339813043242559125121518324166186671475202320237007276797817024060714866548745594791712328728165593768839008947348546898056239435326472663653966950623155194491412074776339375944712325844961036786764757718461097583624809044960580818789443114579439294334000111712066716220672269765964594683231973348875083628224026658783843960032886508663794077071806229195738529856198598886301261654771038946648956820411220560617751321080332022788961739477478154544706528166307517536583889305809949666927612727251881182322686356242722287038264688343956906935436584439978525764798300596052310561515164845474728537552120351023679159957628592780656430049150750412105629397844239197735573478229977863076570973924076667585322476040147103476955002643368216266896059004254880287091092127533660961369225743229095858929113109804955218316843260040569122430789794431754812591878229638168835889735393462326441297406468506847196336622819167080994632249005700581963428838974038390130670800913350673344408833724825067462929108307906602030018074471417001570737131219097035305586765256338207146352281588414921873767536214393748070999007951752988905522404082600632320428427905297822905183037731160993038780526263172304139628203140517471462095884518836531013345711600902443826635228224819302496755830456403010933053212345662530359191524262488876529602062553372197491704158885167270378439314187820461020752526620538947084106469030571870218286278697231378654226193312792710546215898116386118176651157112694756929636492212972961732214523832640249249735208845970330578498154473754321901262543227611271396739340763888311054818992451384448854498031267605098539417656130664400456598438413589864918023441577742448348326052218512294819055930696956153139019508217185161309901572531219837731160571486266455214628080171439876534221478839561786706258976034017257452044858251339909847143497928870867983325807354187783223371844688080671901355202266977428668533993985009354284666553787954974356284844859828407358523300471409279730605734609292154062152594374999475079599207535490376616642358214794270882946074907513512827830380280840552657047014424185075065502763077602878093015224463911836036635152056542154735630068129857487833213089046455840983923190740957729053610878638404636737073951124735744972027414910578821339715727144967126685297902572896087438035876890456373842469512897366632653730690610049982652452243224927249493643794022449146596943275833645139161712284305667066298993612534510664238124770001251846688598135259975301444251836955811562642168193192709989396230276682207806065094871322920927557885940293283500359174166423353848739251399760937868766553165892408994058366440362812597151776385640602116616494109507597245523589193204506356171091399118566109517328663502599245363321138285870639355855945861352509377922771410148929552316448871394867583468887893860334826415744350881522679855031925656885927555505302907498872749458436937567603351628707313602083861388692490879444897349381099035184467484591658543364772024245369319003210407829311212630009068369823547847440004418848816564696693912648772278044239902134932286568917466331539435057857320655324864271430439562807247143049012260846378322532090778349570874718020739974830879537616721156621488980318044228168656099591908309240461401997037454909217228787040173562534620144895733746093831505695818915697073354426138799504142984391530082776649556059615237885566050948539703057921884035136371837039029143166769577238194567147333936498937955587286603666388957274410796301203672183862546951827136569976436187752023871713961535684406073720803334713725758670087997876999834545258810938527979454602621448254534960547868618699191659872622563079069182481864972368318305543797004299639368052681679935927926659083165419929256856938872783267435392904238470941991464221549702891288126903885684139511810807392073862063401366738170724085426082634608614113016102537609123617589250640019002675773631335555786865683696172919419811617867814152336508220869983469302924540203940034460906400466267851448352748372165776933813443990263312375991743461566127772579405581233186418380351668708644105010638024562589831543048436605285952915567843158632834676569106284635648609146572495345941092773011255146505904741962108319603096205763082719478581070828651037024333767025237153454303240095286835144702731692797313766400360464081989908048952472474465620624878992735944709284197306936652967892996850875083264263099313304067985678493158057567743657788529875857203903846419320984928106182470716028440539308460262826863868709555735335120723611977177841062481425441984729759386564565868157224565060556639155474720804371243505965593378192988107589985347630040684716044084409534491682903630663230881104722527888180844718017489316085442916736701982149241064023823083531010360480725579934535398089499682882964374962858129482089638681515114641137656359545146006213320070062907198744563576322256334518302478100517301065551809070026687363606552978140148832920936049909932534767478010988432416527086097831012553128579952432411551046523500245057879775780788912163896506888992143454167327034681900148988106373243831998855168082587236181055527280239527882938448115996869290146828480899992766893000518820621212550994076424311832049290385806153456160408580992819155285939936084864080661330361392589325055166803798358327473170283459894307234183135822939505917972803706025006271976188375846892016169164908700464828498268140062425577486823943022721227693717836290637431435137665603840437896172985295360276443975683517586196000995663505612360445285539241380021792031938268192932821490871996092571394119893855650603990831302573960367007677351747684344029106602958967821636811479075199850010895053072988818581705222210603455445965447967171305487551779281475204069136555430942314451681378263524585653689354976638702016104537707706432116507200157126971115552660094584512808637469404920093445725718480308350849134333214528066380299822027605879944088229063650522880228605128824181978646036073029924587383629915785766697344059186160795878635497469078964333656761417946996400954124682612770278199203907777612250104806728002769053724464681018927168291314140022344087282146602305028436695368219680607950648437109035807956897196483397653758135505234279463024790424576768411019977748456477400376840453316642118686738681207446636258964068943091184055949829262148855134465193522023623970001380146006620914825898363428682401811376839654535817554990328554134370951871530331432409862115185360333345308795111091112287579980283852264396926294876477461721319222167163015465442131116613248868175835525226062831208538329197360536795782084112607661449886485033352792664131712011363612946421808790935069511665709451013890063140278462878350090863104092805295800503677782814142249352061673872520319407874578850480310821721668465670860420828550741596234723410475929116728733805059385937286041486063722784532531750604200212700469606456321761080218420960418643009887416133289246611435344631220321864648282409087113957837269440322000432713127423906110947167064369103963507370476748732813976781560414832589608606046761505985118198115755552949985499855428103111115874768835982417624125644851462740154027591821721715899476284271385659015441778625931079328422367019161773557047431930477897545611355972263221428020760378339959046783866808392476374973801038045708224352244256283776220423145116704256824703509365084790553147500290874211521062755179615930999114813971337823172594616463600744929140924286716038111850993749126954333772202285522182904282647583810413023172090717222863651595356563077515502013703404112669195045606099191668109121569206458427802299172943707337315187309618315129533675528220264389403709010250072593455648362463221128051127055188441026043608971837160399550850230644325917322268383833719935482023490125450460931886900844716575040265587670756064202758388833641866435774596251821767494558513404563432079736489717811531845757008397181910947459945809456867307380752585977016321186469865321827596169782075019362106113312069991390033596419285020992131067646023836442288279913947725331628697209276849770472429206810837297959150775550029277827982524155444044768137441778829250156571584455281300159335336212182969435231559724794125479641997100759341557931243734804879765154289130633094083214980884996053676012213442901158332788135123860464633885278016720745202983233322183261159358006445385945783816828415451423820638679909704212647154480963838574093233773544486627329712175365557913342575403228247214588641254778681822096319377725404890552462788045669176864178285205295996553830273623674297462674749543241682989891665323764905582667273936285767757961477118391147655442692922376701262059303834048752871740427208755236926373469630374130168716226067641195028824004937374462438342303051626194397995307239260492288994647863785212588618113186016417877584161567818164003952276367629657853558341690529999756175892889286848654298145830631934347895619223894384595918407414563532197032904976351372463927043651181255299003898054383018777408315624191458053060799955279807676493668762078281618885021406319983685176592508580553474716070711122664556598643146088450787913953680859573292969583991437099641170375808046999079289276479607573881692029210661294067701308332191076570597828250705888088318885444191998668077398526461451079590079923148047537260388654863166528563422801345249049319458142398074511403021975031537399455227403807315963826789011193714318278641878004270991358434264403785045934346715213946497520941975413191652541136389504515239452530172372776138309933932423049697625506919461144060110959152876984667789221856334295160608562846449221479197889612622134679223095316534896550209593529552611156222770930093769291924614604278390951699652271272579667861884516327972775565389938789960351475515827963168190072217051027182948007271589848444198069560077907032513799541887578074603420941077828891807015729184745811124896231439574943918489099285647563813288597676994587608337347309067711959258422369476513174586938772410316775913425344720244933113484094061388325623904156266438641552341429989788830615206366212636418884408626094278636351796363696227960286349768935382147469199507017260707454785040485574985197398744000634304915254936349628352681485887177890138528481761438066669557007745594554959209719403500979421480553954154344407777347987416477858559405891424854508057585213116794077277087952721533997477125219076143098216216287498011703916301125791825964934068344400462987031141014737401376914244548579924038402106797669509700789658108228457858459773989781844952902762386535640345728934933348215408842379256742744291157994199693908354521998985893515095516247876507233410024060456259971403152681897157050350641003562346233271915682889184581465242597494425907225082887730083475788498453525603528501644332155917678355189738981218824029687590799571934159535996735232208478762651089404174923952111041251906318474786541544045942932870058931212220801385471470577150721528802935557517613000656227757567903668345127818891146725828478713651336920955465835911095329427357387411234211479435873029175493034842890146085006596122412235318608245361209327843088147541087957334758204432011428372208093138020792593759431409310009089311895147711166865858038623014033118326940732070808676340951479014684324154378682328600617722494412453869274102897585321584737630150206976158802843467328421707673931575589359015161297433632415903167132887702543175691967828261001103388765173325116230998428788244506302268067093624179992501096182418891978329684521450010341332487166149405695035039809752766318208878053929941381542488570850789313634749089979567442060161136569174023497454422546871260851518345292411991434186993876725972990123075409131675877926963536235369745666569818644617668972990911397983676526896679334701057680491168513900123572038610122965231449917950281814423361078043330719031396502745682712722258574129119988956353351540866862977832060846086126335569616051004264725988642381108932215011357231882923962406056572537620729291333683850901213813621757020284878186311239008523374404948664200766729208171025235210706919702212525433917192540209320007807507283066293887624190841816665811851463099399062347080518296366449720550494245333863849993867478301515510876778767593745917426321468809626012871757107809687700040937912985922640127293219659172466244374908033544174851543552085896862924038704697247079655657296927775239010819269986431173269757322590044875577777351298860589005324774176293350584318148115393365902835741077058317945708512391676144664675970546623359414137955490834084182316740097841586596875887919182915523237246352857393122624610010777891174679756546445554030985041952900427074892152141571704870052134075729675213348680282321080174505354273611411059416343559679214341434219088973435828031983909492325740994883516587368368157196349909896492512308631946076028537347316860233527193348790216668036007070665456593178328075280229600903272224611308514854728019599728819113518540200340169045510565901122113055648002265239693885467682469820791559968594996749033661023715434113096405425106455148310214933136980863344032103685538043793862796570344764119830928665786666323675067060227287843278973271083758636587383993164727816436614479732456611501673574110414647033360639377532254313610007417996079821671971978499203370107113346810397628764738418957318758563236595180417106585065058789326503459785728478861895917831430021478576105733879602899398562623432911512746279546497257191879963542088220447490690505829167855349986701844357058164638150321315132895678130508081825374875314446107805710819449789202524299103154223326301932392856204856938748686972845083305752627870675328871038404944303997688042507238003942163509048027185673884815675851151558113903345758606093791728856328642439979020732510289902852414760454572281741256558932736492970141953474187522771911407484132269654698393013357326382740298010790098068267588174136320352643439081976494296144363151670027242133689280553008442369292404200454761443501757021168410942248971445660629894176813242155031664391548403945768677068141457975140460598171436348424970629947436478351101536439676633494057366476411290184635027995607315464897033841891187357862482918005702180528758227593982398841232528387299202873063991923329225713743781247705783591902132862533310005454680326153039176024112651106835199853476671283931633708218094065039890395032806692876248301950237659105850615490767757400095864700341501801423837712330298207080453871717074033393452319955375856703758289780110643215884356733316208155840964375118663092927676458513751821934250942073532042140647144301060461044972578005186548197527112527658114320294465653193617197072815794529784545922840086223199963452594570085288345386187506180652542214704992436908543706369127376911333817931011754071793618986354559635404581291939453542260406656635345937628265788657578218135271172136904597273498209684670761658995037564522580149262202057917390962217592518544747407591932252996281688191722291504519410047135647833091043168786358475846677569980918951582217667065477871914257385598193998530238958551114241663527190387291856564324625376649547932184756220028717226904150472118075295090481942522982238392500949129442354822774677862671484362648260962050111397938859023895296009917662327262544484823089972244074153908126570901082540049475916795272057888056619652550436005794581717017581327525335635133789226473969441283660139986238642378933048449438608960814721936057097579236264124037585298768869057763943194239079295858124131134225689517036324432565576706526771013276819787789400818266718824160112394784921642255988424639989202251659374533739182076528745660671995526662808871707939395258102828824749381257496087038425642701141688907574881079152781181851479474461336209854220746709267788931820524004818638412289355244821989989501207345717844535611683687249162038125497438737662610939912660249950629386796393271168594336445898880373711844484154476008931621516791525503343936359979857581570667027861503076937559824321652490747743334293805588228003959322731400256258568144988975149327646584775994866153796174355507012378819518240868350250389777502897604556810083970261743122117538619603255164947995033311596861624217492974819309412472456260841361535355373159757649635288625649711405761934646308524115848854849784446375760789027017659363444939107218538885700543440351182658262647555195682441426577019080570824153824217405340586375774643805856476244618026322768030694733637754874710280855429289683828563444508244841926073381937417810477347866052190923547523168126978359724111200731134389264630639950958916011729124854164361085711654173727179599600580756014212148508408812544453576186301058492287136691818986686498912893596256261756428379875729381838358690820787580467787917046046216203742354442048030827206707681653431678747458139131303670612600365608008138105188854167944860866513809372099381786040028598114641194720488729962431494288173331672042868778917351045455954433734544183524222086617641982497162929549368204261353045499298180802820915167330186178969888025389859619220887948252691479556579819386463158533160504073549671330574498183860018321983551271239191810390616290459462206196546514453938007374036257821358171731935880211987746350625456209071656743886819902073213350654092541118413240328446898694847430729497831240136545179752159177765027477414859894194241017406625470439933984991862742371046887877718338144420421696606956328115890968326697073331954843745632072906816141620716044442779492767787939720027027247521363771445733580141053241174129439459632028630910872362646825627688375240823818611301462005682184313926853219908252836819968218987902679856377416176983144206954124550003323258437502683786363060932259860469180912581528045386244250582431281529889518828008144300001370782994531364991308144120975535018058441664273946659608250259921566378837614803855311997049089609987346610514438848975490116779400762391105786170887440452961118055255212135497745569225899591125197658631002303893076398534685552285032497549781369186957370478776016590754342631514958900345310395745342602317655604401348812215618579551211593069183422934830033477659582446588313107511280208419117743639585853129994623907406687477254467614672242816545577202290916115913086008575316671090410021385133712477431772569314459621536812553676671842034126868612244614498428767010876532942400980810179594160370407521999502834022561854806661790284323814170579942903878696057571613521738330597464754123538511837234213512453284688257907651531849947363202201515887831829517884916584615714088615111284189157815129012685500899945836756147944950440999684363310337372231975001107003018293638050780939721813194459694272883529805594691752755008649968536062583485722244536080976127351917602254567841458273054118101465455104970566903839115017642183752284284778090691664004472195324533237201570337051079465973048223539679578585664486245083422433576667735269399546039787609717382003305135251468549418819835543665324631183366878004236702797027677989554985542754198413749074921293316500228895077952393568711766934055458958190874740199558563203583541618525721913636092844637922621210160434698502984721589168836556665435763190907887814684724614084249656410949297957892020069868781057042298047099305229660123261895487830988813259333025814039719568529235219610775294383523339670407718346649398568369960262370528385325450803654363950685480209499251629024542732397709961843747443312693616695888289877352092115174177540630671351574402025318811579171891828644128190866859153721467693110152102154738197914605247070625747172273807661451399064662549747395373794695038251342814469090268095911776485248709998662032224777165296993689822456277590454860586036285442143603607622838961003793725945596328870159060218992629240456631665915383510049224901480069007858647050810378448058250198565973078769889071324401437236982232778479895090119674972457830167213056857628398442824476542034609629310219560893259969716502248915252467458463680534874157296961520993336585422990401661924396469557871284378177425659495345569921555642285506050021927726978039328719642075425173867719239740151139578795271889754895562262706975275756663836005668982216572522255552097689456489427960689070494121899108985691043478313033750141407606755103681064585357723391731244592049490534828820126129890697328104979566546370668261585034031684399276994450796361564819640877755330572366015633838286867923090235919226190033720494950340253079531014192162267754006181397941300196073907034078290717208128733065720548581369939746482290075685294729289989807080024231625308773920397448671746332578592432294964754878080272818465898056180399418643425143438371831712915849446314543536271781101811497239299839839774981604066635659454803324401962521958354064871929655478247788197101852096468983951925804182136124882292843283591450864126038151976733293121983283966140300376469603922022648027698666119476613713423980074855414719461158137127127926531685883403831225898756856510935087019248769512371595688430755074474123773505034919668980817848130506337026760697161149194941561752917428844100072938320869467140113580150204940681842686589727435161197823582188923144941641479237363795824954778006735314143941225819675667071109903926930737950756154725386647426907215608157024428394189539546418286549157440962703776084520165767420624712509675976142868094086248545831562462465493690217269756399358443949713496534049421141543126504981241072797665486674004774942489397219335324586278095116462770680451166945331475784487820981102620517546606158488887367763542667296552105553686659057100010635591087506456284974692238350726915246703422661192124165203410491463185786879910366477959873630889707110466651408064512993156702315879682961182541790491096110566141978380778067678229834029837659340245306127947271569630746332353323324421338310762371450809824394605942078536289883683685632614043297685982957416283249993523583892499392248281831114002801821963992468564989025754203509332509466644619514564303304219833825765316813102012087528881193192513249510984613092773425800845427924925958806780027691379302724023268348294197292354434729129606703320504652658935773947131003395238218719723957025821913030480723381125726654886885276083667486291852703714082944697772722041263127361656337537059385061082302264621352361988182010773284575271664397838666196193423860438683770574333367906094663167616805158533168990245676691550543610500613016417271867521367572198111131140308292105288518827927139883495574585832366121816870926659306075615995882590969723578375651880989612102978525308270260293784788471383076542152241563003603198968690469078789117012048441759979414247404136172298403906730897707016793405237986970095473934479725206138532480826071735703764390911918033148560486052709663514661926559757185550468500523770558162834094094707297920726978707601348216295950858395146389931254376017948675100833262136251349974605817426863160527585206813803434322646096557130626962652964033370033475348504831309801163869635162389543312965891527294989423111625929499931046554893943741223478013555039411618441343996214295900184552276884777274219256278926904510149919697050058289557545117728122763884769717752804165814348317571753116542396432356960921283841575928154961797510534933999149990148863971524605883428252476517125794171081096681795791756269308045927415749901756584515455594545422669980519689032241145092598823856318294890721616722038989914957018980545923445868799207870218960702449355760719030519252550585075018152909556001077686428212338023490400946837020936947745412606736579483565567020786728526044553088731135075712901794174783375122513734638870815849072806286858571845358185975401544061958264595743923922182289089352001813246749305169690361990408555713818871904677766588306387715766179092514736168837375510913638385460064052328877627531516691967497703550218708579539226183929910569456802069752172985487697633559778962024629023603847973486404947885810806695691633998105497486778934901780138851196119188298209930050798716548002228341328662510150557330716315727448146314334142679833662031572804655983489288897747874408620700475618900898275646388612846488209784366627823820848980258231015849774211088677819482683685922092142585332141333116956948934023216179640613831809711979089629685506280232610938364229902103992991053177173368801264458280563035805289168761648449422909742721130011151623712380107425369884881400085248306768755825731811996646961363883233229874405545364226963526738938707952746995195013712329253236921224718036922046757020719489064962200374152890816517199134531458185288939936481455481115038826362648439483014297627941509510022013513609242554913677019306056586166405491772384186607420443363098543289187879960076070666055700750433270902077794171895402526342641733912199847875643751033185394034695591050111260308008031704263473671487110585175643377634360201908976549596382193153218345056926369344609020552139212330409256930649072209184438014612022084214855958398801935789042267130684381489723232729976921483611462542844105750234628872727372719211978317618663115901007768993848207703090590713837561454518299849304656268912305585241279240393886029601268392877708999390687541943101905529852630034558749482295729585245883264156593338531513671279896360955898750086916456775277587553676059330531281299908656790025134240893170493761393307899015606599656385511139249396379091495736800238356711936229774265709579290229819968768558784546406266730528835670797085513190739881682736380873729930161091230657550758222059442769594846764355088693535049039825259210983668410184356619291325761868015690538727485259976458560143570915657162526877057104782553004947474937546674401902343908592110932385425733096529118239804762284017158550966415300644618235120602200722762191856817999736635520342085509058371120246897803822592725235835630595762854843721791643520332786709915183798700840680034033549454797273570120205437759803528818053763906109286615614136396100763574436643713179377737566563756604968003009369410915720428205716960504758885101635037527825191411480634647590115386029911950906881038575018657960323835553818874146225866964110394165480704689039623931332357385649141938633157966243134090221636431874384892726029521680656263764536521201995142302012377139672839472702203436225761545765010820066344309967450172286851408849594632747757365403572428517743783933422199177013087506428259481398906639345896187438893687006904390708287856688016497654320052151831909781671548069898121016248901539678336008442517157506769413626631950267173797222578713800240001505538205133693917386930610276207789466138346844619329975492886403993225644105705217417926706120812497845067288863622591090578261394412668666365514835337234601619516159494759072049669224806237989653007665615544463366629343965770345908542510981740813061239441794143401981275691923230686222277372717933119631527816750486669107351814540409847504931855799275159530387396809274626084554638548885156136299177562825610681140775743849324360406992323736021342489096465979658793463139912200951043263693365599918923483301417186147534134487429986064069245149002020339949295747225160862798047998406227668656858776853955620313027086848644335697870231380577732583510308464445990866226584889202328261954533310163900339211635142744419757885970907390218302385684131319159242693326683864848511436906007605026206380846633803435248578892340326779858656860643418107399074909148494450115922260413404288963271637224673952918462917949807019120288345776085133107572907162279532322430178002974660907970612929351966480100883652632087669639872578029241764931802830143726210786879844210365924275120820522811328121867312869956684706703335223476646395116222994229747382268055545302169553220363463026638530372661926013787355029035858692909735267325670628621034295754058790289573106966035090146136750911794224529645239775080619543974324689400829011306590577195769690657933921812159532928111734651357330992046871224384735007109690626118516993678243456076650617973631966411969453143375257174027690624498576902801854414669137645407692442841079660729105488344479243446212270041461864138123384877616193056327027481662850254510216694789991602477796424387762322818021256981259751565349035323832008642137772374609603562110340133371924710347897637876169398092748099234165767770157817144538483266189308410647599658038550203058978765917416535709072749914506165626749855408023111319548546315232571101680848414159171312618974929526593645104104584719437331062438633035496359512114848906705276516450429486530768858154278198662617536807041402947362851346140699813966077363765490340261177752407377434346533342259422294274151403504567132720016628344673234796035883896709811537376416594770131109054192237712404853051158568123562598856888153465814495973526256293035509765134473193541055478536111982896231296233948437866160328225771194862951255721768841312817098971862138068284353571990796475066421858367386486939893059207226084019472384636005932870887089104860337907590058117917882372428851846502355652919205260930881119421036591645659308828889306523905919534566467161270467855847946447515053408104410830938351429213981377197085266444642176953580768974194460694959207016473569672732108945543298594069295308446478281284611258913993317134308225020498285234896398170697373726478606483552777049630620221116234789914278971093810446618933799673493238913671434807811623766911323456196058505182791506391990544280129769618977880067048549797005351908161001338828733858268850011146324682454224659926389816409129977126443531581610000755036791697249597649971548462515259847243615572160313155074704427369543213285661014154857738944733074433864036354205864744516404423512275276278267566605584688159217313941024556964172793627201114603044916421607282734695641813059647240251909413012932668407870685855167275200269485831690821657338594069577374031252646702135528581486497362127666919472138566953349016479845382117544312515996503169797261163602021012287646809239642563852391612248688987706465786881110630695682020502873214978798612101275609032096005906256750636664477487918573688668690212122034414842706158171538219980754208610490339005844661372694035464692908132400329887855559764454831098565839730142475973275412080750786513488082456846031540570527512814145506595703125101066035883990802588480641687868612527641907045044738634586495968388353406527551795298614788768386343649186653942012065613140486854210539695901690491279319936609890918739455630456414097989567856707918808523541730432962419110447254965864478751168987247155206675206173793310346066975662854149456223848536167342286748043760042931109272300646440392954324480866861085095544213520131909447329920133342068522367081976139350350263095011529257542201438052055400844703819557422637056767135296259333572119287291783363381275941006408573512193170071803566623707299211987280277967196088524082223915263191263195439147931932618346729865795680647657946126837583214837813918410697158937651623537709590345206475584254850806556566116096505282521591271949907136197626591135816566861351152501875764345113351704925127779685320572447720554320901390756728780712639162451379105245891406401228675405688731858816104675486388658879855735721997833084935204836039240045727599350659880290524176801274423861551655193023831624273963768348533029093251794286309802702783997455970905150751375218105093065207450659060282362779024515779946038703147673900701696318502746038083250900849711645563514567053078796088203566803420638205634691120880631154101839025653013018960644899529606608403405279263010470461975277862577117013140965961225243511858680091738214441786106278542398321502330789859088857638991571916333359548482270486960421669138368868448135975454808185015734360422081706606494965264973454474054507985037909328695595028851466150229727265790391485465722230389759065591436741459193454177344571476142025380444383998220563220147140046357488898374972339945074706333773252676578699487586800583372877310263450675387395233347148972412828996834490539436682438796924138524329432379258656527995689931003352232146834365638694904023213598590326434369427993994559171998708736100860911111958798517984755711896060743768517162888078727222124531055814118550740851761657791749289390014157425621627234977010748004102893630138622101933318609079269551911239520430061712458150230786196876610941960307458464526939507233269941276173848213985920901833615330505631576225477731744386303243835454785115539075089244763638859513332932471841004509340462158038313358285438322449893305578470736451408241116579427028506884599514932745824692382527921230551701964286301122597081314357475332517600542376083156284857723265368020531611485173844626560295058418462831177486095194568411336912253834657468819044049193335102081441474255560909338295425807288936503273436922793404213663595073889779992083677233436015846675007824662992064194021939786561959756487799980271304681701329481280674334084349121004404265347684463544281025573907347097574960080485336641696002365501478104228119922653927428687877151137689865183251303954431467840825266524099236664562304797225316881983546033738176406946496608693243776612850225746405065164332841792901842425150409844589408290012921879045651920143075049020262659743515421332675631541721622125838069739718215307044303818702971638402777208368257678817901813378466411322482106979764126033182840746131807503842151123406193489821960568279027751136312843558982573052456516963505631184837098903299463312486280620938601365132426867729714581779939262571273533811904241562404947439316171285363089758153408805704089095858456621919178488709181834635177295069091695688987074474794443629347815161015765147395559413872953679560221795020385146040354510213598465463963025650845359913466217626414270652381116281942960340066546465736663155855758883575917103088453268673753553339217636265835217757138296853237814475089111028209497886292581858909255968704615985129604998141418565389553548143874040177105756296960651046435224690597866768696866136449774191294232698155946383373204053799661685197048750401386007979065882394107335818787053321785713501245245167777510673024128386040479096877291475070255113813204105318235720603133541659165943891473286588611158010799748574403344666499512708452784991631084360381697670342878849711763634648767016305412199733508771542188708403851484708818309478937203713318181811183152773861704495331914235107143253656424030038680952156271249005675544630506027799173341195049984925558890039437822197709409679907548736342323002478510233614638929098766046497467534265996327274570313224462636887717888280760993188783405389675795586340787357869545556252822142117851523112915853128729789478301078746153003765832111151936462595018958582580267096817825063014155991427387316696354355539750035927939466451470080268877244032632015168823792201223416738595039253117804490508643491435258230908851872887330287018588210280827390054820460850171317547618076881412165149016497463191452193968221099078044109273139458173939377633345856334472364317059353731688232031074353320017128599099457595523224096432752088603517591684105979628103909270523181306022937388590554065189836195995971195443845581432095055453472520516773479081069333958316682161776827188313183828925143844174912485281937987844203878572161170199641557894465013385140265895849125887249988930484898338445628251720575121000163758142299445175954381588538808608193851372503027808843692893016302284829500549246330211232014132799587085325624522244389172899713197260396490189653138685245438219934657084449924701235308688316961565959802284961028028113018911070555467945259782556322021582355554839397847285454378173765191688908435516175436387662488347887481229171096650521865430797763332167247424554448210054674554148465560140162294559415519584621969867437301410319573139823463585218310341939874339605899412267365889444498724553922115738106991271093155146591574825073666568965895256856617680544608346659987124530037944389397327081728205944074125977553600842064264812363042709197560710998661080599372450429152680914753985587502035919636608869504900242550496805510791569107819706414743806787114299241703750121937777371391639573524520475922396609999130207233881551606497800863067907558392570680325483246319040193171722110327745668384548526826435617746361398501388764583828671595713706093781100530784730613609607178838087684164415622240267921017557300477242514979370438069340727506201401428924213326215813816039290698601150886447597389084249451586749315301026754772831960899848672354038394214333282942435097469460413145965596286660767374016659599818721151259277758340830384702794795950185526884263306447991727043793834043546450836185679279120326813856592484164543347697378694102336747863679019736780698965995579993629031469227119812746755591071686305521675689084736746981123149130104575095111034517528234896262738078934900929797736774721164658891867860233633774610426656004134285828871595538170330549233884559710623785531645680655805574962225596181670493131441943277648596229319399760476971903666891328915813322912020629350855587351983760152964147008954078218118729980164179483185260975897381602863125114005049560468126486659479851472553613897430536448459711564380091801462701371304991320131509882163259562659520001719353917035905888516007200071591838597343472010290227846343399314445086947154952593242975244927664856419266542668054202066279049321914677916700119885847916176317164544663147549061234957619763166244874591852746731461018707902763688261983285771627784062513312502561403183467261146948805292070253430277962956877928516493317788279277307055845015662711514760339066929392206305812516503786756419096161543946908726450070394913604751583428533741275494943940491157033191004928977800359590120545623481938585093926493636171854706013696290751448750265346630668955909907592295877925129819198838473084866979565455883178956437062762481937354813447912315651888269757463709797472825278048897858063735401811995896665566582447980343275871475776837048430557275815720896564018529605149458593547609914426858287129861940219371340488414821525778600168744075072429299969851597356747358272908580809556568310846774121078637414410026783198475337457315239834976827247527213338924160069715366962012240531887126918482464640804924787782378344463530546529750163420694335332032035797693976675095118082950486939598004754380698110768046314223240502163110349834339753829595249806897988191113364625593425661743138606946670712223735803118090526465210753317763831482257589239541402096706970809440215873646745180224494894361773411053001269309859719239520251711949265157080236787000848025931406585704709973406835193914138519131045496418909342141975261972369506300290559492124596432386344689850212147677017845122981878156771998786485316980853792638565519805547425991953596450836575432799194510975338176807101326662919125487566053374651203902536251878396090074937825742211859984044043186153072069997123113131934252848159954760838607551057271022290612810753904729840471044353513409086974765818236961866726650611681552427167762703938034543605745560824635189702617468935720744904813931148295490729288165592405406530797835088786439382348502216528951804079410988052868794334996972145745499481670315013076750139411722711253747275138782438842589959709190886123786262485774684248454926618086758347996347300647292347279622049305705205188615824215336088001269057513714403358716155446000635249737588081862464912405025668853919704432493300862420803655756197832955537577594483854093332091572471682190612538531672101053288694643120567428399993325923913437328663183954585703051438818546997891272290503209096811449589236300208174214744097991543431182660947525640952290425743566199972991927252843616999407580957483202769796004708038322466640693911808831520644306458886412120657359504657478541342473996765577203782174335680274775776870245344849565086497885232256936873259413564643404328321083416775134533825666779377261363466418408568524869767617191890942960833073782667328085976786771463851845204205289321831869228757714206478929174092062610407638660207663050336567534363226904364427303456818702986509254537822530300676866030699629742934059049892762139523185757700494445970286268165875976855628760574151843234521727908524830593610677739581546933954927826625641655631548714946101456175033191984423394586208269368481130494792378628404728291471703392314303304639114487753456881637950311406230716600302581149946867338897224892334390667708869937976178495090652501076015030484616712584940434638742506825717424653778122041619143899848873538243180091104284934570275313015382480800057949596540954684863728013501884545763173436108423394125469527919289524106577894965119609838381397778082742320481980069985398386504360199213745681266751512657287700668258242812137772453029719754328837621642091900321241937767367377303889059036506375103287494014729395301434132772979965199442012547612277125648509609312841215839539150958030748552357930659392431621893886577141345602506716389826150372738201519101777275966437594687250837850557984444474919836356994076873975844043455128968998175621680345299188680244031848459840916817103799338061016698161041307068500383181651042794596677051267924590846529214274155108885551777717957769060408113516002456317181856996353852924169890853031369300963339223260549903214134807809339620160776290858960311153947328248221361064244510893888933172778002405810642799224920737212230990672660808804726311272624447287721987130237406163636544536367920520001192596820667560395241760595015462257693172169268162565254482155147038580040679135813305818621038884731277488308037350924445209588118216505029456063497392630671477156900230975629178506218980722845968396315037314747500855920542937222279548937209758430879166121731023891654788688439423804860890769194462294496544478993704276317738265597313748920453480217087467400176144122826671146663894882027597149448255079513820126055584661481549732117645287623789165707835164229817659796979576601159735715458378645632479762550634682095390501598892816460619114821750108643992167938822305627313977065284570204849774761656193397069146662575882295695457737323201362897979507017664679901325023878111945429322320989839529024267873087050615642738455247153809516949219025771172542599197630228639432357586573194166042937768727376094636697749397222018668816763952686108067900957698836692761628365294761134037551809083275888578876087965262885972307014648547696254221574480481799369020591553321492436585326736982587569913598168700422982254068182920511122647614339452442310623053593051469497514051670402945921535377936459697667206270926959126574467477377265583589172737303987006093527037282509675831377603747621210562902701464150758820979512526249357123184125338216278307483207328748094928013398439318162431980555388306105594193625145482478524050267975607544820434631174664505720359844545798776211379836224967031983831927042072374309880000053364857188360821129868586326645918672012187073764299244176599724078281995205387893154140229218099786234068955642746472180535870718118197241011290758131541289213779398564760738081075327311748580839642090751853669594611431959701556352287455525158268326634236265674624285049593603783826176617197894708438204139170292807871056279270153984397092597972937183459567985357305347007188817026494399629176628282298857950051747006868524804958513441374680659905506704524665788135144002685905449290920455423908260107461202584322902325127713865011269122770578944676277856670378001203577537362783286151422987149973059045037958210712758821504192896290987336193473387583172059271759142508382512814178597656859340388351825520681029516625383870643326946641209395012847051256999506133076277825971113623012290338710770751293698087593451459861824241582842599580367815165638086760692941498862071902871054316416487744039571509649321177512513701368042499521957671958202721087075873467563937711030253167014912375534261390128134523963593113504583455134116546668932952206877451753659919001607168535364504373621543888441695084691441377101934681101522695801513406960527000197831625104350172022842846172197102192514837164902653261937370812102205880088977884269974424494292260450243726577769406351535070482738456861674967569394275236404775254933729202229142678929752255636574663924581677073639995240455221980766873273106077205714825373786388712553343263966511026676935012073886747769451396212047413092601259870018214530703226082643598860801902469184531455007843856571046169596959183038240396593835962222611431502851760042071384602391214764728359813910568595774093294889879068725788920921526084422514204341376674605651537075768904343693588048053053099873072690202204012622729359904564013628877974435673227961113254443652101102177047238666205319902117327450270861932736987806795714812764367419007607740166261180915837091790961249457334772446814690803684023930894058373274934217019364874000807197199207015111668605320157121690626121825728721852562021192017649000083187110978070009526103417430841924366534746425935553661709096248574565995524739243582811664154504000549474904692663866442627205410743218739879372836715421083311004302825294269802020488395198869795971436752447020601911484715319685391862554433044157945763392533080102221862681791354245742746575398628367036213159498059815481251519958418350392067366485950939637273186874162068108163523683952325819963306195762464973151274174415942458560519970988435463949197331416788282600742529660574330899097415349609349984308302076155687048183290806566081431403964612411633405117710760823298133768129028419533222234816163959048968440107909098759842361477338375515970542827216136780331532939215844045222319125216812074415093281830014405941329165702744942012776870461360458802249587957618877654919988867080778935472806684708411246558175477865960022508306794760842748994579188291642534325004781228734589819504330035117484572802388932050090912046409011505145780529875488340425959460789452692104481693372929222665351162636295166377051822922749921808635955297222022824035693120423665217308494625582475074690915392262403385871019655424927340660482433958413052925228719220568700531016605360568963969785191846177961806488360329238633761349388060732160773251598128468830533223472953782131834438256444545780141244317509409770265193705549177539197946651785503023368591450739812645122776908165698099525732634880701502099533369037925132600605004034218451295706386314322679864954347895727249623773531005073063162825884402893736660189063927106542092172894014868368843712508118564139963747394087752233114394192727723167650574118511892040747845388556367530304389504242838841156048984633555667860446614063319710456290069591879753295268671986818136814482624348881005499886374268330822574060820727013049682187416972258740137056454898392122820553739664766697770341046736097545688761297570298805355020341248674698928198454712203412185427486481518717872451781069624139903124498628628704012017305560217804421747027103906907160490511224492179008470278801570856138632910353771063175176477445172844115620131777400959503466069475135677734500293054793819828135118811282995962929942978137062897569517803571329992395029383333825212465493047314194160729885472570371640739574904646811556226608995036008478644108255927309608774994036267621787753839987400671109162201363324365097823712671581556012482160131136618204725402880673738642533359353844114611380335394565115593058012727202773450662081442576004299862171696225690600364963498540587899749093352286558420055468333119285350307790793114944313728812227325321807747179688427025709609945616912941186293948580882618282760313044584059693332925648171367080128277015327578982438597666865590904611774984097448222106155022204468920651200382713497189154103721979586935566931258485683152880989510247469058709052736520197621775617122127201107397962114300062619442507839998391517201477236754268383977259172293691264174817209889094401317466211110646945312675198407408985527592621969756530692426826829692223813289098048764395814985179250375537870313960274497713037553513080299193086103371325352535052369700634552761360820333726837666325466735378387594123075989231513219103677310728356094530698078131019725539250361123086641066594274449692704520408804891340973321800544255327466964043740627675140518568859417998756977059672969910701240416480458651418949314448142460553451873133779440437811604897515840738037129734707716626004135922114534349262239797062435771050781954951056942536166651996546902980769484765226720979047205978526686368180696161592995074355434538373846130740959359385485304463455742016295920618159440059363823502919567790796201639642836964261518911762659135293559454601953853202723584339858889521493655580257499003688347187791424961199309462462914440570998017918785610447850126723619641961878375426701733177327471859847880829223013137991407365923173622723081861231143682903512228054258526788639751773978359488562814325911418353472879088461005686028760520741062125797181047883123218770458985570485807719650971181079910308844251825132436374518459407467287204894315549348641841243964226038517377016742695848059851933252690989022825823673556064516783128581490244827910093659082868460810066798241100581604909272186637456561358375969006219344643232340469496099715611311221301675537236433114638277134877434418617344100768280582804499992076284154206072553548236681539741550288473952307469071930528328232555965480266601756944876316724345734636395808545652977108426627017131540269250305382514421860849425481312429291300304438819031855866577893251838528265697422456493919088518444353251489749652217351078562944709365420283234603337293517888244142315442867692254692903129581965466737150616136528063917083603006381998298661488743524114095968690879417853575975971368595548657970335607494711554136410171468440470475915058972779291539600416157987154022693440578459844797574287576170281058351861872205174925710632725176788529038179690081842898770021454696480069879344637190857854355367815465992291511405863290981142258208085140127086424316822827385895109307693465530910490379529587785583974113168725311874051228886837747094802067028613573278875302693143286599586546125774591093112292944078152923346697751473831215161217227573690846758953401166440955708161828188897388551337460205748692790455017471695602285744409852383021410092090288739847835079085336933598381487610827157058740908946207252198590761323142701661237367875789162983715100568914599572901974489543702263153739021293180582788768685116968164313236638718787755771028500009184477273029452742541840328267784033708505939121576077705402153162159949511301353914096571585762881986309901847300663352555811085854149170361575070216156076330472372380675349658530018778251499669789836453488079012600262255612221026555014219599084792500436198383802774980681761970804195220850292746923891552923214577901468667530940493217191055681214045000476440863030394286345549687174712225315380747685092051057518353543824328700586553648127878645632887070687563431568231925748302109855388539719182999426855656782961061771086456167964294908984327582244742009204417326491337837989521440298379000749792473233176792012251448449596100630026904645841170217751269257492616492824867590239876049662021196543837475563445548178034099511719441596775760681240415467216209375121056967032382171996128611823323511837294901144322482219054399336672157371054687912134500030467079749163505547986282495631719128557915380474666994970328107743031183613301432784921054072542948069723354410949582773118585467792330834720151005186433340315320151822265837693629238504364573652126399517265411019542845998452410862953676168832387843024380030007378764366247594068614853497233970383272445321210980749162484120852667728886819632993882383084887950606677182922328674215439765979172256124297760632767668265601705691790326523850801612979969191320465522367370171097780436235290556921987196977051416808270127383103545755790928466561298449425597107396176066033754485544994127609159635219042624571033416404420069051548356790654854943126194452908940254415287805103144491164454692477930275349061331521050512022819414506157464659200105339247563635415264373910740456434346625088008133055591805192838120199261402702048024731230215622204524591072224593386702619096777995185158091354832013166417193597438652476702253130858446682001396573305479856966701074604297870454766260730764026584577485718419180263551194009723891481450159515719665138251131885859122927676767113166328458032875008369004223494545043352867786737899363902173226072308381461811920795863314447227217648877491360592993305066683331217820060795187782313395355666081656444210120283545989632482255736078613758131020871123072838570486707155762372934674846349200202763657732246468086435512463242520018093919401829075522840846333609919315634764608887268566054645678197909460407032125114449250586955244153018245838890111117985627138903836010065348159916574401081221920075153754756046581621627767930538645304618488977134223976484681420280986557705562145247831755901566084400838875357662811059198480932590375376494539131604766307909817864916676844237416012217917414317148764239386835334510178652422306580845596729091029763161551885635607280197079919613048054945606471057072445826160285044650326704854905455894473884372634969000919854638657235106096860965284200635257862909930657237308403701951685077457824774235410401598028620161796141139392005493488225838123843008531597250260928813870145929352226792552590822303894403268526204127474641154056371996214269421911400797080526421549070301518483828301423946501255257678826844482819106287732014328848128713388329348923577281930083546379692179555371445550325038246796992836631991134215502074517920227375608286452679824367231513591584158364419824740950100492913013609330318921207472702722488851535502981706089310246926903984711226806930033666669584114533732596593027823620407702410795567458621769410311410298235216660941162020763015327890048091571434896956812382483657393613658963399106638590268539222489534094873852359640677539256621844921848237475862126721179216642429990680830749991362627532508542065260355559271143124854218222708064811593906297314429636984923991104880524760500842254189716669903018098320215524917074779880142052253978768543145457198425353499432287972733782023399665676916738760469862200444551154477851150585167838859200080601792413043004086111602214772593213626290815914961788950012431864442076664381155313560016825736320733714319292970500575560519884843037837420456515502405759512109788803595646065842252475521878821626924830618817152912173752402518146979973376227904030989180474402949846958185744608129794874172599257167884967634213140804466695870994409617146059344763556061326888832960730311979380838721829421202746779897688906041628397887798775035328540739541768604030478019243037645704164791027624900060075816733089030685351481510412390533875546610838160479495110501474548438419818559411962524084167736900297902105241388959101936382899583369222995422786852137076145626251493449487998116252018836653409085741063453986475058896019193345237569004464836396395592581896764166368197992266510008068432497396391439699581057217084403118536133440314258820144212150786128031547041964364840818270108799467729964967745768466815935337762720895521674529004670324612964553505192188371922085517068973348679925360204055302767258021693956185644951798859448888159841846028816828685672703409275538983690709548235839507724733337298782033906124343430250010297696780331192755095646002574757580161230422823644307966134908511171378686371492490137618946164057104398493519209276066520840599322138329827347956807083671548377012768945419380619844029751979654429011538681944288671068308148020597672659995042994850622584362053693658513857781444286011838278967225705157401961544654079276511047041439226349449661447224627310735802160982411758338668263825413263713248018122391254995700740913948308751247889548456686663137932396854451257445002284827951283890838126575409085944162562799448423844331848093016057595959537935490180052085137941199806690743779803594310118778581176947817412037740022519852938680413134189929280406269860646975376540123577182264420842026786958883689858625784767384046485775186139275567899369478839314800305600413689823114539539702923368524398520752252979765506123302486231228199546616111857444084471845375544900427136607574895477333386128041485861026607502193838726200110148837643268532399237459236971316992971322052473712207956838915378625520771192367751853143940884454255863188338738711317181518680934025719069612690243953286210634486036613271625024660523324012751059636367134155023732834384865729176770256724169639244517897125081904291897653157580244023679008917769345489434056773398169849211452769364426492461452668912842149154311670281203514358075270654205587344251085911743977876787852961744680148031940812459747559992158583343864543304046618650710043479322391877084879629525213735160630335636518542394433714513589896394139809838239942176744407856888260718961663987986535418723425874208694919464692613775568693547730134445523370120669578890274865882902171188198658615572586115504536153926336531832274473200022324940478102341276831952174967162081133995689433121611098229124365225098126547266845665476513228567393776144824135935066196323261444916181532181278404098414257688527970271142676412317671401454358250757871859732127607079787263935746634021175260863045599503537183515439692260445855769481830511447822565770831068943948884365311297401607530003614632370050594491791961591446447911145511740713075034043724020694437010054316450950533234068259263558465708612149442870377979341633890820411821741799536149978197124742441066982966347318297533284753845120712873340955161369780570828950252914886484865756228882444061686090548028205125795822912475829551777181702182577147652162263677400281051647109065540183817721775969310199762994622195516884410064930682514133026552019105756766502764218647740577369855785799393564378128642730081219322413750417047161997679586953549450598024537956782703978019668834870477552951715865743032665192816222454172753640878370757299514979632628415596675164448034393146223277365769470536450817289334338849637570484444360817526288820681363882992424967432213291106151383404624592411044747509434520740343763741768558936695568719798699955177904374876093545502879052503926387259510464894868350172602999758143653346419193933038127695458557586906430284210238526937343311648239695577672178648096781181839174849002625877102764791194501473831203756736642280151212271705870726461668144906555394732297834232997320331710101695419257501963116927595766484102872343507394595396643005944581934883273706388216838287999970679007889508562502585732209446651178008599742863796020464045948472604397641284942656634758985752800208895587745812666166632044199196445083686106859153512661225998327449254708365758598332967828590229219929302240487094477921063159437982286310616147181091519884270429758258283791165730831528700622665234627122689180616553272973157376462020111253415501929444175899810452766162296250085334177463961433597574974114146162215955596116079768473156435598258567339821495298170352447818842223280181197766202736296447495015887523883882469972733161651216074840138875340147734903472225579033511050414754657513277125988399734558356969088499103292203463347967496419090775902685662943047925904515670839084377099357835328680253537801279617811081986706108490555332957949586721619399586174109964103667555690187778025353078014488675085889212425291884268078585618308809645532084185213299248706095574514324567156372933171830996480113904152158551044164196801054805599425500876355591020267927779913522880490403497754803387462236742151651627497360353954350988592506547585343780617625581212468445547865570754473586246194213555240569310277981280093627996841597508808226836066948902655516741696888144188942344141025210440157579494428714169616969678651106556110507415011576436737308441215847136785015262732599965113108730553853230490105729459833996647356019124537306571273768225679818831887346080272352945011762571282457280307811629636308047387928040828717749886191883051344010976267252024102136489928308093928668477540052087010351460913348680128889269368045413625121385848024732485213102197207611386903080401473107912248373310274518375051289363055203535882493338310949800949669160513841285225359754383509928417899837048140437172678062558827311246148044962069041140787439821794381869974875837149619905930628129785314395486997088778982817237085562367231831493684600568542001015928794949313192019297897977949135900775328571336876628343272396418588112629971260392529468836776648424741685969113890080306946802827601230933077327193792870647516949862376354908636992059309143206404246328068982594353697459072758166374472245382537875213777376248909529196210021341110337076518656486746506025366986288740880741323198920602373860300082404943658954453111646076551120907404329917174734307663320527412443492590131402271123142553185523272255201016196225632732370985285596050210371810617149146533218159703519696178895649678679941035314035897487525675139656077853536909983460272783208347816911910105442032148289000258227381708146395074721597790654302959417378108796431018712889488116060634329156921162403934278154311628621747632793196492305480848686723358121528512261789934102217714485610072976550672739693633703354392385238779993978497031748395902351283794120955157183822336413970348296967486714150686256435440161245520589145077543169124962427111218078959315904649768199540738982318356697777958729250663140594736722233127100973367663946556932858506834170553671008657109521697340670378245500880944214585595152617163243864807797702764162928983756345772712689274336631286662884092183790460350052799297089872563702942463032087378501999497953280350688975011097745882454844961334751874711412139232798670833955882305598144953716235703634308055808906000053811901299238576221923897609742360719039487640053547019634455182559562409182686804255901965325658267232208204565408186580254834310314638695605206699855722296770051641398324912271332785562535170651832741738607049281427176641143422419096548726405714497056359238101996689370074824848377044363388989861539223060640269058468771571367097880022105344623414945811817757301875827397427704544237384716467213077284733304767383498288475192557508028848376546936548404637757865896745624803540611584776509382123226628396030191427363428218597403018305780895012733919152893163651710908122878812912652617969331117137993251739196580509797104330831626847182953358820792086714148649726413833855884887412210169515440857376245393091004780573498389546799565798718692629527375146070394200648190434354981153862065147977130158442872311846038521805610063136012237671025755008959350368823439277185562855933015188402429612170224382779178929116849763682304753361054324676280764960772339939871250617446420852231776051458570714750171474554520879855856275941334736779904240580801452745506696802848850557218232825160544075717297314307105751730846111416717987865069544362431248352167467750239953454213822293397682445768718480169381397822193921424959119973191535513201916698528918253577703687941391791262643370877223227526606898629559392467141198773147279944101440754608280448974002944227821444168558582021045033277455938890771065625243898962073746871160799405101042861666963726635463475345116682589657693003611797640729192300405367265345040895214303327753195773492080159491533936031778607427487714399201049723738368321978280032492323393665079089915485442826916166208507631512387379085524460755373156564441683420453088820508911157345829901144068150306500638517978758490594744492340012851096026278722266906548481474068945249163855448557711082463181649554828734036789477231256451840416949040444316515842195392590041259527544314715317363163282828187949891260144337087631702056817068012135488189978815104554601563979106200476312220225725396426467152255317186320505838038553193710482222952978639538222783191075861626868956844400187588198376287417409921197031856525585333559031299236124360289421406431024632127449725981650533581631867683512052107302131934585765299622661005583244719251859914728997938627782186807326190128578246271827126935917293228015194569581594989691490315202629208230928761551523496903509518350290483308886234234179654840471908285129808358642278549775984680160640324560493288438879488997045436421889422800533942348000894221983797936636801391922017575759272161792473884384521002938365494342871468129649243169876331831946724004288394839066053489364760118952930714879155211088319248652752524132311322999878782212256603348157720506301121064944156974424654322094908737060272818849492749593997313201123180519598810696279636167824561354340120963270242362428323074688286314964766094683552017549819959320275587727816433647787645090991030170514640432620211617016671760403873624448418656126230780943282333003218877453646542301790182327028976937958738030088292744866467301821755773862154119634214219442861810888242821538760633648249273303837976546896927753296868122413366847354781613120766846373755346517567972439690686541344928905333946164715272713760938828186324123508130553339132437052555991058908980281611933106809574726481455669793909705076872354528386197188306014574113698002949194006422588104121372639290351862073223150000273847858608280275619044874376587879311488262040368537440157476090630923698198710709937178109595408010542121729695107371210054651820645504282823404122967029486455028717133293940659336107602962188774641287898986357196211606914161915856646927149843802608796639774919016687302924658711587879168590893290655753671815755905193947601670362594294001446936396432412984393615270468613800694827152308047563642176542321232183294195204530510201566711840565617842819610206179966029872967160582664075609407751386868742475017792857868171733958813353931203653657749355138504845733360581889441659333559364410223160392938124265546675537349565652138365153464312211169896094824662475269249255057549167075971408194055186586191551910437543293982934992657695695887610684232834249447264568830050620484286222323965335948977714526317534088012524617509039192105811004890430897157478058418729900449253395519415225868332344915354953453635724555581680802976834436062764264645959868623274541308215131702393006597668604767034762512374387904564752182486632943935927400269980236172912322298207473965654821392280402383458801254958622759874902659853292969158816718814542931249747374767566732589633289242589512143709032793599748019525457340260961905872419375778098106504544725096982122020211803555196622912790580936939695968131609971912058155478696194636415236511360047567798460540175960530313612011050446944286905182615282168236303492910834058021023397186879307060276125332949179083764521283173883385980045624262104121642411427568919700156535601087005015244084465162388879431065069975746148091818954671642202214446256769756257191847830036964498584550404295361807113930571241747182578279226220985018193030677003094111477631524297616102349322585634766349055068693247308268056352210519933304476332300795591542972853323414372315090973238671564177844440788747541942293068084872790695713812655334209550256871502229444180276267619104561373320655644869492023970710373961172815241086809070263034424230953934430083016433847693850521793197065510864574004610583429259617284303533891747652379710762775356216316873023421338661053163374318288397717059662376367618851357138638662184054736061649388165548783793983873438644710622834497055126895499198489184623819581484071006261410480275821613677468675895768454633656817092634109694234630464379068614446790445071815706814821301020693122977349305482592300638524307179820399752580474861552414939925118243233517749026350959446000296624126392515795986951083093167249310517640416655230609494521759700527821130645588209909561276852930495719770189225616635018055610697509419232590251755151556714751930708894186680135293918701720005700030485895253803862285024097366383673566914930604954839624835935105219955997838257086255098823676479690692650669219004605024365616614575514726750586166362983117737355247062750178945942199275151960448366999436940837834903887020495055534207545702456972850232162962526634362480153666903343229651776612129671241185546849852367940592583255193664851426876205155879559817334940305199792063035661576321917873163978443915548586485518459499546685964631254700672891625165847029655071093778574285515277754511980980413071997693624172409203417909504802103848456978986781385558836786765918413016916381547766946901967002314803936716722592675176233786424787555202044243916371763770519984083692508672759583919625615165352897556401389997499709898317332508269540119649332204229649231886047794147478094362520276075001736329343245293034241336512673786694023332620283922417152195800173701340746218218038195060066300804033663770180447154920091828082191409105080145353272694793764818710757969421339663841019119226818877437048450413094948664550782004872008130426603782756351486345559387486161543546629202636126775684610653027933648258797909069218314030723524183803191721369395855208437204824482951630925034949751900729389142931529967872678481138293714662441977951519471361327436561990028664526549711584531107191002057676018118040166476143242604342587317291829270297550881773486157266174834795255590720357881081817999335683303673137860224061376054204655322684765203133692282844166256852081089110482103341425682661902681585351701909146564531672573387629572802123724638677484745261654662864496976123294074459408826933521262974544615172383648641687727749497925444236303718835271116312435615782268663853215359464884795892879187015608917312120529658998715751230227638543728439142919588022719865118850192123088408303938778703349129558452027241078233416566102132310365304623000582054267693853230965568994573482172673182128114123385659227037984423806564136504850782324547071096327750472255165891129120081419098537971557993382936369982000228195119183732040180499944277529476110581305017644369989065739533920377054703603353617584563693270375277571725978590951354870618536912293138634724541122801206419332061132953370667775986611915814315934555940190183692724618995088557927352936918984758428838133050869896011727106207684543052107148152064823654857853622928627180058748767370716093658359518439200350595484581380641345711621548690193835120194870502823361925026161116149918889184762578983690106768556906712828552649023822000461150447941572019291165986214277978231608970887895326861567775746169594624791099359540322462661718344031042669396960177004340425847604184051706429387020573124170075341961631863782997604503425057608314064218125687565492014097977738189221944930640934897895060453349622856108058991229824903432328872474391630813044318229232254316173948689681241781938068491711279215279591859997899924810417933131555567263328887601740263919505220774205559245003718775784474133027302994656662645409919688027434679037147945572808334018468336574633952440407838861978140794004825154795441249386575414904526641761938680865581020387167146509136449909040949065909162783840931496875756863557527734331293343633565795933226253873978276627892480097950111617279667483677355654003359976423079133491971528589099691735313184613334646701765600281722681174859515570420086922941022013847430676550191963469270000946994729115905871035289599669571941113520014831711867096375192722499835208533411911602004136126296608928879114497396513029487865557335109987066033289499768620242317336363734192539028680184685594476376983500700494842473161513289479449408332403535377029769591358477839469924000443304717689419767595348032052087536164980817418895944099025288743197358368883913961061819030163267150066830034014810030279475691096271510640122813825762175781729797141753397307643105334808231455445786594772566280607389391543599679535996537095513395039488055992541018391521514574122887067407737380258311093655639282880836522842530684365454066360826471748095685560834105869522305468420470412811979853999272431991989885417858628344394789995427028614870801109599768246339723267140742998559524107166883203488952296090754392445774418289051732048527517467499402692128466900020885033137379675362186864867649129120963349388247659189355730943544763233260234280862816286983157284174198909516948452575570880039170436700426551212428443206448906072727465887636539347508752147111176440022827134348806463068810753637436797829697030888642607356730330532915688924235818875757316568019226591971566509147435514732129809236839163794099056878007546514756775522450162623783589286062377766329222087477379695497688230873140629420043402592056889059089290724753730404530885104881473689753520767000271515698925335496848060996535653271732174430087661516480658822472270945459328393422710650183716283785978681247557616683925966759268200013441404607198820592277738507732755716615740282239142436895471562959750402556465377030153663999707521889017377852236491865896283944086718374546972191713729784471339815209555685075591729067549038835865433300233376415010805586554009224531317537218213257115747217449218566731121431154438744003362878245619554735250657899360624046352091749190545682010656419958459469932229146820321510125848324714261653619044073101010492650534569999577320104362222988500183457292541669840430682317939666491332729623721685950704910043376369902507956571542646938128113853430117563979920494395198434250310358393170612360730859846983130057661222494266469945745475596840573845044540490368529790415219838136897473946994988554254354738731332501048875497428122707062835090369558852131140323868381709955130168934908963748767739705098292899397139120983041630850493651716201021032356519412313870494678749558673917361459114302009089639586553174669140509281035896276563544307791471231285056482656924374704886201212197012367822345953019816620631161480258489152179771316615176961570199559651777450455177498058863471976426349039486836431512604778787537316198104759979670063283033140053480096547779642888679757009654017725910887754598140179687174669262645206886799808335919254287369833244134384210287003133802242725130126389134751952553803264390508342131127637277703294637342899488898391727925713110763508453999365553655748260417723374465663035637259434181814101439940073038871263800184934493770771013539309797314716924391491060729510742237759396168920573532361436697855127183967580041967439971470596259437484377983229096371274084706996663116891343090267658802873589115148126788534376434733236917866391843076014751380200344313542883048245767012626032707833248547368663561517630317689195916525304487524870841550738804212150972256719423239515891444693563699881819783904516121770637234122566013184109827664991343180728990177170042786335744347662808974302766904755523904442989788795175064671548889669944590155015542399354417179961632728485715374659999699807410363829425424373842616515212117072697355543701146687354159291448044652028519552609963041209063925457812319404996402070327677753518072885237901342694047626405809059043539013725880816496897303294671082923581348461819582781177468490743415912366571264679885803553156607601268502289776057682450023716338732726425212105110349390386183010695871590362154820708557102438971743705676611509128054928698045257320354560846079367531851112719459106985263397817763274178350145883142267022642471291116039433995339849184054524540685400178875056025064825074738759540274315208675934803407915117749453204447930220688722034977459342229919648996579306153506758812389568287685719957899516590857386108366936202688652646487624048769560465949440635162850358847844293395842926256241440969759983981911394537326277079930924573560058666813713097082830013093017025880927038871727859030032747697207461332493172933497366921513088580241068520578153401771765474769996403901728092108534300633704698945704054491270150297507284470218937137417713623797139884851243738792116569858049890744751175224386640371525537958615970410395441843501263318609405856531316499468280630791553120052740745572972634629621642025369738637534244840463713624420024663558504736881467628581135809885227560637580872224694860232802769224267011834355798389588345177929757478065834477611203994934008033723893307757045550291205759247880068824959211889472979528359835136130970939612884427958380504570404324276974618209863453504418798905098003710511746543847581814857489973444323268859290180296746762073599553927566701305737785975810683568538917536518682979023964889729102716135497639296891406855479131496630066519661418215395668030689324041236514052860578448041922493649872666778493473770934734506808458034821613270571048879816264606047681552564709719625404967368966760219592967975872684982120632095520831906822661849004833342454941808621539144060518985685841338253328801464376593692312888289947176370474370033144810889005809970350688163430379442268775021884832704391638141928008472749964868622881799568818516278646055735672598841652775742914135344746552977969075420161129482133254569784273235378662569290426046227123811775136944348035915610029128563040578970255742677108925482623420251055527073263503289052062976789871421409922000044728010335814909557899453511431140011283000972879280225482254877527209432808157432563076155117852963991484847474217051000794023568599098978430630774733327326935226890506528954069255461660776551380549832633250130120031244239559502852403270107984671643392986311918073347117212692252682422433911047104510470502745775322838719221344052067385235035018777076746839688816579082019110511282725968385593660489303921609633587703336877985317130346765031388103065177362046565978147432074289947626311559429750612850997834928794217158223559670786626311741992190675105932867172454617867762643277798419627033651526350865775434442991742061164087349896640379432412761561490177501732672202577130958932708950386431401238646727380009556126408641759853219535481034764841693855223826598769399220728187782176181492584575102196489027247619329343582419059636652795519649854168072927472646434494630638752714407736644968730806706631799867154983191222979516640819993060485337034882771171877810722459259891585096155625929574133356122955606369702278181644088297946983394614941559839130136198611455403532551286856459436817153944777669630136747241787849120348535459532656828006039649295983252193110213139148384641511304183877089710992060866651325873990047456578118964069925278321811441030172857639976794117930491854592855614918844709010198376997310778929726009492211523512927638717047862069976652630691091378306693420113346762723751037287552341638899719727709013085043526405560850704884417215873163184330922642506844778294776750259660533975087605573874635146773880406046458697198785727626990246678976181044943115623919853053207263257312699141142581819034801155632118667618858423434729460020036392181936044584442525965033727712281586202006173259390342051313981035774973999394961512282990920381398078594172599049913991733873844656786993013247649670175705445779587126894151291581935747462308842141837720107328177557554505309615370472683918727624055220824213965748348485162839172630385497463140959177129355073766469320700891686512110186446657854537270835453352436640193948741922740327441764426004431309294397364151786224825140785801917734562889415704190978163080260010122088957203807886516539534812386888436890097908193378564254540012160811795784770721995796406399508214520477543193161286088156416868625973518860849598092999573267936342445111845248442295710230953856813750477412608983882606488365160940880796087006457871845151596465253535297610122035081778853296829351277835559493690729194040475215065139634527379157236771912886835959827129453432688788273534356298665304840292315498724562641497965970565474675426146813895934285494553829121508055099520586835306040836053307433019077356413204438711435647219970053316284019346168778959337272674599487139271173938529335231769918080750004205254764852796526269523777898170230768228926546496224724001554694389117224147907241353994708660074105181873133710850033457179428735269497671503951504204069387171345622144646854800627595724567692776606378693179643358878781576207439773736923371012542498233149459201694686135001497344345801162396232241606972405107530433700276242805865262261153689854903408878919794691249519250207790070049961089147923595473786014626132716321228873170979901508350769489126885306793138985382995441506994121166050509261095136620980567070839183465911506174161693554105148767622888048094995477131710902932753502111685090825755100513732583575428429555324270149587294461514518240035559403227590867324843592380212752993776980568169375339580765584332935466819666593461399664702059699849768038809101337162356740598898337413467335426465243145036877217491256968416851962467349564532773077205091886373602196018981372731651321473282364675737356512909904612690452514453238982446736319026074065824622182076375540388500274767911017202111039862511657945796858771979603047516206744010036886492915470109944076358293753290604337588449235523221828508919688347431317239311614865395083018768626999392333967584933666523347352990673622598517967484126912665974991038807440702107009917862639701325854766375036917319355711532402537227277988638409230421454133957678579405346419003453678721310467372380323948386635814231745522584948616700019866913302241486289936861638760946248011365100736597609180745651520560732445224213454645962360419929657812952397615770880959246127197734580534624373179149192461454283325296461807054725417588380841017634963310488509630586808593182737822338728645223521799085747060500270271993690835547104935014110359825566131632050349296167228311216446328908753456108405284591072679406148275363548681592790073777019352156028693064153608320238780266410631517595965967211850783245961554173574091058358041527787426945076310541075945371578331732581263323233451910684811133144588674657307326565186474310863996878100869387399845256571679869009234944388571078186743547390544224860565399678939109826187235009069252661374493189233688506744691385347621461731715382121551684101251711521021125373304180567672898844201564943403710529916829193260136536941274680802341096425119442091973834218041697084672077031213344996922085986866966359073290530974036134852961292333368999581641505929132910011157701430508128238603753279811657130561533666384532003435849636688335982139453178250366134760902059837379447605669834282498661036379637159638731519248611755913079837778292819076339271389379406703172178224834600408237125383966287931628302179208530425026264744741984974639214684036416179844402460666595369763998486075897499778937644145461643355072517482171687102622532460293093860968823347176605287628879569140171112940635979949949662238443403048289311727980848756153284831769147461020250012230545985838766197018701629942668353926009087918484793535922314492695124866093752619699103508776361135087646522113340554204724696209371553187793636363799046630352479488170888097137445861145022867433069968711709824884482766323944465455595402378627349092791401181734322747018756405847819700349223674554041886576644214771715889993935035245991631619560712137388675941618397552805885356231520615778852501074288709250781196022350661199708950176361303222188359658756693253405073527721117322445359359828852273885116749402344263188788456159595468031238927616930339299514279344602415664980253527133214013863816317528075446072179922176006585429253351906342406321527989157733029541139132443133341773010000751950554293834940018861236626800955106313445305820483863636130284310634035893321427745734247028168856669689437534278582744505164712000476029147507267205402885235183892518395594622732457514221965605068648793479410453570164336991350321152320368678400756283993012345396168593266896661367130646991818460094214566164360825118167774259393150809662492866329224237863542873724807570793143781308279646415293736763872197293046118006442142580643575180231396688674101094185791420306228271257684609141729385966007274941197172931204942621202696273459712733961944863459746756613646893596825774768902928934327092111550789688286557358537127048224193288552454124644329017087934074178141721675721739093391466749433542757025411169332140758679495407571222495241996784276255817324700664269320806469492521355592106656987442149070432216917494757132125500410932150945570909776014389775123323000252733909177320165495621016550403181773714835068390454995244568941127533043883481062494998018479826439912060811628280412873824396098478927519817304841346272660682906023260607487082956760117048008643510283697830533881188386220848814124278567932049337329306576693770364018671127525980898206442883422673547532750307336417415010053345430219149154384686581952917112026046334049400839843007242695617004065941836692642258867642077903840455237556568189045029169800416939220827842476033106890289482534793849839960020664704119623195452626875354417269172169995756220103536565846607534153484825309306281820348707185592024937828863360935320782361044261426953723327382601211146635221892781856944907367145803610980381499545653367048535837235683829133582823837122205582988231545396523303069354034539302738641520547516856968935235865210544247118471400404642300187835180803604660041022136468086807260751635283061887193974635086600971677457754597916532651853680279038923432892470377968811720495033589687917774598870474505730024793715590410150486690620534014420127314726210450748971567071257554464819845925089098477517085700683703424626377736197260768432194750025108892122923886178896494515548600096743592439087366127158203512509518398572473084356820701849611016059548125504381215865766557497966521748236623427063113525795435259878696421762825691967711147811466397268081327928772441745264153777136836858844193513381600548226847287863055289944056636814146584298610895630519950880401288658456018930525995816542524298568162692213523841337370948099614901840334717424718430543658185724427607045134313096550396073690545139045053724785133108374846361228923719338692594625369505184545971998708418192769848200433030212397045419479954653121231282132852835085277318254280264336240632172788053144810824510483895865594263555822948327267729651342623196056178920788356024770904398458131879638259889845886940257897082771296453104321637676185564280040557666265216672644859549694389411984394699368694235999094988696355680886371307884475729339693266079007546037321268749816798116441947109350217544384262891093040909927729819509643370714505057074817771944878269758086822734359477532268373804521668838929331155026396499262002949833518525573019913347814173893300869600358268064556624038221039369193953720710032560391455278738482838103169378817172433019695301605291701146250131424508442417600035968745523158294252553789929395468389584098787900906237192892056798626447991555728729321683094914090190509634187191079842670182828529480961267068806815509158250950636086615533998234787275937792566168767811305072751378619338595003549226561808467875723765949435447475939698817645265049927699757640506121077226715570033269195165410831785553321378825137211294522593294539530316778922772691266770743792960200870779529343498332009505616683939021514167760530583852431781173849290663777853542416895088609107678285962918568615667813647951058494664202906943291332643281180048520015212487747528000765436826608489814726989184174271717009314199491210640045579387995388447923976533821906460372394214754193884850138162385287691610385207449223922812300675832458164103952464962388842383234233126744790799469815661538381724004568393525828132725614743500138929482769664659880173385149722795721530832871884251468256719308753563942291372013493844661601512254602321517944426011252113347541991173143938990275004634287421537477623232302122277562508448844587101132342858877339819153692033479635379807625201838963357153176237635329416442827822527798980504122910492579480902988258653463230073102836738543499535962519182540348691024824576631731954025625061045213517165783158623590586221649090980024376919392779332055286133712826605791858500721601896290114730143872101522561637964487311594988827164024315075477288020522076713867072417994146810180128691251405106221740342541353055012484784064078078115686975237686152417255969838190427670736706471208335973139816908096516874222672401065584956113109175798991382578416680229496017973702354862007748990179232669405777080359752377610999673636295637810703548499707821414599997014243680371443449600681084742986593966555401234625332329988316377230372105362175774698909366097545818651527127833295124302854472430117781179001101655240915241676985880072038478160456777843564041095347258663409343113005953388552781357265044029114311293805035911276412049374447528812000605410453941753285882900873664452741273482982441374710666259229757452773687096984353084593406803753465833914734822185033913717122970926073977064587875285388381870469607733749294572713735730567187252132554627768561958709611640938170656006604646217195034264054001030431231198692318187462362562371555586217883266260970493372812974062329696428067345694557137866576565883492263020181919097974911446155703639657282038933843544747194436889538868063400468661815576678495094047874384208216338936735302487894483719257549682041640204707873250158062351500351904408686593151951926802517581169370380206760030569104302929138616448048022444370352604465237641585633680038752292045338681189265605633994958018354872852939006166612933663853580519115176893193686993190970979091348370421454472411870195338677383052973124184023037908463232091064012849773799667790701903423906233442661405253318194716915069227878144436759736145209728003784667074723190069724834112990226974863547105205260968379067302294836419047782681929788544027637030733160647500748786884952006381925576029573030810860513252725236261349637011813159076497814664174662073636540410348862912968498096996964076372430324428542186648231503481607505961341255759174278801228365175468178922375636504530229416565811637408815273109416023258265529625696628236504330997777247481467223796816699303746859042255819490771954240638145910037295240485926402834272650019127150854230641711243422451808230700070333727931803118827716501233839280429626134239902360459157786751309264565541075717750272955807434511806386163739024719276114434761808542009043509497266275205242511799261293110751201026100355927727943437008911168007693454963766330719485102323427166712879070929678560763390562517564340444927693597321936417642837281072809225495249678749569223347490666230157409316525271698737394270396041495463478908907554172415424545909780098096662659923257098039319292624676935912673403254027770237831320545997172142332536289927006386185620213663129595606507679454131212328435354520745203013575387265122095402994046291707914166508545324613490313064906142155889947123784362026841245864139846362453305008569557485504568245606942945474463789355033101204938265616363619509920001851460103178688300350504380881625751380608065135228298825825616227143299817715014343427784749808097612840729115036179787407464325935216955804864093399813549081127071187547064099353861326057527001902931564504990017777894816032033403868473152427116750272929674760412579384708365035828111962973459377402910038830139624644353476112342143027569164282681578268421698538839365620917578822495307391926246687275155652431676764210049476632339438385639163055708097515938918729687679746624707306065254277626968097891639063602156572700068108418198402977434716073986617150376431580200553321198456343563042495037769360571515299191616328795429482925940259175549850468961790981972459720651044951582112287100298083171174200729977152492191327168894929212594797459948594403310298152695531678169436002795544608341053296005991012137406393954469818833482052348161468428555057840001045245820215789167618331076025962191102929258406275463849879541730928134597285191040644012828490313473762095769208230197820856012145553989780717009420852913517613323720777025487866742804178519966888655948491688429857767735085788733464425315957323353271135745633933505980755314320327808017172321919489678344403592796560155093930619608079148763005344770832541865829335872496687068183892983688878543088073607773829725998519585042321078499797283397389867860246496578448389548862692363022688301973348894930411066832111335548540394672653805663864608199195462530157270395242106496342296424821573013919212227687196591161542113868508470512644460366401932888287700212917407933306863812440081963526424018970208993975307115467361924559867923589599483563793771749875020612432080704776981062962948181780600555397677481090341733315558368600077273223408580248469961285668883036693890164918373352504516053825320083573791743476722834240984190803039573113355025393513711561712174647549565866203873566787378607225586425426009976389792159801913811570479295649502178736131705978411818872415288035691204220900761362361360805556504152325406816833111865953599491775204209875946261165003585856356504890546796996089575981317746120364768528887550202817757909931804545813700693101998233970609886559129931757659937545652118191438952603291579399343248308152040926650713351409823826192007502412191375456134217308171151833445958955134609278548317484853713749913312555587431123792220992945939959041494533189253201172281877450640987330685579606904556902333575566785825101242386098292172368900639376270225187597854764343628188131241700329458618208288570158782405194690239842554134943467330475753642808171810809872734249737180444184014900572626882250853540520922167114881195850015113617713985778002401883589835038201601812057908831474405960154566649420465558465165957955600168866396951390437954982140160123212370828645595990018016932995496901859219851529561527012698006077345950846313848945068635954971517303983429218713133882196384617981960132217259857577429449636436954883674486014654027476382687332529556729835940476161161333060329231423572794244323804576504236568776034202498866504939829490608535000570819326600416332720365587658959139990081867242876591521836086197344868854775026713392536204356369278590316761386796210756774874712186256611925456447797648120344814993755748406359618609514374605865679671483967146882161999375432051736266156821230565404966401289562503061776592243520189786951500085505192794699277928962522854115928113978103222522361503664906270457033111622982044462288871665478333772304580649674038205535106547698718981513969142977453954652508171482091054926025849295868168838365747881042445522570128705880771519209722932800256807218758876496864425554789436607234979599317179688951479590921317245801741798447652429510040254760532102917969337866134183270487343888507754555888292050047084269378619180392598859783410145372955417387058443545056639862630974502137167399093832619006940132108712887986809475478170493327588713405748172719718902067458515008494145478042849034677461572364119281736548511675859253908426765537711534883269664460388441284902858110034692863548654472977655684359366768213525510468592363567972721108562436883079095221294104260936335507044190527077563837042220442935162490381837753060702175062624908231119468576638100868391632543540052359511451332449105860876483687850789945704020859583334239396892737200918553291313365134878401915201612939569338326286912551734591981291838473244241730333006879843623292498391881907123291834760440725568379381315348091249591596703339445614237014314292676319538252918351657774053302382342910459153846115045344699933606791884179420800684665649452581144461205910145489334009494043319535602614773232907523322350178196522239946781770460684806606319520597766337627307334936655395113282705146318565584278602247902685823999742689801633515696741568960609369745502562327970055658266291264546650664897944940322491485901958411342777435629004251832049067139001713871174781260448643392279583114792956042375338283567556652235133879224678595332090149883792561213583891325218572982461920651256285228352214184780785098805605535765906582824293303031991983851028726648436935516478510308157870357640580986356605661573012374144876461862705087894592348757875079059190698991127399416139713729184535047565537380618358005939204577574832752709827121059725530983162364173023068371598302190118271837918046608005488609300825596913209425461303831005226881003716255084101056011815467457061016277161841488748883207074205473008623111770551564964219756566100958653336465786855529250637752983220749820874255578614822389932864910144340556205267330797742975426451074278191638778864672929761703391889214594910062448580282989033008498111274071790354639019035525098336055970534507136728265604216029934479719157193687334214885234793913709828270813616772586609973369015580457299345552510046162349472188909290513784377714274669196863252232336410225761656807720373572342748599472364566268498920317431724049105958715061794965193375373536928270663313949037180131526761474137871447122149382504456148228453085562453664984028804416612362230967157065169372823341643291428414675791750297398730308166214631538623317273924078714689627194576377392705246786271436281485491192889228592670259342383149001469451742177075896434000488664623348855440242577350951371898967467018646861496822031548683440593367156535921256460067713732734113975827962177226324995121343909472377460642567546572997881470618798059714919969222720288722456900679435083709949869141689903415566858608108149356740563951593955603245471412638710479434821289034065205641085882460113014609290061439005742580301188456528764642486300434987394213209554937042526253972974127792890962097061177748601681418276884255614326030703031815734839586555365112742419875336146696772108673122011517911147855211349086556269738092995535905215616953690566542471504237347930904920166765601002027709759627266102395135089302317094157738502622276574945382297498500142585695651949601311648866898268308793376574654391710778351537767921130312816239553181792100289955542520736901264333664782799368040235920317436106878215648355513667588224468734426335144379226603218089768050453680312319720921179720600834663687969136370949114718260195353221913723339675699539892309753590669235336895644932155247420416424013125534472526145107872323655254189111256003548441306500911766875582100947985336762957991354926992511623989128499061382963618464278754438543657281407410362089425199975783878401864184787797235970528509024469082596963252268586546738765954972036836955282463997965651482840165797182245954103707687899952540453362450937766562901447761386140515305929618646174086756532107076283236045409047961771690710136435508187505760933884671082856516227706150443183879565093134414693570988934475369121064252718893799605058101378684537295736737409189392257440698310953544270637061781900159198624340777043681967661773203961672819509244903790107449194246324504154821382176216503212099285237633671605744106184943661697006102827396522382849538497655163818600615537941690398054842558415566758047499759628219611614200224965085236450861413024042802211524749536784404526951768199852613107428911849618357315915004968559248811347775487381952849614039935058877849436167273028697866882026187501388496910998034752586202143198759463871673721381919082604431495025672861188384841890612764448342747496623230028261434262056461896738777259012811089593987379163010506118534788923472004547236860730122671450108859760312193570309972319886686242351485257051374053532097163470896605686667473481960578002804379752776951292781291664384777043726630527872051499430702326969066545020598922527452281064193734980654418899507038810563567016768555260155967761148869073603029053675031795727903446391276857222518690946711323367261345204953602025009722078971389825585342488189648498799864553771637070543267824251464469625099226910225512432487898768691678479561976767583700590477317263934326550822564361495918040190291661531447615808173550681766502372607338825202499751287758448218376131130524845066819642084614791471721085072908114113662994822923926233449455566039278519775214807740924804437781807580906897777812139637770865572447375742305262048482660399953158317117567657928366923143551080608902486024358779093349780884662034927677738603119340777661004324547031737873870452565208020079341328131922141800027061023925532458235622201895481116801032607001247127653098903626386002865918422367724710677558719155604615925167860118690926612661260695270975583253792304136111727958154565793906187143518416709754344488970768108332209479810027307174209959322723793309517015909344221985875841941836882227274040173549354281910498880273686343119436276835997343127644235510649971413436585095049760815456343086122739561906917488909903850525189643426257803726864744229152528009764895238734642449745602770483440487753507260704053779399061750052260618290909390186150398568773927646338307995052773403992803615100081137517134785135708153880745882981925570381822453579495817091038681140048083271010424373686511213244702878199901633122003927898206953747568664624685248775478528458021404269936848936627563014335390368961391219096688911789836131676873502677359944474939239125948955357227362893125635988328191647698412679196515200876640325766401531921807885060155227509612784172171101345560996247153513979438683765519123407012729231073392926920259070117837490209302862700821779168263569398617293769830878343832015627028884184505196072245959348368397588895487314938528244694687972883217509890577374846060101870275413819009865521638486959647314322887673603339375596262245470717958385363150572286768574415648475060083822322807159150874546037617460200049503900272953570018187687137226254032803310874434092530654554888434300777500486415631853739633777865818829330058779521026520029468192085010702195612796298455261737555561311115993937433539035092446774870698093986951515609925954000679748370573213517186691349338760403871603270582587146213998380915435521074836844937799579883454915033730533484175448626338718963224300874872582290002132914444844048072495659451198953025272689198032024786997305131197350516791399963637155950108853035928115369491109648532608548746589672577953040054686460033552636060244379916531579734363187093727324613485441098426145476630121310287570650314534908404988753200008265173628042008759885846002230745605869256270932573673952587386267998594304256002622941918499082514924422019428513831104302662593990761818605609941859217147503483483003049089917629465920765834014626056966486321811415291459080515690465009852782776612522416439324731572103610950375335389340447923492364105135988969051180476967131354907421497686729292061312501524146588646732754900225903220950087570961738216789613260509671821067719084158221754686325466048110193546843360741993558667985274027815912898183571958819009147135919941431829880987993753444185765469230631165907818118580130389112227360106442214951292846386284200326387491346686847648703651062024161662690575520383675381732347235168698619236692020635311632768693793277918154380083546987931226636834128366399462009822117882090815323670747769216494502162134849938808617773416869069007751513741096645287706973177890711179818970844235632623811638456978329541006515702626482655091370854504545113542388275029791225105869214329348645495304988526317416537402984872361903202160068459025855564096894141948791404188971652640076764810439938609556098709904633466738973410989739803352741126223458191530234012969983292200327804667793752006176524753024629657296305209817413433708785615541333368474031006252285436282770561950399609921549163222059127285256440469368390650439787505082389486385989284282995775217987527943553674214965994652061490401727326343714604009394529432793567922314798642371290049516624683547572838514076060927099759540724698012034428411384053100891902102236226048450053027670085097451651855381946870509823522097943682215005006450641104244519770718739427181690544927175093171615073404856785848611799426918815589635397806185098001087855293909633959986867978503746236460484152781164339035439751074172637570907985815269108654598535733559138601600579982205834699141804168245496995429980272429824597960214215663562743650336672331777383437606142078705021166981565255240863787090128270326169212936714452218712717156616305137039647792478027916934483843204981842800307558716323707038068035322811529180977878303803725171639032037939366902614343042203489422181428063150130635305166054566568487619064097014966554349196201555688535973446643609239709530068271525969043543822808274426366505114918312509405384244200821331096936079444797041098401816723216682368369200736888216076597975771615744965796034416656648330722203906425134525401675349174494346038325218616289876599223622195911621626110382078376415305017389073465779125605512408331638497081124621149651647793735457468574250064997193905809848361129425935412925131822805271710780080010208412037486929468539162557276122248419627661016735103835337829333080820432037751073918685200466431825873265821388935885489566873791634424832172333622917924123791882177836542205668618623174476928987499021263520059078096673217358284928590106076532471692844672017736776892925373634253379785072260052853761562788944953885999674710248354387414799887637477546520214680066507298543058568749975698674090937970293323703734742810035628020552610623507378560542471506967166502740634495269818890719814079095068958764701684331315281846170550292205458251986536936001210713389015275155861833070503734921635016640513205192616474457772376331883787693150228297024237232754653423660148680048005159156117087232340279592929664374273596129821598402747508406879419454493349103043749164415201121943412864906249325669655528911652523899058433854034808538966685669834284351653781019172062422780758934361433326117863930893274500168451764171334087100883859280030928305730739634001484215138512637650635080373769194810963695103451518747265316634987860140530853692072206071830999504160807204140512063718726845715710221839828883744038913002466044961190429384472021530734975067027555142936567196946530159454209062669517950011624275087722922254673643288332183330449247823408709142451778176349414119054042957100004381560754194932053663629101973314873897337135140163538743356149522908059686602224992227290593794307087366846111849422550241974792732176599891624882015709378316022754651311239327869539245579540986886470503185866706972336029779720430561286553179912390051935461620832393299363809368504587158487099398782056657502160988959749474486253993473459211026007187704744870667503131394227391249805991303980655016351387441332843150862440401207299361365486593864066388940209000439951057305028465740105018915103888799841356763455118679538749361153830521470441850127396362507202225314306802602950129939812698021771115822684533957593059487145536109695756098412223146101005867315743727786145213900643728795038752815673348822551046308940229553938712040018365413885103916957622805249779698241729246529992263033138307305531111929563756382993943937894206496014493538781138991152350623959848877044360034397779319643841387559245548489827553703227310506189634370240506999485842294580084758121501379578969893106884104207338091333249045309373735700252592743089070245799033088667419044168692535942694838579108226325168561096719591676569643399592655989187502285546200656608918267908526389840391681960112755112384814470973813368209199273761449114403893533946563551740190189805077575020086617945938586380694528468390920342263649787734330208121297111012924849838418444084936270573638766798226882798851449342819709451093320000499445892051739570451694083128314064436707631605769223677111956452809160647230218417083633398742890093775605728492278365435883210368925145333549150741953531166501765755843665376088596498704023427983930556523222608539610296054402830344003104447929831948815823772421008859224382269088214028742409934659648619692607656338267859227231728481731199369776326866802266028010577704812307846538756322464841505524756204566893818125181714603764058077152706718918175060326779720109188545536318453617397107915984856401034856346291906668316187027831776359049030141422405476114565216090070149461665475367740170136111968991781989522619518793223106514751514880905690648773822393491925616972140759602651889801505674626532884128526901676779178633761619924794793818295871498448149998230367870566394691585470564773131770477922841391345286103229824345230782193587073166933747223728445802405161163948981780597070367674715142629877481429988323080535702606869920267955423385826829480852582194428211833893291624286585858970451645091172928045599620466593027629520415247545212453387165504793292266394445715273650849851539013548734846792776084479745664426044429092942996639689993284916258052749724418424872086930807995867544264602660505580903583402926638830786623475581487683006796412370861273217881389872861668918108188790325872015690044029284870327498959350152229392106775285487043461831438031233438241417897933655827378711960789231429059549494169040584837408661808705350014031368139504291208822140310100503251609188883235026455449281029586162672336616704796180537460921278713681232927175128871192362959231492989964948925988731537117844420524076628849279929294213269185957423156394628502174298212657085053873627539938412375627954530570336455811138195438888447505015110234933119933812979469535324184516411899036369460832410507373257590414893912479543455978290407045592996970021658738245196462097270856138722487629922198748735501039269307783925197101063458864548290898621244889014460994089552515585806295826584301191102805204374507703884865863366340974090918172799897767710984604104816517750023124907926534804822351571364177419596081841047333034289811207727418815472833714991852172380309684030137409507187275779164294656297970044502031301117120208713252090856960563900345158622556629849355765818048543506231523924174638613623645759714116817711485148153624126527285384658023276676409708636998594410412395780586405142473350901085177140651360930822009886814660394010691995416949031747573621422187180927564092045674333487115811138990817850229715405446151657230891052004478894372066803381411625328016417882544463122093666028164362636216135595789807082900942404951289668126241931875507330840557124367463622627622539388309395767586808007766693176739040130493411221862081704246745288561616479529020306278329497142852609691863352061925299385171707888392558461269092573753688701707073162697848490088806109726185526174076552601618264716864987948087111906854662320117493214686798764810302281688803905180058071032419034815030690272114532677569572964188400596725760265570741268589929042815629072150952587488743318093105298282821749568702291717032586693607345388319519282200914968299352788504359412422695094224331284316204611731638405156827473444319908027231363143826395962106056414432148424777752144200026785571344625569247921038972746265051490748503205517910678347510711973204074545938411622855273708757392965976205846591450645316484565177259338979604167748267999811446928791429573045738098121961644534555197094829142524413820622793552315479107035929234433994109838612314667163720874319655587424685957700909163673742334877256634985235316481686412004141999671096729340264616993021656757459788730753414202724214755196263489948772473458697189416723387575794626212898903233693436063557441415565334499248347617975364137145046484084101115072231451966299528911992102508328669705533170837720439362900393824807506389415119785324540290922496265936589015149246145394507820048966115135832384338794908495906309913193499847355866809436039962539438307238457462468666896293969057332775949665205913178232577914799566172843126064381773330152925837421667879562314744680256348237881404180056109093657508204002502610253564160294025803532713060092127154500787603051710391771674815259593223089519183101212800773484435004320887144876743447452695492214178493916947636350552421543734044491411437780791243601358390728611321296085709767526624368402506760807827234940119668501241629022537820395757153969780510337339649798125971247013963077173437928819928538147283539817974746989281511460989414798253217675946122575429675340068946086612172027216480310945661869856994736796140701281518056391483373698022390276044695825419532561540243074645115272281604650007847446940491266773527853342939246098000860081677951245255244071941066814170009892846173752189319246814068775273057610166310503877915530427328542617091808576450970847716260672877304398819191194531010893719129999150215751445991223444171270916034414803707543609279319750033433968911608733205746094066236003598483271037953180518340700283616300313106819142415724241992325906716907000321071484506387433098359554027937426903340841189828229878992515662747822291922089922090404283000036068809629489060063813169842369757387952072069283049140344669413886907118398713410686052672765205211244223960479045644095125436936814095954197325186135089738135523359872144180844668157600641592695283933449576018387092666602850599573084562333282312096917184421890322217111284039184337928634853905159945423820441964734908578645434277272841225994508120564738977333978518705574194551351229221348737891071427984148430729931310648193020279532761079153497536999867972000140751399853965333113970573294941278270039882694975260577781991716473959008318553730968549154887090884697896384072754681980967921904258586253892364083309898552080532987167982906086293996150184096893765228320947226465057894084618433781816232891718205187489292514046363520728962594789240541940090895857507523569781023613808969434196900480010604720650719650292357593112833306964394745518202716807411933084826076192233258672937051204841368364810259487170279208191280870459757045422148859075274412553723005271913813346316963551420816536461918932279143556192217464697329758095099593523696545931390418668464512400968359576570257777776195794664106777245683081356767252582038932684787084126660805880497928244923848278988174548733828760551232526322275674316656627628974987320327283244984692057763016463685210734451650317333723152228437551986670144902346375507568550882945259700617445390314605960764074839335784560612755607323503203683368676632782163292615117658247201375894637378818749373596369187211105232828767520757855331191211851208758218312896570462205565522910538951389658110505054846222014710162722895625549201809741970629077804961631746726877126356193013092847890666576324994315162884728707188353929711505625241292337615938096906590050516004582287324632779210629334363226774848874200523935836919560241937711912248074710951721203482289397135634763999730978802669337791952131160489529936705555752327160953966742434671161234543631953296828221947398569257875838150344404911957624225857703448495596873258727120590480179608611608355782445448455235869013112456914955335309650363692043967874439256329078537498429114213323325567785499132477998477698894694138436745469912245141185246842985465187345818777527701890165629099916680544444345193351952103328802902001603268328749182469009536081634482001970925880917759491392446702313603079875536549264427725866293153525881573831424433850836444572164457792866234534306738836307017234851024187547026955521576698708897883119937961446869192770246104684144486622312058727535031945310068030742189835208715928149117834451801938046022245249964236703039610715211094969416804097202647982785132883471668501713458741722726281730280330629490593304787311949399364015811932011933578140279742144944156040674038835925817571011439831520338409186678165845786443797708696968044738860005671394928271697583085398195731373646147392519587244802964518396515808622077955271132851374374283990872993984740840476115072712404227448961040868319283847055469701244535559220061454558084054268910729473093066310490660499106393286480744981769135032338478692230048374007966272716851046381138983856454957913972187978651090026591016697638867457796451564469132529143622980833333806436493090036016988841573950697109816505173513379066752843910181208890718929782463948253346544368012225060832717858442125960467026482409734071930815481368331513436887951226103718463696418847813640801638229829142787145772752105950390059885803059390919997880800869896995105691263527021502842404532950524700382345680394373504713379232271518188922831038331472784664585403818699629167500968729060434984835155527066316948771547876094783939292734743231640504120652984360105381547237089241513948917195220911658018470970059154084101478834774419866338864338554424403771187714477350291834707972979223538522377686917708808102998073790153613796519092581356716274330456709180104980336151835922861648969248058322412168323966594146676591349888844935698509070783470162327201100978410063354594457319746943461747200646948192026158043537412534650786159652589605722463845297395172726404960689881556359539984141840924315158898811236446382000828518159041423596225668725199413450945156877472779741893222795854507848034551643434046993592807102107243938526842499340260890222848448977303945844667464178378894125422046175725489523551525023802816522317868011173139091882000294968891628614072441308766318746612107023600301188640731554635066132993450017221501193051492964972121492416336595661112851240855972304517157811813943862085907155489369755608775012031511424276438251613423094251099456685501409989698813339941413940408260404427031359364565439333583334280158486478649362701405687811865276415420232915692027015467726517769917504960225262811344853897734695018256740322750674057961104807061527786289041671511559946138590001255053217092521563018257280150674176588982926511968662504267339836257935447317352999405696822538993589400259260908501835193593872436303296583963085337154661293118898507090036718800369249005123408468495416083443158123216597260607054444571790732984818391167324365793716957415318793474360801160188531663969811545385260326134095652449291669127514337991204197987085815998871650255545620171917742010491826399490475044876679544574222323078997446844597228675528620090104056280273149152322477198391280738951722833976754451625397617837317732846892707495474763190312741870838899259713605260898466620440940175623961943093461162509533717729424476821368147645251401941801620844896858687458692457568254125854111019666148922190593639492251954609208342195750169722753320943677101849044576674102464985746699303560128072639375040232270830351785490920067937865386972902041024125736885708789205706019249822454079797987428620709208745017461921670551689864891276501590995738489107500601993551593973418630419209174719441773566819391069409707725300880044065394256917589372135734514338969715070920667739373860452484489794546510869741777548044986397705940559707414995554308896734459047701661263655006304304394630509421783428981084416763937369340385858381760890702918400228408678466111295752716752945572287498851898059054349720578268307615208177223651729749161362107873117217496256216220054416891354529849958180920831144559600822833879176599236281851001379900323013983545460414874677871150255748380627225771447267970467572447805679352706675590497801306100594076907290230310728935859361046154999467728076711260048431578303731614395501632433793842826161315427802071300695790664279980014946164537964044777930513970293892733138150366208170416420863777940771115997511708304650077987579640245621293910887717867758815230844051712251237390642929009497977974348451230755172529159723817480268109877863088652566586141729935787542518138159704425866937215341311218209393975226661403760230897625600372003918596413469858968599890255874725260062019762175756594357931353204702661343821425559163030698080521550167182809975142524428213811584835966271493251256315165949061159608934874636933759131766583534460132195966505338825169666998089266294169170501124511997331806165507611184292929652075351594121974308301991525858230960169629840948844240503776521246682114786530351805808593267804550730565549459017203051611970507016557666944608025365508369372521889515517875096446659014230371180674759553091328621536053786972251542630761501770074508684987702833627760932064189302366530886670336340155594119445294867521679543561861555641415281576883181406512416891904918381410700198220360491245460627785167762059738170575728176911492432041391724182348214525117763089286507217909431627871387532911083059642995764666270142841886261302896241700711505133754214057342158267392795305806566362326304150172636620550802575440859049912283440713230264676760404534846766021709951679988173791235757443239994892251292795168517114946413712138728582470404684286989067528332200634924676758599003012007041632572723616160868018101237374862940226861804959063965701144534843324700005704626355344072383297978883159919689527959899443218401758265699303179067665555876086488465892754239724979656961306425834803101590468429088327216542532895149689621037935922717297036919888699009006719924723987193414658246545995962075350935538034254444432161196324985704302157579238020124013035211907660837861787853215335636520284266101112131738593849382852552848534577044555535875033363815829543527488711995671837440636430674490666694081150063570315879407037193583465110940029408895506097726785196985104207246811442347758496869214922204359675056347167861719166075589000926409420762726398705012627937714837244394278502759596962908182199559598171900803429486379645015257587456274849886300408660325528291881484884805340349453467477894886360677533649844343558268018973227256170082769033125493120432549934970480302462915977736822172196617862613439265199209248793590382392143269903187728734943233916009377394948331013829231952087169463466140821313296741620608904115997610624787456268109060795124588023825895151178392166582674846639641664171103074784348753400177264623647798816705697607560863807435609891620747218592876125053922634362879010027548187695150026139169228555160320401569767455825514745613324070030317187745115503645415298994562469257527288195035029582353355843206050022504657349154847414225882957824915280393423401879943228662158985348469807710975855310755185767634405372743907495701665026923593520551930540128336563605065462339054213795567899734757721431501929628935686696467756477832265520263710707174794929353433094496216559477316090768137282517951306558752615466356386999876703519017465800284476028454722406647777911215051730150588611590474201914403839391905320984698554601272870125774252640702567136929587992855648050840070047062294533378971358208373973863169324487771538248437069872869734685236809149771988685235685688974361403565624997245348221670205111557740532252208785290575394690771692433411279331231251591392165267790335901854372648275104019975449913442109097502876498849114022347682380030051008977382909158055042907812638432118061144526185199559129564957275877311215366723170892279666168128471373291428837944666805361425246097573169597662265756443983769510955610106535351047345248831501814752367801277082013324772278182073433361324166002444184669527024568608355622470180693277597201917244968400813110550892806936426734156191264033003956629003496380689306962962496534769064879788335827988952487979688394595427814037769862714936419275979070487548844661148360848841749192977146373008532692440561924431407569686231971287901172518535608203758204019354949549223695615675105214221134074951928949975636635315535738543538587132469185695539004145702917592152211230408871122728708148827682207500357912461375718920846948628984283482155055098836394430382876640424765390932148501882360825771868225327197087022850571606937071139467736906989880330777828997325528837861387250162811087996484246839867678521952768929767681641353826590647906503732338264356092503417398225587573575803091741979561021389609690475961774603559974785239793925562927381790123740749058995880973854661482244775465073527002568625864871493390777609301205583353605310199996308274396190256499469336335377432351792069014443771351736774257839737692549562162230349916742548280388317870047359841933813509622308835336685957955525736007815212885321931608864534308496912101434710945672383953149998569532706436372783868351053194311674547184144826279046313678457847107781120646414552642405754340378228647232439242512707667197228693340440637894400044637158150709115671207758711485406454316561859017594582020916093150787682936971530346147940322182078871429485919063944972391875139554874235473260227628145234384048094887811777429779411730386282948324131665941835318559682587839069117260313808719659235805419160024040123249177102011073619787027162495643157522259564917185081294362087910884943038644061869303231974861956127012906716434852790564560005129818399978294984908587434852887080948018807723938252935256614706570709411607135571959777494734654270104413777478343481867738433697908666543037523747466945680355513914350668352109275131601307264344795319885805184972521012315335431999508631052070478278403772097422697072310241103300515723177096510624198209046475250882002016094132357021874995512206991867141189267328021869753964831234151411012116877429078833279332027223459089479558819565297204727014834304532919026443922646863554083878410762114222905763737675407592258892245950812307082410997058059178208235354095587173430079178321536506539469209165493841381883612261216753790505171110096613343034213011946629364040868688847365835402668180180021566437277282603081407382920623492738311312484172329329950752992819729493904468024648022495287505495045241285265882154380821569516957876666313059456713418822477214728639742314192473982140285287447321612954217283117639675864517323648958845783885214971278539621609024667225573510494141183171421902357392598076574019440726267104807195711152728987977974145179903622622879258903453594002708214050763123448593785951598534568285521533251699322730071418605923218439015254313585780813195536403665050337441081623151836805432811231152657917204552868901984776634213286580926853642427425127585805840114689294592863137107983298867687690783446451869278986795662630477790451975784020630896259810154587529254758890982693469000690082481815201860669945364242820385231493434229959636915583872240236470724620317756472350194601407492177789186337677180885583181563197921475765757343521704010882184149924303355636634867422213373765111294724625259427798021588661212080840498663539521670479303232590442042858658454229903533688501730306973098981354329931887562858551017607309138441992745081272114183692094437782214995477180100728680025788104529176243918388000288272750110183409880330596349804749440788699874728581642648435840557504015505568731471805530612597077477321763767508904573648516039678417975029075524682897892283795935768864354300658883314227834096706877255734894975762018245008894499767110467413506424757198463727581908555111198894102566051151213499879271495127192153448038130860262999521978690674068498298669811599823276890402791369669155875883643081283402250658953461612495672260679258887485730013260232075198325011295367854522990148100784792315686557285211218430351283181300090529087130285508233740095951164566566516468985811549237689734179467014832625645034258341739604105017554215151216474718879862514505664901660417962355344442359281101771309283267000336671763767089113863882777747484025195136326278644821711182812765037386571415702211704083319040858378209963789577085872211383085571792936571891124089901427149072839166282831882214803295437510120636447327379294622217241269647379670031225039460877113347546979161003449754516254458957120804138929461292415370140172396717126274105784334578214132730000506586671241888815292463951922078558176314238278712977538845184933486023626024827851652496016278920800675298224500340638349900371962160502777327580313068503212287265339551730873074222518202514482333860248956105659579290242431700088302172052298792898460025524088056992402272729369330986816573327763083894586305269404171629129869853499115911496503958073690162753444546966654461700532186320340210969745516160418092215246616602461046044052957332159195724839393015960592714364791845113972710147209719863522716967136310154242908101257696824551902833038920592079913398174259104190781408671778864065488256578075232057217394714772958387306223094521288009450115702635705891461067921729876919845704573946958683354183981614729487015729923376657513129777899239721523433386760570375265226223861389273359052373377443202586060008863772679174167200112090531065103141132331854175548682219243131637615741408113444970801898354773804155257536415562186392049289799406098932031434327178663583569693092157255679978607152988925100089187016738686445407833923091267903372211144844275014807529477503847213013822553349588495534728506682312555533914040584875832674671705166476201688560752284227308896643496434523921713207442471625974364149682348170136758628126860173034437599808700150067523741100082192926284577920594344249356810134263726943223270488397574967073274717227306339332621452355465317442051001637818493478379250766566793782151666460113663225617765046998130183053825239176511462401757794379100332698419617461781920180315072506153370218479898339133279238854353697131430515061797107598601533614125565131684182662527153618315625467823645410545219875395740915390841604065195792351568355594343658439650043511517230081342680871304401066819689049057360828467340575455019791237393188076415110375885103056106884222681779767041075169690475098259780891366542767042681849606778591572315839250160915172998800996635488073207601072504859572436053266211066714998289861793460789348916494589650263650005321294055489114332813404564132148159987680647298676283379520963290907026774809359878699260551061037092626558773099833940063576045825721699813071749258252575689985761442588111335487459939366651932437183158528257290105154171503261662444061269789376104499012414471757673162018095869432894156044921618950457601090859794934756370036082241230858037502320868741207882260401036163140345684279988310724233673254346883777928286838406124153336421618153914952186915305546877052496147570700376655179934626151452396581589273671407840984418746291159006694606033496065352745848828488770119159518857088367386792520438897206803539505664268789584977510409619331175455394993992778308444221150391938127744264710624759584066581539862604913705383002701021054060053203165379972081731521291290019812043269712630693446780720018278356778371362624712774228245009820105327728161149943913815224298612232525409900501689295773332202881060508153130563763763959831757989639601863282247766998700616035435912350554905447174040432863709675098096133121500596380280393857771011509870133187932137877764535742643280251197373258751161194198066317109174489831743448793756289070751646066724124366687414757134873662259808161530748472068890720793455100641476342738320908903491555317049929492735452913193456290778551249052831313323020158140543020856867518794575877257898019431412852538610373081817767628894111148838613557976190423184522916379940099026316241127953190727227002308679313795130062959652687965206910542073695559991055258700058409094729303367321865594217729775216486330075273304259279059128575529769238238522756378492510331696633659969735836920994244241184883949742039426415262181813870851038615099222848109954533908061453338013541499968145758993295704920854505970182685944554808905939205369295574815002125502351939411538335005829800011517644268541478221358087097495851868200748984575097920950970646882507012350593931869333200197382188742554705279262687632048344692014278214409921851285244557320096720246165780040364597060980225637550675082285134616351515218905847317040606936882737905684706746943908810037946291935640532007143402967118247483955263661114333380576859709041636158360282706216286763766489486685715647483146456040891116076805028780856367728381789755809756796886203652098110773482408304576017593453495518279081541219152865727676649647611177973598307757596029563649427024469601757566857256616554403682015037051128254671136718199510956883178878288338963957166585864378974141099819557234307490487219371348811120792724179705931262681697008583646122498980154981125539792303499905837892237141504415637033188817220628648733218703577546616762335099449019066386473669929650690952293684527225246276806852885644633992868061240553505036921618583305939658636027279073271574170141249587445640822831151786649026118387802759597468896948350428328881052895678361833948007394398025874483390878142470342790175291474944246647580469616913627211395813186550032427134519401586438052349326671913929424770189790198279021096952376703743988282023543140901848754309359281147212509266138191167642386501535680999932648686966706756781436951813248255952023918778899533324580778690451135790485906013760000517608313467752387634316598783939654911066258744216262451901430240216660000844678957490518803158416318808618965524360810812669018580196920766217430227784330008936563782630385713364820498829112205062936828799083010727423198516843206948160429733717590641057448917673094174489788463381658346361033229736446957747058847184027392256977719456824645344051308236330746932234690078083249308985820522863193979411824878182362970992700209347494792691806236339803243329417451592509475100691287314793345334360153414084161057005809706231757646763946437099813274387926784908497861737495587012345993916036782418570881995704379517119373210547760526411486603472715346455974870390206444462945475520169723425581868494304455055400914654375202493934644791950641384714083505063014458513837269736186795211613705951655728528107611213707822233846182874567224092350204126690241422450027293493767994708554793057059172323114910432336662227649264702844365819436292062173758987021329662285633246927104314522662289668102525958972751350972049930074183279811465116265604932562843406349846358888550142349507099632734215395723332134599544001157887915035960592219742286276500852823214616063884051001166321816776103643521096689483533221074936828572597377628941582948675295524601712932984539156447005973763207174665748961125673302768467705260031204962051928172433928561164040480944649297291330597084196350295112462881093405291177082024116348340454657024653992380643710601646515136669020318377046309511936786857267758455663422139374043709414002450468850097958439536095728393457310995980067715822386413437929426580045018525119280917621656347497801166063451225449679161712246057595590908840025302347823647254014368604044075145029138182876957237568560936438118510840825334501605111387826526488347428003199523101855046634477889395639406737544087306361200249612884353293965060802456815965178379150922163122962560586975955660826976862129009482919297582748515078095057104519087614551532595432945347522480657246503018590912502259553975152499295723865765886301422446231194830600360391847834136884707213462164232295416960190078911385899116994664182337355721941181769235189439356338911798081444906550378430087591637778317897155950092469999208487699961191605323316709358323941970119005817394503220213372642595712701142489999107606180960426401020789109759003624067401647849091155192406352790521822782828792954539992611555239963581246289688755962439071699114699014175478183587985382075105371223794114097437269878587855157957489007804010889348251937109600636360678411253260720131932824378661929300947260610859203068151640495042290117199700488533192784853277432816644991641118784724730458447774045352147045422168912488053646663484961834013331623170559317336351999244042023457656761671816431016701307038788093200641823397478308441375092548145108385195973082552730966920214370305398000938852129272080975564195776320124560905017864536669515255935864070175962765227196182284926838229353658348066189206045722148838284232501942608072917639676670888583957093908350555071798461389851828286052773449951729555750151909562775873459833088178118181862908029455032406574545684562391486575627286992135654816726985724640516734962999843724005311732348642735593309737802101675665741442691314295503618540106655114159371196661339973367274284703863219270522632616611903620076396830449682583259139071528276687284484727608754793691498702141815879185193038977551831808182423911432136316975606181042116717633342158037293666572903630769685143071253479824409693350115072017776825618190609042270210023363447981640644456423229486507035472535615806144943756491993033486718679559921686508015683882492107594275462028025875702746217449553984140603729654957875681988226141500030105226955746989609895017618743759445933001436300838177827877990627775983312275384006913140800155790183979083437528362820169058469926134078949523404254601087151872905790332033103942945019612191800608485996377967181100889607124877415117372061324883404289167787339851776002156011737310372174198976704343664635712791515346635287814368429825864140219475171258595256502211185633266924445485653260166998753085596798008070145761771049440882325253001605185986458100028351394294005083944366062817974691282635450861837470077930009987732614792361165042251806378448952875640101749625207726943710997104657016955471883268611863601041645083254560845375228966808326471051292690783903750253101028310206568258786613410074025620482728219104346791983387643711904392739953927849265211884804996464018226572242594614215770361404993997887502300719328743487246678873107804726796850800546857368946140930140979976959529736660441303756551353263951565008403414085924662505158306297043152604037192660012195377987373993246031201505168975157254643888726198199693560038894083348449879128185975458154640475381926000309299232051167435181301663526761549244422750851139806128910864439394404814456007465430132701508306502595984904314167393587724684612643380529174179778658074673414220952320077944645960394634021796373641192394238688277064960083197748936924491374351586891915159223319075750416488857447679787297369901174164277151296034026458678174999166463058716304202032475613730333399640527486837450595049576257284766294266569349986058951081996251488878048264801685501675341143966923530397110457776010496822225049275479323945930344704400591871949711183965011387729530700984072693794213475257881637172717650006233933303790647071658190496199834276994047944455187618204892754673854734668358529467640024437994061541673162470715072333574151778506563743186671325424572539644333571682386744814829926942860648928197312527727461728398212008700649909480242995271652897816847132822972255081342964028679316560886885772563164514661996435725515953287151166825997123904448094344853879122537524163632749948315478485406740958011605509724440072895140388489489930628482647758078540342686289353254993473153417747405748727217491685055135475912511544333223056727091195586102904901483439576126402848158072458820499095832330370509056964509893324275095953082565806361775153896100645786812083249483759722604417562990362386069126795193862238462588647668268419231055248749114656138003074820780213251078237826833587388650876536823282449532322006964822270458353223961930935211201394455998713769766015625986625758959833098732542345147031420295501287612017263392756563815488683989089947793810479481138978829726149552855802169264328714789568155371839855186363227391963288438471617822331238517007373682550439201547118734510460174366640999575980335860056210528382924680923723608517507028693106169188271323945618166986130646071468041954035615846209088698764186466676214349923073769028049792117236406057697536775658082936668383034870419415618288858174441019933051117186433832321742117457930430456731255881045671031777936552518989675137457327170158046807453976296859789683450598839294790774578022412927684067563726386407221700017096107484774396164749924113728591757963922589537935081736467727419664809973110123352454976831300475375381706615232447620090798472477695694040792194304133069216496756710895249313829240373179092996522187133350502215237725634427938417526558097936359062667406069116225031723354758354065402035298571233700830564409808682810043298971309007766036757134160434686170190387410594232387086996694985770850518491723162372493704318948202527152145644644926316986153150813870948508834356736608355342146196296108653503507747649316552809290099445838861557289236350747948210091116997598126466034898082398363880260375895333371038534155687231049959553329127514805463398878862724598913405734823694830977401931721187192517990489815838268859795490519560840699265841536551010549690479031892746302806693973700876511934976793623541109577439808577296841211453911702879453958073875546138321870256608610757458448288757339573978067944134609983775739632791615452831726768003883152034683843754696284014241285402675301172925928843865283450198762605800155845486061448296295940429480670466309281276373236623825706407404898207463827724320614220277978843456123716036866653808230117181101405797354017330884984781969344002715018512307693471920481283744320619182623332082695615321953442367906937926088903635760760658789322135425744956356038770795192362708580079242725501525012545715347428070173723074127580413485413423316096352005380097840487741229627668083438443108284477830753741252768835127536692453149987869302730279584228857304052920454336680046686417582585441386743150256471185761696292503485073574394489637419905921699453570369938379481003701212793794093118174980829757167001583453597018082467191695870014260976501710380094682569270663629765159629174027869426389048775573583647268781976484928185503001507196612115862519177056781365176496853820699465186125703615846545944170639923088881270528925091835207398248208372150830878385358729334837390361726048538793928467266590587352004144732864930304049487704800982434701995759701588888407982165916192743294891168843826286497017750624116368487434905874581584522833674888434129388430586746550429270227666656289156209507406301753791058362333743642214570395847359154020441800115027772583570607463849711654405090212997781935091073815107698064092242159357346684885998425476148995108179605261637542880389721223068259339994113870366810733784682354604845117969344994365766096537252929446383566985659640501646120550011991324091838391140183672479159764618854655104424729043050776754853269202452287120126247020331158772885035816656604654404769996246784847871469964642879726485009288267000141733950466404102833421183076606662384243414767119036112157385045212926375439174538746245258780489091852460154315127348923600884580435785569849815779052886942405137117297682922857466548526731536524985836763187542558060891910480690783566075819153062758876785130017474854579602956632501673195086674624305919944712603001662465838198008750580564129941365821032864520085913642237926444219591137199920187709632258537113410953756409350848731185598810553023903818834587819171092104706272467350553085304379956327408825477113037471932547666047248348988082263955373311514809687127916893233965193420795225189176285417500578293481880782303122907732797644940430914930886184275842156524183261364736482502491053655706465513447693275855857863304942528024421208904220950614697865993907593705647339569038979268181256900852411696253641526823657235258731134165143131387649185933082760894034589382550258586917271492393760231131578452416566465735945797036098443779067303972977028748263135383268262094918037464638589342157739769685731371816912065378350423296856165393897453175349090448867469664955598901039665600495131054552115376680022274628439887369711649234777756390406850689100006369023051310708699774277595624022972091552668258420283691887931200096620608959720454982698939635981829065600207903649065223598020278042124095252709352371805052793432105716047399741022781888681725242493458172946495791318511130839266437382452894928354355859603348124212467829963855448290526098787782986139359174729844876957024265298991020748230158591178441352519547374060640010561533403798480805640520422524939210737746243497160950735848818148623757603970073341370716725258908938325541889065208639318315697799015296365391666097041502510423482780667663152866992067692866905340011529287869008141197810879140485967856690881945712886974472382348082664330428451802862046686710721033189142741095166796619282248273770997610466259837341108241835414495371612593625228394125443690555647666003655595596592109597674731209133014514196615334610038336624774290076854359322316519321235472813461404225678479648805614425319897781250025883932381831036762292912997484084324380645367325178609517550001966399540504106133754986048213142254725265403556775134687331119231109369809371567424335907861393020066836205107970356153862233923185699380521078727077062111022554236660476626011931575764362349817492791149218649064614289835717585465282157601570395430580054315182102378577836026971312104600855036718314719505423648295700643306877376277475751585433715103877500666674092394086108443020721361353666056382376317873180907261565977268972097077486522524051649672801914587526551709666903273683766951614996161375690076233845090981916187366562509712246715125551520814664309839079841387738224463210611851406031562372129882922463115187364560577946672936842365394079413927019909582487897993587461902888262569158782597247713467438356920069818855012674188342178083896770900350419451062868588226718500294690169872574747193170173449819902914625909674272202761314625758659681091437285878575515050498128180544660533837252947460034858831928319330447810355773928600209549383274054745126690016319190061760836918320442549607491459260932785666425954589855105588835978314382730516052059067480214050305015783334950056199144144921426264186845841566827365728538416531337926859107145635556238814178565337935484194871540672081411817607241203127021175353075194024600398384493185052467563375851758044537136040477614285088664075659002401378559468533348076633319792088238917452082739270265727480940666259961094242827479605542921789163037543947441622537121119540845809881729813115270778195436418237368929223675241345810163554516785325120837088899207949192903648361428273063198301159516902622405255589647701516213595040044621205564982882432997348612711837363347494407494883785557892681922002865303505860492995655845055156976769830513218310796982846546416578529315982658464213799587354992145529158224365121661638609549484255459393197447084191867103079302636210415221602060251406855067620376201596933079929069040147207539294135309665168894220143157363066261179637097437511649576466463128891404462328247193926244095898563711890644166257723216556732104872839295370551992895244394175445419383049699507057650466116976609729362294433306520232396682910974143438557581111818507547559570452810073993657243349023893300660969870786524580396285296700848490510528145703082096956755168046327443578002827315968318153355685093050481274759372907676483972495209135913443430059696585993720383548815669513069913940565084953995836650048073897524628799940395221235910154762184115965985836407255002914665262959719115350123200606392690314004176807595168242035289108201596316208844018022715681356583439825827386086257000270641225752106366705169423041322718233987470997177328486574199616325113902678440771473944411691419928060666881125255186888568906110841044939792794208616877146372130675116190262709396763799067496801262298519644408290248738855865214717155864962200838590611256212901229959133553428222330725467080899859874506993129970275349742216678528637594113671259958628788160452599684696243264026844481662516689174484148383177185368881897225044116758523925506312324863766198201678595389581085090071711218056352248948123369724792194959101680633416601022475327633932934942289726664250379178503374746542201007277168581232677364777376247445534029271574842389071271299384830541363148167285517185900599713014145346292878133253950851633926180998747090617059082271719213672258439536858516875233167250727054417486445516431032440816741491864066020001969426050451872151982007078938909643224762735331501124769683863325629833567589276179225774455773691145368878513395002166204886302473256785079354516862845715183566246763622301650830596618164746409198140719458792587581479823810714565890277141605252717090175948785804914469234372211878582498998009748150761928855600110001916944294670706128828381305923123011245423703115690946193411656925194695887492663722214279343363724418611224633578685090592009244108272775550001737131053415694339194090114024123138452270587216113876909706683301646076977295612982041439844735709761334179001375379549000762270686645838006098000633652663891356160983777616993040999660406946026146120289499056614592649100792433819341257117767179764120484639669865063162345354561271037593981029869646785832426720210933915831469990043224682246914493929125209746422129542835303836631210903611029776475228865059375210005445863936428160888302969957344013056715771522123054974461534976040036417576144863157325900256565225181549170439356858922527719989681982203900566915567027521373461055919551974068148347707219468933783351524684245481753343878738916868417127314856873234317065756038442625509651670680742129910838981941108457581934544669379915979860742503355091548059877324475642199751660310017634225527563363710602448520540076464832488962359106593896378273457749620371328280392637818385710780668330003104812929621688284098314165968464545945700549419369550969534805045190965294888270419839377634877808810220313158828256637099025175869579269772415733824014247585077266942713221695722993826532209046510997946744137684910099819121523470514227947550344058100198974769253392983561141673370864772493411677138326253915295747695257055666616832040066852082287889428542244744656915277507432778351196612562662242281725514361740568445812655084889778392822123085249341309537513995896955746261751604322602829925039326349272369545503259287322604098756785271846541616293483632097127768262869289192542654139754592728783458542664308457618958947712504837903822774044226904813594952571529886114045252996973012059520851213076558121813199939459074296631656332777896030809733429386200063214447121280457559943031651322287223114778442586941106444778743756053634649966757713484497716511388023088240631611770959006505596886463411679897111401325369037972288547661838832201913687117732757205982065025931309524875651417039484555632897256673696335103259460131671506224222418479993166278638745435928542553132016347959323597278947509205555830495407744439560907613790535260002276596554316288627600905528652201328307516060625353108585652095879554564131785017055857241355346670382689608861553478424744052018248137008081021034661567698756624400295021016148769110024895828269137755291332530301579730415118869037802302798356594925270533072239462810102731466899356440087760970252040206681047091456693615163277148448898218780944950347772275056782471673117682783028494491573027680117679307872223076194405949746785262729250071312919455444707695311765130502150266476060311233486483156389083658401040768795202966929075117590588413263760938563817555043896725694017285009710815049231253864227894623799170430227381465456526659001536759832095792566072419456915024819580034951510877026319209094707489190274928452205449267152383629411265058052032564351357561171790699309484747459552402157809310271412562840183445626150055096586944823667031556965126606106013364547240129899345942036987153277292767082818352879389972644278163717971333496362213021688341455226679088335462934806153369071092973765341016566003591159347358470489128017404601450661173824377873745437759025639803481196630522597047578140595503943634853064406609817740816885607301665278170751666991107608603148405998463088867378743995762336025574177075525488368279172796418736056499114811091911286354261801649154066170419474662067764358936055347537829074993711955130834445850600152875384987020376389878261858504302226935097788455877195703341385953285170781650216613654309324772909183527328875485098545672588482396984000834007227241307415288072072111675666161414814084456484117513533284085065384559541146449820804064957481598608020047354984884107921432088253955290026983851517183466344272673741709871787970961627097626461055157821872414779262310184425819433433657812314611148395935649005651265655188973047553726870149665080489347861506133828764348980099647811370539184437089825093238968243917342611570518409132972459884000843142345829051845405908873488901806841510200304231773285496808517370543841126998846574555432124026417857816256153317980297137329921455242497916952280852912379499873932041480564788127440327175685262385208509942616081937951727473931268225055349314589603834635200503825119755879030020953602648219747772407060539971871498988040534151696254337423352220071865415377347041353877850461338132484426851158687904014532274538385752073183505675562077218300165473476470547251894789772368996137706124341395433450464778751492783358211592218551124568968435640455993453816160690032841044571595865980635496228597569512585160632804921650918229808054191275232191311981616964680177690824738860594276190898359810642706530163349134613229608099552916017554606380432332378102205221439722134339439965835410010923732206872295487747718219338239279020614835157638954240878380047571427545364954800993225302138205474166811724022602889578602386182196632636802734665057585422533087499351243345753031014046584313773952974818169052261745707771481688167585943719837545533426370451307697357153457815493234173767115570020157761110426347215320316636716380533189920026536566073933113507564177878879287912131893307183536074473328814738094247282403514421821185308570190166745940686259523698755141089858962054338065641118384534592229539815550893550822736073295844035499814033880010072839649897311726244641999163087706136457356929676044600620267220020778419214783927506838303339600964875540619631850152741812617903351474063567992542918541693382100860567888784953329445273847960300083767334569466408201019648574847973153283101858935869742700202149048310946315691682526765101749029691947844517486851466973060116208527416555410230496595917229953026119134378744452760780194085606005375620909592718224141494927121565286472424409846251562133694979974564812772258075663032792621914324610740207255378838746306469708135545640629202231750106936049361140015280375898364866447302358250824591541181947554503398745994765475187160433945120196077427143720625524851270327708921840956496597455542381824757506039131129724140869749198312736999515106814246612042842499790195699682038804601704472353946219768326916344814199947795822949591190941152038753350349308358446165576812010122986132868335708160709073079035529999724685103765711912449222627074257677335775221041178725633931433287181170553768342507797151189451558491988853817361682466716837231468313391666689924739750118758172991956081145529380268950696511176813923978531290710160283665502292152550958297960073046705666972001654953777074583613434591916321341129468807668509291910231253006809603771173496525721646558853722213148157637659905892021901359006528693219586901017459556625994638281906331636928436746448593466831789639834900129314674638595981892589962174599867051341128049681894098635292014776645757944087479999191947504107305966086044145010442213778313361934338449815536149733367017338608058193587389947738028313109602524420159305792441311015244219733294660600297706958285311581990495309742600513652839983757077546815188476332816592653020753707958459181239175440242152666956249723806587749180654241556411450259049572424021461216385506463974559932046539993696806021261260081893879491511231345327221091968311455752231490375531502689294973461052514916670025829218421285850329352903896169587362577885244312017273150673428743298001310355066540553224727615322472369581010797554298551605012232334182816254153557608227070457654165737929754001894749723640153317525201576774043033173486566546309234310262261252078234909535570523104544937836745926654061221478403132100538851152287468974184552037787194056170504424222191322659159320268341180636517165368193909079246602793887705758625288963019546807847717510794579771497447883117287134324326410382534637967411855391965796088061423771144810227859333382721682080414555051729922653424435459680217446857931198690218715006359792811789198149364667467567181180499329494276862106348473159284962970808870610404444125426732094544035173412564907903755388476184603552427495948146883863598585207960026375660457901965248203170927098627382180684571951803468455082470938110820003735591968425143811020097899519053720796554389389239910101044732893474170645424016796773239274373225840729830136440555735708361441813086261645530120072338343975040519721685202007086403827171941218266550462958970645920192918859739734879490354501682299240408090328778907885641642247616914532766282046967752045274961802136191975671755399812414046189123656991725945080334855272810839622226044471001806914380644450305684978384434803177447215187682945971717844281834303797237354441612828760329252839433949259424193659273418384922074349406354425402952665934498195771348969418805769558954033872190507933145260741357900692210521485480799622823582608935063994560124202952192398112068686579120699563903312061659327686415577617842300346026680164964487518813487212369601842876880723928325158677289485272580738087349767307356113909512330355211015210383807087578437840334296628400350748197245590051419995437291493526050754514645628188446997763323511206593865293465078679302548940503345336042841651752197853197054418954188504869068401890479187719952140212052589773973229278759276728764390335625514654711065314479306500111018081487044053762005262082379661742878892345001136894688254762381871568837948769367982718100344626005790237587767975875382983840495403493414195501008671900500003880152234790622922838193378539356054240422681009201418336730289900001091378644120782999349512568875705029252698057018441399821867509864553272612945015700331936621706209552356653765266578821301207533220064834295169957469292422149304784629594128019029437305997265853565167006027872721600033179062114430988498981641082765375460974738089079345294828642232723253679786920271888005009190589456824231637607612798709418077600624603011470976520955721864139063875607317715945307653976594778077019826453707546740877760571389802407867856192011918542287153840719124389132167557747309380011676584464972252724314346171798280624303729158319564126937119158561343259954940128442887190099866139874008191335963638131901923308246370543009193417842843652692146637488370899757652889439060809718202020758444405360732373783587435526524789966993563852209945549164580917917083051521694538495499762314268204096394833899107055134458019023418035975937169883979820630569564648957425816630536015963617200786198289842774453503197748044176019835094824798968463638530630522854971822228674470515963121275997178133274458500662253396254950337120461061802113191872011267611662089531017854030745332416247814135417894787664664023591279636086211534670259406164702396559161952455124928910537302586816883303301319232820849389129221995771814874222548319925988415579606580458281512531286551190492245961348456033695400006810216789804896329769399535907973408626703144027798872270033727465607709717593661592943496504349237399631330388858925445579330258757811926867377537657618618193545579238875605519344966223500715206269566063228729913197298035312263942778577113964858517340103672367104474241813499259849319560173145087918063674691405935686604598325469237715566178271215421189042861452555342076639106506216620378122428544676797991726646838468428625576708568178920239382877989763609043019827277796534179929839444361419542573287464243000143181695038020644171509091442400566820224981195742490110648365675183085057516957809547678176436994014898077365655629602502241167378698015171950951395337787541793581288592495860346507729600606111880679557947383610275430101653221420432980364831667378614536091193669017282489172539153610475415718121301514405355760818220279464737681968389883594975289059722342775829051509703833050010541321339300932707472810866365880713786467327701371337573550691541302974669567203076622305161885914023801320589456745981584387934464359984400838670885441030356776867033632078017610465958434183545569168079564513002001122405900054758570531508017032809433904159007639507271749269418170577772131371977594087142669372925354471735132360769345321789711303852536079223870305142415735455574227998409162797815390965841304460422586627993128191717140868489844292910154251988303076591759698955711355652305341341724404689997937374304160279303958484193861088733262895955220621047435236136638252916695029464349405337855448598338626245566213353719673318339150639286752831730275257443159541784730624818528220160816272585459277707370849146321623375186349194369099048867882175335264501093111608651672429286981398571232288507889536969159304384698615368160567289446628319514029025391678060200081500023291814673805493597333892814993953295725880447417868463455393891660664975648962951473258796068347477137983888717026663175788637484610557601173218659527548717528708128755931819849127172278366918546427427235881042517837400315390582591834323171495669614610847575231465811486287744743789810155942508761676855165851433834235410128430814936670603410049630554049978976270218981964132031305605840316192485339948295149859508437650903079894820628466963734939743444016226294579385310453486910985697207529617757499012910732901757992200996150874879810660330629231281602306703716774968777344608291636457491891780116916263180912853395507292400716276840244367682283497155891173431992753609714190684560554731835885233075168000436688611224751434334310377744869835646431086736421504389968580366880130736820872857047573188323364161928568190670945763626247139972886946713965644231061855836144420872626797550792064415057196710318552811994772443927299719854718262489135751723288296825776192857059118515070940677358644126505585352747864855331299773861160301478698107596450849769105853815694845816616118250668608825633887523848082828704607741290310709882640343514825067382048774173659794962769861759118290753652650563185677639291017295892385657172255129435277318502408643780529663213731905616547762517707636806463527383699832676133174640604666651526625397173691611188571442416649970315036191532733306179889843614072208253949282322989414695552212843297478350632299606143923752477227535870805795576465230917469004324644863048576544005015995285468360379357605174784123936570290629284256288398322565557169018149036589945567577102192363331754186159488897592629903277193664639193595373340478354008862392988528036090816808552412168045523318003281543881434383031145609412176660154183086148362741272499716730041561875941838900130986932972719541676437277546339793876449582814078015793055073078751613387661073386649849279480703913561516334644415599106810588497270466627859179697149820607357936243941139222775444643227347790986152418185145992603747391438450009202523619904187637913125328221112926297309910334559431811551887370603989454762630893087292427363321529010290000899116860390151132881958404888150370181420750138035534459195299931546215505788235507333825453656621533241085934590841844897080244991748302490691799906073455065484088913397285928845596077789006449790002436878628783658614483024445903556114426629124911612147599906211920786830690408965166461800705760190926214044645109891032785734508517573777380487610313688613139064417457985411367619241356485373508723576901662294248299051036785971026297219376632661850996034715756170248484217081408954069874450323222727087259480965690053195843615137827446719586864513893198986568604924231886861439523952447624854931525833958980898509985482801736258340703875426282711248257928290200213876091393022041160979309234978061244413602479030203000089371740918563878984947697829063123694292953492405379203867484088103330452185129818711786891025956860409558960169659974991384146836346264859637801844106059708966596852179592607741606324679644155003522413107622472835966486724484674361340091823202557008103736144171938584247567849601370136887183556012109347915540256848445960752870836493193018144473053474969956951593923015477759953176790350553715460125695523514480527323015332480443712561409599768242936753220822286833104933876803000866134517044498395247540798612150586293457452217171257686677998980441998335850438303418523698073028186901902051441304861701360854423183938770535129443410055891230258480016836896307518128538580914070621268947764456529707780962449512074990172768227096501500815761533933646490721975238706234754715272995006141072511069588525811303438652242804545752995786370654720809538436180212214134724867688990496384216437817325116611026769207651063573236317197616208545110832924673463007286415633055607543622862888056231962414874276719405969771690367506535724752777416407019362001957308584434217669938369969981392490606811754453938369262849152568227046770194301730379542379051804951320608713786124631145374309549997448700174522508204396073287433783227374887432689296368713948633466618985748088709043254381694061842090137445360428474083812274022595865706922462832166480991955827009552402470123522514806575969175893517730587138005955278074928352078308066613973369836374610983504936466928554544758848769179068442634613686200609226647589877553039650228921646391041150198298823205426106369405927916902689743790202648325874755777363569638047358565513434964769489042862994705160326228134649105452597223985795581348190727050632960568732640745782964444711762322371307234707002373910216924278246149514799916678319200154365711542182258735292200628892303012785506979002833055801481348943070649399636824464544251504927614694428072161443882830946202798978912419109860063074629465254926733906599911259954496143205309023804566883765478778640468161612011936619598049537267546327131598944997871462719840508811231159110417026730893856984035732043555536012220146127321494442637382100416315066195042108902701865925742218350027131435475623207871527619257506189774652338099810629201787267930135976039628507993193202888180278944829273014552142615728144873364246998999845945691603373876604465636921237616891268985406517587969866752962281882683379581178330820121444808232746430172950031963658275625387883739253086525743211418571365018018228098732572869384958132579513871615231826504781270002950230073804872601154699147298950862532436633112470642609686557492380760274277929914634097297691436718348359192142672261869784834121036047876679707866908795857437276816128821930106404369589504288424261276640218629393780464073688933874608214610844879576938140252895364172044611355193919894973718817905484971769816273904912675326608611694260978847078282818461019545084249118539267261749243022295132441730342202698597518915500067538507227925598673056553755012612251426950299579244513149241206460886947133931282023282713477348169152440887260330192096073623932182207216512797663841599919204439159493645227851496886007896176586909420579436786272722514413805726773588185823409313728898940387085543614983526516091422967922239177523078859071291791548537870070079604151960961679922473217491738458838043286415570636241712984973003997575025356477699790185666239577551315850928856161354363189425923815338787964018312293098468707420895458203301171244506619973694403430226148391478795841753689246964636953066479853190456456180769638868546235330469795394377786195388795940684896784464421407530613209548467028766422331325547270700780599932493106001762619622380891130594521744041080824325995975011934597241330571923601037532516125100482404214557535656663656900741870311034817454609148513981835380634231944640879005919959445700572349875323450494214355696333083685288399691583475668257809606635683965695468205891615074705130980199602224850201327944719435791802253699499533807046362223263680312070294509791280172134824427723960727090577339592441559035732794435570241375536221553562290948945370118533515818085207018631967807857056374935257923122024963293876333336727540443454431897575858272826883121830423506077441188301282576428139682844075546960081113003704049695210747781384099382995169108307406255167744366498426938904952600913893932747908033447481080422590068710729788746766982751189750525830386679500945889425504040133602386393925937603176165572048336196075955187092289473864455641599755471427322649368350536680182792608163412911947346988411694126513141491589347815879077193098333395082115218310326756819534782738473909572756924011411612910357353940561509872822983909409665273978889872324267144635458043883531177936388285876884235518601438877735610476017991026018709691206649530713153061853204103714991302642297074628192488671222466118980611927754243357229323632391364530226298150665355001611588870837991516489212002830565981001328189051327249186652566876162573658593472517997884279321669652276686510595944032779246820404482994146882159173348313876200310163782983967651788980856343512010145632149462548768953850770014651129022389671967003848735450028375779993495077854205602475862263233822940117526429890285528173201407058983796900089623450406596805752611054836251193920900641172361197923531231641068127698864575794255018032012361009765568507190533876673209940430759156817528997145686668438190139652216136114974617660977056626377261393034966839129533535763521661329107976032926186480400099665202599402581263559701628152123958838553253745578507221709981964720672297032114910173961571455954619149430921932801843679886067105002780334055095189420274292341650676119273674112617105824060665599589874763470280074016754453371010299825127100556152603162342204649633693454307854169887790529472472391010668077466909893391148386037416083224577242064445130211784457606944741634021704474299578002908091357618290150116302650856729677438537438468591597529940597231433089451603535564487257568501358526627983143295779645160206917594924400485364257849878841032982521642930731536997529400825099941460697775415843541456331371031169054793481894229436394492469422225574610606180087887607372730919842061767206532263118081651340198173721790291033260925282649671718834176162292447174926545659083803696958812994309913240917088257266379886127799122685585112298208279254117047842804700648708464745654125654913582955952896105728631108454998599235110120689331592728223461416048683478794610573702403411814951357044585269526590200404420171277145183263100256418996406138826260157044713536322555753017299842399093281238804856681801855281208824738738022925256529647007099528079068819513024582686527336495508374451554032576676895338508968149171725548372582143435001653339735402273809464204777883578034961655583076714613693669767492193198185127312904412935725128259564073562029935257193943783634570302476762322944999875617672674277291044727218766471020855811423886567155979106673501306037166535336689787851564909629572697124177725382462327203740237025354118270761895123187372816218228987300951980399173961719438926429450132998417015773311112441746313473546572390101338502082163397893572799316858159230642938936522907341921429271102046507798168381747191847677539062550138739112662777506853826103405485300422270328099448603334861517603518692137964460104386261501947432163320546315012201352352157812833282426726078433971461388093881685436655213929958697052962300527585243437458787993759276054524905238366686002169356283686358687165805854372797937017584060234626963470068401447420916058851820940767628296345112144004766766894354710844864504825131112575803014816130148115749780437353712848422363662819125287603951714447694287902040555502643734970073450722182817891378431118996223569073681615363632508329286115929825021955616922887782374847269863136449507698276388860779079464839932689179014345248533213837288302478748093611015629161792956870342207761095433698987828772518663842354472656410921507030547151441680621282562013335332878953573261222851662293932373367565435806927388035277254489470471246519582683437447196905687568061997590611630719553044719094787571056611368642400854502305909547920035562522926098515935924977203765858671744048084611227198513623443127902489382292887300443701255768802262122906933140197306249524636022210252379529468151289964622698123242908257373570960242304383374083946389621087461826409167513600222422345319680211254624937050837159558295850514962793446011394434512921282370254048202329692703486143202370088718589824747439164987888327787814575821112129133938931773814157677052500197495990836662976057334213257299125779539179262796060506460518059145119416143299127980540558511450837978937274161198702533373888744591151316912920992419473707205700512857812773492390518843598468540803884930098400818506124085746049988784513107016560221346295163208655429483584060768310282483210485751130382706720708845428542722786281829446931662439021361494468923894626029236589720956595942452360234402179580289822416532929090935365898422016207790292017312149891322487933432340360853777450276959495494423012393508497610050772056675417652207852606113414933647835997988903813873919515692670482988041737939189167039545818123117507332049191547801668870735579298224486610037097798839674365469297456408490066849771348680372417872750231336866987309612319066237393082431358691917374148586655942518347225335208333199354401195749231352558554764100527339933614103047659611086203142394217000313609419147309741420907488786369220225552286840313032205917450759664030888512375183521200314295578358863901125292848609371426368636292140106085045055418890136023705289689502270506516113404685767561894354777369183656589084679560968536336573334180315423896962456335014004066637698711030439232410323366788186580138286665770101239208099255710413831212227069927255559438317188915134192664586624135228865531547583724939934421336966144078182163602057321497177232421089734600954209936256656170108267395596624470966991567070844899410699508622865033451459570699556165598554400461096391872237252383560365908848591939783432830240568075387169381414648074803365423386490554973586083678924292795434280720720134650185117332543075056810412042124248657291433988040579351042188568916413162726869112221863537612408530312342826005284823203442966174013172056770566627354995461081523835165436839374177570381038166354452455626303153567990062337089693454840473353874761946647829305658579025670696945811064480899444875096033253675897349747915498542779138690569021557084893352506770411365198313462702552952315205119686408596388103012212173523128628356988991485385423901972145122902573230189850427686782937263653105062480378252175774190866714045671467874491817766418559410181663050519058032241573597913170485777177801976610327963392557085701531122083211665205763722831520276726864943980022793855840537124188412632726884404232001920333954292789262989276094470136885186174432248489902467745643756399306996029744780143946528328627242636982673631151532118127149009132658512215034317454359489875362043675830125821497978959977663502196312589942368606250830304612607300244430228500542099412520719966820547379827384595155853715335015646612055572548766590827633665424182174832943671895145487056567566997072870565888209791340670347332205577170473429779154774486368084569708715181085237176568350264257727140368990797297084945154195424070727426052275515571274220440549094345223592846501771459248020453487874093813660504211384240676805511092399989241009178697724501392699790905114689480701583134852301685329034322611469037894248523695209504762374820403881626557751339713201668136977045496722201339159454187201598540069861991055108770385489269628482004989525656007494848975774409942664092787504974023430602889902822858726953232097135031040816280362010103426919727908684382603025158493013128621988045531413496914906127509233557101482841092226551864173753844821170512877277434770656557631846368706546169403683074414410223123947336031148248592560692714959760198230379391364563040787218005883503476479535357756815089154755500351254856938186495860734097909758512950113324419582615587210771293122556862442170041205514372708311837050806464825899279090345459571057539235845071425099341180624514521576679711242072081400442144060433420283308999599079551482953523593303115919485569065623445491050589326462958699786966254437243372010379062629243234109369742984686337651718839199049328829438984697902009927950000291165660437291783384320740750170793621553954968373174711205040629215444604668319963913602213349970452006279019568561958280349553191912533875096077285012159815582748417291046884958943289548110591746930944352686441110941468909744675990619204084128499460551013026429465659150180393205281135692888973331762199526768501630586095019778333903604363823066903101179386421131978204814645621901510900591915109011989380794442503443093556890037622086450090644278165272889299747444368397446276006985700446364374416515615892002895375485397456331370747006017015184332904575175447678085564092583338028185452045674821400934552336287140228185890003911451049444580472271843308523104402185129382366086739003843115747726468090876212338517343081760849478579044653942020056048758525160570271823569066535534100694289639956439214702549636192638933604296629951677448010936046010635995871651224345265117725531140163513392516890852463538361775738570189320554324994554217762245276113042579068359469620783388262051809150043794146629348777699884358771049272814487422055737154289822062162202245470461384497265797470087884243678369456890567024745241288992931683612267428268702870416144383483955339121996030939982561495911563381611436825996127923433728778481105212705521729827969437180063476017891876584062056119438691470090969628294334737971751440233197911732600678967708227681912371956785740716546359660347452283482402131519629286981302975242500492671660935307279720433775018257412072972813180524863545790522889926316486008476145890126131187031190386283578956422282750281676888000569614747962453720963455575755076263067775541373119650750285797900196395380287052679748535829984938370019322412277407540549847016170767403342148230554452133963491236942691583717610922380294218387935136511525930457473648668849882236474913199500928255170978589563266054186488873475009806871893905435764949903474855124948888210735355239210201315263634858112988795992368069950929364797490664342547601167865937097830929505579927532121233182301450003791933274978332581536277718172719958345553276963717891067462286748395751383242138349799844926651348661443694390459254249723690792978301645623476633827195990799227606475586160437167290572152202857850424377666560959080868761613008616107700022508092269779638224794699022483986881828704858409030621294109083387380176709388897284623473112362295671730111214758056495449570684871570955324379100852261607431586912654201717922954273726042398549032395853617897027996187785804248596179148208141772436767179569578275837450798534804139383938997851651248671902683103287821535662800437678219298725848223586315248458164981546037173995201757414417820178415780243509238659674635592985796615637392026718633079289132128990659749086317257125887189487389161971202273323827695055739472012978450039461381252019553245085332551578025338579683626046067546988412264759233667771215081478829491012058511750306625487805814976119772737123078294877671658717391605276553856662623087494416177573824530868364612870480772329852966009527094562762441652898036813129680621472264225582597433515497683586760162214512954402376598726217670256666328289398494200611668741098752268382277085038701918440819397128777216572016108002990148035837961242597928548670785427447421977056480810435945614287104241588981025598389652655355718971213449302932391802058628590572828617321320897005751249510682055350967254768074673755808092480318866279279326915813657665563136099449742407866021862072664572128826103251778551035706102777824333260025353592144876866764139992529402365479276053497224944218608933594044596581858939433241896865263641747363862541922345466501590974649737907583025439283207461545934655805289391322758336165940539440510660587648429331096427793614563975202364988957086395730909760518932733472472545978862821140662857438304414813060809178988466263309400254007020417288935893957656455123092159176250130854336132098410922084608166543555819810771884964847116346813073153498240434227196948485656472110014680456824047385633795654760905718654444013535460592144884136575201091646052277747775663122850301936545079653289440398413391235370583166982510320564736251508370586914715615271940994813092090731133836185177820609145315851219331056607310326119428442098000863020879473680410727188887807444967308814793978947160575192269268906599460264242199234904738259169711569130612374103300766103676563155587231144170438618242904226069530229471374144911054718210277180392486048037592527376677353724983170761669710883963988336273986012388248106383420445522380512623518628110618240008404996560532135532255485344563276407394954573866004486688043970807653117541643496382989498441837387450357003826681541139204899434689807327079741184599368911204885425565844150478445226953408494353123105222833519938287063440100583357135340408983696046980811974069854256576843780019696449773570836599833054243582886230124447534020449322900767582688379028498571646244208074394418437426925168702213546066020477887903615411106391810696632422713104564082631494789897485801712872252875469364778805847910965556901793738112050653017907069292891903454675267810458141553569786223015271021854689525268931941135478673173574554722722267288995793555285592469748754709059598591086825243691898730787510775013982160658286640356746955587102283807282922034638548207587755951496866387252683651589786901335104837411373111550432709639207248067044051187538028202382159619800878020540334282897853438030517383447478577612665357263503522972549767964894259970463441325283557324716293937823083304101862179368419644911527811106863734096695604445610682740992554840338123068338753727388881364121880362346000595170796155749511509870140682494593179310448585866468760875942999916960775944451368786928661911823362830011425615170355245884163989285629437782818032637147636861212079528668825692103113830718322809926823577539287918427108499894853164951484823761735471925659704274694432049924795503973682281937609403395309278469885010339353291276046296944870323574032580698225071733521962180886629991565385183304905784360509361734519310199469537981032868616887396403806118794709479095406073065930093048497924931840634127296333143429730488588326544340384012855969842349203579194543331446339596690431220225503795261042606914788686412118968714197058828786327907991158337447826195291278484355935957747787527805821495527419996279228570343031769476483957146329895041965929467057789791627956875084312732511790029345190451512183291468524674452479672894383177165015119819763861992712315728948435177884498382452085072976266948226708019548204947929471674028057961711226647763853104382893935199960349681202544371932969711513512243227562001603363816678829436353661916408795710798862497203781576319846650102426971220595393554254775159512727919348930521756481089587491581127853799722538286362336038270788290499076465221127226072713295263997476304616043521394287077151921403494449185587022378602843413810014154567221820161503998250540912782415792078671781279990849832269729074511019907885919974940324431086532564676419342776154823356997946100235747141413326414107238972354496512518942993922607958494419683075623116181146890841234262661932417705922003928280597963699385198947818747593386374301586618239994052453575256655393088127361793134954499992329520301079769887851979918389605723923544261749951831707767025114701086514348211922184750685218881416057671023786467714446803274742542119508388057590315015152226205367135438434031869049500086610732913912368926450212997659175494635177374371752264029743538814768403093135477658323209064007462647393435296581130199353609421933678754252972582132455344745892118131498840834473980460357150237494624663156241818974502610058420450619289620458673094296744183763901155512989151682599581195098822126474157100883941413793359400195508420709689554767356230681975728683094132495309957901886771320132568303994728545618784671759583451449983823439133048247554698764993716945655422047580656113292959700122621245183298243298463524800384969749357839513844702939967894133263152020725353763500464701440722663763576848210401311434686903788339213383203346941177823833591619406654013633311371176975401836252322577911956247974759679771061602516718066357917935767303328731137193755598469569445247918269470728014174975271605941699501944322459007309211192656787052033529929623705022702790816384023072932400062220933118730711852465431165571745581976663962338023094274005168253314275799577365910508721804705699441270166941764082754863103296226648386667823018500135652268939865471073312468478233626322018828773588672587395183888921910735754238954789927179065613433328989495334236536902940791112655344824053471762115984559575402285024642263007518562054754973933113890867853035602586315961743554497374102242379978761592836057238008319994089269919814573678769207877854009836780817569131340510861742356074100177691086364879181261211616973434275005721338998630016364678928083348573141564456162551345911232343919455358274064675569298813609093035870204506549422435104088907618839438003868567442074089121453582540909405704184834176674814338492400482577098840370507056992430592389921423877091625106909824136843071790130067829692763775090306670404509859188739782606043425643853094010227983885522500995390973204367958444711250607202985254313993577202692106512041405870085593837551484310800286722604990130667365872945872246570553821692960372734310475700614468383165921247994927599533591791328297060705793464211438372318118256332748105257137980749356715411736037833366417114815078816088949855723112616215631809409658154939861040687102374810757040825119678659000539628467817391878885038016074443854630445566528734174358203354172057382702402891825344626027821026944713755886683150386437015711185420308805881174589076592719431449698602600689543334528558334253798854524176890538520320925879744132607101692074760739200027301742312293967415749356835881815128704180716676032717055281290578095699552186896857284734627396226232657248179579605887638233904313017851289146831216848972597399772852828065102448849147589572216513986354278961595587577849392124945882846200018509443958100154707608879818481847507533025852043169980175967851420364356174135521198461574583256382243279341244463765558830721538713237500353659551161448131249711528158728547285131768077396966635559127633926699842425419146063247025832148212166048363520038274385149415325837714001807660605971898443265810013450958929121936460942658846112648895246555603017199531420777773491911267959032119161056991573522030548209041793776286368251549753575831207936565318336826402111775352601702484787849210963166462319180114492927791196913440728082550809350735539767239007676991280945474847812164986901414428479103698768500807522071348042352322072543980356551617834159289372374546384236186040094376177547263262406584593836617492243706482169532628455160573111811322720072044173386994746215445675087944873257680984563530858553538396197626577375235608322373301558384908476881447566640780724856926908760302924715994900023759867872748047657601642263035764033550442368950970486739897993209871482139962825161285700492416764281330637442660803138180181715004919940196770798662558277649651313099138445339831995455079915465834694232011331354222512342101351250034469675171077628163451771168438590217272752028141332070556686289136917297771549417057069175780680469907270784881530760203733271163144144776146363305199913736915151864046118450732405224459099122338553579605062972083461485698456176084516918310574273252133906122907884698405369864381071382511397252600883104245012848995282258358189994626005988355073021082463033187811042749079171722699675149909563248578731015156968542853154647197904912063210492120068243554858123735969845676709227530529334353562874563183173831992358985557879042117081869903117349982253873114973126529768225505135144544260749310299353964167653699131737468202269894128733292785075978447623275049775905091683085945391012469936794744268495529432057757090220585088464366314967278440105656517038494338449295031000079116199948861057640286411861079351479840195890966477066535050276122432487791810338653252622983085195986037291291252769522637527879876239251567834077199576205395315082517096182568167951351371829038592901023148333414327546742864670105006029318493832042635137404441628592576897015524155504109815622357355014932477915593396980551778300281908507066118240012859011209032514732596741603236899748996985071747769089901220039842987556074461391344892026536204035470359635233225334239293062762421466911743046369366521388032167638833921025231740758174598731883002326976529498359339206829851317930660167947592490782205395577966791942182369142115265719398109381168292859488629838677933587696462069104316987155690945558635433632514668866895598028794287816033951655841516028504551249323560171241921061307022132083844307006772044727232305911193896144060962386186828832241208862036989880860811601965564961228245518730753378719868796968807706885303811224215687788754270971033033848133225186228415427155283255259428495544654647449764373547132075869490512399019671895087011213687129328065058403638465471139767905191635689456289271967365147152855070830507956389506224882883774781174321127401781872887717455061497358209031210902469054667040727494311645477737784798373791639650396872160233908288668326922051465209680714242828355553922450231888105086344751743369908641833044954444400207882849732313373050093754935585555601642285623717265761232134889368323718462866919945821257904500453654746999975164907736619704939451317085699635462261396830913113866943135277634659329822493907048607617046684234773505951591871113241559078140439967979496759509041862456417034101455055662137575484091823862706293857664130503720668403795780959875007877585267141342175393931256369922957610170442887386458654615910203166308528677672536774566120199859212835072370428728753158255272947706461528932584881692574134624252433562197204751104078552003622991445929466948350152817706483840407113941648517309051253741106731623094514681485448623469333697193895954210045926309239888458066894525514754056571427729167179109483774854799625277172468462779984460826640230535085898813009343201333171220412101932603088689073180368847024694185722073241899500999036958351158678105574423763251309737674166673485538608965892578996932683790036909193675367801460786410366939818471585332955431635979618583015744434078391861840424455280873007492750566300167764270564810093050436108172593630744523398292561310010784604737908895403391308654307357360662926986903815128095878453519329024875486510942324585995552359962830995808751952650433815883425768439791651480210444875629640033523201611008946222530375430561853940151281834570498053403192922355480172778984167468413585687060050735860762343383750847819321877348500665569151610431620460328783580147841643781001855325914690854159046803202470201208469751955797463443385615831554875454829432948119854045077945781458808076428019433461044258799606592085379433399555527776033686160330365989577999166034976538144545565394676390317640456899107503569453349175618540917680923289644374296653311462293641042290149475097602798172109015905791863149492498041920251631591099927482075992404603250699044427563021621526963082831016927750215435299899356335986040654426342186063955712600015221272446428193397774420554990450970001562244392191265362247219183362982659718693823719407993821199322019779706097216336201540325369319707282935807875146468564944283741585538936728415335098852119280478489808653864813135454265506271070124393318559745224561843558459962360933840822504456116827404988859149459978165286001829246482957679672266280577714157337209883069610884290059097381037445620480310905386958103736379364614939056011061598017282707175776173148663328800337493732893208065248779866768339783067185892449762233765995445886677081517034813265953617553306803240177707670033147179478995491966596309075185386297756103455892387150267418028832133314264064557087930799914388520541208160970733109396884096344528885463429641183172830659661696817329378921925029184299855649098643422145642740567354270704753073902573099260118309858425146779777627804262206253222791119160512184799763950787187234517506097852162103329109240927454556512220119248516966706881756828933227496192630453835962930293089774545986759800414312236244683369649397584033106340036821701601735897585587512247394129740410218567327392867501313651810998987722217478256757117786322113405670110350812506655879026801193995138096548619967403494228131248648374008942026783304922859710727585631222664041338137735104111090904623979252114398231358733309431106760320499006514636157869621508688677965515962786586824994465429704744371277538376993275710590141627400432264352124228799034817386980381384674382588930720864276270022556005158911223810097706929128135543770856244844381002046563441859623189951173826806916131125806180910637452385124230070947600962893077351131800345309734831448471004212432506847479149003797994450964823982038088501301042351655405874562528586918711629285470592175379361820685636346335335057122600399162293964197743214547955991442390866525106795134600172667247283594976634074624921831832127786470149228055292716525737488079040600319035597419912369341811753432685040669331838018298945065838321821362484099500924040706896307016088468727090734896279824820359556646661389294434264643059174438928907149665699192274251161096727192694751166828652993253237304683195117461454492749334902861928535748071021953727356399287401829973787147583867960601969778553470632525228010436944867856021988511908186214264972178121931278143592454094004744359411861478535296246839515234793736930457002732430178539660320146472627539760807688388194720548036776840010517228954255502288157050160128124657395470944295817843656048749395966904485090848898093512727593610432650643267632381057416315401151723869388208405035350079259099797045365549926160737663525079585318304737209158887614062385321897069157963662656973964926533821677365824093719773390498081103611635035010423931087963038126890807552807258306940214613504014518019059648125437321201904036952357187319241069804656678980864255582042727174839791508992322354657223743744435081084190764613657018282740339849248181276876561524046464407656934327055349584625589715904981314790220960351175159529132075088350012069432023787912190871335097914074276588601563322158685578156761259842098691201128540390155595948886152824958183611829593437826344951676007928085087333698587786357043973550650843923589667740626996105092982326706598636523052843964656581134206415488068232743755953602587215531199088398699835867240573070291482023341675359253540771222578634075542082087499884421704350048370873892080415497108420042499160596624501837269519479738596601597767281461735580583228566909015976629943444925292852130527745811045237526121098447377575073657313981021987499675022423854823073397631004869570555537866538601241068384057601335336451439399097195660854867206707869678984822997381594140014267684061705704530662853550661331940154204394765174630493073878325539090256596652121830222334262296473513799771436104392390047580615049875441216244423305406709256728771721382710329765923806159464900340293847581321208877346746678825763838250959303781400906103980090897679144480631965195858557255722998920067227568791368039593312282841480590008333632909548078616805548871208750240591577800345527877282637616962348099631485238466297579822467425456185060700412560621476977284070482336593928048463869902398702020585235418426616143643700906076660118334016135296556892320906756019530196332139557030575910156616484998598194556697139863464206574127770126232966470084023189399105976890310524494455890000844070620878636352044395589104272813608905041282164841162544365036716308095848572438254333666601069922708030194179419737842308452399623044195100647530606161798947127593745035549855686364393014833824969060316951890531582992912912801851111123484429601329865625973670018280273687877639479218360928921600895953788372763955446919160445593416472758331238510897674288467935046695931892893136320361987815564152738110508258464269723829419390479360511833658307945698455863051547166220346135585470945529314624263869582222119907762581947516825161814951283770394925603204324506069310498602205456386624504277802678855482841705319312296233257413232832380641469079830346009312551286836053018766168814121115646554919414374942666503457766558658408404188704069906140594386057589744625942662968759361918840493446859051142662900114083281390230722260198403675589042231032478358068201095729739443145581358471176552209935716244965754170008614405295074888718677911976504633083320280755343012473965232039708898667282397677664892048784137653041556093420064710092767837263293469609915463822158991936807222915464347994548712983273566512409197366263482483562952745330846083287953987527214353360399426956316776957568036433544677762379949661930991331772315228486675644278979754597707436030041336932833670988232701979681442167092365443986565127516993286985541326031958101600176436414548516590069201352686080960534747323781037469546147456913290394009784646014328587865857810575051277841289095273453687014849429862711772082319357632713996482805528727242157469490780694938043850274122461086203073481281924205471664953933571753485116525864001120921505318620433045254652923183282227810720190140911055836229404258124907753143536513530727082757673308752587730571470014952742629597471832820402612216763981113585710765726673411506090330816434565818590141726823100424503246292645745534181850646022335461492656497366481789977766332564744710942350021962418004444363687631003515351060102566937449909380141720702618959203034086107427590269503830456313298427709340596385777819658026377946119050390180963289449820159172504702765085848629803927998949860950027476539084132914396800420170190846433619701674364902533217993588060598134053606091160398514942684114257807960053997120210449510881549695569870407157010277570169350430532577339637167376219803783994868722022794983103538189230090179935969390035722329886794552412403453397972733478516182755946711724506998988368855007338311730460684337273360436999977123161127462581432570884346675933072930506381012283255753730412653712980077424670246647757070616733158433862089546530487625331003275839678374578128527873827157314727742670057054893130869863757970408350704260525027067971963806648141383603234065567707742064594888371003073898269664763714586674954531698184650459144244638801971364960133326114933259948183930923867046004431309958048503889324214733131155619041447177864881688988802428921694729227172365908261917166788416624972646368608001328841646506247418228505233570661863309181766943311470490085713850913998241354364886997551840596844657888824813306552146058002809631438202625032599727987764453823405157091763336780313382928463371897738579934734518709082539729309132599641964524844044441095898469319558007924414165696691568636770936875570183343394367861888073010078176083556574967019644679158499717367101902619943690023058836181066664950096834967878474270995146495433888750564423681941592343633410226027136532643227546300026385504284554986969966354177480018100389723878070340488886193433221469093284839341355665308134536296154055171121685239741917611830640258383299199184551098426562287168287093738492258806707295014805669146130930098873987126590429098383940823434211976707560425431185813741426821326876050772689989951019178534162605953122694500321352517888816921064107393953547225546413180935260401900483553940152627751143215217337219550956297684546886957170130812604488508716332799501812349531956222453098562514200165121493818112903389163142507438414746225591173810702513635101349380061407141998545965482886487485083321188116080667823557243843234029702040077050486290615702429067653935651915553858924693134623520318912965179996211749979278544933372416901618263722114235724064123754710463360342692605407719879075368397268283452130826062587269340902274232447130177535647300796931490186458451627084486781358991386392570783761096904374608863380167868071786324148972934503284588219680623862404429575906422397804233117341849534170993147879217250469274647805553717870085833714892136691515200014116491278295536357103909791288463008922704444018311601656118680862046093377372443451884924703188519344752819510808773171209343439007089062819161116853116129239485641102871222586784714791540721068392244613996448304278501830507627058457041810599506073150343709064147193027949502606041692633730754327398380666211841090112958852004944476990443067878249454957337538734097248955918786166853241918302165916403563315765860781330927657261110759356340745675629273381020919205143024720623650227189704006632720553953248024524903010917749847597752879670721943819610282025179207410857235727203865030942029266200982011304534798014496983540072484263513735129329487614713505019036809272839371581706451444678608276631553220232568319950822136571572033590184042777693253203635681945138241253796402468853849759770346055120549953588365161123813289924602802687949134130855241249435214935546641440336039044652449283135728275820778566187516644604708975202900903089685474081741237096183647023536402851866768098510005337573346069343950127463726648550525699060140683375971804092369949254447460378010295865562871504545316751600394670518507476274020953187954229890218207951291577867155610595119872462914735247063011028793815634606813401873347284663936115564621630248885111783131780652193992270557128221834616147409842993445649454983619186063189843958718953424886707115468955637552978765184161149946057552190820952099550419326868128407947394316855629741213414557992050065447730009579639876786694785192302779063876723495853181864570087419031829935083853206835369722081229470143959810986022919777570409335860063150700138742134011245896002966582040791792690367910794353907813733477137670328588322341488788046675851554700024954974995080511076505435278072408617521933686275872850838210990491942883170128157601832884711517870522472736607402498449931169495396000380348281457477649952840172402607413207924943160278256498744522394024702837649860802893828789970356168135791808844738050547889072113462761041403244180385560688569795330062327565449218563255975274323688243316066327151882907357877271606764409735342612095662786149076560212314506903440741384904106189505485388973532685894898110782782920570518667953195943730268051379207114028556872185683865210328155472282533066060003156084142412811856648995637292946429536049497308524470736592509045916654574943054093562038201840829816540376661444204863697129312416396347379184380020036068678665599219437757698670587690612159301353852616807842410075146482109254847669071959634208721325830613931318715022297436156587266360465833236432565457658831054887164051576967547627350339766433909408477937284333320573422811400259700918326326443096317504245371974533174368234374042175727983853538405319616455715410554256168395710120273018429687642132160537143174896421180458546786753089197726362965816864125528005889089692248264285729366396332057063253291263272659401265552963934139318247759754449290385743044830098749073253185878209138220111898258782956270714787264293697750896683958432622199845379967036451806729643206753001212078458683244162321380197500387804093786116275889544188593571840944382392059247392028706845734139519037075435532293399319467654145234986742328924620253010081556244268300874730087603860188514325174834508942709590233357264344988921198344245780865315723037532582993446745093439902774719659220250709041484248781635571943055956845150013166958396868536897161434253960585747430212466648020804746290226125676562237615427750705734210113327495695151312191847915099222189065930800646195190120050970372179130335175060589936130047130117275549632724226501662971444320358816492977421953067890838712616185460579348777916478618932041096381515399185609440017701366027403145692031354392611588001996743903545550480726575621861053667450263674859840680749410962451814736316904492347082068936189564188101603501808281846477367705358002358311228593479139134296201470224059418166682876457345210713989494252927157767055378992278796619931634777793344440064007995453298243182756408026905921372653577324644734616607112326431181590295997853065760341437662528365808932310017950965190244949234045999419288237943937658841995069269320778455567482159216435311308897132285309773110123972985247831139704067422993679397167546517482394205416144520906587078862912346842694773417238746987677735326584191039007996900293673718535012341123468927118086829632262329638507204416403367032047410984546972129088808032186999726697447405754574402481214116969665146007375016127183299994915068272605082569966265002754067318159115426912233639376284445864662232557593474021539627515093295583095496856797644683951931199760824154160130961244259392726883629934772309078356428127499105556003077286989780718785269045508325515223693815637566996814580331883971896709983325610676961167135706851571757941046885680866260174407989482886190403170477158636598847025297174682852942595023442731951861820143631492705757914184673182229404429816189968669736634277205290830492705196424503708917497279772805545974581234567356220638182097093260753102214409776558972217661951371243770813200630673474480444638426523335057496477350385826398762835615503628717073490714233018215280873012969634945561791000177330183036078417791166580327209949100803754300808007307214203101960062311143495828493839748682946096021710020304836100885996974749902519954670270147328067671437958562984761321089185954979337387900548155487531419755108462335068210389977974579533299243364797053067889806558803027172891027357542427572645042153161510952070997844172142457553596953934984951974530902990806813298870530211854344379427665458810874289321649149571522372343741030650153835652758502903445563517657354389948800145992328507980117335663318563588602081951351164870699807150271788347741342107968947211413462016803760316661338341075815208462811004973159737860072192678259528008547415990529224153103317238621987238925699862959132725775395456069916751230377806778904482855364991233566030225564703650903431230557497221723315318278176695169109742857650156577214217899343267948484626483755505285249430520262602551617163098417240405137933756171944845569276194589515895269505332812077178806969172473528266502176149573115949455414320609161666847295359032210218832340806524727936417925419214454698931611041307782843200384145234577372114416559322791957037496216407580244197633709463013545074897142366195629821760409809131876198576083917220964697298748748329570106409380907177877430077810751574348992194046018849075290399543638957194243003079245712676677374020047912931201081299060008865210096481839762655105372239824794288390590138984904406356486173838301216338924678126989679915988243281421757280556242726813352995178185130836453678403483015717783781860514080413538762079407090166779573794143201661205784244249285871959788025194144849053993384870952190481557430273265977133364674626498449843603604716030209146234339887437502380026015686402097449623607333127072320329174541592461108460161629548390437465438944963801816798755980127948865422280610958906027544294466782442984711655070347057868576569054619926348512350918658762830725372961493850902232532963336067304336513767833260363344456752998283066227952660081358801846107608505226754419581960856930046752717246898184453656507386782417010488527271103394475005756662982994610925189701776572624383230029285555852634756368951324922702539680591082403790857065797880123653317398817700466200401205020946582242051759113635106211909947479430120977316966175196978824102071590476655631718179623849066117809098798415575975900679852125309654370745153143400546213120056998413743992788304561505353596082466546362495286523833301815666129014005574584271977852413436649980082393741281251733821491950460975613876447045117590647556414325796380260441606629979118791441654487623122212212879081776962015200913631920734620272538696103265571243198175357789174063030984976414329624543855780133099760927516945543992585426768501915185891344869575670428700885762181967036044222553188122456819213879737726761962730068341696539300043142767047148276079304070230049038361076052654463017087895804060127962582116164534642812133612346286481880644065359349321179109604531843029208538183570969028963475333208313886387860322429437574396825614692381816204559037153478544486251830485709863061527501803250977053721490232838680714123729528720567450775669399286465631793030451500806561770979887239272262811422844458280025348046489450107848455676926854243549131370839084167162164881160023261092980668811521218866835726837556718014430602423873477593640657198469353308725934536307950715688504338520910648837239267370175552334157992684436464615981204183933763911205889161292347695481357071401548166282875101860377019972722320241973497709555561390572168044767761944185618762577269420307576878169869220164850082845531650265084872332955360107558766761853280473950226678872049649246306948124090861094406701920770592281545602240808641998020118599199651249745548286853586403028425546548638753354858610493556618067846199598928324729364930088162596816016916199246185560864103313502458159416207680427510864149227031172287382228335848500365648818367381918244204984756934071155874773352369050639215928353094072014209520036208981473078718794877843051701380869558488137128600764720775053326637775011725508351521697759689973793431687538456937782073394212499441992249773321097439237024977907333602138541210352970618069677111858062751854881652511753720449050880236707359657982936664594957835505873344525447641015033746384501871613153387993134725201348327112339727062075414471752154670104947432311099653834262067618125657492087653637602332932945238857531302744448591648423306760920865451227808390451442616818078545236552921538077271073167895311554634703130873567235503052229948178872372296277742856234483642020644155395263181795309101711395567625322171313025165528154560860755059190991216773134497504501846861879540235485688708379130952251277664775767298667975485475569383687065373855821981314560759494144084325713073981661960455077873868211331385685630266668493138558987176450155415839299240687995391805731316736992471075843099588023345170741823463254381019835572156438115909597266858427332017293889125857889804324922054593365529567194475006113945496723563205357987203634343218838211518867265121225180178871888229515849772712486789016960761695420051341986674170695858074769350315560282703587739252446378101309176285427089311670501654002780684434339874867446670548170765988225682009110060478611443206411385124918268051858472916929298485780041615427644525906789160312269535442638950724323058393575450324783791968702661105883260091488503228728725178897064514290326015842250129241569268256414542034122837645391155399893247663864234255294835415220909592642177532541051901801996833710264299840354608053084266326084956043527411832730140640506291445123961360437434750081597727989900186939283970559589045042608724977190203520469931030725887310673335015826533057913886643395766154381774671337201302449553840296127728099678011376241920535210325160128840101305119990036094923206601810705886677885935863565527411940017282986288905390315670545760690958157621736241191168163038525142349885330698765737187478330435426807636957822985888258767830370916670589523091408526130960459173539788445014639476416110100583959904155793168749132252644758389890347475595237898879924176632491748205640727814898656830052664926798426727051108260332566250202814203030824976432585916918334721048840781655787971009919949346099673912152648156271657435239047823155773908429261289345729167846598787764442591453527296926800179853231158834691070153067243645800884293098581850733693871343555707708485458406224715527884678207759873576629916729910355582230089414431073615328596737815340116102356804586580216847312177842393170163074147281715397258154863618185768854269800162078383194530552286956759345541966750529595235160083782865304408161906592659710751328574339599849512875384669519072846480040201186939058341772872240390447585005879150967648883568625953685898257501211391916523795598009184496225173903623150374942626896401153539598221694470287169698481012855322703559292057589361467342459280283476102962134466411182757754264763585860234942524829299098009072941359043564242748499726402224851345950113278912584631803306845348531948340393335418168465420259346957745410809907391641620908655961550588429148413589877959496120038600309493776897638310822075910814075824988927560041087107313962709426873302059954056101411598103036641107373272589229828123357898312519646802531856895505413309000774332511010967328604530504403235130025229360854562849500075480906313870499049053263612117786549951466903588339013094473597346699269565897845907419717301502993404653485772239418066153275155712639604021006912232689173982995153677144446066684017743121212894652133097614999230304736307179766968005496978563179032390244445281993021784429280618682322525364835599621190318383667424797899353236343375810630686620632848313992921292576719929821635417463823650468936059561593900638749342181685031279410767499444183912592910677426072774306296774275490597325321666712938023767985326344064944936918931156923312393967171533640905089785884973923255026447980170334771688143833422479398396934544960554661429653149746931778975297174099219579631676747820889427911642454292619341664399501761111654284309157170013215889134937755864316013108717658079036417177463824659432741811532014795350486303812776854308947571797146205724150905913562561237220201069021500229593737761538615330703412564695869251169431261863148438979615706558643687447874736991359360683322817482558641171275110699587305878213987948370806167332002797472390244514118987107150843207098929192741779918798588256089139955936010232057471659785765066681646920428508689188693640727336120746691881523437135413977038300625631037514787878220022852616879479522514077997246745903039481105447493747144288965695010336269134869226366930243263190742977374638919963531835094838868969119968895719547984404305504979201663936066012935487221076702873853674583166658097854239147823504747324412375901900983165354607082222960347626461151210733000458233619166764416645824762403688006027824695061706819161057574402559492243036896891080687972142089446324698570818939343821391817982686099437068212530747160095129876582197064896519849812626304566989288441096608467597566512100211170023309346843933490550143657292329526988641708643540420209396696424017224481883988887711698772572834931157289882378799265625335354299854813624269571038477986855077059412556319515529826663633929393693315376227770363350912473619804799765953912488016114616857273451614637360290420256704569156599888165282674785349283472288210243445944723449910394788773318937325783957837301490521305216382910794479628220842557595227121188614336533460901797720065559162206761274577381045727724092985624815237688620335575464535117972616231074819968437387613227183858000910352914976124319897151796833437370217779223306044786395234555893686213845334404642359785137111939295420856209687616622077797134342002102798822298147950286212265064661411650477479583688649417418911789674044176952091133591669339856242859231608605222610026101980793124026342972361718580410739934618410169195270566837041721877475019522827219051465890644940920957043981962153351926294356297397385397371054390048248172944452205923495122223261026414851254817829154372685529250722926286099394134287951090274426645198086860619310550406237011841205056864568077664443606874743920116916212593877559137786659323378897624143737710536900664735094178798218807271935844239623568361926047326013916119700741992684284922909781089168434961707960326451759858380686044617167446017171065472297375039713686412489153246499702630249490934456814986787876380339920650067749412022627693230237824841456744449495660333833476556725880538651945437455985336509455024847861919918843256025263871194195862360113968327594654008036805479525627254475459580872478108121263414493060032297624357138692024647791271595619033010674211877965874365254319624705865845601016511261820107576975417522872352318160748406815766947539048006535034098068966264136213211788747662393888308419030448609738279687012243154545164072493479643052007360567785115482410617845694080442269791892761721153284491074848281025241750717033914311101669084784959385497424515249485942195736391058755838849825214587965596438647499203488081080188819679507528221180343233950262169324761915654820134521870655984890601579322398817274365063620859790316202942329780219693934919897679025822637422821603822293068382029760689760875077432514752534753674779256415082144261464812540316873608490667635009208378731836214089425817694639120317715814075595781663693344066351756555689515459138015187987807449064936199106981936473075814068087572094716796961065654202636507571428830218392961484251707798357109965721126267956999991661160236131482746497970432380281017760843064961935324579728512280036416717319688267977063834213707275107335802220695342814285568616293064170310362243325899965171853503515849836285313101876650217440244283788601714978968302262304988571996822474684739373435643486056756393372492067728447559130068487530374327165281071388630005038226479032637037947617983864589871857973844770308170401590762405595371325182964654478011395038913816847771354099679051866882647448578149278842368003540143931263729631371751448587604284079155112341114238062256986862093962249893227493186521796305943593859776423359049053224707817688761238198051478975186040205430876008904586010230775001636839727927776751879629815252036238155887099261310504315219447351127987744232141900310770369744608316356647772723169750804630765418487718540964053736943792421851969102684970393199487885509715486897723398274271201174061588771121772400679938919009674727685956765948579662461716166305936069115929527961176739632153712216733673460665120212395780278595328526404833371914531038396059156869998753845788895713839506475968627202521397151180259944738368737767988069911580611908221452975205223707662634492268192517743844007974042550276532354263058201716987307688084313961368610558325622704390388191400805670689668598789323012161472269328366768027348291264668057296656376493736011712276811850927269834016925751262972200566897091819187885934297183828803575274954489028055562904683393390375773322949510866363533063418717460161532828084891065924391254689446318179712027485985220243071951377821603244302928661799284290739188532753345268532349924795166604402639375928649134591820387079015868480868560749447376008639788522594708378223351166008994410458408114531130917179514126690937922113090326916421036783389322810736761370107046759931881318812739278302801025483469802868180924216837100489390007289064023586024194329223157489105682361406348255242299709472317449722940915139160461319794239842525150419919561790388587731398204082619293944926428776298491073823594266338072477856763914703960206475802627766511586419660298585966367007276954381272252703583992502770067467774906342960316546462010241598283579638575864057801442669708174413166483036983116381340510340834837506438406475713769084177589145051712104061671178292645121901849218248397010790671734027132635110682713641072803112226217592154447879300819344185600180455302816586531406766960303019132914033599053551320063362022829078777876573391312927671514040163214097652039216719964523120093813906323279606763659095596509339131931749637147000542812679753317906060354735879990472039183628391965018206643977051217058082639249420320013643499721637928022203193411035880979150877454511660207638713672693244995863008392788079744380917604988870390275628277373541683933387924465585215078765714173181842074941384152017270954456536856574555761928216867814927025017454033137489593933334823752753142685995953613429699172836193106064392862207440680051140725312152160666285477053232101864215645063186455431554543438937172225235717429474656739763627149015028453176714331413613617716521015048765536750544537361452689683714592335857981405099657066890460864469576707703957520639509577669560417173853884853007964015382915660205809455208321836941258641247855691591255728366969404195791026754265473875877290519272662839258110337082209411868186926742680761341051475934200063716255377866914257955499578650067010701150070269683763733102857517979924681999312639449286930943899000298872286180947779996364826737348687718993879358840414713224509730393647985765242389025479961689676466115168438045821265720906774226403991526931353926477669701395486447321404278125956059820765180176102535328371565723466817476563175074645755392112815940014105797804722460466282647557720993728831150146950264153695454318877009654275727086717704739287270501447068673969910567071433586531477454109846349061200132133947951031986336724782513564803002540779576415027207709559885581080283671520920100480142109440932846740650187239370289506965860896751911615751559840888305335830528507047256261611735137469683549381610023342036293299114110114961478236262809149790692688529859286059999853861983672418619063108149660173233818062765692073351028684618954095489312010966984864208377798758131108305649713940710385500389989506480900860006538590523027847028911294029335339965019527843277225120401176047273672208353848381298644955631092014283627551661477684839559992283927397710588446579819358547387274364362543903304243443554881244218936135813505606806346839289627314615875141537345954895677009835820794467608718515652609245448395333828022325243450963632803010083498790006829322492954220008721773011009291359771151267991210515684392649187864704195828140328385194108671104895889778317301834998001863054893691661185929552449589208704569499831353731069180907797696767899141404647063154125717253210387254275000652235659347714132753779571141707988695177835974971950292576927446855822634916004427322194324562358496610067151794344400693526997207416127561387540180393639373839012553574879905711833688940542745251528900103128214123679863353318093059281363792411422527359785838694916111069497435967592016506968415631469447750059369376950474515779322766137134941691987228841135576793980152739187017669873846905160441770439529868680302593177506099205335514387514789718708656208635107463130397652573629228983836870477141464859808800210622133636533344784155589126143520373390287592400495946141165892580286988952447400013084416242223257763696612776609867290730696811039697416567886380402722084537087651426075813890884832150057390275320718199396829827505588628437331994418857833325646939233123494785015909759461840600972387063588073673215799353259410737838490547460693997743272682108770940266956466950025428384298525803660792485917691370480392565442418482548319670508160049830966815319220465776488439431321541269595185304246590349493824723406070269152215100776548695439433423908490912033253238058743010246493769734348534369476527712888818094732877927902149725680442564743171483821512962667290055704700633282244568260206420903109494514609748271128871131031434086523959946835268555221283940148067809546524610440810313322415097190888831650391113938353567313714312483824161923243724402731975524961933543692690755077826576962642452126691709934829794475775404784261074085678174400561683249762230720815667800541216410227799273336723371777367867975487702778411546922512546838885486681477450540584733875500805881509846422148537266640536820567970567662313950626609664270862982802090425295128738462923587277286428754048527924593128465349367964923765663132644894309851132696110916568521987145298142640769086539875893105397173225105227745492735361340357894366074953338470382291168092159599790183957830240705175063578611727354773221916395495061918994101190977746354038746183627089964214821861045783197971967845610943258365722586255992535029475531655711583872307395712601943043626473232868048517210822503292523940390495494047493506941312310011743955241304665554342968449372728082270678110925931132871528291194891253080890898635678487252115034553980774011832767664384951171967739541621132474429913168551336784425202026822093719422911795185972928491920443109452395630424056077184473459044116973712609078080643487657160301254389432541184537269161114255116268333779640076692387311140502304127913964201343702280817717300956284515350446495291499644180271913748992711545233703555099878917911964509957957671060300747412871603828700253569878366686567632140301454657495760999420411377906226407655274154134915554637315458241246860136780968281009759899433623892987263259510887440696494100546311929889481274768769256375610943609572464351463443407355466066959896308804758136397868309700017272880870966322585686219406869213034330892904112352735098085249562646864295139410339844936767469743711238524186568142553764617533006548217888768