227918699610188306607035700304495323645694786696655257238413841616815540518906490989370654211271958153742525275221396004750235523064788679593984765927100092967889660894960138610671892302244273146692038082585219567146212204327125377905828041462780055571599484715716724516528844849665336970182319475386507279333445130265634142155399338257269200267556654688809377983183309355347453231439321878936619857800804186395688507709630353937566550075344138792366555015570213272142003782046013946271590554083901414690917364988320896235796522998234584408432224356532533951491604200046976553578259595453898849154225230315004199765586402759338653453877213604286017843278385075240707811850286804090855804304140559393548549895315853432230308152605618050757999728773406462575259568126212214652509782331815072271890510203240445472141959170340255201643606840640677847188382451949544643831908625287369326093932681915802075729881789961901462105088647676111047544692830919786437030287963020648862268245400905944749318807427829158403198066020947094802736763902938669515262298556595056689399256786993927120082248997787358500992788142027288138036817903219883117405900814224011770437498909006487025077974458683585882114723010506418073335927719520482474857372078066825110209540112320755501913517204710079243471033687867453022358510319269813038936672464589198280633904368559702893855272066501388949002171630096054288610772509122622808015866734174368966252414844237717117439622086519612707487124103242622278443016777648484000687594974986018008189304484963249935647994016177214350500702089722376831498766199398661070119444740245856900822792561340968111430140417118139232989692953148555891131605571350553543431881364558208185176467336860523531107635045928353256596884348774903298262026809840874492090221286330065726867266601993983773193602122168515678250647610598926876252895470898817109316203955364877810994011934295344375570961934728736447774947517307517953172270130346654468988299667971757526833259573346556862149212419971991586681242835831670935395826719982151926760383396799170378655002685477267466945394691700014211047291712791472615819425086365687149230408175811468777950305207051539109840149349630575457748590819791179985854975449124295252577956679207882069953181950315717033765010263030686769063305415537123690549824608852508226495427157355540529233392199847857407942119781807797600498558974402474447551914646621560133564355064205152515327309197956715015119918282772734017296777976682291999579565565061175081713898213607527028197986445540932708090156587408593028285886428417655870517218744128348229783624833964859399681855187408080828330021531582220193758421484006059603961576736737626765384397582979472412341316795105582494667058476941541271573379368279572487798284188541125845858942762175989447291620899166426849806833822661802271589759153227090098090776559851556458833523213253563067318221164178923215840153685262859833900261360839633204811730365106667919416060886850904836996994240300733703221371419113041619363449722807575225180132405494242408637788914025625412504461242965345727544392991314942783011906064003284531971101431600094584165981289498725578625325743836402013000223624570665738085873140837143792956135230776761593194661160247415067329178682312703736222246117824507519450961220801854698762716900622883010891137461462946052677036383282337355603027307944735522657850945848676762328953806678500813026694445769705848618465786236048265102353023430568782568294301648696703697403466037776505948207028375501565989739761595758532258279843799467742833772551412762581791164135770362232761543435473752129974523548238715733538173793351915953065354407611751147705726944189778033664462441837931292372733220216529739614623478572818684426474348433600411477308093044236753947846056420823438281550158249046912013512710345590228497903865781306669393617020791442402157177632529756077281052705751185190671144081890960367126393918049684567183168557126598072220485029126516471818834683910022830859745356570131882418809704165783935990967338609104228215051727338526646796023356697259025365509782767444090808499295956056476446571978010837577817264240644019839125789912380299917972760939664890014021708826887022091491627152205679357411105724620330488761324345925506661476515143370696720720082407291635648005019257281716980951858655551952690847017016526657309886999127662885906326645519096544434177200756618271192847888555445890965022589907535814241695404776683571875628380920063292274458207304659002404703492489937669095337113002592574721216496733669733591155166658925268156190471756587194289094215387612211384913072520009776030043721150063480704406509559898846236861539564521384297093948991815922799586731688759998930226141213202046359460211687562442416856933651698639079909800171504764233243343918937085798076186842220270447405276505465755539963802677208118083414025310739199525968138759536102788105587899381293586248036181382811775732093354891126075792593230095419694417359115994662045054662919116615129679918474200773733193820494734973829330268222185983647013309344655682795717278572631177409136545825477643341934484456845833379743525259706848555726688280483528530030019142928513649799860300470040485044706675019588179303506703290829536473607703358373114815229295388422938687696492949917770480308733854705246541525680995049725916711545375134564739388558713844111593712220515445827464974612976042203626632883543628842059866738552766552579883017915312398082193608154703818244447764195374519384875166605276561925264250295686759656407229172638931540405041976800417896921865181897332447330850934337973272978343795729865687250891176333504000831214401222918810952839199177656241978299040873721889013041576056540555121186550779069028741163375073180495244971161076425905672999176364420220113181731719625791400854351901034126480597085036520063037619607382132841330676348659287003635012036397814347362911326515068254226008597702455896995590120849398621477484673048862169967056079586662196901643903643719669002805040478853792729413784102201504451716001752793978693326692560898874438994873468405431680805746805143300817243733248715117602509394948642238546443537230163868554644134409956024245521632589252884048626468399137536931712115609056638338658987103599674303970017075828310139647498335309930361204264485474915854580246814838621026412452923634617441379442015718526961032135888695995639918673014880313509406276618066965157286833813148110560243728514637428347486603965092565453697729285408665338482696051696295292795948861885482498054044154009933161297604925643515884615461607524058004416254340763983793605967084979552663070739374922745205006087634255266516276008383978572954209647507677216882804157859203255307310143184685665491880259975175521627354958250511617915676963380797027187570078860654542037228049690957207169712430179402499427726786785853670354087779510488823796637760183706518421307609564083846525898735377564408184735724539749008617811765767572832114424809995254683630162551811162223484213297430280236128510700856904553709956665370852908987750574311364764914407966124661502109619054234751543286263860521761151707752196240752431898272010367495605984592539772122148679279159475374630974153165770716083672296287113254296731387859034472470466300287132784143484130420666543643347226369264968607877280672827092190110112527916161283510963207062231287084586633528710698699307081258353242637704038902044745747541285023837902261657799282975287951715821897307144665465606433984449717990812780159137716830737417654021202622368268655797677279749219543006671605812540421966461708558616568420195224570833963592183484429012247024959348747779643268274400383367026611934733454834643465429138495760635914448466935535808998357337659489393410473997669883998630134068927223752028306197506404868912296107563312129597761125401799659717893818870308448691057947894854755316061824020489553044184809377128177842316948758502738303515353800787615882173850615291760654262829351080444213997576692503421548460742455927203896188414587935936460262707800538394652362349684845399966940799741323164272930528842126422286792489437060850484758724120165208768155660746744261565626853102245676407417306589740368144787444961072351872472647921737412368091693224665215215039580562439609085000051928793785444933550350376991967293081326020649034715056979955280200687072289340900456253350608035284702493075464667837974492532031295943315654940563835589772495375882624894623896237470152240254813238600740001744289043425093201684443395267055661549938072550455939477665399441282266716325182602125143148555670626251425585797583819465575356313065722297656769868203228090293312142554586715340417241019030615833108775507357434859745820418854331382803490885335778339518204353575954240761637374570358130452431103994031421254353330547830816749929505002894581583621325835711996718078319033219809228212197851646692977160250617110115478675033196275999039783156444327332240874311680365497193445734545334428648092143418738024344161828124950787325273006154878799467966549189893590703086922174629180844208700604849218863701033306473486841361302291268360326620797852026485683054879527502970036090174660373797922452412349302114952346944228920567488820545917469930107478975795903738172249061997365347367936592280678296027225724288360634306881646825537355542369869973594420625889297736078157837971157998538288514356003929157456415940656650378490011054031482210166226954092866895714683724953623015422031344988380433457884834322719639867865968706761288639739815248745740661681808669307679072884496822970588618560749005647698718848421337838180176588336732459850474641897764733275123548623398810276889340474725623240990589736304273448222777217426185391838802829811414016355347307687568931945876357348252317588107026658241572446717203736513853916423088495243344033148248574223662817852008322954092281141726811750407073776987944284554833099608816702213906184724457826190477263832546446185885760596567580741646337616346709951000826235715690949262272223128203571895031640635676465407917618206923594988404573474807921692865182433691653150963869586724135546260917610750191933487306817757287419241624427706011170206553869782536478289360293919404288564510139751560704158140759623563505836771436766729078602271362645933321589655081950091318699015163931582421324306907581506708475469672476580400421104268096530336761891671536851175400885205765641649853770537621566932193336291670910714395278385844639916610777842019150841811822868304690142395253165456468147111661710178185940291772257072961045832694545793329332952124676611970616415926128158199649420102149126656130866687399171446625331266878138597096421710571808681253926626204926827798499207397812174476156715415020356191611844611888375958817697092416358651457294258872065035724747866683320555016597762928751790961047390139137533482231701207776975036693504180040846836799998698166893799993360728933702811705235106558818600696655565364133434529636639061829015751240836670394951127825106076808875048800733919211736261122868392470401327613234191938061109671445539897167598103945330901293459747997622019700776097364670697850683000247050522747124408637113498751413018435904786181032674508936115388487057175112025855362650132873821873071713830895585752807668186774092925637656371407882088336559990137689350152279407458460170552487995807859230891207502551803600285001056737414521929473599309257178906700011628507892680864814333960540690049248480893505240337754122224149573382051755745815767848861020543144762312284239033352852522039347542795398615765631444358044964920196586723414028629820962042908142716212505485926629670693995701230069253183370282448061651770420822474439862686677486511172908810158876166400933343390725507431621388446761220572101828480834555865065694794356694432415664325791137945605896329276980803834064830709090266899586858342834650511822915935716509655256143595448967208120468598487105486669147972792445290277131093377441222727079075572762961082707112906026793627106169128854406392595882262420247215210667491941865481892801433467338703691833913193505989711998121392072648637155451280604830401561750586328627880398783725823837044915677315261718527590962312783764012839119942772074480539767761388057971158581995119026559852776005555114475639657319484999322915562761867046400077879884196686157621424683206963906255864927493157229238733306735412774057441817375408221831361755676445001605827967048559642678121194528837650675459121784658989997076366769682178963710752817473615744340598291437352773327128819043139799438767103971503765535783403141693745669448130854196891585980992251564525228039097505190695959305769656666675546353847233582027068182509759931480727116325890997287295261370574581651042759213896069186214726648415061381016965913491472808580424804450279879753709971274494554300866688636806985451810582332105093395508217203373064054065357061123395732437622347999372249213070288364005761861585928978359571801399700321613124997021777069458176413241124057182785638510665283564479692537829571915406622714138397734309781768483065517635991371761530306232633586077531420427346362291268489960787612136519052484156003132888982634717584216188315388008512454641774511048893150827205544583033697731249681977657356300320711060037516789872209206185743621410654974341193871320627288769795394779756817401366228092002647376406495107186498784761765868916542123120980599575759752322108315694949160650771334899447339858317237664980478384446995414219235969165133464340378848449644416281733911794393984829667134565943351933959247774198550439493644855402617191339140169412378372652637334002731958019891491322870104570076126372392160566860609941298968955313772414445597543040763410181768071871017811634745574890420636231417277163737276851501907866318094725129466436426868175872795049609425578903377844741820885773529445864728483859559982533270015372433507707421014763854499747871323125255868007135191995546439505669545422702199287878735721928411140618096596868834429282178477904199464891440616017000881916302503613338872018250994361056941336776862260252435956726196837073713447308313363370303207921661238763833402139089312941592770908330208238742302296269412221816492111405696307540188740020883787464625940661241657225129618140106429221709946731919080724202120132288607328351301394637558641838018746091216465458595445958303400440832481545482686363136657152297320758216982530629285245779729975483709923631302893946973174818372814766368423903742568707997472692782501042324961022524222081524665248700660461329795612410357335307619791466214795065845678172650192005550674013033096542836675888868376236067124956122818180664500383520226906796886615712241392493269896910406267087968574460546249600780120232735733171883067939103998463444770021606700449665378211847285710524898572551742144021409976005056480584379927854204242464405959272103536614375050301649437288144302684796137952413490312851851547729373608174156327611357294232471884542721621320782404224339340149977057797931015006599631248756479661899756279777592603312895614047766183226783771582058107213942997192527576814020312751138637862876613423715274531912640186118501718508034171285094301640574922820902817511277914055846871648753731027220248757624425218947001048416681836595330892186195855249079022234250222630466583912608956881225707215076041438500786613160471814260159086611536200773943643975038115924716814492846956200815357919706681113675717009404019144747243185986071088883584187656194618197744731440124879249030409340164755977180829712043699243991274376004198619258256761453407509914017183255506734621705522887207913884804069392217743768119377460154287590442136799799552400625466114943654381124095747578085723519301176394052031443124637509930045916534302642589591450178444856142700524377631626699845346381556630399894302297448055430286807680063524691853636517920053615466893671537999680413684266612875614466739387784728745351844792301807152954116917752893945770288054373996284545843464331466665220887584846290829550641189663676688335121488519231702211358885451216073575051232338420549235767430708973889701183774904288369347464008555477891425496990891981396685768878615163059177188633663420331713342558983650311527327845038069153979290518928474795852951597946123486290549533989108037791856727990668155272179089464188237472467106624706974849003068752932436010075475666725508891284334057720417849194156655510538352564131460248880095303161253679714592320348987656176327497309754987526802635520176233082712690827529957147963811855870853490406998346724466842255445102484298001339591595180833220721735215669414574560037655383717770709835090010008607949161510682618003220445521205626419760593538760621541642689331558991272133546483816729120873636827370636925014855305335834339487763265163068695924395924147427489478101958185365085556544283692862816275345168240071236027943657700666838998294943998462886307201361652185017561546598708513043644522201994731005434142226292740322155319762758314553408604899469038673930395447401976811964535061101628239884031968676460615864970804972443159750200041079472849282672629039786388608888771421706939235837118970842696634812782005770440218968541038330210426600810171709949817442550150367021116765636401237369344664241721730485234355082065907224338348520542582731850728973750127046941128043098696638061243607768711897416378010503290473575540510022342048143985179548699874206251083801300437883253186273342170290497025421969157372027511123725906012662665071806584126219177863647817698914376580815631795392338481653623375926253523744272319667833924470852029889416812983983453689976071219159555792752520020014543170239277382453390666155206683983168076653689302712890648085808630687189900643630144444124158065345972907168246188752065934302095479553320714564698453300043698751350005312471041966421350983866423261510851891892786769242926989132299799231905936081385737688416207340469394346198863749763496926334695299592649194597505900029207270848708261296011547070796367603956173524609535694197410787029096303241443557710354892004350005729059628478801710342778170577019960886935811961547629359263024995916423756906542880306015402364523375874792957165763065648502750996708809489217255612471535200149228087435006628804991515722038771210828863542028782000551771679457020461234965856438228685918492724802751696274320882525037595815904670288528382834352532321506684630360268737855020438102325232658238388408781973714481040494565810521881830641969926305592604813354063919835606674608074416062682756790435796494581797413626114212909782862853744273259668606532854896348847951191218730690512555424317995001030122546792145489016034784630449536830307438311517612637623700099084104731628395776961397085359357051125223045608370550898234230715910315026391884498559229978987814066833252043558795995798668791089212811340561015195686103821501072899986539320223289138131727174137992034762847776094221513389136064120375813136707743960231593670948538417096174694108236804654967770345134650882283662704777220026311234081214856479406452972664612654860681040871163833181403070785133469311812265763885841919440150797701700639029428546105760162774452928088920392328340580743750461496625338971259775320423900080406419507887144043144723818355036779849221681948621640826692822962806278120408752337561317559263657474263152095847957991901076630154119979693261131014767312414479641226833955408163281465968528374162855127113976122609171550921824646900855505255264351960541421844272415428289778302880427693351774775968581281157224681810038635724918537402959579894157006519950521186662040389878667814441298837870524439045374977903095573310653013113864583196327739686595056505500877276263617895097130253348971153253157240496982378801255985069616878532244276415126044493565174341131424805489103672292987499604613965966364557955398297431753676031638150782203050543117606508369039547441446242415221164604301472707450500176250757863210892458354973957882766949443621389981533979218217574899978934024959281812546466673796973524324413240373679233685656111724132945035049685081579814405837766930871173302796012856761856821032929483553848291056849691436856196983376711301169338798961731709003818707546978753921213613288631472704700809231170455682835365072107456806978264155770236564298319214330078456048487853641389783353014413724924384496683498129320846970626311265923124849818947513623552312278195754672670620561063291805494404719474023429487539429968565865337438309850767479361682312160833197127844685615459476326653472856083129298660195275314714336172748545367819228079805624362104580828986855389628448757378125211505919906305068203151109976460476779028932960550721440610575073068295975045144087053027612908410576784338437966565936522649052006168860101415314294920967272704942068038576893015424406468501721100374152320867387313440770216325177337485155811568674338111190697925763359603377840630810772963024258241876995483397196858427863701804319399614488712155640999375345579579081311022830750735601501394958586535208636589763549781347014641952670498677133866689016356129824112100707375538979443960520923384464015762053892987623342478039221785459011766293466700874349349761994736420067716855253062430185713026222129911488410411299360813212928619695669686314163977601747029345707082323935647929924998408480125072442280488350819993777083700660268867207967840939828481584232148817080560032792397597243276318395759137567984297733307901210007561209720021556556969874024015292322382750036295419999567777804907654038046939710340100575612859232181564545551828247290597583949537739276016172890574687861109933378370457142580021828848499926274171737936283142611301676294293744146578655144575020532174810497977773576945483694118775181093921247000110057612071162788186976237169334348443517891910144335763759555561031599523984566069993094353156248838442146937997548891299879758932012697205295172366478080234205277255892545297109006360299889695379509280652621098546485440249792096576824972399481142550841498197992651358948312612022914897591144171704994186857684354782170942125992711861891671139200631368989533426560158295048751150629266249792339983923641760455128998728981887543878260428670180726759085377737293741505095954485248971728741393668800468102565979089158101319422634648691669243224612710714497508075729609809497367721334782253500618686177820011988785560607987984745231116823830970167111299635868245365935035854772629530104206832628501110019602393791238047879403009385710342680445779247066911052520128363383258458135459097823398406272561316022616846875813918668723384763070420895853042948298790027749081301220863356715497516072560790119993978602735258221680937617619682616853872618849645574107210282215961892903716833633240191983831302232397555635737491365762396959229634832709819160819497284356294950890460362093495958277477043117229855572614943979868006198477242474356853298453708442493552598274979672901226837815289952395490065708491278011148124663755778361008860566190855120811001631239178994568478000715991042934311782982454722336621864363538349707584509462512761939656354288221302842180326480390384201218882134077145485251348242947095747223298324624087979802428576295244873672233587284416558388062787481432047596900956843469906094844882397464817782843035860838965609253117682867755665485198375548298240409322859103005502603412297629482728228879973073120036897912490123713847757286233160231796393972640318306949663883027213308236604415433670399157987632935867826191557264297086013150424759982101132319395293639215082810735254742289767526604239583969192833184432847396972812375237893124541079825172367085215155659548843246588992915698652266781193087762403550803788047025406237319751533749620737140855639032970027355637940208832012710899650976379511236780730154860384998155704683858168548038050224696297718327608326486864229643726339309351769848569531459606552449545741816322257517938891455571759225392031980083422131077487229448092506619749486834930086820095029415566817113080179035442639454556018823999653257049428616697920599474600839876229729743657825774422233961694691667412965508574755720582750876616080931356255013850163405013750816740712230314577233595304268856711182211467383399315436246014384249652665627109599706900836270283485066363148955084441207902701586397744590352784869970931983529598963349100461563303774052818368352604170546944014826970159596305167403360325354670308682887745022502362717391664239937840992555665894856682709497039063356268107380584676656093144181938047428591995557140964269628401202570069305931654512936421151442411202954601833850906184959867511669927176043762022887779177892716299595125663853473233313949003720131019034181600534344641446156185072032898568540761920152912567254568211478366050152115815216289648608504574937238431156963452098504016817544685525651853536991160675689678084098866316061240144473567905488366983355170783002973680390476164644469880074491853819324221463295270260834320037118750459343479828642648520309078584088865251975458505924257927660102152015213241547071254887752238097018749009145394623625806871948526580267915519256844032257918139748895610903624420584605434916725095909726369847371390597182115187843511252583665746980934964852015071536048823112146664463369645441454628403066103909826546265412119773098421748690841492296610203100231685472640614933867836274018005031370941011850280454674842090930184869673887292430444919105377986388895723119169405442603745872281585305336860764919307512628089754082553289031355816085232556343941137184737441065453265017945113613541764692417144826585776741425058204106273124095403544887535525950899956516911196732599488528344620472692503128583605097181405037650592774508381286862257582181214405737070656831123310959811614714583034249321766282825425452432059182513375406300776503268853013499072684482066218903106810793597276060358107134087762610040293203472817557441216096284026614617897099089434075823759892593604038565146310761810865848639238612260112436403079083099994857665842357758598153989553276400386270731992988058737579439994365198745999085441916164019597496162435636497850481905609869729423241593051976760042897432474434291251171670548726237065980093134988701299176377789078821054863809892914289678648489663380913027369521904230676286594932591151879521974125071739345172019475754970073196135283703551014829553967854971772491813128596048159971428362610454962622576254782301709149367480352896440708997777303370991523908142678363600047685107676714372284392661859343519743564510547385213712711995841763228940040098219650232525734415697759498632745017114850277404493297597479519580050607805767897827547354428723897154715990815663318806045343196042452095442049459611346306442548911390162269162475994530382235204093720760142779190789980774211493389399149235297676579866280412420712853250288926564981691020653732970208400612613182956203931389186563133165600029865892942636274491617611477870387610339082556530265195347477225149093996415442731222742641842005412345071059959911623207950975644020180429975296869162222147571224156345876759012552071825524076227499026591434935410349785245713706888536406921617474657962898800634891189766693346364121515419780415742389598873190847132176093803168209844251757944473073970177738191320219483715391575175293894579305707602281018133266006520485667152501608707931834940040858358618443125597787841756194385239177481202921185190868220311558063092769362250852977131739062698563778098666381130651300043880358621164450345088878435369880489518441287224725194672561691961477232597371981757125927101213476832525230858734173267581335192187199545803567176208824458006841037395167853093678072892285746069441903638366772374321637574565155176454153422739377236284695305292965641286349439615219645855026190382341278847843934600959448141982404764576611634308535854404646594029164816601690573343265566067470434337018322829296677509036178443046159365490929421236268584874524696143469220006879455592245719237656942347274406287234643093275429309670464599723423809604761501143009975858419738728830232695611332200271673087568417728696957734217836279804659609076713283574084165797204359978732208345547482191262081214342881303354903207157101582568893874876894603534603995761773793414536729300474561390708597632289360765283828476228149983583954873955743711000343719132498746345693860137611048356350190424836243561129268250927671672267946257994901224154583892951368793021353607986659881109685864255087978409120145290391829314431118637746082102052462678792394107823265831448385506185282197405620538226510889106489979620871381388344336741358867669737059987834977686875940959285950468953546951089154809493247891234564127349538549779716439634107625729756696343031425053479152797750869264109067892279902383790736733409518606636098231329221926791648329951592739806048576334285638459507075859493104049719598200164436789146351788296263582922621075683004662906488277777706418073201190465564898592442910253092087889251024100791954996013851431828313535652738444828870746947653894629661582086857885152333170103019759768670668160593974723908004753806203365898007017798408641489288286074448635016854346460817635929681378265185607383471625151105584468072914027253070545697928876474036743759110641001760849819992874403101290291791253708153427035405484762782149536349581722951600552387973179433448336577427390338546648130715964671680750107857008542386942086726899808908764460373021653489158926758257911030624561673676738557596508625484854167955941150410270339441020933457181344244913053579334858801094952580948462865345494782071273622288786103905606260509434810982150849063479738954490963079483339138320228192352933895051493070986775503185841689180966792344477453340522662272740463241666867137313665734542741344721435248591772548733611132063620665434515473299507608005538048860165809405394396328186597876638054415576672148101874342052225038645515344614151228837248351432947795401712898820572017922764242005429553892980100193490024269271266897856355812696960667903391858793624545251658469363198994819796859740224775270593531394892103770294609504612763954532260644460398557757565060608353688616856039136824080226453933896878432712507711827245199539905186124558251291967903503618980989793561990099148936804369576697731274957248743918876874066349549373830444741467477442466885703016610189091657582972310845757201003136887526356053715321912778729594459737616002265047381506117064235096216370214010977086706270764618886377622813102525890268731473501290139181097456430752247556818044400898594312944762898806326809857197105109956522833016752095990044286849307834571215900586010342115517652827518510984264174643546597528497816614850341118362022647489888532059980391511109643088734089268805270722847345873852648284134613976140446076207137966256288428554755434904745155185822067758703967165955489709625129376779633002000872123516383861325371326162559694488693404855766423184797764777681317362765807339786544521032489346324230425340666217853089406015094842142490086237860196041766585543476947568253423730431568145178093236443557403370527210270607777614100634461941013358008479893619757181891113420087529150035659256300164402608820460520844413741336928051324905795262963224294711226638007717534026710436011521796624571220426851029710946409921972114833954241412401672378171464215225692685559460840762858821728566742782046927783759726756154798786448166569733740464559008204678624329339518088922032204724715453037432876426685068069449806186593857559511059543993439212385526766056842247501245858996060908854275111354905451197526372728754161042085149109548967359346799559858545230382582143737100471214084661596530131066186677790991238265983325885792379013766729149363477343624606060166958511978684238832081888077098764129115592023422296669058998733020684101295903762330684261509820551743988992597275941572503300710471108442435942419341775345650471517093830623853101736190838908075694376911651059437310453528209385905460961489228266439254788963412352431422879705515984971404262102234068238397678890663118713600169249225927493854039098610283978276655884008511541504749607549279148858332721010666848574330866016886060983655875342806610591901308439742426512104149674108387651936905173980391044769779942116581168702701870142848444685746674421746706800638127967050846847336200925788385914464682042319965390629734631185208929569720244829778529440643444422988778527921582342319598175914849024988226089893063561305237590284110135129756210978701561592596780846812529343016057336320934826734252392896203101569700919433653181828614478407818815703612965218410505043231187959039897201141323085426348301250486320622491364977830975617023266333491168321533865924809466160824385468754529579004033646350472534139144547982895616794092082441916627533465401789010553629982973030780316179762269505559698724828013808216937967525340057998935525630186381839896537984625618977277346871553781465306624513447528654695482217536894376862025686823706525638672794819816995666676251519044946895064130896574354188432186758822140726815343014203176131520177388819603150000643417915800770651443619104568266220403986524564954830746393371140095253519897459561038416817905922287140918943813237164097628805651373524380552877251123653347144166233877093190238248273292230292725147267135883326562272048577183467622349265938940186637146719147686615827753231097518815851872860480509554013783618605732596574506159938373099575195945400024904019525711009415443382881863480652369340482675822747890853938336236225098434471577733774353666525813554233656014682344609681210603209412761041043295622554185881124428835813450606662806593037904738072440166174382290320264125988700927315845900123547841300015250845170076146493356695298726665961529555718275194547987822105891219772276639663653473504654232309885672454603957453474054045084065133351167692633649732541570323017596863907204826884711152218872799751332812008708257040935766690172709197867978821685613904533955421216956260576725922726776127750998831749503366923230844275374086168746200413416658521309530446749630888878156390918299789192224713088750594238084630244479965579364718281027947225307138820817352812319821504780141255519330956902514357969189377302542995875585382264089354013346163999413826809155714144736389384805743928168442415462980804968614910822697566683918758662250548328805742742782712491552332835699874223067576320766836049704300568984835923255390218155769066140443429610246438062328525966580100256092750879142012765468140054718030449411792519980125920551374345958478642615073518694577609232101750334351774971323725360830416159242856048423999057863011567108284491643587399659115526964945481278342292629239331286273423552922891835470485517979153197712667618364923496153028920619598672472891492350691612619606599788005021027353470896670805991825390427050500571980886134235162319133945348195960537217301559287158062860481427802469549200698826114888776126480921677866759919690488004837026516673168447030740632582618497770386155476511821030384567038543310363083169122029352241679241464396510074475340610783052095568103056715057439087084237530937489132494705280420514315024768422820338732360157660477649749853157791889734670207259702950072474249629498974810187576750832098258580824550554879969583776137749369372392951338834003015592508627307480068455127824829920740650163149544185514212800744100810511153013323991644161640978925824325725319863484339250457523753968876620415689326965506706923189479554076756417184195362089116093748583506515367898409553261551295229183615344569563295090979969724991547680902313473333843711277401006193753870377645436502764561352254615546445789373831096584351116725246064792081343733186932986414948646872078177306491376695275475572610160077076265488952512063406558975656478436374705097578192316618532888436598714307621846740665962896958974398041240071429616703280561304941515312272882856616243692742662748782190459690446856274421390043527681401501269208628048474212758970156729846190873707073991000661167328773491632961601004210731966147743601647689002326979941670695390167365094722857729271693347911141271474228827807595411228115837871453727929273805766388609308758725977421364085963253885288508867309006422968081965837689317765140237103461258205779192446480342690516981884431058312782788448737976259785593458020866972790606298384504606477442138491810058114780551510052542970114677047012514216362424304518816870467180090627681766868982663010239600955569617463024849064164750038664931450053216754016760054239702694815083788996783568009792043091744098868477920385653238773958556556173854592617238279596764113507028507818547534011379403508247301951291198235512879299773552408301351593152536159998902987020802943218106262227748137727682540878106763274830624060850614346426403623305113789499987547057992592054333320860670363462817772795059015349248503951584462023874661076299988179914958984459929381682728714824282612648341626715525171060152717190544811142903055846553076427337240782068677324463217149513279290500652865439816189073530336462855634743179779754244187767172769887009671686228451963718567622774447905227331485891256453570104705278822878149963382399527539739032265012694437091646589400903096658875717094035867622323446392203193335651028902077624792023603924848710410374216613139363444846350163651555177135195047494912308756557845214025987825999920655951728687708793486680122462658709144906126386341402363064387151083889693531356606805384998640278551682727634611025870723448291639274705825575195414052499988357480682138761341744478508568017275719503954004430684522061668078088051415528169595568506975685093785734994328778272835428792751170695919926924790457764986436730074971632215266229156136255269207482505583387505758327398872356819017374477105645640440106681994515074103049133349810727255561051387795850238806778431705705444656908154168342831485551476410911533458531223710354570025517393175887658554637287786843850088938683760998352514994138337815758974900434171268346013802306486258420383034812161988716233313960651981996495401332410738566798337337081335759153955896031308579998545765690771830187935086992122620074396342320341276447079512407715965521002602736716903663635099688389873787166477864723430186265832225153069137212727659073249657051026254162326280911984392230758828751729398588917579685894295364365705018701987035309329066346386495223309498727494460178646976230505690419456656974950834172790592423216271174068327375509674884244107089261929922919463005418432542778783266391923992669680994884500856954282315184547982343893584701576399018398145862523405698297267940038190188790080312750290742524280674004377636506571244859468786401413161177577815366209542505587433687818958517250334530568272229980014084225115187589537665837265248606984505667935510365761997983593977746743153354177948643251644934637635731495352210070604544134493777162182454118978697371808223005106278910229630437941111241590268071731915690399818349050123448198611550946606605554325528792852971087667163902461943787279760881351023244633862979328356178942187267189222506611108750935709274069880697139834563058803347914663923954681807751296793126880578698642862166559014305303125165602499757831049166144351478515649879398701925691100197513626760261846489929657629723217983820591068852848964402744569921503733512095291404612388702852504821998741375540404098636187132916624463584153258498442728096606048968878224899784811622500681361139279183959930028329946505000136437750785734713930643271108994218158199445469224711585829459936417595772034663030374926486382505231757147785584117899196141750789997031968789448221206188112617749478177663848311364527342455115649164294224759700043443849356315961219675215231494002061896748237643624285966141671232108182925296681282446232401610579698666269164302197458751864081207757813216336061600547177639557132295622866693911564470138111664788535222503295027983026056160309294347021085117639315482963834728651085135904316750731775095734297190369883939562288276367616065779494421176961557415505937659980308875222765191012198346897774103341999351142227445305980805504240412696392708328244819979026432983866052272238871759619105226724379067308284385520928245564361486083235275319252445954475969560067717382225881607607603469286862517966869554583566547056690195134625023774542544400621266648993749981178323403955811021422122482236733553766781220364881508040054907404500317725358594075120891357210163837628573907213882615892492522643097360043104652013552845887251814751116942925393703183532882551171624103731878780879037776598519201109729293850777024017957496159637922554345510414250516363968517880808261327406449778230757493675306735867366209066781345602000760366738612530680278103674912106684400770879125466027219927085661733827228633473068008194394702398577687693169064526046885549170412008096528284768226691344729214398462841289756946284208324924160147034066418682826539433219173615482816261050416085789767407491590077739507194740966397275934253831708950093217942041681965916368509519804095365989006453588477235077242916483728930900352725007198659076450713970066183303348580369242730569673022229834930677675752083669874804924435671054388410947481956490505549294941216786617904474220731534265603153335195404057069396003203535061415112652513744573561826525779795246868264126409890509927840675664186546104004946645420959790167519977429763891133449996413271493781651248979721776967532190227438827809744964052969130974405284279320699841423703002867080596130302337414826934695163030542953545145553214586968181981141560327387644296234711693255307316180916838336002700829162248601745547474251739279990697013105096142578707068545018519436112801715982946662220064121849895425137359757962626499958381631601387552208718558134626572937972487481945234276182149812477006614442955400132282451104601318012609948413992441022985053485147194203029854462214251902453942813461781505547933942575289993957384248294435314871883267674241927463449253992441549742921758817009304095447459662002789677376398121098918696169055682229127537501347257634514097019598442251753528285203545801708039364711500275040330972524070278135476149845965157007925499080716643675967503651317064355284701079496113454294388597426695693814530148986601929348992501023453486794422653888691913379866733266384059140572553555709473439846308080577435302035604876973278112059593698232704021511791400966595098422960390793341813968208487594243981447152244986074500971416141571731002939063863816057659747683213900373483644426523088883410688287498847267537746265207971301385722236804159671946103531338819360812044479927704244234743167107454796620966819525300459461331952363123908807384567914057772678492657788532194646759393015569269515112968887507271616468685953556493071110715743472061816125705136181776531735357423087136091549679727369695548971418383548752016694944596625811068967518573254586242793812210031470441935733837374679709806135206842079792693957250682952438571177361714066658339828277944859532840609248192344949082440627391573323295230785493850175221623106372168498500353277070225785698171671738688426110035977064074980894396828664528841999364175107160262136339469034101091673197683725032754291975447469229072809715116110980986780216618794688945075679580734045251479832191427650807351759369313985304135828977784534227052071239383140845389819499140649360601969739972829755941228836211661958539293536718331828333433993336765989439594265219672448923547848778714597323459446732322062325740348372207447650917876289569899147729214537698063708179731023107569884815754817078220413003868283467226803263702693297269115948901078585425640455918118156021361120999214712079138519391889927900219595504112958518990757200216233994305327379350676006782298724843643742871627631655085983418239236114479169490752472469293288763817699139199478468368611400961790805116196491274688524522184039018100675801746477913651196854691718613439766643391619104771010642838339684944232978646654890586380788559778309993428835002579589951661114897878537582635231520499612460281781062932654327705682467603618308456507670987892912019224207817523920281261920204728646620640091978253047892958238464960976412129078505180431146238483738974205468069369077038865071270640306014544054413220587964224916589786981113609496315346779704959921556960418248482458548688066261336237255857300871023968484433079282740098789841255998078689237677314069322604342829431721753166881570329671087819996487960696327927538981121909412514193630489171081834964252893561604993217296205212767746136537416190022211930335202444465031173635560449594621163147710068394759761810461122201344002107104646213169979775406856278984027765882300894686580653220109126022894257461924911566032273922463250825296153601840507536584816594574796811560844741522082088236199103798683600018930864782655990076376808454001464999410948597753458528814166095132536149830362471736825119146025487558677474662945610197688737853522980182630107191192776167401826588775342297624922299229431951311095400759090431633449902220026175323033534215783091799338645637053230284338755643300986601229905483259839345505295028484409753053939291014070116802571219614465566909997409137555439292458464394029539590924337505209645119920671773951405201314064729142104094614024329755077720920886081600442093720247634187000689948064988040698263088793416732776281163933081411466308113219499774697374385578924106776049653461431842068650871920306090575731176214453350651380408951986118384736959359163436199816985299588083224255480877589996460302615404247292385778994557003775641635732364720822087386533056241320181172822751885362322437437019077079648520358177476731556589883049320859334354903104438975224925795586727105352353601608310544990202652533647880418733683373221933873184178295647157083264740893243601457831128074123543194343904956315475106863629842003296052235721464458864175451566187686818133398396650192254317865087460289358547014832753143041126347715448233358937286876236871349540128977165522316328146387649791052092174687841139647012207580174552188797527851631503531750216681668220336246616336149618646723096122267176556014906139051262349751162283405634968600807287616521203992361874290496942768054423919640804983635065442572192217121601822096596976940188185222607995286431047832377877064412085570742187400003977893105869427275980681022631051784313230909235837264810268594882396863330814073901856640351629980456841105918807845571053379804086507740512129603448471669321703691424780292556660693614242033993640641503596622029570852863871120618390755509152245679388556014366554458539518946924493000378888399690966239544536820860055417613263941787516985942128019636377031076523656870052019378102415656163545778955743986065346754874630348772832515687921699088999157805989679848621810963247297565555917421935436458065925155501969301379334876312794576972046264737041655237586480956535911576752952957597499701061874723697201308105367831206591433130955270326919886543336958704611856554426930512357537676441727692693942111341944326132109147937303803405571465334766985033524304397338558986765819808164034905915610798612369986202270287440071982353835221908199224599580608401186249736377938788031775372457803103402832468919009861139810921303267598695600118991479025552256274769569168530102768990906283418044018805012103522290906848010983701830658607692248478198271420846150172082254695586925571176287056873553238112455702495651095582185290335118488717734986366088737425107636244535317759917862387859878913158244247664931963404334276550637781756613028554849265645165122043104081598137954554102680065441538642761855740930657970363833053101087222957875463724879275748210397819182837371050059574978781715959443110550158177286279423053729324080995766897042842364496189887785341028707440403120818125910388454749739920941611466259673930907806040138852785011327396001883178907308813160896993469661889320679800744492896812961231154408180558468596034585330939984322588513502268416890867117679025332969984584960440690932046382809352758902443388491640747254287247461534394079998663831644208793094256576636696966081148682461786028812249765695358284080621579403854442586071923977259847255974245803438087237654662531018242692447755395681575160557173555181711625890588713229659166593656239166178266636043712517487416092960423809046279334514204055059311435536293951945940296142847814283540823352396628001373076156517590114265482918451749266725319317970969652431187933832373345491701299586561323745401094350797221407669151118531580225373103581782696908712128471359518998904105955646902927040219930232402667800584157390138238964045274932711865301704179499793681874981113970305213730257742721646259716595818515327941258797450674396590884565991795555172387322321284918097604040128660291235754598777513912033331204672504566876377073615181966375645280364625008509201342015877072681627878906707045707210289977577294729553052002631695979596193509358814120778974870581717334452152435292968057726764161933284067825780736522333237807528302328415847838251842032934142431008202167297982211289273850795360404034406311913717249743247435508440487822855927841142517257949937217828088699215793447999436715229880093857400854574984194787908494480167931753025942060120693367443799265169168966315170663148401722213158807498380256225183441742923313474635658304949049734510272472698995874169541380723030369190184202232960224737735851187462334553124699500962125868106632462824128141448810461100802637826158733989812606019409472928813874932443166795715368807255954987755650042826019804361900851912202253522970701596994573356163741814953581186625669402681034525824315860993673411143017413958817835235375566794195043374667226068169778901116656406319236780437980439785664993005751682375027805917484676505310248407870003574709672428302952394592748344866812387827913196354767375978385915590510802760012266853289699288441211212043820600500859723062800795396836286499275390327528384017817644452789776713250803895955549410684773889826268993113436013107452042421170935467233556734269730300071690031560810206445553412871214216334586995938945772553021372992265006190607315108080996143336182513428390686039832729244550501787353166372414442882457893809644155862925275956162964510210737084199475077158415830265586443533172539929551067681041340973024817669448926419440070648342900775220555414409111288851206586163298644078578588229711655601804824427058086656639432637362316166734111767944091337279577304086722468818321243748036179421728251800528728503373564110292821044318426475039549852559635009678289720811359326643840605200522479507523545756797536168526640965848920595810953511421183182416871139063292080885837884275161847295421218938636914963151889387391244352615748847154613095027480608439107427244613006982847087628055461268233084801437642889152229184650333661989761928047561473648050543619903186984289010471740655622183256672381637598153941998850989113995378709199125796957677077824757814358800340483078312472789841839853220971945634114062525409671861669726706143552784058854212416126647700089136354631228291981024046034498078937524604453910280365064988218638864936213094017494815199858212305084352143093831343568098847551427945347309096521341129459253903082611491321203976059840350177232612363252580517166685291876221031108462613644484799167100076996249821126249833938886402992327665274068201372046091286157045497612861006115300183132406829389123561832195341809577815684110602355634792778139809856712140679981533094406911255564530803275217235003778730662187144087915570525740419724746073409974640375195859046137897768935216807812106318026248348984339358500831840593296214178973091564938678742931744577759546205644304603047650616756911072458898034202988826148003201265976713546432350729954722667327689075892526817542057760150246835096269252154826938269108637544108682704251938031623318777324687589803987895892528180631342721185966189373945896759561748550427371394278164408547490278631175456078261711390173694855928239958619627001960575682988467905416567962868997337250226382312006775679661916824279419685624540515497057270027555067808837093837763494964601687575039425994441932623458484877227937581039524404340872159632107382099274701694755437277729376228513249735763669770804577665904491524512194610664060904877968890473359553755612750840299895303474224918655200949148795706235105882663586294971066629457790618834519777182301095774585239983876252391720039309721406287191521527930528531100821916057189299226885970992709106840849812532706306497385093147088555666800095212191475497076667307745901147410643651231341897458351979341419902572566861467881279108591854830623042262356132780742507180572112863739658202554443431295959095010544604240204525673686974394504948258871329723297555550674592698329290066512649806028286165432025881439275977084461243005929536547769723174423085629602430414031414905978052077943796913111049666367711585220183739649398304339648499776442940365367563803658246024137583468889274894006925489551651219329548423649131310253381646855455125347869168179287474499804152676321885464451231951677755427449194587052353940076729070284598707502504370490606704462091751198348281729740517897680894554256407226687733301995993541079036828934296481074125094420283395368680910169500977667949681770395896221440323607119909356261197597297631230682748054733486863417224562023495252285586019450486732807501510877487249030621512287403421864912583109579224777382040000088599139451926048330881249215783354932951606253846806733588885787655361774128468650139586327432931022690152644269883746797998325681509821702257846932435319622539316498440621830314173284617818624558048607672044556313466043263969826576666551538039504791445481395129902200715586586330219870642643640171679480065078537080817079797584946620816639682943096151920674979904417991228293406223030686025795208096827711540715936741374552622569195464062111378812991259512581057130849660057381644705169015194618362640000622080771148199764935802467881785189542790888120884939133651187573293307668357826793241328575845704593015322102220026701327206175144704455329369424784675485220249666987835515679560755053427204083614051161199809412869223083441420688326495933143039648119327834531557456612041893965063404273927563730306233964696665279638185573315744035121102084726227515771667002375413277813354532148160664162191073469894563584864581583112753112854946331180963424878777244286544996459644274578050783327411850897269152489228627890680491597056500715511393234262067354108931358478896454035922743555158135031544050390564236677861835005944452457978019845795997264596737023441342994462272963481503561700511533659354795132449763303418560877223968093370261490601044726207405730773461590739081881638776465625220031658465231140466025175857640950387635371907142548511946536608225471709660565175425985915048981928284943128047768195817145645019150986940541993501181229161446783670699587204365517595021346870569345037456553278142645092742788037754304143238658364526385315554288645137872083548090744031039513469073022504107897314102150436616900973365062856016057410265570861519952715562115011250018387372139521105232876150140812187918686804633871750115656102997567705263399077185708992556699864944034997963831045580724176608009824168938355537837803395755228662415456305676076041442898508959284227798353881435976783365041094748242396620519069370830545297965134870625809093969546763866833376121097345854254356486493261170931007348873601888760644471463335070363200084907293042703527687840971540903977836354739848754427298835120259015859923751337828147691440441678987537321787323613848096070558559528367142875540206352485083566330339400221975056996619361043541816896359943635175245156985605567725518758345412633578675306799772940310912303284235214387100573103495644369046620755272396253546398431680676777550694193296404477970688293559713489564903636422210694026182074856855499062569319540603511091636795982380464624210105322604414723994849644918114203854296600214453532043715721891239458844415426236298129481147865775887145557149663037653030616796838994202229024492643751953113190853270922785808421680813144943900605155491336839818423457251587598635216305621586615762808624754805233474005802147151598817490050099527727365148441279783613940235026408512494829043547616519129206389897302352095598084209739571162234682069566478090818308139114845568126682225905091082418368798956262843299140122963576046794805436957111656900280210248764928700902933417557697611911478506918560248480258371821600218875950633881019042173425191073773050257125094237315217193285782730738029161384263126762110375831823508658265345194069394658864751229683975906824028872277607648306569739438168334754054504898617980803508340202775287660197966697687713819625291137867096429395352797688829514887810063165574101832974064566197842486421897217779042683866477314058555349936203895378472950250834903548967228599869248024703866914452307106230982132316366868112296293157603381981987912637854633022652774562850609825033374553295968773982273101336230663258875309075535756024399336445622585899868032832305838911599452990446755563754565857071103200984290833261832441743908675004040931864576013644885719080866099485381231772819739727145890865265316838761996960149487573657409907272310255074094844727292121530331101586069985653821931942447380673023312458694491136580338526130910085253178536485866673648952947124486097917662428931433257717093798054622311521989150503515770487237124615401188833637357136054622447138920652619212913980555501777553002205901780526598470338996708096840198341506712317827668324721618038590746732591978881725118285753743255844972215845271067139786802414621223043957863648793727064222622490023700300233537116053660183258460390482590166883325552986473614975749390242845970963620022184919616975616274946454048659908206081594592496803653259023480591701310241029460688073956929894601694569942978303635787002492848856577812572566848850925825440224888283067637229828099553511064854209659576456947194433417367249985019332376489217568069200506480085509312515527779457858493687932900971899099249404768035745663394175160933920489240185467574824038553742020700216672902921538287152461408747339851225845696256377304825974804668835426004316690718848433455152033550368996644485005764253103744343303020792962858197810251629830416785927940131767124467073194534413354158968478660590283515958506348443356947682257070899259408485576187045733523913004403922491176255461192852587018357859520871150646814677887750449300895910517474882269037926979597522884762562361073283610050444152774110287268480018774688507921827176101788245668480181830491357355648482368148231586308201459498737037512050450934231058134301278490438835804630508923005333677026533417433455991827977446814654312391083014047987555985766375076870150408402870681464139784246490244395116545215356982075549988794107142118215756117374357481182800508292180181154969131046534155684770392483965581858687341865842859999565226332110439353346320854615198028225427698340422549863268215890278002260671754050825221857586112570375559682216899482272276391749880544371218791295990310683744326911901209391979710090425385708746230971381260188674296025421586670951171955166773813689276009129471316010515022996449794794633589417884775944084833852701932845051409664685577363627347645150712893959765230918132697307211040779818759153688175277677606760492238275227696440224059689473008577207893417856815854239121269224818719828001365729852495695312881046976366678500826556535477025026137917767901242513026326228721908960211155892898103685183561362905458677207084022256125405121559271404705165737276728602898886026500438461775309182711749762267819095624245452378834935188984313227569285282879510409164557052867142758886022929888955307008275394213717900941124053497608408669292146259114041902566675185165944234413949778362163291385960029565981387800739803474327719263599132064926506198162126918601816664685626263413524087818386956015072157003523552891539664915517643064273670086657839554184819734700344175211120328866738421118862829322212850895057526302092584208272555670910783718256009003676463982974367963249136137847623203889114836956508187611936257398034179600490543047983096045435310581948041224816529523232314218238702152160197010358806024999296362669398710827641750279905652459177273762224851564133193680010210880206167636794448811927958370724866315586545584656794178404777570531662202831842510366031806378108316392910486272645059759753831801459252540694976670525270140228293323619829573125935938278590017861334160110062528628802838520808398144394572640422459690713556786831810989510444782396257920672850848447757841817681581669753151283216639417950409444213062750491816710323159542234836045709951477293895117671968034957637185933438869293478365110916949751579657442846128697055575122712459475164709643141787510233542734464837847274414881694688132580999617606279787739875936357300077628296104223706316146885455071933771845667503665404330059828334048359533927057760866340881522079040456700214139107452052089103859147049609055914595203112255771053330300126448265881727908631673232392934136067885424981350469668371897766201369021639938311602102021444702884467681902561863149821540491558138447254448481820772872163050798123283311026300291782125480756284790790010549943597617845382958607106977042992106163924253675893423341361180914718778738428270821886612153143411476039247298618991057167103189087583052513714132096677730935540181264330454087998609276439238221594657986240419550822847563171574146390968070641469287458066175227161290535861132153589428172141340968408634231310779539260057363821256852075534110635280070963784481798318625980397025179344743653136892049226718802222196027701123432553398510967528247480842999881634848823298790152555149926594111937961061180690440184206707720924211812920107963894343570306765392013954351553501234593034957048820697912775239589754775407709018283630690637745683458180645159486766252334769736925957166070924933677640512419371980272403062667485126984993425494565969827877716139293456574659315382413349633819424332102198618453598469676708241406733476456383442436774168170270533813735107242378049690592960393367189572393844099547172451660024717794890298991482727057190912544681534871792815842037976215435905159066808837487977214477921678239638522540968587129359867483350808357682181229843759132722504931462962504322246786566937178112357971543084071463101250420790492713111931887063146465631217121740867885317713344512433322493108092249807126017029842574545019295463914173118192080996621192801746841670536075496069193110980038814670714295511024152004072600269266484114538204075728431487697448104442716842365317335597485131256556975392115776463075535241707832650899328559344823156459878661909658510776651115518563317702150027041350458149155064930854480310941324185681363779509719267516486056854302253479454348153968145630736049746001029672789036356852875602447941308541652035642136318536102462512717770145446992625000515684717981659312262515655506425586117189794822791878387745528611428166992794807752098602411305292352506985648613271776336824199636404958726519801426099917607579450271364645715588220954574050450527621036976133131007262488846394910931909238127693316138838509073920897455071233301616116034862393324521166927448031460533729217106854291839292151035039905159682025578511289424694446287769578927231979290426085817171705550992033048928348897981008905721160393906105575897124155810605313608083403209153322418846136674751506583236803097430401893091858726617564421757122326016572409248358186397886733951366352750076868166649191606289524263823876875682094380863465539017294972873703042050263071364603356143267268040698645851281910894344829825194002917237470379434730508308437043431612135103405978474583850461995241932576870367589768724780727177914566800964509563519682231701799522386222776858730098908655759150633017587010988237559388134858970860401493872507395640631199999481682504756432548135785123529134780279013213121768601438281036241350588642504064765796597786769369442035493560925463376220194325180974616560361217117620023933151930597507065367226428202257953071212384179992787410446810396380477745951775798081878974532013666692509309431371440386172942317976140540114806697897748635586772312902248695600339528246231686131010722845108023926967477847131260187569359945940827201992113255761037990176234997638424101975688249525466184148384021062832913727440692156960622330079428546217148380798379199127979359481783766957013661011644101257451273964902351438522495282195529418768823323403531571302576671904232455633334976702495690149522599428628874234586409597674449500168867758675746262531632876683531839296818512356987885402435148935233288572250693438928876775307824307023384795278590631268712754974440012783814383662289241273977942197902281222591055087057666000012411788184023472910522325854928253717083659231220077559743602734151457812558354021975958375442892470269229230201518200131656661395054589429120553837045836891852520133608498574947787707773596195332856443960021366517777794671769247929496537067273893477781516165415868349995492074802286127629563020500522341546614849150861681899034771180925528639636381612796848184891272897286742060012251660374718342802598405619679860754052463775905520631545602244369029566276379922746677212320348896292927945296044646568269519313522801424180394689654678278794436305196883633805639200407208639914859452090841774159808795431333860497582447146526674328254220009083487094205876295355105602775035681979355170473465542989296703064412952845651610107151242983429648860343979147359310685007390750084183951422058180192970047102429204517078461364116184571184777981574973024979681738962781292869206566983151811434711002422730260630230583544167638911949051242355460571307417109609711888861754980184072011865954167111688524140645159251029472739545002791667044848143062596837340377297775658430207831951712267162110732143096329023007395494856027376787398183323161390852582029756435859485338478265672019769836520574434666640777200750060650831260579010258252786495572401333046988621664597606313296233712150243547720733783505429070547434854592064759795589900788103863103326695607403253261268673211875394573638587070748052911633414912067599050954522249794101641375017866960989515958314699103110420048406239119122147962423557661846162736646490298186999847295510843720065042590960866629544267229921001996835155912334443266377978838563040174578709290280962195867864956244219518197937688516081674843101587651273537431597500470567791010821955461088890952918284679657851621526886039134610896960178648068782479068447614617906759709154232544970997056126616615448085194375510178201660656010473833814374418313500169509503000883249494300556474248049155910233608009490668041164181679635322273696901299470000426216797531801309073850368198880063441885663680951587486464036240483474848024316658069289810065045921070789118694007314538188570441428706333657661154954952557214101840291501635462050609647562420328276144634195353655020055510374174999848818264559070699469848187279570023327921346270786987113685692279325896199000809884936158510573776143597228240090085988930660049662382256719724006321168715416103665997153030327228736038401250327837834856279579770515142775641434937387123823612393505315167413891366685318454390881419043411809797141678526496996370715972909446008813656095145900487903628886458770681682814194998340446681427493523067112844546519004887304252848336032617567838797997119347948788873543004900033065685287340484387273737982974314087863320933155597773528650556817852910635765383632345907131768761445592020591645631258079550873443801604202922042843709153991677734168454851633870734201803498727869550673811744402753949631939617284936164814684194051177736866754682101616991640535693510207884720671920681706250967203103434771035468918149403683350393080251275916487104675862242235675773111230281095602372440133404728773271019279731982482084250737622294294224397988135820535603301887199852004742648566583018924330471125855181791489783823878670072580402361757815589111333187229937524571011456914904400393143048517392020517076035441764036671298773107992557698548758090216649014222437802221663251780405974318145461009384001852468321560032452867715530386912166566532302182475695181034841304601896742109496114903018492879133983908191596841867091330066169228982088298282188662584695597350873008902298553193832349613529545347416410804138425087463141184248035487845404336459404782004983412203759659440173730951043882857617362334596003758172512889770584750424300164850866483566653121754389927542230847244582020168452906249890183144555460513880787306421186672002662946003211063349017395268483352169196012156362070171592598418710612633364542401982714422886677523111806598351047871359369653245412674431513761442832315420758900517725422087174716216098441272066376233456421072059216409157829633886174500015732948371242794880177384075801614763953573501010394038217897404955237237182602684036770446771383256190176894661728591699869142440276748043020865829013043908713503215571833731747038648509731753131741836665445791536200570990341318883961022413097159694707261612570114162329159328223481830450053137487545852853489059311251053336408542230662842541510930746229379234718971558967318634995406744921135330027855547579512767835504867891703701075319299139437255806446593365636985334628897437285239727535671303648559322047968634240947736271053662947483081924522556541237928475118825697865775301331484799373976270540853192311780808990784286110577248272158527674954313293562446033051105137413921210776738521610793410475781176811572944685338705440858880834954409702984880283153517649133117625897158016439589111472208450679083211700034592895968541323562509690176124751320612380198382796582476766227741214508651842597711504735254755080248716397187550472276437705388229274009671125892904889584620205458312673245062330695148186264763867381891835494684188961582870487142751735066720217916821191820713795299697211725189724478239536021922807551529110737511852283844289233833949493627448307528357040172114606920177474836075889383782417206384016220104276596415024341418781466396662311189144106680490642526080683790906591013359112944912657800005675394150597940312576234576311832921584892595965022628273124602338659099897802216593156512938600515391047069631189403625956525814006806810069457191612537186328277934062554772547003358937766571891069408078201924092949192570382871622453345024705697126260739739877255673295958154842568137628860658432559527275672199033900128415585558824326106038575219768399992566814675916283370423077437442227736928190676580226766117928330267682130086618853130799052478283415648033718910006625923872984028889229849946193026937321884374474524301801351096895089572986450854484848969899089889708976382720051229391254216492840098708150341373093064363915686154299743196591668303141952132284291390521215462828768592585476290987634897404084963370520655970215622348339791404205084875568016738336915426664675308504276943483971237648031501280491473466859680229367478908955427262501500819074030113206297787518262233821747407349535071243733895713501989967857428897791902925680229041217838457002664282421954268962077626653134746524645641028916593153588656585431568024368041234810744223419496042832069694549425913339664843862016843523997863472048318760976741241850782944163107570378955857251837541692774547901649029706097839160443748064715147979462535270586538307417239588384359615605410084735647195565469763921769416436857734984603197354257489621243560635730211840175525723371198119523971810968212835395408535653954495552814448298078975145228441659173005777475597837135839212975421957052415341870873364310832796886028431320146839475154431541106764546859297951174227879700567077512234988295929987676715869531193992163722060290965572824150647316131465136101678776109716013936238924269594391264159201208924189275082578014524262618174937967906881816416767158560107127315006290297703032669495664568949030452166630355349714700834109399776144025190733220696970995004580621569924343693814618952802193332721379310537404197601729178110525912693776436020681617024807160034313300529567523628968286457374933531521858143846611678649050971843797493999894265399610456261900489936610400047329572738459404011479484576148185270319131747873035499444437889139440253003776858452918989037294341861747218804776489645581860000057909111527997385219011817648763233907689905734167195750014044377059624726005504878743584068906693761532177429299838084789432177918314664414614998221201970285443253027690670219801356171909962176140916032451053508166121293080577862657292922692429159433290268688885469889292453633889298060994513278749511831656438550734335229455314193714864991073862000463131184265859655702936406033726148279670551933042385101662172281914201666022854012794359152579567757456169184749806107393421605908715587269072213096540676876482585679309363616250410433149779157545109878514467870368087985141052799144914709931605486776000897446832605927158620523491298944179823413660548543231312207158628006336735790896590812611563357936571657788339763898631365519569087754693333381779585849284637009679803807091101408511156441137845254669922150497095978542587514194638347496052023520989004057678353809130150015520195215392971446057638450703465532267173990917358163844595640718270410225163784272527496074287680710400319817184610578500811973671048867768284221902433807890634852268511402915576769601612487013746366624542046617137376195407401878770536484286386336126462128850362339614022868473274259541615172048349788664567339343744571672617419376598822457098178501446949732851300989227822600503942268083122287986796485419841656633444680620670978595670060646564944503104103175649173511771031586635035635266383602437152863354553460605167034569369011568809036167523472638814694548635757620662789372627614899016511593758911899905745296443289747752862649956274604292661159657621456220296677494516635781630995841800196961996014520639100339555525951921220489544851623699362447268157345005955672836530130024764184444785650909522121456250550383551533681092664437375341325884459645231859013198371049924881567240381725324325828561566021823887551103389661266719143742211272931235996009370397983066006150795552401782638019417313405926952182243811266402336388159232886323686752225711488306197306260885527845596910443977351455336326622246035559195812829959898463776693426068265993054691992618992180611716810954216100977377239208921892098771082685978806988577216384497966495520534225496963052167452539127864490284022197927912432779829955258143960471447420085152345276077068391245896863596895122897113211096617367957829530733202916247386329418762055869327637775557523278965062472080950049511874299379255565861053726076732823190242058242021418872774655724367793968550341852656400443400587037191863700035169880565473137623412282557985492907695158130446267626101923225682910687192553325225202164568530765338757706398330633600782296275438288127068186212894089502524167448894530087705997847836123698983228080201884132842227159809586116211058683279607600728579016902176349408744633319787904032783945562350836947952129129134930303162261592397695082485547768061680985986571747290259130044028918971528638108798125770083716624175281162349037270874839873598022321721334205962247864473753744986550379807730232092571195223977553232647688527605681972261979437850551383796573287547740813434156312069912722427546199492567985082302186567831311877406606136109355913761540009222696856781555994568113504654051884401625889362011177169331062799587327997705615769419056472561141734601566387668633623084916606906881694151540834217340686003942948675960208234956307847134020036485368250311754844911179655552674389995961198632769847378656305294251418279569547619205694286630275042954343061624676494195550279157315610187866663316745050502075870777362353611777271957882457967715967373556182431219066850584793449142730765557541582890470619654234122960700946468489366167292623810913444233417813907374113822542109376256757196526260629562550273710944887312056577210649897173649993568122765795689730531344690434933242758263200082139180156744268605046127430810886220418875124014638014725382967328796938346672136134130998435931941588472240150480418300511284102626630113367301352360954975401021053980065941761259605583312785437855127695270938788208301027703356184823281734091465116322491282607758286289861529243007790652902376671999750377205289299023687133932078079839097631437060493378266569033645952604258177291605192376991632677880219275194988098703103356999033842472054387297392737868909734753927499290889254887370667812857450898809968005693222632997483503162307101902632182587825065134038106635689690514916559752286474382007748558308147060369078680598809807255738462531475212445410126547041129940240523932737736540461794355631563811844282387068069106525522443680552355095426950836658504271272064452529176727942690736357320007541992493921894938074189147624517156346628411528352328681238734482195665276864499266244498151399103558654155620803933728164891616047061654719188870062434136497547917744374717701927112904394627595225467770239444309059124053796821278775657556618159216943139282238840980222244824896311526980938264445348591473241396106048108966774303596961517616794869209380490946851968719209842872327861877633155682172085612547936817100170323438430375567938897847756875879053634279082503345616574387695428043990172047172280776144456784029084553947035824449045614505615307763446889912946623979576234063869263614443402088035730451611745786444394849583315697240747092400648188011653497368253762498876921913181094926618436789607897084088578488162395218392268755968797584311959405756322284761210953344015925826358991103597804449141577422230151429145780532432148345843414720765698838084391067186671542974389126449126206346268021798559395768917734419483859436515159459647399490159210416294119597362464502846059490561425120114742767875998702093157088697039166501702417403129677745904388145699072526442222229193411984343184876889020572500493922688694996284194376413298373811439004977018225203790261859344638879307699194467685237178304335205220519334292698749026524604164188224245654599368604770691321628474695947342277165492061294832173962549917096280013707401028315878967312281562738040632599733892935847018039952425210443135985628653615589078925681250250171946808176720418514326838028355511619053708309173453905102153667208618132976115826191332962265291382846842353583370753136281967594064001448451762611330121117925881749368824553042963662661649221260608162973749781576733903344312964226264600777992742394455334190144509662758079780777486733161093364819742089610411608334650021237300165221838963321050841562412718984219034917833873799112878513298024789459883919327197001414333030559886632684509933924265389262070774278016720780567168708939356479484337240245130189026175190421591107928246713143395528625159874863285624363360150032867969753475630867557604348306413859625969826692292268645944538069282945815637451929352868860614290494431631339970036553091557351029143407498697042544802055375867217060737954752282266630173957283895681884111348494005716803860910176132136382847215091691633305958382421736369138534233329036329583804315953986863874556182666857554914167518671308810088770380946264609720807261014159000227517223829242412210381229730049006639729174812262693286926173097439082241499887439119847713597256668644737855717678883011824059237404220031961404837367108386799944078102921739212189126633383542438150952175559458549104708032476376192162595487061038982696472604791991658997153388022642127183246143255281522881332734691929804529514067851654491864978364860832505376677120013511843819288086328829117415340330068175393933416901042395678391784848249789732201269268869982107242313884212804581658956364400097489841745255172681734147042391442754668732154852917124492622494874007050714146684646348525831578076723224424170357266045787771471126841117840266192489796771382365438745807240564781860279955941964744805631090184873485184792448773179119881576797338716968322365834819793246333848323714183234484072978567614856284012464726459369266553251180187770525768271236492950873688590942193633396982825305153564589715365878658203556353394626407427338354810939154981144304793781064912764958768649868483776198211939082626035121818620373143011784181677464065111981285130815794079297864718432510702035260748476359501466310696555189514530778837286854632219231288105910387378429611294757805884051283472864115280374873951841394175002960229970594850892118359537231962990790480488100453296543951457801392757681473749221448764526782562307203220358489259733245332856688302756050988337625601214463877543395474256208953472701012709588027577000436435210442549160436080832878459875689523165168635366323250248780952503523387791687511026132272519080182826870464046876768658662454566325712233797499039975801314872854112097898515149120524725603101613478947629409076440752993464659526106571031623644545617546685857934521074498916240127045264008925387380472439548659217571877711994904823101017356822181224377660304853151386189926046068785065978606235485486367963848115215199673399340003500323020601289052984463168512022296381652312540651087062013541481293128970332608600976649666112696560417433546660288427535459630197861413896895372370132992683726563172387981636624154527595328804280825045960291614146640183055419987755371031348609025479292268918222190452411886889268109567124712788908124388323496231306145163752783800354275962959549036684880915811664554131854682986792200406271313919643122777612128425657895637405518898508760021505502416067872079408806830457199802131082045205781380339498204921128756233874246272822923197422970921592392046472918872948442237245990995908288984827973569535296855761837611749768882767758388624249651322607329350779215294135777732334446376830181542295632777934895522607068504206432777679278517809763889505269521491767119629476454823652728552656411877472454495445036703004909080502184909330422631213255891152684952199918826155014443534369726902212935197597163244004409037094918981654556221407878112384714312253525160343923028258384802730575065736336279675870824653455437855206118160677938970589427613816264485742838540791680558335160395437918910601284806716473002520632746516706343942847969965731646125091129642107761308648256313963183037076421195463373391275584581598570486842852115644559163530165943195773875055752006473738837418333850226301240247503849106129246522465503183036107923963903637633165203390454330156492115432865782957600534986583365404085575064195224936178168782990657860024842764094962135752917845723018615589992546071711321575161353133333389002476976544699546635421019062164966673120288549068990340821214780698243482590605683553058368751453805704910004869259300863466108750962353941464437972836847701484973170898705016204293641966345401061053888507867359115816686283919172080608496816255794004430199848922814901078045516756265460634570142292507079941006577878520994459525091780582246997085207333941926696788171938648342402240180779053083840030717776783034650574940001611889897583941074376766938125571343963073468587696944478563552093003618825434898931062854193953764540951473668906628739028102597978055580635116448496231431174170816308950577927241831190667100669216465427822291270659526277385991205297846102369005029246630325505608126303272120603186757327267952555552001224537572362544706996519847100134549640106172488284473515318664965430713381289645889848287194798967975474115092014992048452048827655145245287763110064674840128784325980967054261793199660161921356380821902198322691143873686893206535084973868566787991194534653442215039013675046926873364840381918382575362819520067898758766199268801765037167145602333936657931535373544002136540252372992871623875276601429845459218546724031866588996801834442415037709251488357455878023226473130990157868271821788024550580050421834742629809732338973920218254532658975562925036814797883798341673442821514199613537383951509217200811630818332047585206028044126967887858048946927382577916013776002211045419663038679552037208305404042392763670942569683648539504244922137604916362154730313995554622048821603528853828810710203419988395950460045031659765411310283360592330620618726934652488841131864933206306918932401731599052436065769031898809464370380758627198572229307613280291025464789396355916708873296135811275900186038030926946646045814212664786009302931343777810739418863551841709756912714777327209594530257378141737557281615773673975996035454647546679823434253858058133528175597478727147642992544119980966625372322895697438625045080097237592961783964208799768001387650425249296571452881559887213113331369527822105502109797406942563989471444754535217787526433105349532071151901171190624365015826469204408843705735089232931841202812073460210961291608908313665980386876067318566202789688989380598287994275341611019785731583576619827358826860750872748115964350763744838958968877743321780625199017828469840320395244857079210471888716763295776875844835586668658070203157539981109839189062142289586056716479939035702820188874104651960497738313102263049215542228489387708761203959465504918805326534240432323144946788928364959569509865613060955374218978286476154199257117858547751503939043328428514481841680418960755384166883695899264634902214677838202907894243904847044916117363483130907508420487016136075540197099115412920432240659401685664880755051242185237148706170919434441325927897631722958779074446756089279824024800584678917628496160849335657077929587733718727022559432410255364543923663951981830451094406358788232303393498073756328273664186909071198728537143165383325933676468284299783256493468015840924282385146726120204859118661079302362011505075221581413618350023148144908765262842313886656806932967050130223344732407638375697961293269417624831346236163027859890963637846899101580747315909692431080021948802095218476812955879923295896197106276807220291224556935272326325459892311160594985290336831045050980070614131431863039368596870998188346892481649910660198220574398074965035331232036346391094293740004448885391815085698247046601552290090987400531002955009225656271050955110025056081919499151193331892558746546685663428614838323629843799262479790404696717763598078184505194446867563330897427176950724395028359001390198497802007910739812570837055153133760929768950014791874433047978317815148625575530980960295957855506916560844960338221613846451810588496195581089304393435746610427962189875186457323436535580803285954291916772473110894137949632453496052392685500779385951763375458523197274546762566743522784689313135483568862061622210684966492826822744646708240272954830893338700054444524666889113626271524995154414901455099506073509978983245131746077473085636458718542448207952776584790140073655491867317429962376539311553729324479312131344149347339378409379383106296360052272296290824245183063171093061115148838802459320311845347112697855915646673538931433899347014165141016234539288580638422316548205043408230348243324439419932414989428005762859666862079611081685484270904875421053579446342846350137207639473761201836068210992992613314163563365387428096368565783152357739727654178937256997168517297954896141940927401861314991965612793269964791265983377471541746110441403548341082251910183279882048982239486743881012916705432634714638721677131850098115162430635247855785507890791308822596862246352399717929323941303290581649335352521116149258397371753263689376537238114263076658563482307429628117487674419372175962395004037233182636328519379034613847211210818415244526756315717351514302684372055850430758544079992343293442527383307746174863171542863025028575145399131432612031759751678259436469186934615820196606332266124551009816000103560514591300700685764598680615869541118335101234706122450338474278340578755849525048494578478339678756569178163755527268189294612131347245593084136387645723958039550856184439368449305983090439611804588667450642904496200614626761735484786486570536514725974436661447802661720104535131749916713263269718773677232783591466732903632796829787022731844008184841273726616534908675086042597980907183388468220112928038189602148106379889216683438134432875499652942617139177338978486031016029492671597720981834458851281781388434044508404079144102600841459647532654989042255957536670416842008786972218034739977654934376221174478002373419715496486897340133290094657104073017088840354315001837901538784178965240837831227644492398094603340078567580059240644110773785137419693420944311881717525140167544439020814347640266086145474474892763501139340323876945459883462027055642531985533961849617521450253730568539750489137360212265554921834719882683270042934575321439097831044230284732621896844629136714980952207261025199650977092908696535921268045868381990149187677012793687724864910949410666754914266659098240236873478257067435066206895969827778051475333390918994748894850473912269122828712748878132590648664289133481972497958379723062197644656002640671059535860725363270371087295063931810473890226302308657514020136788749027618783751034363829633558584185629514091256833499032167054301032349605345406633707274535679500122386848390576751994827893321997971290902759565529655373932802812104738280480683412428971017619395657704191682924233238717812220072720561685115502013386702423852854075609994966432388314655468546670167232389301907384812485960069030200966359653815663741405057080612845955980103990950890046201399713143429363662187603072041381083863050316706363216399182540311247661156439618923857574328763029724597610324998895077707288441309410223869212658133951171605015758228152818640161145812830813327962465741146896632657067002033662234523841337461490368743134117052663748752478598351499244286137727785474346902308970030818396105548881794326141668005391184905327914761482622117749162676173386584511424003919176962245885512680762844647196224017773711566176015141785783106097855204412119977587604615785185878458694723984512332890364697354178122817088704139010303008066624992233176825918165072635434315946518430695705149093757342582901138577118252618509566185493827871117529431669916585770874103071156694767539962532988422902585001946221736426294386892874005363672720856043581553286451090518148157068996258699034023132733584749679505933343095110508703175303038278036036805268521346110166941871166632778337064567046173434046002115894524091276161973306114708701704128249052409583071480820902470255769223204322905233040761900893730700440598846610562628836624949301586022668045550730322897450027202933933727875132852435566347059172421826411493254977737373781901032435631616120428226180105983904366159511439363335831356322476569903845393490463887066984577848343447154039764425345203322986279237387429513002540571513180715394940066505366702091479213906387153525600881620577027975803680009572323178891248023844938992432136019068626963751685239820480130233219228611657241501269435630772417214118423129587659262464614782768147526669757551213151627408867856818430776332922038373500418212596629466291544337851444300277543486097997469908767699794048323624942931389404877718309634945563764974463550690182156473148112305267208077129012865570582235056853478173150569800547802215447374958934328760954175881464902528064434817523132773491496582189617194391819097345063126893201601735855996696215294367213611129328616760857454169032968327710199914562179992614529009668906669556041023494223730792193956965996449284020504316372200458330833663384412807975165834238551850590012112826262936424802375871262868263053754331571256157059558178156912981608548270386771473485055275890804839442293389153805442119727734819998591348157431012284675793793575641840306328529274030593141484513005379379639766957264388825929590472151380191255033352150063058900339556342758544133428256695353858733623717588599587251325656679498107612908634152192538679891361041146503623391338920499705952221574439494719345339361666056236927325137034496237286246112317260715303360337334064421472561593662137339164024819169357868594450179307595762017597842732024044917966277706485546504068610615432847055284403277069585773545214271562184286467330362604638300041471293794526423767938667372629982186606705309311001112406386381522654749513233469366819507478960651913923231545231069044589015531969702041462105850998433297270408591483296673845372494227755784104219275342688353288650310258037160625073963235689496036691804512361576166621819916559071263685170556096883457443708884032900221800338687393583632295997780643904664368165422838073431819848527597227299173311471747298298908862936767802409846904570123836786427534131318292846344483396735159629635117269830183039270290105976338027819258277342414784269125321248040479753846555300017390943527606589267181087664876009939982863871608589027325800054354695714376476613375787644570831032310830172583808004968071849258884347930857205070992067640100713685108100229647377087363077370859800066620524845193090935262435676035028073690716905979175674002102811361945673411054998645991394999359454137619344747768519615571063143741641016419392254361353844800349618249336416486501261554641625954558950774489817704902231304762732504485167062546597755289018525914820710675175654616842488181410548446293883804667173838295593265042912959978947609228628400802350686324971344394542614020817351095516018376785256085370240716413332702096663098668884129212458895175125320392865940814614933478287011694417632803637042220555301676452375888856955994367550414768710054947377056410405915956979874997952131755049688448243839677727726735407337655910375724809972431565814199481518854015590960397286350112999115188367448355953293007312694758814262606139985262205938623019686751092848271607041127505348261507572315770360794587684942724048788240511812784511524194602034038458019340813730937005238930969000439044005869285446245236952898967537336393166235288866417699428003227515625522905527814728063370461372181879299899345385367813140738938365325343392641833600694675518487539281041774397318449127640945589647580757151684848404947915496380505131224569880994395403937305631924860695501152498328681298269864855948211279531725827731857213808517650556243703801845385805054526095807734469016196527685546053639514814177134287230890419118323507624704263784760681842688879645116633497041959852215991465781191568630123609860767427490809678547583084358724948231687148403631447878643125886710193022653318459703254116748813698641950603725054580709594936208640517909996343700295357545687089567066982128472531033360767192361962615360709972744033407353111956306314971042978914428711596007709326485031107517607946401463568648003133574838259857540221203258823307695659628953039049501062568794179732545390201123623515524499724429524412712000118975798601370097230983403056486976332677808962896857887321586080087887959283141443819471420929327967189628546309471832387455312893112546349412511218036085640468773598406872402505357045998256459125728255254638097450554057887502072641309512256381040728259434984758178406175093027217326226409049847311455167027522111893118870323588337295144122584799250610971666310623558394298377930719919427022344935622079675496388517355823723524597108353100355841682728612851349593940440672323020499643754160820496465306631468484005489372757867896090884459883154114635623489143814855266835785422797832916920381367176522446221700597951024281641381590195068933255403936690673882345529082270177601106833706997028790097460467438902659416348368666445904372768137566971740211499484145124106393478567646210487032140017921353695184002946199219785994334413212191698535043533442447825679589866324383667762807518202046436318370581070080506447459989344637541181133235319711546763270890261525079211245047985707785710117223587752858096252446737765376744782132224816694364783576189118144608763754906566874199970739098735020988840935841610329869781868392798642331374286709616968519898596581953698441868568557710711421772574159552223746425058079839335484014188827788821863199760446699867273791730842810615431530646521817663514993773775893688101490434120340527658226828462302861410156902598219758079991135529554411825351476333383166977245428859624844267827494010626731964635559167186028887119118064186460543818512453080681798913313404732170758878700903805871446541120540759789305213119657391146747174120246247527654110701357956022733731403832580393206390511499426406281185911328111266286146488097780233526540259172085748503121262161287619729761318204421056204173398830994488242698732369963733997965346089646465774614878450004239204873941205348094259246097250414922128484854277087270077925161689378105598936434361161782354568519905368300324285255779035244136114399300249066143992611800618010982353127747806207730319978797323238411447498041132841465830191629106190438631052593108235704039004640429973080201533092990542691802555121652278691565975533100015970227869536982313065766792027729390216741677476815447676343435605163695321930163849775154866879018125823834345463329640506014968686691138356761386872348592590439118824781590809087360788247781520371956122998301389475303855017806801872042677198725023169417943664779683577416460255217215769942855389240002844096187404645627753169806155561219061271804203566538145921611514247719580517395649112885676097342699015053561102525439548254730297133994339812822612203608500617039387263399125241409300627465901221126414681616661161128333510890566629493933139349010392317018147994722707678564327762942372006485439674708244526601425957086568394012713186748168259179118944553948418391142226934195536020058235184117521891292252656800760742514247324517572227422548203175316088992276902366920328295600683113955793886184922365408597940953478067831753356828951599596330871281825103911816294664781845192929913219360329153025734507001462207590413568983421075258953990776192599781370743388081994660018930369351894959835980375564239481048012946363792603986050347820675235508760117642310424349328768985698588078680564464307577193161330616361805271728276044518845564438370029218152677203812881200706528116881339332196149183628121696953828651522158081013253562367202702842659168169561892504156784897246865213755029174443493171481740871836013406804494045202581148365913654093753834682962136739504291340714015608610519781965273096914152445980057500075745667963336378839428668966196049137962421662799596811744200441289361038342430678018819960515495403815947171050132653673875961582857542686559113717526734540111878875401708811222810927140987355862484535043655989645531485385249575831877409170584997980003267846603775970406148755227429917565532279500893383932469617139632413109476554488541768387754877559263871956034182616065322245168898424372006819412697595945758403976999836849107098426076660289002393927585195503951159210173810652443339797117440180818003814110638202489809177099391017783383107904754446455988174480209733340406554335081026099789946567779742648051399687595922114712799477278045767977623852978038634959234125027047690728943282016124537732356076887253010350709888766019525080495220536104567242401172773686212286743840464557825354856017656742938080857306299619759042018176486096378270615193673327530402980485846886985414791893140980155978305196358555576591237282522942965291795829373536678450716152840995166697469323140645730403151810482484690719540803028402240114347754436016376204284850116262786636409073564124558670348256710778898668560561442786925266953472365073038206814024915533384024245248461827656997375560012292041904616628959829253527890995696857153759061899694738843662077462985395034213888892962416616159521423361942483561837096863084827373988018502455083287674046517399466543021199253534692653595515854306641309539544327289025966022302827308156079209183671210808386527052631707170916482814670116149933580385995378369900126073977008843577109897814171750269753202975528264361012913368148499231133782262175641997324806771628285063187622992986518911903139451336097157588596249127541252690893125582616786666125943293226539624683595307623673962548971985421823478813820715176209923114450280938183150853674058914288960786918902680969454190022131585468530066214040834413653061097215221621216719280793508853168139360261049124648853689035359009211189391044335894449999489590293357161668329739371183729722067453296728263770166412167664308153850651223845516999760841403851581077629697230359493270001260401493108375259984449435819525533837208991289871987193322852499737098950005049023042947048022467490069537722555797116649692254367096690634342198604987044377795014437550310491248391136938252279671454596141038252931990291204586403659600781375265537382516867382116344410562210775008314682918024799448398673347091383063788603110079797128673113548309418827964051763689396022357836626455791866991809636095108573137437367326066033075625777657957978282510842069776102771475643147880461854294347298971621504361514333330744174540215801221291478903044080340687445024209880056565694212399656013393311937907515859734266866247864536206959813769695402284238796934938530810599066695977942947654858871232206793655265323807178651847084940946120012106540799635672277474725505688917587427071936021984026523483310095082611054935791281300806030934717667276351666950456986763815756430278576782883039708611921745268691378940214155068867592494798744825500145135249849030509858139036410860214950015088809084488867896696886181907365281909661817923590679568758191357054141582857993553255699040159052346814213630200864237513495035537620327762319137695138646943719311070997602695768985457585409246160724861050854440028888231969784977888536785339101690786639307032716971498119358878844854171291404316514950520750911723710369899619018723806704713853994037086121518209692528862147191149996711205828101411097306116567311363170254539590950720181099008702593860828470945566835423180825071847698048429615282198356659330937374673957405700871650965337529539292127579356727145411851964007601119583347855036399387202908493593541360217016875608402862899017439106582282300106219298868552510795538550971719584436368106948876284114247149748232140084753375097545130384239944056603348431014562990550112214094579858149779355164724919934033932689677881658087327480645647732815901178131155884770695548257888816547000397017623498807014308393725276075797660657802844648309051984636821173830136434225138732598636220920539328764509946876153382872605598064755876704880878884520751565114048484715471714443920610267229465058664630845379147696479316047888824274601814346760843355893128979741395897373768716631248538727170407840193888460654859493355283980333255024158400192293308561130820317111341482404603197547177490213548539549131076441728912329931854816391110794602254782545907141084009720720389146602980576258115358873342266912543931947500923202133849525362015795484266778378695994330933087889318993954824178461295465231904099796246830837840438620273302045106612767058803151545608395128163573431256652794651898737918338811819465889674552681100941000210868672105677737629864700756526935072534580240294674487222726831684113124560810588717780289694800942829552791655001188075091014654535106520357599592027965953152188957585629172902112091322457972866398321038096059456585041740017327179076037873849806443811939044299890165991746866517582302317000940971206656895057305640186387093173885930104743572825959715332129212651638782840850751090573545126034127826189910103645389249779544748598801409334521129599026734039875430022185584314154009086343795330853102139370487148911562455057916764404296198777316322195267473699198635785431832268049944529647073054367314720576852203895331394211179544572380548749297442290461415665021387415385292264831144716042952650993758820662038597407191404554612350804892246558041835404632223523280383429510531239971433105397228415319617571668111778292908885015852569630029616143310874264106599204637730436356124699960190678825586415452994080340872635999693714446054452436194033431561945405353415208299873165602086351166109124256798198860848850658986848895934400352451710489119188710020707051307132327407543261158453333570928025720491070500369996581831996156886597188212118952855514146848443591543516226920198637471571199300964055532297569422826956595787559158746279327069737277466448444082172904743534830337114196058120224011753970201593518663801693406787092094193619808296946044830639491344849158767157442314269773483541628314027311444135748895046283307338080136577352235159531382407684869848937143499504604611094778710108259702996929992652869312329696450864288983714266759667038442084023384664210327694584711714275529504544394455800959829173928002310499705823588080856220053557559087884661197236862115439473567030003890420230319261872103943425578100806162759494691360977040835947631539398907469636419128908005813797730850645279057019256853463414855646241008268620394521553549598895880683996681955814293870393608267746456939876779861543332857843903098144286939487240586153515088844594656670916646578192742284093588271634464024763080617436654414737966017056902433671127343928132604384364196914480455215973380124996359522065773791469992776084408670735158159622231257056357033574197481723611827697722613952029748018152755609370882377280457490075068227488029339366955460537661107159641439382233869957102326446777809786281581292817299926834694276603249284319683346513153891754859382894967693476722227144231522811469693557410068665216380965615267517331753508667847890541860230990589387650449327550630369124921911185098325978416173671121932350778002748766437816362414059361517282157274767777484082079484131830602042855723992040118874154626296969115500352348727611389542040800852065462287582525081507140963707560334793181351059174174799261183803301497785186334512210055448486458822309804679577377389546709916748934048976928640186038497931741967254369793311613861508172361117970667419219684834351908217126898277296413594299131840205018143311365292109712682418736191750813189609247966727620119923287216463655982667965717582831500684011066204438221132002201404975499402305157447405298135614222933031045722291873014446922069742458443963846534211584466867103291814126710855859953160289566705785460110556046566221301135115684585778960541087320734705810678108915411784033681775486874082099083805009387641945871557538659899040935313253382831417711276141046328228751908573827233843901261648587045614448434316432809340675621361183969402126163089435032670509504824330426140923530236110922736285272882622270757392112862153048574726977137730990824308845290572115821750484297448647804127224230106264671242476835576207136457053072360747705421761064481329852832204054962470242982530437441679821719428942389007730913729946782790895730365594542586195672958223911065516040761277416833318909013399138208658253924545946873535106076211807389614518672668853394961525172699482494885668836925009796815021163195946501618806251104818055795947619838762094957810598668233092201235169839064508219248722058819183590529840034395353716573049926713732130585425304825343059012905739178122204187633126603510101456810356967444425955193801420826670001086328469933724680105632756507725857828629343854643998487342075564138942689290384342115196223983456855506704511527140039615281589743780328936232290799893732772251118987387309754255796805582386399129964348253359262238513347438058902315286005273239192663025101880598155204993221450041709730657491055998906826431889844123587123789799057324254405951858130427744716893036590812958028021656114918346017467747443431277409210075731379196216281457802662552040445175322424654738377885437670442973148542414358295371471110006898563896364688940004336856942983526631399770522731429573664329454494303698184976767503964772756049366501173715642362498884353125530116944322636957460441156166286717254136253076646979058878614825649050566670437342944801232826335724481250638561105866837282541209672725306430808361319592002230973727293303375963277946535519563466077051847772857720483319276623100041216962738851811020323200302266897760796382471526070843786651892647725917698331238874569006119610111241272422403838271238654611689781723222521628031380762093711765513224090696463401069444193513189658666450635828964725126003129946758007864369070955306426933180284437192792219590122913110163191910038559021690307034933116588335109846359038808080729659788383352394480173098663855683437135129559896024043954976032976171814610934659002965241899516316773298917025118176206972675840648782897609914898140997469734473764692035991258232922173938365681292590270093162533421430216971919439325575095601962208209161434975619876628008791290583702862019600105622479608211090040072010151489283926711706249421846295748304842215065841932135398191002614589816046273594534763840475781820203257959509309301920370302568784074978752812529817962454094327410001460613551818394032314882674797499272860050518449939348595886977585995015323073545486739514820903835537323928199437657999258865252466739926912998564287391181856501581954736884015344834436758302386171350759020826618365957499966107179391054538950793648727417509559067058264910861221411284158692947522297093577495602219478845476778276862161405379750084806006354123831089236916122356134803786412801579395832784038609446348111693715456015131368589674624699680786998140760076329695372209961647985959096699002440556723208035927375831049990619374993423472712209348125540296666371796317565179112873406908933752404977528046332310456221214807758217923954732869160769493696439082969070092927640255404218262880447660223088021585424497724131393549809897094802076191857332484074504924088260265655283000495711314993018978948746698898993982672608466719723510802198697964971304796762579936623918170027589034141172408956416386016552450080334332824435309206428545099630943825527139646368812747964439977084044214178033411174989557107301389729987435109654761512785626984482455127985633694533647330960698272477053774505006068585219266629336508483601086034270536970809163335649265012256259588778931564094663567577857693834109776723874611237700340908242815761277201485219906342042837450230971542192347549151847985927648849189199848114345433385753029312172978239577362899293520972518110941526647290516883400709773013673892186733276439346356153552321640574350951593542867296223548299373010950779447115488469763736726599411378717227271031870744040734795723382406455325649156584623712129611118705804530188219875496239425594898749134359262818275051474465903516832706795397702715072827718714162563002937259589273339404532210858902502469199553233327652128213178973691904999066664298729714989006229547053761143441633921809019876989203950718282343547976813369880975717265498898787660107541215445838538502756857040143548386392303914056069756198909267186407707788557514145270872821809068871775545398707752518141511642984480812198358176257577024430237350855013259801854032901079102322016512565669558649203706390546027991218809149596849645486682646162357792991273977727921341515117339688081488675083091368239771964785299946662336551130031821285246589256032963368473412699460043936157382509361081144584151610063318126049500438180426537737143275901900785681203200942562951152669030197176300886333345298508228235801121056054816200747439591286115494077735622219087268347641492549367966739184317168197114062571264675078730576072825361065734731727442597640190891553700624626863826274916752030828226754416935139845684837421380010402567731246210690974950618561403440324420823782428020004709491295161443778267283081340152924526495454617478097565809128487837786017740838388607799621574497252008946996777767156302915137368150337937099629381618762348292739231666167182334072401594922522224044558135599756588956834545601041212879138929090422669774048317262410568458845628109119302047928592151050028124560175849625387830071842677394945273986401399412646574660663492299629025131539156042395086417448417713132391199313124721914480939758253888764774808911393891589683850440926009697841106419808789003444842048116845163389287455080760563145827651486330314874242145097963229299682064028797982624628856042722810605455884945014944722658641136351254970615023791105032960953397121678691962855256482515749928704911906098684646907469859689770818867140184901390669789050523383253543097308815281007115948687391497543846513708173052940063665904104061756735415225795295950657226848733252998206801227393624625189855173757579468545117761729923764062646505595741023995595851320147421716747174397567670133150846946989016583592286535767249163755309210339467346896553088743704289960315204152440461777594777492799553733422921921723550453754186248618776521416690224983551662931639548455143791005942760849000440487505945696884966354535292419667869133053318026833437841782423363824210819412888299258563671247165728281754536491435528428966364604543099087916841932100764316413592720809452540773496036100234343895333580604378013222335277980816898884758118521693393415865375803309529218526805763008701703818883148748309786311249740199924009940795505474560027778836198056339870638628737397791862474567298270871556374120906688510392464588056097523308715644975194307484096208822134551029723330209343619851367270543491525462586657144799752966440596311047731328024264587334117273707891873113388739792220543703581280708195662676783953764447062644246212346378813644193616475817986273617361487104759471035431133232862884816030533019129457987105194995096288745450407510866504914827438383106922775943326415352206749584638285856291909555783127776963681566149543387949609389087121372794877819228728653765956913937970805312340124031159054883389034199510889989752875062797535635320247011004414509215527638315040234849163539134610025648597143172299742304533443266555690501570386230928682862189968629212321421978617613155451014016332815151371748976228399080791311428480647361432121234669821321103960379482216768482833979883777385270955262285465942056308697833707621837488618468991167944438330896090261752804379256735067836192866379978483052240358395245179783864743676263521838488225615536574015415238292539677347843291823884760809557789520476215700865810656552426604120807126679246855372919017447134890877404081711013012512003389527613466762783413244623526196482887327630618571690799074720031561951735453571918766179763207734634453258048063331804059544192391816711646832604341252281015244864436621379778299306524868421730472753733524796318665181320714157879917912891825394660160798208158488701084271525774355006695830080902493777478573539475055973336665230550475766250201966531083291775974128986960517553234591474822560155523793348191071094711099464756126510612790566172924724180054515009392844475958981354636240457297231973108826510774427395027493885173524810096116336439949219764476453191399163756617675974981824879052360979075760216099323998488914122579726992832500798204628815609654970630996567670750194400930818862760844262575839913099218654923292012364568411673206601235572603695118979138272003716275701954195549535879006143083776555248668164955020492760233572370997099842983905025481609982221036912695190650900593256608482374334880899872897329022001081711286083431620120394714600306987177332367657639697142248737542188324377015314800593087676019925716482389475864863845058952891201083046736057241147225732290207513049126073615525973566517588947332186198424431419057722371842940874371252900793517486990255760246147375620507519869430072531315909677887148609026221415800404632039169574493312983436906931626793620886700784817551336345060495755750826899867682821946305930992785572561169953314955172921596002543167617498771161826089031652710006345353518727903929577658621413838252455572591244808180371385776092506924384109179754986733666544426033788988631147790274718403222609475439042815976550219634285257125783599693912684277955022557610965216298723418479164510508692358417458865145975939040531901152620564694169053570686047557485412610005386989921718303646970488975009063030008039496108895217427930499117578279777279642595998902564791390122991190883237790360072862106395438429973896261798071398931692019470895015193848018308521970769748202218062956319897833351298485165991118651227300102178290571698792733988935792818393765451084033116755551862513258257627029854677468707721815055904141154579399418425624466961257071024997789543558961593273967123294153074331290310598888712544700183091837358281538362224404047765452460724391984685535414911843296944271943352611676313202464646470186438494394314585528090012096710229634994958816761801457588540863625680780422160180658078995893839777264880247983839466532238489721927413845098565961985401599997763259257480467514487565880150435458929254590061457151053672878113565562522379381421364559875608544492064854412591648860408575228748843975770270284353506315899144808505881078261911378791597809064265545024721219283178139459873808443662384840428872083741655841931778074040236141847625626530264330649752991284438369929757506715624447655466949099153773421759750639936155453889569586039526454639813432284590478316078487154249225450378542194596840341021731490421981592471628297085399855594254675893452277962603126851473191167486722836485201210084732739360909807749819357999144975071892060660393354073693274845786410621648166500348260160945930041589718901491321138418612600813985410719696912921869285155188295960955751127560567652310958012974864704912897799431377160993851027670530638604998702867223363623057168693257686928716081545567372099666851928465060631818518081196607472101832115629289222225328731422710983717823894601886424752406835675690169769655575802553281107958253478629954411019418285186674884864309880393033228919277608665979887212538367842359463087388470644508584148196941313389402993063382397858155622128099728103175891319889724062483818812546622272146054979608453457216655431973187511001703319886194076311953295144530925117072090866479777683287104801768680230356282239198460885723573740168195430634996517614026478217436255772050122350896554884091563169834463376744002650207669032271250219763738169218085806401066084330111028443856799788282711492486929614450929763877338032867404461207759355974054690824247572117846927012813922897800980432000471340819434401623089446794521610258883397651705239723899456594369089713026919846080831314904421962778407670286622687838580194920074445042593684017321049376564046994210036478493117157787129615582514759783424927661286115997302347480072283882468314863868490968508905926339296643005592641168095866634171727829151545583967624885533032713289565713282198043890609683050103766806692722758616654285922060352889807131876159941695935116408153789776822818474999053359751423907362457568264752172160647206510585635356135943083394982421645914797508867331845118904101874871995263750654768191376343749013574268899922271585905948719768968344912293557778684331150457844802984438407280974490983584958734792180813943454193014814968755859885124363504718234414701939514693104657099125627976153446201399437577724135675155653104705760600442459903746259689116784734371595441879426872119248628250232602823941338699413913020155708429033912573684448576152096040530641310832700315313264901181555081909076385370504996301478867235178151325113647521386770206659841833154440168362452184254988670263031675723636222230607982614008418860817320017579273209490316922205461499001893378422096486693180949708018910837447820482809484611292795466617409982608911238398026243596688165305754998711822967295345147336298328064151450976939713142282786239046485433770031417581718092139949580304534841260977089220399640481276097173868633946355230496997181555511505524506056386998774819177309830628947712596144020507805854377397703713548026902668204595248069427840048581647748809817918024495633197071997955122939711682241118909820460622022756544014034515018075247282222760418463253797503786044564593119731703768323570434969564878263052691847614697647316687772146255549324412722556454687507516356282443616307452604128734027496446117649743116820456420780481709727091456392365055183776258709479237976872384099327229596241499503152464882975326709636690164551009994595585298018354611858574579931911943936585702899118695315036096544347155620639224618062665270952993284813732023109020997226351914901202623639789050885689230172151524238059709496613993284657940985116486824623430502078228725359840812977215176198313158525508560858507139658545784617291110589471444495105400345892608951210047163420620766751416927339210449302998956157522611973537834528126827191911203590837369477816707060682379887628618987237223652004784539398350069143788359209879958445192755096111763316451499272061479235924044775075847325663587373926302461140266472215304184697378614162865679884508554432973348184777989144362933498361288239191804813682889518643796389489561910789846477064332284031800101828865228902697128355491260430966525717156046064095365087823988379494981000479678714876030146556660275224259287871949635561972240155953942984097694755656177581938832589292559387745441742026673428836804907934888279613739184425854621739785981034030973441955530391533255324597617495614987871970483565340063989494814376071066241607747444955356770668226970126357805850320923692391998411097778777155547052956515080465262118974098073098852623755984765341116246359058703405781850861381254630223918976895495566320729106531503100005327243349827831937878001077825092210528621316465387153537046967776014179244649488216705464062809548148872261495863824919036692205027786949019430291388203682102460111220958739222951187304808265042930398670657829924858855193374907423471056318585535310820971770846897151658992264704712285602617219103401308272164533406859646926545896590288124344937787471562817109418449189704086198662989026004287547028622169650057695204441162366364622862596375695999145365986064186356285184946238505497593692528509626885860580963670442561722681025919782300605802278864583053713476469076392833685853201700823842816983038181732185345182508468365733989095972123915259023746484213716763465020037491402139633367506493470066824680780925907324344016163493576549929748690000801663008451557005103034058839012432581798167706788472850155882929796405823183414206628947936672113523186182120294331106470856405994734659723676023341537226803484041019399175178770059828356277832052512791373712552976981461390123055884681375956312865791817404131366606363490191119004602902818222127205012591235416534192364060858611147974852572131044086783045875408393667137593306443167636866387246246908419318661405522944183905385710150062387279100270633384919001742922869563414776779942316473610960501609299619760692655935664236366305975964649386118575212583098823270112834013607096361959881338111322116779118673741713146971749928296243398436621919122226716650663548721125063651377537144552607380303923380011432529401991819163588180029902953396227837779493225279558533985494988863473427467651134358700202215896876807328875979236793183203072362980130660265744157195811643248821409736992797141759986939396114106890351387816284888336141544293792078180684251284452389348541869772109107938050217091090227570190616196298670934028468586537217502045242111216350423931729538447167264540183963602737941325254669031349843568839537303730110600986684307582407731893361378251281412652216742961274926339396288143368639802356734110635239781104867399467537994461676380914177711018062203522011509843207461322977705613310415493585249888098653089139580959348970513538432787625195137694625137695128268089543434207293733672573450195449343084655920078046424868754856047788709112255794818735391301838059850012874564622758041133694345661556439201748023771498048178694075331715903696750825401315808654655491115343019643362835696296044581537514193393549811765211866022523017891987297574087295829321999150423296313335653045286050877213173346285740408653544159274260448518399149200048140355163478927311181632641141526630934219650293388608309585131649701780317024289449838266198278819239287772830709317713000417641647648497145432903327125266234797630686637743041061056913251486644704855358905698380532141624015895195253101936256501151225297384616752396735213094833432304659531264281735093223634415775633639960541601927045630296212314097374431718039699446674328526228803937742167296761470804097418411142305549469137373812544191572788109466964547637619178266780105999177281794865872988128885636267287739223079609166548769431356210140153677049652603852397534290713671378142006589394506924194482367000289335404892818544486424186686826637833159278220770575043804509370178896263276684950821694096865611323670285473947683790556352327963899094850635943631823546891868844689375430634842995082668408542818693300138860912148170256784898076482857259711963936073251454696975233367031869233913662318898455346283304017054293798354123823751871950429320217338304134743338681855328439973723197531828607765097971574129301944226656507871984875373235412049928076778948827937966154651729205213162115884185575614457922239507500724658946136153874352554075639789561960655904773801167868505822422923190042033789708733541207248316008652784572982336500102332144060305775748565310951937710933707919035443947168770676687303749184460048293873850345529254048201189351038673511160647848868378217864201739933049084120283087899486289311149559334123034095041554447851654423890314207958343376442110591987922910474820891381785055725143403355617614055339743656060819195548295123458126481918821510067505330377496148321612715504067006117664816695018388742857507947842835346790437583012462935512287725487259538066603264327165731780510735504784226708157829676460720938964417665315267508580642628494581644659442183464461844967264485517124621446881607110870463580824265617750593792168192100398108897251221353176531765053542871014201629626672682493503605623377636182106217070214577377940324960170329703315195628737284336479566918018209562786599043523302160343346298166780177461492495049984072259012558699917543420123069557011452356207731265260187197007801935564252542744648821957672586638515918716080206695195731711313309074294261172782655367085882770574377913534379973138807065360602876594743563242235754422585681546436548252490245185232672648432337810617938994822054487363170743686360468300592359447525139715681533724215605348254193050531334349198266371883374511233113275208123859756627616321657002396224900979327823641180798349320473088764046398237441757744544394477440534055025429465634991151149862550789626405690113393529295917763474069611231624528357225453896462363605186956501104336337935879188532387606229485881467637796593384123440980403525502815755527155570731221231784657707695463550962633436871658383708190017508316856237652122323216804913506924828426830223280135236202094834460069937902767434422565224090229528880968525123073047477280144652071517323440728473195324514078940532504560368458261365027171486206502047377701981012419008883599190529427444591221687770093976979052915705852469045145102693475514344262191384811498056480791578650003178386345304299738828594063810548317369180236516232711900972627714467057081843804137951079754373283827682050696106585617825765266525848758450608117922345194384249478500432005502601098453250389666389340550427910349190905223623209045760210627249152489073663864055471806748522609767318620467634639972549121455420547174667027831651873324619420336821995373167611361185622150579671922491702656512242946338657243548879836199759964756905211960561625067279783780912103768198831732984647558948828828515515364069213001104727387562631517976927811164444037971356867333295699691417323263676952304329598107552557329766726468105798754069168437923763470049750310263872794908787492149064099827723692089636345243569420459162945674461619749476901468761006379601177856123366115366768636086499993879903137111927515316045575280670199741089761569692246409351085635602967043687824888772507412038204126611628839275277498396375997745866139359465086097493656227797283109304707029122589392205496304680975758522714553275355108990185749110997591615338858902297234114826453966805737354206053871612822737192487224569901835610660056167518389254470845393431787954530289978831513414218710912512920732810835807572222802292921629197190068980446276295219110313946805779562871265265976652007408774198105858833933668480661889220683261889164613098407942861278069996591130026597013016167541843982772725171498779233898630622081186479660289229935701967745396348119174544045811916145082729893140128172024463661588720293234755750789159025733149022059087123020851590018576124615237298167784211735460742388374643558322793005913911273706390188978411326228806091837351930441419527584716277229505994603400440568157219070654346779162500112803304169169125561459667171885517042274780034454091322587437025692777744608975618991719279116796473998783106127619275426948336044722015228482524461208193457073139753894462625660616795310117916027662636255608143891604737921274655357008150474930104037755988672631019212560217780993477188401741571296958498434814764983223544664274962538630227153954327309169163038841597695014545522080087423779544518918638436569774717411588636693681184054603120475540976836809903079980858960154366283778308567460948914911692843750047819166040733476190117897843076703363273132601632086023627868742415926596977728690563278297431354771557683619863110139466332552277142274512242781193096556120940985896179373162203544194206155024278905377811597880816210461023627250981052783488391867433407084224958942429893257668025346914783973029520390090872834604572552306279487865296653257546021643233128585987455306547178874973550373704846358016223483200602936625855395668490581356367506170805704307860382895800179074067456937936600763230596900307936888899491575502271525471598835081917227029134352141269886952971065085926895045915110685492852620831898987230004994101909684771179413955102389410751363974605670052603196793259439035031489412850370923814795744900398906549259755961998349838855606952700149406076640178944862531416262347266267230803399363535205929484490272677272467140093374724373765068706499156801952874039176249303359302057183331999372309837783382912862522580927995320933864869589534130642535907138516290931575796348753879876028428044335200479641764151305539030134802092562539467960981313800304333021866819988086663521664852692417543256572504448838561518557695260944459548077564899310292095521161694082556031646648447784351372166651167974551835999370521764090895093267914229489928854329822954784522487529444649452392923232201911639796340029065350307609082472829587345408825763998865547591950954627955352391693874381905272174568112575966003797243603331297225751544214239236985350434442968477485960340681145882558579774351096732990402560989483288830851900095073724890101756510329063734777278268769172400455872275306366045934506778008714634232135847843361969297065806178629604443070740211640727107076915993219718346442664605764401913776271590382099129468315290365748735449151346491822532832205406922772553308183291096741396084125841386846804513395792982601978211462316245386795233367202752427951996608505106695570969424639622011452919638017964518702013232914941342572979756484522714180483808989085484079867917425281258520452891203922334317308307612906914026083680302291886790013015535885525021506061675629742030818071531676090798188898596992623672703994901624634550563106190906205756387690273527324159174390652706391336699820076175128253879423097014348115850180373837553932771853501850569996663592341859835220101835786209686332130223784092822453207477602879730700656795381077258977634554007790774809216065895684591017453151271813503967249677443763667522749310027212061847672074374900318388086698723974967439485488432346331380615108161508378334658104895304794805148691219745412888379155163007757529827492586588717075921369073116265177914015845046073842081911362860701561999906755605913047164442814408019238524506923736378595919918029568735469271758500393583338340294893844549057327775997170822712554133221542538257970464655798614688935647869236364947801089010783727100341902735928052866956748849540644894275584606987749698871036792386189623895251253743133471215931336290813663057154471715520265580543030900236690553741608312289086587166376300463431783455856897866323109040981430417018720387083652373966466685691560483204215871776565131709772296406702783703005948300061396469302495537270123010173310837268299827136165734462065656233165630999905726796067426499156772009357531966446238259451573428190104921741527605490069778754502276202913255736058032575020147121514067478650064995113437859646078628343793983716278674146268788996133633481089459403028859836695658930341944651100989500316444427132375446725997778263855230271350859141631951851523031847250643419678812850990428136936202056500910233790612374797789975918753052698932507646273208338472278333781811495232080467505654761473909189677008944724109761248177397802233920049190987881267000431540793920414734581868914236447436512835246407048755539071667229683443039128111797098445360298151261055045248913838523248499604501138484370023147877217169979278749138808823807286165702520672832715042323899311490065268177860046757774144099026372041800621196474965409842279830809212198406037635448366144901674456824097132825580119803249280719945118875568923942901163414855712845892861236884791113570656804043881389963965839997826214733544557455635809968993602505684829992722965642770654097973064088515463763353818642841936319678714867748078489076581643321036827180845225184963158244940465097177332788656650723819200700760986189565918201960135924879853281186722987719664473375986329463137342663891397217213884167483937079062279934740839271597289077295285217404276445720032824808395653500763572166995945292929394399439809515013928403785803916040937538647557761809504309339426862704664619179202897085756562348945207672694434996916724634162715124830345976804914176470530475304061790591310972118950048482584278302728273454561346418564029920959676347799433310788900765313914937825985431738658002572275508981313997526047216688992521051932637393258397987261112389489815227263632365466569239413702762391493716035110416240815654835653424988146177670610389042130888503291831711638014158935176573591389875008406619674127207833773117589292760824030482567156941362506774986213903714138118411482695725167930008257159538398173588712337741653891420700404105079779035595722885464711453865619192850141489172352610559937439161057091382308136119973066902603566824186831062125150672091569081716568154289603394598118746753329092962021883218948495437869256974120340991557258974501003056905790376842482623448389263536526917634076341376474857314610744724559376008513566365226618225148331243825083367102070143824540330216062040859450645101028127186025365011862381930338156380954975401461777971413134782776495281670123767261914025238266462297124590424241979254472148340612566631555151092024333075067056842559236191650879803045656100395117283707367283243693426743274973059421019732796782236172589514285386550490135887625289531713850016378876363422658361325084513298077100819254588510869100613932118235948276424141090753972054368137725472554912636558548207440433629511430119863582172960211856676562435747039862650069395161804527719877639312807919929829145169021125406396740812863183591331581989929312664151930794958063501069425896073116777802660214709433954090999217387993096933434887068481752831676032855772058312080494302753537434620338064692843115771744431541212638198329121664664377993211794498176326372649859037718043175113215922592154513373970184167197651746332037824271291441606985548780513601250136240774081504842442806090075504877614211738969679926894644829550002944100855249949513931468790176112026491859514056087535555242298244430286157592156546959268485843353378864331554972913628134573813579459803279352996703987221218421570241467285322687699446872454352942533461631601223955940419076574452947928314641693542937038808990185939124646407196822179731954616441352370135050734757311289912660244054286968819552835268450408602957463716145184618336954827019448413878996394352679073233103418086250410078162019144170695095877011785222177280858808464686141459073537618664124534028638050718659698924959022422432499759400370034351598974831400273282190081916851954092900425889996636534502930345732544877056842673302637605701002691247222252151425471009745747167817182658418525285841095544041402754238600802842742632357570060196617298257952122997471435836026769841366228706029515185278774509593605117037718095444489728542982504609129283808924426074637352275046331977786827505170328661886211705431558689327323623881453685643405112224951304141743202495668472423197363457224041293104610577525394329929000420703783694023720181824148366103140784749135152978948812422483806718996797766467177296044704653858820059683366169763124096986045125159314426214227528827635257762717544066487122137532779680409450701544291767260921931861664252689252773060649855813373798380999655706712469324647096608934171279003343400115025969865871298467464961312932686092950797376679264299475258533444632565326569316620961931593006729586906975656099199807402170374210536929263305211623468555507021541069715529971517304653825288559713074487608357246049489833873473320070803253745047276161191429004999981858201318688678280645869198863366412490212077414132963467007175876304646893983502436843520708534232783390809316425120817902359433405403594938703084784351564352015407117656120205516768896701470580978241967617659520058217117992052361768091980530495959665964492700928784072166695541412769344841418538491466674662894826035419872116998651165411147525113995506992796923993271567937135655976202124073270935700434110574622106807721187808307114898875007221308635369856433523128331748539304770058564255625468281173646579104242206353301738848591907095011334637789222431233028887856455195169778223561412305089938850367487775519628644249541328342392845821591473505241077082905301839878519179314551722973818901118953341331811639489464091332427770489844112874351280748491549640385075995356895602446952029798134005608950243218836450002457702461487879710873149889081412269935189324636971450966364980975948227934406997150945999065974263687153012889709354320795436527977072931880978052971613767724146964785731143705462907552801031650526900490654320310116901990703275695370256673559352915439360667585351426210625120171117906069625684860597444361943032322557546541530025217669207710787587558537010420961664110157300798033854668376365456478187994694905042225291696206769874547469867965749237476317924982969781738357179919665883155078758669430406852507616820734495144437188287390661576271803731185211361210349375664501386030264902922712940667898547542677522818323918615978975727825992856651454938204106840754160037861152112264417371202531963443055281666010773322631742782027150452481290560335987533562322457379145855579158210551912591128174320041738262744815829579234405679855972383097664019877103062891110351224052105042575823812291644207470459660295781336176758384080620522012710174526880100021220210843943075391309029605979435087109541216668073303086378800146913515125630353108870749821386164232993845882751531457612786659639934965522024159300720570767820230835931165667161302463812385029541169047728076843280307888996037089560523572160326991829487054971330876133260067217499265944030846541125823007573315456755615840077064513092083860272764882093082543869268936087406823235655304706667221070160567820226489942726774814395777686599742381109707295596641772102067081142506490620588819910867621826002332420976462151932950235293401410763810486283379924596410938826156165706657005259662815845441648800326880223279601211627294956147783333924861773393486610008802773226548941817027336833270461563227266840747273195053340294464666666339134482350475201621256271433559786395229327075299106814176610165823472914528350436217494674131296651445168519727773810039952932287707088684710207058271152627708085598266053404382617683105305325669909670197154577969814081568741332670950678016623768099478793639682942057425593165791251626739875888771791118049696941111169593304648892810756888210119748281304621885222588586960125934914298247640551017508979310175474339447131894264731287756419174916643364128709423287085254031830763474408936137398578161438890310480150438339140623905659876347145518792122343558557818112196543601263283688342532453848721411538922260334996805830611396917881117610597961774495644515113559364923646795148406360126554542237782662674602075191578518560972571989754403974429246323943153371933843368454142516025099059720218165367867833872651995601140449442990537061216793382200530929480114503572139327693362398629695360648229509302538819523426700454997104972900850754965814950552403460886122056040233777123551226927028301383443245686889274577741060363553202420311007703368893479040887655713558139289949221777205971429212168013101579368100602119564228496852968813309820451123331291455530839670592356765762608915093563366903053738311935614644875428313444135582168667325339268139323633999801223787017830392923078801207127720260471484723181506330438715831501033107345620900616814540741328587034466916437301902117605179432179276509090550309458181168252143810838064199718031557023827034448737129477930613357324423632410885780581428278260223373755435412209463191746015859990939386537256585249045859778579265712024734508265529106458348464267793891464312665061630010861742978566533786367649468153469483529029527407322674608553184291241101585057277828431661820839360504860458342429425550757003110782596901617847151444015913934499028363381827620391893879139115675115982348554818071977062684818665081371931723324573455558943584135179502387645614580389099753476483250474037154802850233881124143603741991562245122893331070333737780283228502998983446040376162743618502831416113734244609280738266984447638999580754463617810159822619155684296574982810636981288475758891649723700210247690263637497745559455750566424454821397432305656008134198945429281032287931875844410176819543528826519726224998996633642522324028203848672393143987915083498372118304727596930882134733229638883012715967925469942729580871091140791618892645658407942247744911742716391353722383822848714563392526230159984437562936552124227500327358684098890344537732649479688320491406771499496357098206071245164199878397831926623778617254565685577570519411853628039909258455386430199141159215683137213299814392317296170290447963689192849169041140910755004419994369199820518436108761582640328454639747809337207604186455651002256300681386010650425264836613539776944583491044861884227511781723817671825497806862948329452120622550957008097938951309226347039819761763343486287621552701959830060099760312058873947898706378525837504022086336939667104578132990608102283606421403512640458987331326103142471893357304402122771052786237346364869939793491631063479070008396698643399439919159727587193548048518706949475152348322405154807498828034622569272855512403521415114993185836668202473688223279406120843609214287853661372791871529184184129265232129538519101067344894335972289786324380988948481788239590098232372087624949951301575994794349896936363200924074577212620260625311229806827747743972261885460065526017128624263020327849292675309626721449564248490091533639264114420169588817914091285388914568410464608192557132966018870343814485303552083252734974575942504311774132983527930647218205926085916932646667365424988918741379624822828490774693942114813226155995761268035021060140087917075757284896788111996387005454758172422358196276143564862715385968258905157033869667692535055971030936613842514349537765631289758286655601791958735305556841629976149445938380039412867097362885380694767858376265861496277650220573373668866836425446185609221913297672079090199201000550661577062912181392512599112707065355030254020017358926573878217045045757228787977676724671995498455220476150804486854048711905431083447726258747244991614077647367641940895911209708402217448111739456510473743611906155587971117715069546844120222453369901799103378991829618442589583789532478262411101588793153102629982037604586557559064206792681939151557353141318723644922522208525704752981762857166962251340096630186240239698801890717117016351493185171345029894265079601677320309567227493006880581153389030143848366914269158349816486792873802568963396146107675424258903102068843614236811855346088253844269751349977500757839919370866681809306732201649340481479660884140073702700015410662961660603664733470991392993512756449375273705485229696932313193348962118202859934876585597966098648603557968742711724924578598756248228168288839151576061707950712330692063175145405592892684453708220996011771422415910598813141909326822137699265025383048090310695482178794890556133478783849661301800544628097344685984507306984694442436427939595314205936928387326458876991966700065204552158745406853049364072362607869941401183120519504171732395770613353185744092765050657471790238071758070239863559304624736161432052610592769401945157545382980201075134323754725210767814419835950920054328415738588344521578585962596723811878461642216339706462816438570170054960824888844307957712382117859644371685608345307286266780948870934758962353455458321363539187078257314606689702281601046726587064851208986840211558824190416175903983814404096852408956116341045879159473789793671238096589098951137898597987612574399550042371428849561833260350010975039679471019008569773255760794861014754459977655754216515406582339941004619410667195761022372110101174391736946688925870290409671027268342546409685261170185324567579546915149942232778694167293103911022853234760626192598800240343949284083116765197698901204647704803728796009871527352677706885059975365254269009874619098214371117422856390076329531873596290872305637435027067963221352020733515009146717715157618861858828259664823603483900503647592678353092569202534064854107648439626320026586143036239164242574758675549506467184236341593405914545918321075291560693797563836158116735031383179044369938628778795384040296806332631490805020093915621430567236462941659608590452828583776817212464513224336520783466481547612738603032108552460709695057313618678935909874838286164917297670682051627934775953299854734057975461937758719033961528227912046045532502832292041925055112665119762192019086563000891039419529794683391709348117308784296862183649035269012062707838623728662758595661052104814997241414627887436933339950069360556274656531375950009026116485398127521209050548029045509886197217853920520145845033238725766671813141369768989685560511367046462422180663507069835628128352981445960720923143996716244935890199094744955588002218023040901279483520670516768606322007910845577449038423333477429717578099629251336000390907782987059132940890327682151425106353931135243611166276374518331596114432915960783375979560247159478939607474657046745523462953434830754662753902868321202301229618540339939574872740931077539678944238740799183442487228710762115370939113609373620640661347431031426544638016377810888116293869991950839591260983646773857031603465966768201397441532882502622245316136805423332895394275444325833781802155399657470094070821702294129978743783161274263770665660688823035198222092342091686313400308633958151029655854029146252149189358434404934820405880261101838902092361592392034152193590247669196407452032674471981509496597469942222551787354696221092088944158456808518632532714234442971760047416077356949052248683348029288830135210421161738543964331665499065178871844253937488445643294920278106438423496143954694538677736717863355496380902013276110090510064741276963036740430395204928414082405013859762415317150118030283099495380504864200099167088764267513600327389342515238549701879652809193857273848454614417008416412120407117459931781377551054296278632580372385406007250376913655782136968951777230611627870533246085723188731474521785678719821450386570822156696098992858197199971388898773303136237629929274045820560911865019438035446728662211729500437030823103455470422501929662892164224322549229157284850753306529502940369746383611869861112282492271271771080034233771273701416471694758003088833362625137920813058005659091985685841048945502878561609013118955176329738617361743303001097515081410904128084299233510145728942139013058100004968277939969647751481961657805666076803651653488030738868435256124607932274684324837453609412221175218988768836583377641963192938030685175840562450236332663057671192891069760063522083357900245380663482287610416441309367775155467626670135312164802201157285882327829953682052174987664025369888961490977782340156173843964980327515881955497443590781091833609220396070078014458386704967301296218660027475467259449731815711621551871991605669278517764929094489542121193181153412171616220365750775408218675988015961081169988505708697043319018774525088720925096257815690289510010981066692497335829060301713337454060177502396517702854623842709019982697949580936102533506879998798206686080944021634821620720982129777933520699015780750321672457391786293073750725202491788373043524914188278469869079371806766304023467554314902221230481821709348463802507769384781273781538612340000589884557752778661908638893257999438907601063438820933391420087904551707215260550366773900926101423481694584995314306747622241161707828239878688209927350710393822046018594516549232212658114124091452498223227406594281481901857770541559058288316339995516195849121190366368222132010407993050700112007954112865541851427627404290318567206773365592720413381921146024326942062870587284310349998358155378342990423986523582027172957577623182290104039017231517826308485414869711383073717414003260645815548973350468888589602528155348573066176280099803571738599316018287727981258904800072524466409194294671102690772025421440780212086444294438182288452572146934340877849596249541209929311243506594285355700115849781467717031379728796056292030556428002776498866105446394061130526222306682189905047150042370471981720289128981086207324611561565302252392526515194916608081783478282404349916397919595974868963634719841823598915347600154610651845124266887939603249142214271132034156368662772651701552281248754216388370841883649327276028919755397043820438896929302303762925154432792063216253792990159191380535065797951695985981150749189617498774260932802356405017766839729075138618565705888618049390606959256453965061581638556135957862550296980690965229061854866316186057887487104243037132877827822927131804364311035030522945900774162881924725266924255627845700615764552011274181267083649860662344496165918051026700876986689605070352054228920247864402248810309550923670975557808963839541896550911028978995259043538605914474907967642245785182225296268952902179588579647362287826827724828850366348311259630958105970337848873207712712167423182193053847143065626342974712955608049924521240511416038100991977181575637160370775193776334895073533296408097432106222336281778278002879462060464212527575558595000678114490176333106563427452153183902286103820422986448446965912003213473591684702201538590904509525227790906045286543533892265141783413118624487953472264062764446191789860681446099603836750483412803168114489145374597089170379545771011410720469147044620376819468573467638730460429419242189444582208144923352824469869809461646951606566008118363421432973918589977268445205135694603227784289181583587081620213140024322633189360084737913172480392473929289168169141014981460817144879288417670371045509391688099332560465705601887235634623623624417585364937396541236399456040352244321735590628748338207027105257637753501032010472170296639616562996218088391513325247709129332117878716466501449344828949775498741829469710438999875246732381237116204127259083432869553783374102700382491294765612263743507293234120553401068012783674271886859172545882601340435516266845768882967313514234060642973442629535944399838325081796752184448361375743972928289496734420859429414714805047419291430505568929100477716204784218207302432004693754986063945707542080152739077518453973202162818025022451485620531472407481738266775457111563725014170674809554027481867729949795839955691362107526250102663287613778748883068133830075199902942561457393515789769988583851299892198540419196991567389482715657377095865796092945555304803823590838341806859412728137670532324048009540053149532668111128184606414622274514476244441138696785333116852715845532701464340409340357495568287158865317395434180570014241262783782355761329133504833137176305027244625692089469975853971980647696968795926483545472980794988588993453947825173719862456911572036484991974132922363858775284125338307177076099680060396961966484222602343475396155429194724527871720576400124329478944970992956558345686788300266039045755094947580884130817683437757071355592026137210267420282345574094260503777240846845648216004349479264722964951977136537928178033491687368204095258649570542856496202367694912052332659369153225041983048567164760514846779789373837570886655214417912300895217426460854456285523996141628351775480650631980554857841329941475676065349332658389163305247853515518664852551355501152449462582839463623644766910301202922363702757998944879102513018187015162179020536067158961693259712329318736027638977257101016823385903971887461987243295176870166408601856454099297409033099515432016696908500528084590341067354881335597428446253649658228658362539110253935442482029273436957166913302935313014402124674700977292941506032181305789482833993251627273911608629421580031889907728495237404345826556756005356262682782648406242739531111146112959070771674274795637118194870993985807799233736682716671970183412763184019236314931260172478434178967224530623154365697111117990288419076908645618025039336121236426822281975476801923122819472157295592262829535673628213661194458993201917324230454151116368111239681518922452353328639253812179740178107212228578208377218995208151649137964095777991539873773355719560986588376094863523728706798162813222168407922656143391594654341323908554297444699145736886510257409744502429312751868763617460015221381157218537347786441557659352603275874905654369433064847072835458621992810233971336777039768054384200939458001523470765454668025288709010879333122582881354358819118089412979548202853284512478234169726607141072264745916694642717879939175796088976622758269487427315301143572083544825302657367170916014570082001281983765048930471215567660132288783961486385061191381492332444699894312437410043685596598696163316771570252665624417236969992199849298486533388232175293485911378443863857517428837001258652654531312731987157674647374328157363623324109267609166379889112964356628727707826334764464796299252761978115292136366158593891445848250102687415063778700534900782052742820314544117816206567055240823013663757652085719421302054455243777141215863022483213859682757522759564409232053366238407740906106708345694691904382685121121880237075750456894431751621134438629376