332622546621524431582431353215553514535332336561100363532151141550836363252222413416311474222127627521761322650244173213854101636471302735246526551632813104915352142233331817644652431522366411341241422141121638743622568346537231643175114114423911121642462211235142276221412424741436321134221431708415626476367417385407132325142323472642401555136011513161331103335836112242535371665312231204131311133146532121221268233312258242124132222464154222153311281672233712314741256235573353338214235361287232305012237228322804510175523147867022645571315134441332326627823661539155115122327615433260621223261255111441731312425536511113474115228413132114151217614541312351262664451135211465176616633142313221133414717158161651413322232072311522511335723422272451516164673832332115526236141214131315743169524817564422330233227493125151233162132883126543533411625337112401574860534314111536323156553476211651606421368124137664454126331213367311332111717501347632431875234230523133344126420547382071472367417634616405473432131110314425512362344472115823755311214241176112171628612324878482343142284301522826351321628322632321222317232463581542136144541435113361617328345321253112135253232637671644274541262214741217122244226364282733505213227237212443313126227132144334532311234322134222132151215441387211614341671612111143726633723121407521224146223363526776420265824321546443043841525236112327224216152121364160402251253581151066144110813445121335643637536112331231371105142372539232521202213325438215222340141486576111553454841285635232344114112661421089671535482536102064243132222323211025123136033324382647317643122334252631858404456413221142615657416543511416145146122635642121415521131115236322281535211332228542743512733611316236324223234612338714416831749171251166322813634345476862235211333434412231242268121347142605234521331252227515434761554543431641521727471412115322787511494326441414654631371244215430623431727121116521541422627353634425124232224126421472125646156317134284263263142546137431126321553451434222751141411323431451532211335231143227231347607162112215273112112131404314773341441245711211445542120253452341452371432134331623252443157512224136153303201260546347343613624312116233221240444533265471155111413517253512271173358144146144448131611326761233224451316243271718141555234111311452122428570931030253056117411734723421113247122511323426237134124577273411172341562257182284651614374365515048221248344111215365122233426231339125545614214874242147345625131205834372142232414403465113677417242231748318732285244454633734661033118302544422115751516618165361213517452334432616241306473232121540441316735351552063261120633521761457651636611313623834443853323125111128714210177624683628332043744213122221544308676149463641151412244112601448635423358581346158646314864549212245272015131562051502128210213431272128112333116224101575165674125362584734133145261334513332721515505501316275134641641504212027625735866214351341142752113545362165561263752531185333370373342144717122325213922010017372337265244211560333114411452432725414257111401714558661111112338637211221212731246632741033152252776424550225647026024314132621170107641636658676626615130114744326824411414271115686616115611442521531127466423652368136232513462316674125712137764222713413686321350421486652116313211362677244835645363223541321047322700177291111122514611135322453345641353442111231265454332053141127377221135612361043420352445141457345224324273645214442173182435144413851214434134471525233241355242671837424248215252282432631444245718142644714794464524213417273503226201761253426174126617334430283317538544156514324453262521123224416223652626213114212647774709745157641268111231445557312142233518224505343431012244114346351131221125242705141324451582472642437144431381221053311302721710554151565532422214527123535162113441811205371270421142471152644116142117036137365083976544221745742534248243345417742162060464171642326412111752232234163013213231231527055780134122424352341142783062450127246156513503154711474124256772644121171003430412322221425167375462214623124637202134231353124213211244263321141116455055311632411753024720121810213331531817143057423121173453724164845524583643424623342415343132122864434121414224403264613624223164161223453132551326722103856735261734362682121162251212713343412832183511451230424865420262322317370716253481083235521416432121213451221442825257214262855676112226222413322466523221313651331854121333243522121254381223005813432211481571253772544031461221570221324225251414350211651142201225313231411126133334215371236642811627252184135231164155424255221525121566232137218246222112211382575313036822328815112721036132582151258422473141152533434122122451345340134621431545343242735424446283616145151722117514805521234571181371142523573651113433322213425332572264433736110111511411511711286305141207263401476111512170136335524167211330634522267346313118464216261246422203524341255844353636165414610145151158255825414214641524713167512335713252416771172210533322325555421552404893553673601231557623373251364532421362842335245106465354435147127243116472382634142552213135322316155211115172225204520501657321352654324230448331813214257223556623363452262551431442313530162421211715645761241447214752366513263544152123437345248116422323131320166111160352121453133264343381245126521245134610041175624303711221243310632321547115142361862016130651712863473236114160215748614413321214356115381532152124353345423441481354321242411566713124251422127452637636246165312210581515522238956136240524213332222744067152342216188445813731241631125343435222233666221251343415125614773605543243548532632831222233213423350123112341151166445441221442326234442117222112653627686111323681161251174225761131317323426544182260637213352761232223163826421327334333443111143456821117278271446331552643511641532643232242010245441765186401878265214424442422211434514221422461111871321264673555204037353112655146235035612623231455817531213422311223333145150143852743216223553426712126372562122672834625224373223323122532345321734321011323401185137115243674212143533641513213601311312412341443645143417613763675415512431536341684311231468231151223221353222531144472201581771331442271302151654645671423501154447512112143541333423215232635265421864183352124622664141614121616411823122438412237732011543626122843414942142222823111126634151528112251811123463024122113221525151411465231161147361521397762161134418463361021435421412364313725341423234309166111613271415372322824512121124454161431121523398325343123463441143113146111722321271266242211333471812282425266523226734161333135223132153622150622621334320143615861523144634141672341521432213222262121441213347151823143260761574271233342313315626602221128467311521714686305675113015246121626245356521253225855626643131413342224372511771211131346712276035215156815121852128016494722344323511358375214761222171111354374744125322243421133118453646325561313712135222601643232322106435414204524232442143162652381461176341274214144333311141522022871351122311216281332412133254151221346514224414713246322422631522156323511411114222161251252261213341667435282222351564045132240462111333275115775162201513371531102621228127152111324751320225265511162106312675262385543121334121314125714150262110512434124322563320251112413277568627763144662133126311533253114744413318312173155673356044272314313126135405211782216061582264613123832555119153253562053215640177385175536516835131637461664274667123124321268871123305211112423511215314431832152281322555226111201124124612741525653111153251362343125144122126134867322315313443011212133737114563154503211222233541721213426426110305652363133327721214364532216261123435114541365361311623171111273737135442633166213243123178345884312112332162348601714033641022424334323614721158423344511331241432472823114646421354431248332313625286852138151463352052116547124123257133134524123634312624165522555146135222244585731321122203252526724661347343266127311412352361512454670891253137514132625242164244331123128212111274246631612176354474436353442534123231222165231211582144144164435412373623725351316151111135014812283712333412163013161211270131327556723263345512281227113278784532423181565232315143252662320114511326655180101351213257265447215711321323243134242147455254168831130246113225257404051678327422111013214510424617424112312211736416363322113742322421312122466341455353562277433243231627422582114025642255111374535122532162318661067731353444642171236156312651261557053615336142246161113142424121754404414147551457462112467216324514141521432456203231342216531117654318058124120651162152414212231661741446564436227743155327713243126134222204525432144221175445125797142181515187343514586178122633435311664662675441121133148662256921137235227411154570822124212237411104123142126147135124313012111183214441343442626423305511411355211317214422312122420621412061448245114132431312438251541222414632253513710224361244427727526571176831132068134666125124184512122731325125611111613136531352213565224755223665461113422417314120227443751373153381122177312768121411418371401486055245925425333155333166354354231450553455154442153584645232211254123121732621533613213221761141522426836633231761611163047421321535722235254513211652453238077151625441112226455163527582432411834743134315633046244232714352153628113212813756231715541146451251514741221413112214141722053774212411436163073219224376172437417518838413232331736366134337244113614333114121272225222655202122072434662414476241451223817131566235738322221611622145376102664242561627631623316140444271513004442462853166672136113021222114182843313720323524152823515322878362543212234475527535322312323452242661315711117481313824365416752142575645554335776731712243652116358568326450404427223424265261724622423542401356317551833162346123422653336451133716753115123121245710163217765612482216113221572151041525374222016251112265526841249256512251018121831464446116147652322623155162014812263181421132651034137173772411354558121323263314171465225573361341323114314626431332441532164323134562628044524330131617651180135411713426623814226173322643132100473821252661135352967820147323748216342236163138111222331211223141533327224277314171013381501275312664115211546131111104422215312434515442193252213141840521154523746621141422621274511725224224471118412233532443233421251316526412354248576101542153271021122743532381663425460131341824431588345272611412112322223412051431545666411476432345161463642651813622425711113435432241426441254375251142113752114336874412863116134222322222724523144128341122167552867544111527682364124513214286122443107112444636265535523526522128112437127512113102137601151522171652154111526216725263573322362233425611672432462234143244372324361215612341355312611713382116266315536722571425113431313552322445113122314573556533204515353377204211652146490157461110543003231415212126314512522483446573156211573702385223617364223114183726751544322225112181036483113322172206352618452463422117351371461608732525121224356441410271122375325622257245211542338334132284644355151223332142163323118113334101854810334225603752422012635486123746117815821472555238222424311434224114041211124172733427126401112174514452532541722221114162616540141633426618438253271263742644721312587145126132112145511554417185615143281742311343112410245136214272321311133270116335242263372111156345123163132421304533151824106414327128811347125653315410153723177345716504665223313851212428263117135242451016326542725687521357564914932432423281511342874450505227114431273413175637315433161341333234381322337241545637447646331435115113513064122353651611175311234412576435421772123614331661117126724213112111201510313541123724143721557336161214241241513554315358431444313151366074241743132263163446482473514411325151503316212112333213314751621256766517653215174310276252155852427163261515662321131222252138255338416312361272128545621462731114622534101143212114522362727561434281655255124662311262131147031343217274131422311635314431524843732362726161415333662112532914422136221214311212353144514402273726704011211345606453434527573555165352016384855322515447481554536621035272413062762574418323423783177361404322154613322232467252051132461337116445751714852726711148322635213155723162326163343523614211518471412146266173221314738757432446261623133411412552117061113413113620236152613110241523012035125311122653083150548347245321143323642144117661232811252353412614361523355533512131162530348210051206636315421533364562701027125812253223414034421123235171123163451321312354214176364144248211161433625151222142584935414326732121315621246504112182153203125156124412456441414223253381341354513375671521121358212111507262226225451523313683354316213252622242243135133254066423146335772414126248314217133121412411111071521335132157154177316120535171743138233605513524267541663441504151362213751131214363321311465713463111351414632715313461231532421462311311142137037752153531516425035624117272513225112740453111142647275255301081424431042513424466183407112422171151131472531161232228713232021474754332563543316734365351405352324712613312126669828161254135627663121524231324271031256120233112112646105231112223630411322842113560161466364410121312311611244156133222263220217542132272763545744431141743413616173183245452562536113321022123717380210172216616062113061145144251324751311555211235244223241251126311421211315116124133851422448482122011223541126762213153024254481474822144612251350353172226742134124041262453412221443372622332654663510223313342511325544514611222447172713421172458435305688265156310254306245133453412544624015816444205116423520368335512414615637611651541047541256531216113312114522438232432514217321244145313144332230752427331445324127534425160448023141156031461301175441312256501753238254645452335613436234573174232751323764237121685521522335842373234272233420123284315273722623315236112168311456312611331872022524616251452522261264131526051334224241163522568234351683635423142386221263631717351242715131111133152611134125223344870614363125611854611218752323547361022252414103733662517365411721254726317335402211022327313315002520121267135232318322301526158137463421564561323372347140123382130627112245223193240154546433331226561368354411121521544811332323615616335711851322252111623425830250416146743621312633164124152551221236385233272361155144326275422151151528243312423808252321237177111262735641122141326711252538142761471654153236626475121623337524523401335113514356226641253235455440821121184244228434611763223413146214736334501323250131322316571541460714534212111164121751536861541250144408335245301517240702812733130214341361411435523825123008275512415743633610252642251271251131624466711312810114113253253213664223435557252226311626212134532224326181275816431844335221137214433438123531273521357283276364141421223111144710221051451144323233016723411635512233754701111112338644222267111628431437021141556362151122426473308110265544151474428630711132334215366441243135713143644431251602125331332145613553170376614431565172316542880145415338141026151510242121108215211215311140321236627137246626330342368442324164515184115653612231113727442543711367336553341112136302423231342473583544225656037321452863212611567347141412452542222744151531431411625122436114351721221232216815163312433213372355321103251075142231421445131871636235346744102214416416211546313734232344271105817227214463343246215334214138772365354613322873713423416242316212471683137212323313331182551811144243325274530442341236192233837433176551125465315534647274343711264471313617276186461144137113163512263336218236544146833217164231132514137354316452614376626140644411370471835341114434312711364314242228333222554637373227116125636413241222614642123113254613276576163225113130216443121231148462123411504164113114232253176211817650311471731112665202330341433031325553216474551242364351915441144472531282322263423367436126320834513132623744141311424214547324353325315413231117200522212543242446621515133121351421222052256146263542112222613114657212246214201826441133610333814420243666242253151251424171668435311141664551441311341132253483144034253251414231415044414515213271137363460111102455662353613410134256321557325454213343114212244131274125172515511364323663212423522316251811113353258222122216122113216321265171731321771411713636263043413321603427528556116126111551313560111655222112415435642127614162283156124513131421427174541075712421775241617832432164223113522613126121511124315212215155533231216233423311212443114111221454502162428322118346231645357676242193314651257531342328413731756670202137212623823223334346353646213422435281016451540555512802425627112421401531531623153834167755314425555515272531455015653735212264723312240547234223031551121151612647522132121531848123164421512645034540743261834036467213343433775230215551563321145166772243162761648428181236343130151648381441106230618461221246543217275232215234233411323133341263452123421113161511215326581352354416311311125264534565524812145341141260118422433194765777435115321126157734310526322268106121044552311221541223563515173331562342333530353527478233461651218522362741251347032465255831733712154235616284635176344251511605565611437255514013522323213124571611522632202554413511316624232277235664342201742365155627142122423351611442524473532235111386647125246322154338344216451557323416621171265414422012645533345584263641422134388431371161104175237017308424746125412114360643052513753273380122112163323731024415232341127420114262133111412472513262112032153266555717753855225115111113325633111142468641720442222133425431135214172321734512322136331342547325535315342584410411425324234202513332181131331157124418152537245313233563241586045178762473332521270571147381251623641731732052133235539235512351446161536022226940336214074346268773012342512326231668344371134641622244612153553312534632643566120155110265834333743463412311223846712567311241331313395352153247621122246730233324222653186216423114425812146726144314172524153542533361621415733166361416146221423984440536413157321388122237521376254137221122554411532311823165521343412231222335215576313141213113606124554571542278445444443223136415142151111322052314652214131401612569403470376230303314541367444115212612342656241505222723430141183512123226113546411741216233271315243643133152333461312213142673415155041011422351254114156138111222523176463246116246431815108411724163204563771412426434816414510752212415127414512826421514231325652164746323571554211753513136353513115115527374375211411122356042313204152351113172411112025623945852122472272321111315233806632563221125113135751251312011367231421366234233342121422010355118143446222742266134125515174623468116306738676422226213115415312365481241175122237344534411843608134447321435242321882137136226744221297125279661253235511131612511433325345643652211135241134316533323109827382221636142263415216514357014331234125150461663113123441133621243154112275243244322226515105213345523273132914247147625242370224140333210313711521122363152817130666664333131170312521037172663121117162620245477133311341264261512223713536248335111751151446203112555167472653561162424126542141222517204443161815521343436063314326031524568114766213211026131352613623753513321541421521173732761121204512442062257345327263796535577267185427152443312125260184143761321253236121351444613521121662611683751157540221164172053243222552421341136815351505447183613175111324256221276672312475626057224564151532336451111821441727711363311131512165154623423211733125213107107135346121241433236531311131232737637321620643171331413472611131677417814131144543761631740321532341161207371365312861563544454345731225261386342111742425546221364725233132121615033664316236447115432672342313554333216221734233152463845067207121517852172321172162153151022151122234140431264522834372121412113422186435651244143365658223344335124533362115217242721313116276427132276442410442461232546263452523767277125318151124241326358351357423141346431645524143432047842114173142131462464131416463520333046214424732503116160547021331312476212351473227727235271116115381831456256114241563272251655123231124136853636232744330463114432431542863342321746214374555215424313441413621330721341032213563333871587234343087226518454523206215241533144442131136827232334341313142328414436252741816164116612583467613633322422453311102235734441225710311324433114132112428311172615342341163311972014514165261012216124325525532023641166233513752511565062141833822311222761172833323213271520213484753282336333124128642535611678632352644103124722236413115232314460323432111102211253337134111424252218443344451243324271153133071402161215231113639242604332574813235511332224132221127456174415502211845318031544318173243154711411761225222722552143134621211273151788138154510334222122822562343335102520135241512138580232531162373421122173424236475540351561126133521141122325437411552257636731334353418384142113133261453353754731121145136114148151686326885117043123652051332015712351431441463651512621262242184731586454251171114726611425452111126364201142687166503021423124122420842357232313233144133614524435121241434271745269516312142515511422588483643521488764517322068145422152623171341534173417711216315124533311443313145543825151541820251242266865420464417732167441133371522217515341475295457131254683556481131760313263322323348143211151732336712118654521427354163761218472213218277324253364155562355652333577181411811461227413143445514521247418215802106734715612111163153121578364051333832438235211165516323333714712126263141522155583477671633115512226357345212211622243235123765538123010561022411555232521223552512014133414474035341133145331337464112154533633415136213424226774185941411241213455261134151125155471551365111914344611264206663821631346112611412251261243443161512652313554222345411433161143366151382352134425812143324274491433500423402046246613661751462513523617622161148235313324367211249471432463157241642525613341321623157323125331245116413101275177326215421154350473211131521842731632451261445784167153313111865222233512342335685135252152234128201133432742611666121216311541632132454572362364215774022112216133325273153125513111522037412332134270715263101226123225316251163213541612250451262735813101413431387822136121372122243620161433211152658274380635321121722443111236302462752804143204255144432323323347223603117414362424111513344842712121451634442361122546213711040520051718332432132367422136622211417330525813201341242113031321356151731331544112371723361142224862437471113425751415432137226314314154513614063214055140333134122723462100075241233426234124721065117157861213111557542551575854234224111412416525183124276152385257761641365115375522763211181251552511632326152621331436838211421642032442113223251531542432385314666562563117754378343644345124723210144335401024542314216132521334545225411174164824261230312208523232056134352111623152121224341415313138441306022121354117357414251112776723486465143225183028321632163112242311671121111271344552551414113527434612332231462723332231543723522584232252132315415323351145460233311142426424147315676533512516661312172423123114554733222135112212551116544226212614612113250511258413813264442361374406121432111553626132368763826775674142466313112613374335761536275464652427124522541213256633113433665421665241126310552327228245425235711423716559273332532411722212511155211641672616250103132261256831376225135712132653441212362420561411152143534342477131724274537514266341221244012262155146117218531142334264532842137215321232541334613146472730232523111421125235972512443264127852245336516161251344514341322233116623412871215122011142435326401362410232245326011403262264361534751531114242642051366332274215570412526111238466641121533262422113133321143131638251723341773420127471311152471015112122252146533123313403122412524612566703206424122214835143532631711225414614324561427334222561193563721537223115211421215114316141046357561013274320124635211115145734142707757210423112143645210255517651122233113712472112214424821163543565312676432448185821511324112413712311448174452042406843251241244162112412326251212503630614131435663245221334155431261714353124636165326512034641135128530474244187665422509124173512662154322517314246527534335132626326460412154444113211845133661312335040411102323578252141541135023332331542225336515812171716126621214463136313163036543523601428165324161336622212263224317222261161214425528522117675213161124714457731222642514735111224243574813114131224054711732225613134821481361333354837254136646756512133224166533143153136134122254221625245216337334216422721152511116423015221222234323371474115142221381127130112151433121167611364214552720154334524315334341135352126101133211156137834118512051111135134641232312341113438347631233111632023315133238329671416654271312532230033144515412332012141234312342122143630671412503421449613326271313311312123319532731166122632466162120613750234163556235224111536211611113316401334331226218621313233231455514211215122056371354261825513346165728524616213622556264643162254244014672605155523812101411111064511571326015173658506311223415446133438724113811644451325613183137711126756332418242435455545221113121152127571413122361132653533673313141923251533402151335121243543446442146711724623428818112332443463333521617323425457176325562273311318866119621336312144345541646851142114533363333615112162222817215266402171122565223325336741431243251622134116164232624225521870132243621106443325330552413143202547145257121263580101644473161623511454114211411541326825253521165624453621181735442376125312120412187537536143241434220436151352635231215246533833623712506534211241633622271151335774424135121135450223222321351271242592572324163525435346014134731143046243117362241353543134552714124645520113532258243414221156715622813841259343521120132105158451172262176321715402231671624441342725304412784471356817376145221111642442652125041361434621274111527543246131461266127402742242853272120221544262221312244365113161154024235455331718532236143415762441122013312121211314414057724445175202225526644122177568315235331232628816214512264131014452125358534030360730575117727275362223626451044087723622420511233141187650721161755473218232362315514226632313412161456434842225134037588523356850213111132514133355131156173411141616216444406562837424116135721114111320424224544163813101532452736241114601762232663162652853142211117640113224263412317316331133462132231032486334221711824343231521122332735233263552244353425531451524315314274112216243233122121413313152632114221417141141123121172426240125551511352421311172241777121132341371323773718852122542215332125872820221431115713383682753445422677424554783237261336216032525244266752766418222226381132114482438365418423321371672861181411114332210522122414443251573215212361810512161211403811118265024721136112324165352517531234221144511621465874141307548421816511242151603221354123716014125114517213314221730232323220141212221634524545606146314661453321215321402317481245325221216581533552142104323112427812360522263366247165117723224241311162137251142532118244431252302815651816213215113171142612556455564242517223313520121116033236313216624207321311224644464311624142331214263415412361146816025442524134315251517445221433532111413611322324431032321754324273624715183312736626872472733863137317317655841721111454216212162323216212411256317121067323625236135813471418236522124222847461321618132231422222331725175644625525362134242521025752623473226144322174110120525032646331467524213562413542473356132123033047236175142412622111104634143612147434423526311411253313235372614155323244124255571211414412147441515435665325224416535531142334225211113212314442257134326311112337133446712144512366241312356126113346141639235325737545254182365112311641654516020134612161643217862415113852173622522142312843521251153164152015374421021166133663455773147034563161378212417626155162354244214881385445655311213612555756214718343672231462316124262617402172542711343224441434841226442121425352122244211212346533411934611214656273156412183313840631331227364654216243242428131624225137014454404262225420513453773133122731565343011851321611316512332444370333555621311757345207211135513003531214444330032336865216112245262431461364204566143322556253517645155630564415221528558154163411225452113453263617223042144124352564243145731723663125342612411453211316721543342128214241875133081384741230365766472352751117611163783155463307234237524231121416473418151336624154622511343236210522722411724642315674231651712616212386552214581151731436722315413114341117112775113211172134250321042332560211323845430356111111362343210133115815321216331324615233324251312723333312521223411203336217371534731572343361421111654423211145120321361265642120723111412114735521712333232168628472551111367327168855641111221533441272165264171332121516211228615417622641118434152241424714318112220422123315525513267172562126125546624645143123562322434412322125567374172130381674231402133577513215274321161574434221683460331242832145344245228321204312413123541152133133132771523672144235279646733631746623514415361374113281122425231165331114631544573315757174041461374411626132232117541142515245311843664357326518641824471443437114211235413153311220510132251168337216370315141617153035525132246333521315633133644074361342462722214123623831631312453467425312177271431358526207153211942548246073470343140584406311112313564533257354411558177242644752513751244136136345342641344222415213445525835644351373024725162268122626566141317164721452332237440851145580231532646731671431431313613435138731162111310651313512812215411425332236021473432378351611532514123428832132553231454671111116644431731313115436841100621331305812555403342362188221228554314364513314223747724441535632271341122131215437442311115672467444812060713661127237322462443181641222752833113646141310771312773321041685146024931312106253123432263213154237534522154425053622112764247213315273342244572211625822332123760471145713822221777267423264823527715440157131171162435226161711323742555366464216223345314435211425223251237278121113073314222655443257124336527243452522152425165354141575461234275632021253165161141414033341366221120566141451156472704551234623125328147352322216135652464521522180252712133871713115761422410312513216632835265503652525124606641111122511356204222268473040245631541445373233534123213441262224363646624752234454352212117661510111026612406122418522253644031533351345432814236313714113446261472254832382323312183546642112333115411534651232575560731238352312227542235356285116613320531244251525354226121313144271453711321225465113112411122112733621311234304435532921512227125055132238236114431012532342416524117332512111213377231265152127413630332346515133865447222114353261831215255131215622713516333144843340471381313748111433147115613111723132136222013323531211411116646738454222153364336424756654223252554542516535321131266522521712611612171402221756445617165123044336451563443532623227143135881863534312312713112627421224114844443422341171781612244345582416732222532426536133223824331151110184441432724243101716751652330613336665522765836372213221453412261311271245135213535710235123117347826816774216631726241253352442625173333147612114401152522524258125463252334121107320212325344766316324040933247153454545311356747595123316215326116433555312541234742393146751444225131116422412342106352257360152124231211826525851165827722114553032274211514764233127752882713321311275047277258343122411524565532265223253767631263155234184610465723481115214032412231212366217123732131203742160327332536206335263213325423461552214456345226453540344272233223111311126512431332455714711245513156331112512354265124153413365338132181378175216577546326341123133410335481210033112332512214554532311261621084113482452121736633243518183526233124273442211321367136562521170458312013725117164082312261147213122236402145254141235026571421141235443614244141212441177796476125616553234521521263534152615531451733357311824487151133545441712281461132371161616414611202261331612105263725445411230581134554324234665522222522185441222222883351692167254147122314509345566412301323651231165142342366442224742177331248712283432341123141152275155282537332343621515231416121232480312722146330722154134741813555213123724531333330853280125321311542277563736127317463674364223432522554572722621112341222613132222161456542412764011313603221045347651172615213214534420451383131547337021172112375324213347174422223642513312722311244512557133332653146854131414626341315354623822113513671876452467186685073617110152132931312531244125133244258352126220121120266511247385016234435557342524121122267253136713112183342331224132611115131442424531241041134453027422113372336564512106521542121182023315263642363346341584243435441615184122214457644211616216364648111242744726334211271158186147144567511013541456313242531146112181120523132143523224625344516131343664745621002215141115273335143623453651523343526323232412543313671131225230417311120113302508323661123024041322271212213571412552432401124131321841531731354562772125063013522251322124125821381343351338614123454121231415427546312415103178314365641414316411414341232521272344183111421111412221612311101106731151636230264282412136366451255114852835251322426315112545114215030321262241544530136112342742251622563221566386157244516214127311322714163211662031114213231321332342325281212544004743111315713571731332332451115111720165172812241203453122117611111132138723185221375060253158865535133285144125224222120310714231520671618134056363125433212376454421427242315165842353730171717051484217513641118466645115552241302423327333120114213475111705112123026025162626562321371203147763374621501321411634152311214334411421313115323141236617432408181318443434113245222222162231263457422163284232631441132111343334293372336221322504111581201404687162438526331613118236165735450621381455421241560125186526622272621363617223141315531441121255432534116226274658541026812411211134133414306126432154355222122633652718031316513061145125026351281333825254223612212512403413311154346820266313261596124644449217431617414305120361243834134543643232584586312451223130406143513611240654472211260091237712332633251113135153260313181373533310312615342718118131534122335711561367332289334511685641532431011661322413122161434244437224363345404131435254434112432514134425338533252130177327221221455265154722733455302011016115032184725345852233246230114530433312612133225545453138822373324212515511534227132516521133381120354075710456627366311411226806143123725766223313537185053213222460212522161468232711451367626351235345435384342245413732230122283757313524534225301056431533134141324584442305232211105311626414223313124433548324446720113225423618515321513765252623661324177016621386211432122760533221686245653338164431233134123161115117593134526615276410245184413562162336433211104432617253245357781345564242715123423811304552223227624175643634512163032422240393752132556553162622313612422361222211657213202435203536745661121252301153233051412433243714612210012114231166464103575036810211013178134647421384432323228241544413374221457414244625112154273142212713241571413553242074310421624850344222056312431312328822454614434042144111223564632417162635584314345413442128228562132437531251532271146424518433217132322317515245488318141144641322233181623640827331212231125313323133512221442118421224261622631311422533142226645518326364525413233483451613113117252023245402227521834321242347326341264411743243621223711623141557421616231441272172741570464742534213157113221832323337137144506211641307612307535126241408752502123268341425463271081431533414564641313260445542115241773273224218442664733551892161015624136316513256242442175316421661144546676511111315313154111741434333473245453251106225231162241142581176161041622331512562462126551455242351385264255614371113616565435432228517627426813863653543272175773174146302513236412561314121042134313228533554213624471555224403176344211511421134562123740186245324752256660846214317141411554232172377326911362227031025114526775335202326224484143562825442231642113534312526634038123811673451216325161457664201514242220143225231744223771136723054342646323341403252233212712611315284674454152273618454772761833236113321131358422616121253666324745272354616583261324281156143626132123142632112451375331310234321114018832512247311362012855517425165267716356245256266225235317131212707345317116735848103236321648144133738222724416722577813723642144701426543261525114421577682234114436215243483886146244482232365216171678111584334851315662432550225242201248124222212786814043431718213254425614371126146466312256512858151360211111633234721327711136346141655221447215276711238521334672254812462115611115315127808411111643414125310316441033503346411142152368333217246114554642564226213730353134811443325364454331151621628245386112123375474502331311321142245167010622134110518447132734201122540364472564141321022446538221144621401253144704453322537341726632163132131247035604535015833447311132151356212334132124164711233543715172685121714122163532446612634241331567641612126714116924110245512355668317522222655112224221442127453442351603224226367247252626313183111522581760585011113751324140312025247303075128226112424215214226374286154315521223518361378456221502312857211443614212313152551131113152521260042032151234238522631268464213484711743063111761262222141223531211654649213071103277841133435451437214783615665127246424216313143210502312113251310434211631126217720834062116413414332244541601306416266733472316655227122213236541646431135336821978121521315632372387632815113443423042048638143211151123743524143114421512341454715115612312222623213146124334144656072211362262516422433431204131534383268542533330464343452464353215277331051472446011252116632363205172255442111527338320042724734531436133236663130144111354414212254310714115523874457111261011124713136133511522620321152415125145643063314544431332212576121371222225124211170463343541434456563312467522712721232364244552215755164566587667713174237212426681876232215132571414162331636152143162432110514233161432254158522216251414114443237115557111174473720312123243470771482233163330352322527943344227035241242254528111214362422172304833254261625126540341233414241114836445323644145575131242450723152192402823314257231745222640124422534813424262253857132331231821438416316160353317446021743246224025642663221241414241585614115746351572641641622166211113241421236744310754772134311253247512132432412121240151535267554832343522526834613216243502224155536523144102303222325530343315277474325351424432451633442210041311370111466136511313761642115716262332835112112351174121432415013214212348003214552721432213312155377513156244437724152147413113353601344252613412461522231211851324253373344341722161151621313273514342114618131857228843152316355234385758326126632142415236112442611131556106146641771317032406211743115328121264223031415351325631341352123411247611134912823244180126351126441272751241327282132074121835233359321711510215545477321436121122241389118222835325541413383233515134351321541235312677213314286241312614246374225345437116253451126132167244161142213212726443236527252621550461633132114132104153212671412116414523410466711411211212125355813171543717146525367412617273332752428552126552532363763252241225453017325446110783572332221553251413316715465357384212414233333373331443344612153442347347314653221632643511641405513130235146334126411500355255152123432323316461111315475661343522511232211312365026524725433743112351770121315422553142342110702721642044622545246261132151430114113121163444511242306661318186022351474532314236121526336121163221855346211262215124562122155151531243440320242483601141225215473162131482311246116411116212471322348556256545612341328486551315354415912750154422511117572335132585583112336351334423242211154123313411433325136676234446211134223041333713347222203512741413811224652613231172452355552150134251146221471150211221431544445624341149132345560052784447111231403444304130516577345420336313261232543661444313508453876252167315665412735144834812462232122222428235124432232623441745334626235801223376715136033244500826355482212716211864317820522654462766121471143261440434206512321214226242234357311344322212431234316232831442432312743514310336424525033421550022377287562137116125311413276813454205676326224225161823126312221206345315313647112282115344123845121232337022331343245129384228623467422002705238432624414336732152373561133151724538104762722336135432325111246724121142664623331382226241244244122105141173324742414007026642478582152251622318327811312535573514157443212153157253141411736457423166351425661511244560601118054215121232227123256217311424113333442235341365853563660551153172143644344621111337463145413465741258132623545418424474242131247213150735116112262121171354412144157345534221423670181443125221715181242214051143560222212111211222131425254115461811372341151227712363613450522835114513113323112327427424541324427312525342023212044361241342214752623211013734672636622651474313364165305612513464431321253641214542073104220236234211516456442243312619115272171124605314323445451142451311412413117271142463152044871243132335345553214061223572572043464126512341126514812772441231541185622353352353516223322141362332133551124165734245526325325354147112337144412214542427953266414144246121114272411424132647242027334234112131468414132511111541454468104152523554783633222620545346144635222352573234275315541361631516224221113262232534131631531514161893425082710215251161453137331236810211231625444703542223735831223274191311418323106153275312113214623512263214226011221422021152520265233443452811054241444514435127432114133132223122335265214124012741441457424315274613222273341514647734321371442477344172121351230731158311276541221336352823744761841214168363272217143321140126533631523213172457747312743115321734524221240335442637531401377513462221631313711424141513201642277483526124334131151573253522388127646741637424144843666365125256247216122111020443633275403215116121441324243032231151243310124254227224230101251411447263521317872121335537342483362540411240336336313255422651351231618173135535271272136443212124516677330241242346625111731620254412206643211841512223238242614351253351648173448333212233471221215534511415616361271246120153343044851123121116592722617852663214138254224113131254211242124144836411261320550762117181452142321362524535741446110467251131171341421635318478173225123333135333172621117314114624267157333886218256340451645131012111216412578632732648517621132451333637621133343146236412320344322517223434271636221661125133231802751421131806521441354111175115425226763256522214133524537831133123713655716654110152122144503512368224144322412443433122363554627721262814437158332432518936131221473237532884352545751271233734546133803204142719544112312024131731353511622616425426301215212635051217713151121231712352252141104544232647155364218454435425223311747534251515730430140425434831357013213213331622243652122431636611510064662561330641104051466243523452431324121432504152362125445724322345331414132122713116423423122321272651121221325272165237053221642281825623145223233223527102601613230235272107112430245212241423514215421143243422133243254533172838512303322423011112751120255413433635213342412136134342421512633663314224422914111444527624248115151111112274113413556262416752153231531513154414502711114644311336413431602331322126231506214510223612223133215402721323636638110218118401238124885342675745134010242233251624231136361514331332251513140521741121232013276924122016624835132221446532572466462212314531723612586568663146314407743560613331241261713123454351467136031434233236134116455541365252303640251165333241252037238843521121236622271423535272541373113137214111234213121232623726272102561712331742222215234162131123332281214341914335372432563145234121084350272213217114552221113345764231432331242753353166304145234342513821153333264214155522262517533157155131567426326315312182117122134272674131112633170326245263134541211322342371451123248222224724621822613355730220434751538315133433755477135116651516502114422346555885142121313474181651242111303411112610326741246774411523741426112523212110217625262151513211740674523114231136157567272842213276511321115101341126373128331162448092053131252102225743522515051142652667437912426710612215353162141371625187165421432471137480714572252143322412218114218821413133242444456171263521712445151811253126263813466435732103215711722443122432113181116133411536741216615112635156221114351333251525152558132227544378162727354676316512322356733722661722321381115205211412331004871024423111054125046216133342333332212416441383264203747112625712511775113163241123258733125423215122213434054413038522841136630112532257281413121551281414334262157215234213574235426262725152132251142473237161250223723422451212411315271531287740824455313121845443071141634226418154281112231613551342432223442241514335277161415213116544241313312304371332103312442431541282462222474525523851223417134321650176722133130261233315614345646564332562340538341445254633822135743214831215220321404431213054352205315510474216610565322346322463733212612541451658056443651130512056031748241141147312423347261213341523439513300174348505212511127511351114640212957146212317131141314415712315634241837267233312114772472461273424142162646133417512114674841108112333556562212211578321036281361313450322442423255228561533253603522653626262715515537726157552544332214472475365535525251158121131233754211514136644134113571565535551118057523131163212216171225305415185017413736713353136631125626212542311343152525134132232426347421411561672543466325165652722165812524253411205250531324161112621413534151352715236560556841123442340421421268121257131500385117218163277227212151523357124322341757711026023150522522513362463351558521514275706741213252313034254144536825315753113323012285264323113315325510745251162511123144433221373217132125146156313651563537444213232633041114128447216153216441831204075431148216343222553108134321321412726225451444463421143618221223724524443155216341762362324633313331114768621343235338112228672142322105123431460231273347765222313747231250253331541534325516533272823140141163126142321333732353244527114014446522221122413431522222473333234711161525311263832215424733242593802301657158425312551001323324453323115222656462774516132653325314546203622453461122510814332386238021331148213123212643180783562133174424312373513652731144551411113132535151136774514364745331212130633326372322366436144151412245271144115441153721416161567344831115185353221253541392206214710332144131122223073197241426451527814324241223361271032442362784236437212224633741515132383112741115131322132374515341744741242324322125466112212423244354380321412081253731413081263211113134241274325513571693313141375370224663323714562163126252342341352156122541555341364562325674125087321215621716172044111134354626233221127302161661115243627561512212321135714101312484433211213625475208231352501223263514631145711162423235214438675213263523411166183113425213442452326524125221521765537627412264821211313483114621234834158334161232621622146553221572214784535353023621117362531617119644242136511293442420433525622142533155171421851411561111464551551273242134424551673700455642192141122142727320512612418335252213324551345125403313224125144317525238332101561262256653136446325816346212244541211432111136118526343611444254213211621543753431655435716145464351561385312140115136614462312723268713631414244113821346417555165551747863204162211314114323101777332144322721331472253132651061426315566417531135152473130816123423321821727410132104312354364564563484713025685163462177161231131517414354450127423326522612242354132414114527156332361484123321214130561316187342017282152886762136525346123760453750423128122162616826543226616212163722332236935234262114072135541287216533513621631525323431445122211514327765221312151721773143124210851433273522472204414613712437435326411444131211662352623456352311312073495445232636672217012411126013248222111486625111613555583235312122260543331241332111568211142403151025233271113151362774411336160550411325332341111503182432243562338351122104457124422041146513126665331314422174372841145783713116151422124283432431452725141312534216421424042314522335222222260652353113152327127342122523815447622438504308251346521316244742323215305412093521166383615343613507284566652013411435342314134115354543214125131277462452851422851437364122147161325104433112546103136550320411540246131321343383135725522121218535142226436151772622312222205414222417346207213627650644551772165546114543726212374432372613111117511383116256121164435613385285611274527580317655216334233437132332214142536654124057866025316120425661426224222356515263315723403244714282471474721267161110642116125221123421482132623627722213846457224352582212231624142341625513374412415222633464213581413417684234111374615373215833238211422812232124465152753531122117441634143464341321347114123316174235711111143735351315484133213365228233362321823544323615416241181166125444113313245444535546125640212725847542184741442225283223521464531473214213224042535294411342461411213127156311124373132513473403103123146165613116156476077332412826344532411384064412561585112821125812322553534613553115416661313145311315920083124131243315423212214476553144215141743445726610247266032314322342321154141537553161053373252121433195211532213335312172214211122241115617106412111423731333612411363331342483125274262182234578111145343153622131345508160112211114347745432412428443123252231542656426445222551152325443571012453043152334447341153244162924233312613122325735654213054170411122133125568326383183624124021105744621414222013364361355244516574120212448435402868213244125716237165410434474734114121103235277413467232712137431543211233123132551131831351111653214141562181221474871335785434281262336433161343124152163244157163028722353393313864634073381233313305231256132515423562115847413144290122115662122146621226125310471341151674365365373328211166134441232671412123841218121465231122311321143183160114404257232314213351532625554327222411321183515145456111731673711524335523254210525846323272685319355263673265113342432714231244226153168165311543142106284212231760645331374213554383351224444655156152831821371232513112233381851242211142434621821201123154343163177211433412251155544204415155574545350404153226411644254131023114163538314311825212142421223141173323651135172457614771522212371451222230844332717434153315442622241831433251214276624152332330243231713712154634156252555116733442655621044155263111634332222350420141834385721243212145213131551435214111045415735426366238551711128161117315742527431237466483513652361762318441282435211524335245571341114244336443422313413111342318121432252348127145348235325111162823734214434456123727803541358325335153434241035413245111624383261232430651322841111324365314024032314435252445212722551854003783221764216132323034511261427124122365326501554222142452436567341306142572720141275782224415421412323231454124037112251511447455112412641252231625224260042334111155612214273321203242471462233833272126632144412124111255521223472611141736306611121211314712554616327257845226352152221124312132113237882211247321261223421636105153612146726251211132351562021260411213626734212314334656371143222561714646650132344501241645252503426221715815558224141221112224166332162211016714586610230412121332516713545244444843336834514214261251445212142244645361252256524030166215452110531444256454266602615124112122212215258626134121472211434531311846252701231433148253241333475144134336123374772216344251311537355213614511212364826033212483636242355514701312164511417611213431663775512312403313647521415113342342142515543374111216416663374181523123861502133163321312454743142120266482212227564671221435662631436426454415253211623732673331335223331421230151172251732111125124313213243221227471664241135128126123712642313524024515555151511434553472212173422342112555142122214616124753712503032413142342223333441235222771482511315434143731111631121172215326235231623271212013342747164122535650542217323246026415157234836231818152241773225847311342543321316111353330211322031364377561245213321376624561310312214767272814103256465374015613035658216826025336122752240211026128113481441317435541254131221384414112652101502964154221313352254131336111470462436221577466825633119711317141756615453344143711221775212513631321524726132647352132647436077323713344362328213331254113164415214311106361123345053530942125214634635648123562161232152275246612235341153142511149386475152722282343521472156624377481736250313435201221313485126201126447734216026568533323675136319353218210218361352376115732833152164865744837411726332262353115451464312131822431245331156541141534324413614211346126648546205332431462136245127432564615233617122147124127213124135818552111643616635524313111168263370541365534642711135332131241462451115721768312417134417182417647344044352550211584134522516604814114214263261543835502217124320126045554532125140552223221161155166134513743551035261621514173414510483643471403453212426314151334225417125464621334143107285402351181224411061230611660635536242221413141542115251181644412132345513242371292721131115212023527262214214532212112238041222144531237175211132051517215263430544435121684240585711371114231074113654535144662553622481531652133441101546255267665346655132234320122542173411331137415461263124435311216011262164432344812643166464611648485521661812815602372344120140131352148211344266352474311166254711534350621652452113141158634548214222303455151134443434141345727251454112712391217231104934225431374542325421227434652136514241341212712250431214362438464100720313454014616443232351622482512332511046226322413031284214425204211221056446143241272207541714155582252251312536332157723839422426531283244134156664637714412125764612242627664641522121175162145123322630743131711311526326034125164251440153436531142131412664252333574240116173424525405573557521588532718411621257333220131914242513215121222532223764617665165131471121408175262731133342611651160264553751572614730072223627565657323732125232184615131445637626521661417584282516752811240682014494111251153424715223420953162472363434341472631424555311142585114545643312472237543024303223671613112161224236852514114227231111184455021541673187237140256277322211531242425025120732323312817648383543511564443221541281117023217335212102642527223041231322762111114232612551211161464747316322124241424431622421311566176383621132221442245382313343311432112363133334114114641657134331126254213310461214236373362233843136131381220322272341522425276152213233312452124126345213218257123212111111327557713333634425106452247334113321144703368416023314266431352581122175114323821544475181551232420111271252412537222111343164121442513868227514655443433562422451650225213354217525412824615346317542727682514254667132842765354521111202130273622352214671128624515211051358256853731623141112342224340622113411057432338224564226123115553646011121761182149345831716132117430878245716747322215652735132353427841215171611868571101273173625863303381224348335272242337514352511231373217525343113117443374526572702374354367151177632853143026532322331211474227213134154276427164440314175841564262513223465315112101551733022626862343785113867652342074144720124534116408516531616424345942439135235211135236166324633522185121121118257612475281223160502714632122513023841352632414586367415452525662041401512621262275421324224414125664262431132422312124434213422022144226521154253145241134712553222281846711118118516260817623223321454446052557561633644534325416101651510556248362154532626548130422531263116211125114111231322204714651466462324723123353412222464643811311287131763212302647124528341224228056314357123334326341231228246312417632173110224415221271226252624632340116433533686222311311111710625448112871347631174134232125162411503711144751110212507117211125171442443333351525261443372452332243546357133113421237171113372442333232114116265524154952281210310155464438317733241333311504303271326504511111433364334143243335115233313166113221132133714112206223430181525318818543212312212353231136134185173461113724386226456142043321176342123111335323312131230213445131652121522712242325155437372512423473522133214243651213255502031311247214521536110227706414264206331114736544255367523421211256612712840883133142714235733861242821221112314263321241316442353456361733662435633048211113513336532426222225811625184256812227113130651521213155556421475323214323205420204532473442222633638162124618382346034122352331711531233482435240573122176247564462125366120441722322193678642067416315034635521431621214132483115424461124413252214135341122652415426541716162523412141217743221654333737611634366112111354177311177572141632634760555227131158166511534326163273443351115231522126215231465185113423313228232351312311211812145137473841814813750761036511386423253522142332316533221121443224334052263044832623231344223186013718511012423122441611437463108011721215143717523440223513635622472237624342613116534613374423102521336701126462224131470417351385210202132243317317536631334246112312474574146663614357330422513422311862214122376035414373523143192624815461364271274161232325515522212562154391476833125373344213222174622221005173325541277151222205626226322911074112472741151203127311113712214518541173432126624854423111211141066820232222612514346554212372412463142355242340566322252023328185063327633532362547213348174311144373364516213122181264702657672270321131611771411155336414411244223225684312501225663332532735233843452474761115133164314637345136712153147624312002111242724447526213411573570221113291416132151463832674116426112372326310154331431334392213341926447323322042131571131216522301512721484146332433557253482145326611472342212132110746211450132344532657214162815612444124155244512353313164311152170222421153413171486121107830224154547114524240257372552427623360141271205264537211713561731515817065701455445763273425141825264536210813114203313144564126632747233372833512327122212530712524573625111775213253333262235213161116120303175224022142142356372431220422211453414535121534516861326673543222237253222125567144211232715224363111314321315171535132603361322452425163122584164123266263814536331362764411142723324857352315485204268252221462536521533168443411716411664412111412276532573981346131183303111265213423252441107331411374236401124535414121122012028444426318364022526455332512422773332362061344264324417521111456764327152212262182212326123574324233335522511268832166631715453617314727562343516312141455621244414623634111410562414331636511243615143566312661114426613324435444584561232532633324474746642141162154165451838265121021811543862720125823574712485317132211125115762126532431242134143513162124240227202260324564333057331124256224626632344512244543211351121026341612307221327528336726366126318312411333272238664752327612740854725321214222132223580562266264274024423333251162113151131432682454211323178131523122113672235434621553242253211354466112112442144822163034527410311618642452585557267037334313047253243251573473123325126474162226406515438283432347142442010012441203222501413311253427532722626435517451111617552323311523342413433373341752621374412602322246123443115104121321552427433431349232333814014147812631543424537313253133421666131562123412281132504523627112223242433457755473122142443354375514723341722521157325522235215405221246252131213813145588756131612277373414448120116314124221153324156224912372131614213240536233216033412111431102672125147132433202213571886253142213625261433226410725607112563215324217241516241133114122185636472322517211130171237336513655417185531215504034251614501225223221213434355282544256153522484031164822431686212621612553658441331383236435224824144745231523334511437152133714132762616132141225331321158456439241815641655017265311565324158556773132423214312225124335411104111407224451122803142125622065135126008761244112326636501641222553411641311231124534052426161313512672022302102042140212411324523026722222725231117363241415444132211134217117667231352640156462527213736667241324213432323423212625247212164312482111157242223237216543222512163425211122335115326743642211342662233211521183212322202329113146325831121223355136111135371344632141212235123352308526625418221712516264313322126423413250622223235318314110824121521126602371112711922456343365327134384111323454351206356138246333460235111711343342240645255385350628252180413222333412331525563242612542462420333114851223441251025324044516821311516515142516701356731841612214262464325326424747832832135623150132412034581243725366777343100055213135445133464287424231142422361142413422231524252431155418631515315380272651411542844125241115232411146424134486262733141265543632221324211152134183264302122220137141733335216142115616244152265616614112726552171464032485322843336464234342378144244261055344153734316511311822537543152174523733655130421521242422438144538514567215748182326336331425141423657141131445240031151332824532512553414232566103215111502134133210131416113451411155351165530611235234437663111412233315352328065312244474761456634411465322643458313116111354112651366162273672336247614262262121437134221806051815255445734113154106063167144622523372126486231515312232775232013251624616112248127135235511154327363413801361164373231113664245476882388314513673233763253764263635132116652426812423121214313462138463444421526776214311177013125161483126316143233234446416641451210232257245211462534414570516272233206141322416536317251221258331340267285323336644656252141416225243021634013325346415122125413513613312122811703411424212313333662403321412247513271132215254221657131142151564113311352452136522744684410564368223838015525823001524831742237514631535712645327112042234261172134048258457462536143322411238411316222222111212113114151615165221128736252164455314122134412476511744165615527711313373762613541255624561144662151344482424433612123321154636401427385691621112512556567162036112368615212432433231312714674315117141381511252484336242437413544681628152513256613234512021101412436371364813352111251121034735447813106555144052443967131014004825351122215635134143652315111265423363175844161421514142753311616124233250122226253211112130514115670721751427203250212216231430211263522410144510150141565183431735757112141347116113611532039164323132334245244145362231226166535236262371635161248412212255114248241424253414401144323172611301242312531822606432540314422551232320118562124542123257221113154221021441512152622743224128311363322105724146786534121612750215463132184314312422344427225621122466345433426110132286303116145352041332251235442542185445462361142763112172312145326424137122522744426211137433533291146722343161742665322812475611013712225263652611618563326158574214423102113324133301211152222141534620243674265312423228351366216463244322411327354613338656562534147731225142422101402241693573701115373644442211566218122362134153416322647121231411717714112538216341373382356225545550414433713061322213124143321522622034123122511222310653412334114346284138641613777256322604577136622222443632147221833184341225121522260842333335236671124221732553774252385241356368523614107136333141835111627111316124113152036356522338222227537573631181353145123646216114734643124133653333284343677121422541728223527282142286741462314332133653638113682522366722506116461733255431733224171122662211242131735232443243212145112251625173121650114644363423717643325411333285353121764721135124348414561851412415374131416415414613233312132214326371442124241521435332716141379598152277144622211311543324223872513122865348282524173132665416664527201136235313240315342234631212125231430841531648445272671322211554812525341461224532258613222171421171858196624231466333771271511441332537822454461241663344325243114528347371301237647612313461519741575142222214215564373223321456316311423324552222647245354195031213712368840181155113211148462534331168236152722362141853431651222642595342211154535412360123125343101514543635661328213351113156157636543146331152152440227217534046423105133314614335677327314436111250126324114501012722245585622562431141114441337454643331312442324141722313652538152611158444315111314512242528131258312713212214217631221634311172751123433025411343128212516177253213242413271281132621523541846472027151123126705532125114521117712142347411551505528915671426441355154114942233332612111551213213456132542671417141442333441451114427317232322441125343446822225147671331377153571151187327244221313563142526351060562851337311471751823817141324253111121640357213113121515237152111431233212131236516353618613334146236421533824721525623424224421213314225222545532147361521323834122078955231717161221611127122452155301522260241352464287413414425351208811423152231423252116673553166147124581143531214121467751125263312174522531215133271118226713301133421167747474761762231143320304063317773514355184661212133233451123532543115116166354453347418282426174451114564452434246122131333432511521135442234176021523123471673321322114556242536734542756311735122357510142133143126133134854136222763342437312432636246326161385425853178231423133411221015631210214248322224316122572301056711324174116633735330385418622521341044422751724115274111582735521224635454726112522305701451678456375524120231832721114316132264375452226844316252115482614212611121531143552132617113242126324662614414411165123211412156133151704514667144245614573236243263263718533133513138641378135123251542326731233313111343221286220232214331241554736723411457123311111431213346463426163213313437124351364215115453374563465327236222243523230124322633418687651160414122315458438123441133424126173322631026119113265233437841224802402252223118422122221204253741133148858416482243413656585231732022411727625411322813418548111322624182153281216042312414437143552544226627546244646231224115128615320132864215419433231653423143247532110356351114311241273752226655432472308211611312622151752124817521365131520313337143743601164122347172413146471432354017141135503311266720242726663624621123412035261327576271031225141131173216365157544542111344125131221741712344221644212352245266401197616424258413325132412673241413173623418430321362323316221255231373244661222326167221232842334225212453512741125211847566545232541651413664012506212515211648671241813223552214152541051253204251354250204508124412786180753821521368117116621723317443156361853364333425256015121564533233133313143532413312163456121125152330241440224522421145013721721241442326365631334341643122312234223142651073145172115351443536561311321333184234124573882214161115826154152362641422544355444221222566636125664631143247151601701432353433312211171522323446116342207557121132349145126387312624173522228157311421112335383179333233733323240511312245224656511162420140504141432108117122222313512672354322534157621312612230415221744318575313255151865213311817121615243113224531524371656763236141425414261154417231353232551153354721254136351111362422413118213342161621120761433432422758347566716238742446121242335811528246523517411445411163123118453031152431235432343114833532921551215827513324837756820263264416352735217375882564201614613303413321144241112216172678231625417125441328214214316323423455211182115651531126171554252412337322213355417711104211343316311642954433242112453131354652372111163313216322171414715837314080151206214200158832231124511650431212162343555125314141174143136152162323133114624216535122245726251233431215745137153340543165511432235522422314347623842222324114231132282524213112523554134425251313154423065112333886223211174810627471212241713343463211054413222316120782631624225111424324431544141448231211512441486573643513212291733431114421621223461216218662325711256621222877164211861513284247465611245142224146491312302822532614165325482363631511124231377721432311212217308115441112503241232344115262713313615232141232348334172127554203143463111213521506162143431174162616232311174177434283123555550446853323216653513332253651322127556633412133216152343164463122244122414223233267357412425817102644754256443276775557143631533431311201612122134361726562251414301131121121422462348314514121426517333632224726713317355232213531516641641441236123144523122126166162283571671452423332620615225151071272156233205643654237014705521117215521341430315543432327632121573011341721224231414017226241241125321824446422442371213631454323551402381343154012763529112111263143211211232352323436474471153256110312231133431112151631645160334225318536453424525672232234655711448613461327151215411433420215254652332247837276541673687842146621111711447832567615324433651204653312623232244333415612452761353217512214331147133534586883453034122121454323633144114441372221114532425531220255323214225650132434201352223131633757621772313361561416117412631141334215334601511775561303864375712435222662156022565126335442213556202123116157326452323122331636123093428074611851635341510414234434763235536233351271121595564445141710434101273302351351021114141241535245165721845133217311387731424462613221704171602312134621532533444862224220235366734141215120043354411539411436614126541118726816553233702314218275454621882118222532210853554302350632471144577543541215332326321332543842227242122212337156211251212431412223311311434152441552124206665534325126111822742185402866223113863858953030260334027433631514327315742116752171666275122155035475124231411752273121282112320447651152243021234164159325433304511112354522034316323251663123652164127123545222444413751213142670371123345531185467714512331424635551012333115348351365527754225213344434357265353244542219174531144322121717258417626178326255426456151121441111645247342103275312235513211652572113321252451222143212212441512312762174432462862182152112714242261053446214111453215575514513250314433426113073330140661270751545565452261493447235246366253413126527223722321513574173361113911235266512140467126121154851354171812554214432333025415263247321741512445411123041122323841641263224123351218665172111732115153456215101221303567441242721230310617222233276128423442745464417345714581821516372145277574441732323121465411121132111287113023442212043486125666132230133221062153211344621436848173215121469324613364151446231436484638545434306154221131674331141124131555112271641628532312438872811131825381661973411127122551538211255348436124354641214212673142538121143143756731318730117116223447822133532464134316253463265282122221272471275135133313211161622125463816213361221423403253343145231121525720347738177234665253121462886042421322134341442251431045672223154335464410073273630431541921610214462631124512732482136524225012144714572461222112515233881321271142132315612226484233333162134211251225218611525133351538441667121131522538815433114315157118823152514663313665637134623640162851722774541516153512322452663121237171770523233211423303351411264584434254252213613216312154121423172411681433126510226153743213725261404455578823131275412322175532613521414622183110422345849122602714461353413524131371335533401363343612361150746731263343361214032527615221255618231531635627321710321213142223713165541231126526356156221631335376382743165821133311475321841550113787431112428103241752256131241267478141311124213021633257362524351210143271221414126133724545534431613413526564715513231544151335444175127214424121210722133441245902511143105281345113114711321122234247327460212273344211742133371214404247635214443215848142413121767456352141033337426421603282412284320515253353310265422161541642233223253222810671513334442834667201211213181342166284411015641114653262152201227464222413731412481611121635311133543542434351142412631327441064222335441123212552621411525051851114450377127739633461265212184323822111516251631721251101528341344424806146152442422121244241345302621324652813453132453522522128222242151301014130773317517423825585125331433825241714316602225173116403435225136532121202314531213411115671433573724166335123531374863561735323147425282225637114212686313111358525432712262444341132286431513222242142683121222264254514421311120435471436264581122272514143494515214413543247573514773067023101742125313763314112103452323314452147356131342262325232441852244223716170361301422405122321511231734323120341108532565061136568332426211261521164125227263571531318312114681211844131186712384343562216238145216471221130233461332523484463635533223131180221265421333784126256244147411551221513115517212141127511254623183415371644510251313322126363453321261111680413521812341104122334517421441332014142388111111413343132775311115314355114211113221451123336135232187647221311442362443523132404522538312134221218611162453231455612251453452036365153643113222354544551162843232253151611451112111476345128152685265567265166136117112321416221444227453022373731265356771577212213222623223112112746562561121151112413532563474311222623145316111242273777555125352283637213422235215136321233274212172412638441474227434162242263262504101274678321547111141153333222176668448304411132215637444741333256361224135863631113313611253516133470721314444466542021233656461343411353413523113373126167752215512156541332354241654343233242611672422138312255134426335271416647582734517111614521528823521211114301421631443111565112531521524534717217618826163512735380216243237223054544622131663756323712263336167445463216323854411401304214226262382523571121551272241681121531038667321363416542127725161946221803050256606213813254152831212352313228718125454631703134742711483421333252861114643474265631252226736656111424442463412128726241116148111157510167642113144731642131312242406351424212122332324341012664362643236171754166423406237424343556364345781411432432544141168111561765211138644112144234615228716357174334173865311152143515116304243595336721314242751032363521732111613254214272232374165111223223365153687112276134360356134541406268724735373464234214532321126423726573421192415271211144161185285623813422642325448761413136164165724117143115131653615317542751154241441213511084134115286332211262358352335145323136256225176854162431421209228642144142313641434362721517165263215634632622326135362361434123811632131346131321721226323174145251133322624325113272333324422516473504323321214321114521712835875325534122261626172251723322813316422157212433128315321326312654743543141545174251863552737183524566222518213216122175382120351110224222174116160175006353442461342251221142234131384212141340232233171521231522857255161273411465341215113345334472124113642451122733354113341611221231573253014641315223193152652312057233421551434416442253313415485131635442542123412131812421126623244707373285124454113344117224311615132653061432834267613641522225623324612113473136721564317377170550141325111421364471637136211414766781026333212133614113232567732431262155382018127545165546421614232354716882422552343207311657643726612281332254002451210456735673324142117245110212351734725334152252247411517156233163132132717542157141456262231224283215714210334233556234252543116222415233421042223712503230123322753668432325132252328465521434652378318135101281141425528731111228244630362116021113254332061255213521332112427233233255522241272712112354314336254342813340556246314837637274820451452346785534151531211062433383414673231332321812782353235861224110074411652522712721681744474511612334131171174241742428441717555512683071436262668222154827353422011532622113243532341625314450532371442361221426518723113561513314451353414144112641104264123633131232632116112741453352823431532171823451141183714255214103641452126213421731312131531355275353332323723711453331513533302735022342141425762031322346272416770261112225141155310512153623115256631223154323544553241531371526573663413155181136321177212214124256354673512716159717222621236113635151454411716441623371621131212141466102625215652211734442135541142321410151553125221832734444204125112415651356178415311133312323736461888422258504465212211602422422626258432512235421456144344336152145136636664325216422682522331587361111075313647045132233321641421421812311613641822112353411312507231705237625044335440363131692724212615286354342785533374212035217282353734323205323472554525764226255522264176227731142446626611653533357131713041172336110133364217223514573415218323818123411717714455553855613414182752821622573112576311413531876162341312172154158311615426261513422145341553763132212121383656181481221236384463821144435261544221240312347434320128246671734151123251420660342034214462546761262433151525334532227668333511762121285255038117838412541474711331741761132255752182274447243118566114111183631414564741413742332315656342651161134321426234054224543353251563765702632524725233263444222124453052734183112633161473423251471123637446116141229015212473543540227210185734815218221155114242145113241512443262354523566837623112725513442368243242526221445155232244244315220033249642479421235113745413642736218364041706822321122032701821154206271313142461112224635201665361317237134851361511216352212772031554151143354366463131186274432333742432121224120406183126521113322120626134423552521211366121155463422775253057012550334815462444413512111411449361463194142255211833663127551636234225715168113154407633561753845735426524132115426412218751317206227126121347167224634472132110652150511611261032664111513126454052512131202521241411352374511544514420022510113117445613735733365173655511422112557362724322121124443533726284817481522156533417151154681647154522324221453312267721532435132014847632721562010442513164113531421213125258113116151512551166735546036216416244548232116435333831117181223257612356316237581522551683422128641321580653111531517823552461678445101101231171210133273343212322613531386512542081812123213214136424305042266133317521425161227232415211318852621563465813112153731128207724324342322293203536335356333216433333425554112322343301225221232816432314245691323712513121546116748513366353441116741541632134626141256534511616541425213512223645226556983634264380553542424211774414250322122111727102338345121137144343561287213341255164313225544216584124311133443652864146461632011622223412221354641362306235111131325120345527232235081142145873131242224134112365256262114723417442323736621612631336435323131211656684211462633144520353156314217424034633571431201622221242133146435372125466152256376211255150233271732214553521327122745367226331612832111324111532865225161162541435126317821622126125535352351832623321218525112432431111341442635203531423163322630512251456736724333342635452236835558105851114726322123171668314745143462111745623152273242475220376334821255327126444330233463846154333582117416211182113611223421542153151457512551814164561450013362347814714133661103206260735460371654412621118478335122421711211715527817257271135411603117725285411511124354141252127044545111303336446236672156112215076471143560174752535354311322244252112322882272241644211271275615313632421745423153121112626227214312704336421227532431366673152366335524374542342421233226323173244224542483112150162413131507767417215170016411353244221083412516833110242111542141515417065411416161332533282723235117516250231330662763252385531511112425532264751131213835133536296142711306371021353715251128132476552312538321152771307235311165445343474126326235214575185230327412134561342122122236621532234123505581415475315723412331511353173171362313115381812104434355121371344561653372111315113145441333161865404435553223413183252601812361544315350851111128534215114644413324818312420121252344686368525152267221065745561852122382724151635131711132262151231372214635432160182311532251344527035414132252344232353742852435640511445412567386613612624270032331141433612224442402517331146318327423553735422311351162782461223138215322916241449172627121072253515503313476165236160461027433624223155417423382424414136611211714557222344652442441126424534261016136122551122224483142233217160641450644213525271172612323763112662172136621125431260223134137723313101131441237117151233534352102743334225243152326525214173225611223771533346242422426805244311224182141735376534234111172413442424506141486311651165361251212114156162352564834162221265211314672230368333161147141322333571211631131455465452344532340143231444124135453687154250512345514154506825361453708211412126526432535872741371312474142512123118251213645142843633265116213111432257223712435751218145145377316312131725221366190173531356124338452176315614217721171271515611415518133437315678661343165142361027141518461243527221112315111143121521320645364212513168043411314552323113354353527142146665858286251728211782336711248832122141045612321731213241714853252214451543341544157216473161537731862214521267145611287382652448241331211228646221156434531522231327541462036330652222340434711454445472656235822431542447413122101334141412251361633840214141543587552315421364325273141730312143231712401421062231180112412138243412561811146216163313523221831523232227661006113162356145324156273772152622413448322821712221151411545453313474717151033775312122126136355255155183315158484661613541554435282172053172521701322332121313202168623112616117518142513197743125842201126912832282482114211652212446613242267531416102161411467631372313751863113712254262121421143011161532156213034115352862463456315141131214274261743453421110584221322110322833530214532671015613424206206613713313623234623585205222610431316211347135261132112534172211454143135623422468633532301523544111623822640740634174311374772113657334337417026102466191104642312343824543462516061167431131637434562736371163286142244334624536644213221833211442226237101133630565152551287743341231176543212316421413212451613426782611523516212635423134535802541117412172131611578353536937221584322611852415132313264661334121145423313165441371532411574573252215431463637212120273313131221662415304833234211430211232122351633256213416727214314827124420231113724514338423421211141225243358142132715545235183311832638354214835331431113223246403324135153012331233421556031323825245231351123545475632414615255314372142261467441425355111434265250213753652323431437534672518255421221411876314604115526101126412318625137403646357512420235562031217635251251334444154031137443172212417511552811435114212117227945432526252130254163417782348143321514451135122333442527421613022726441732414426232536101196417563713644335456231151718132116073823213514557112712751411661255262363658814262144516417176322211141523224813422528710351632218272154612573426222135355132465131764211326234444113134315381242243331472113382124342220457262151223217731225435042117311262367213413142836222548610625835247111311304246021216147144145452241723364368628128484184513285262726135411141531645112111415315043314633155342633524812433220124222211310130137541123444483342352522531571641137582171114126115224123541321225724221613135114104341113751235710114650122251104323254611383221427121012213241442212315113842621834614126212750182521542246236222242531232063531452043435627744314352561646472752326164325221565222415353048212645424274113443561222312313652137222231516223217217116322146301526615141321265246776443411417212142214618284591682271362034832135541041451523332343615471262346719531231125733414616733133813224213512452356427257125239528161314412245512211324330101135113121321141118431171120116576132155420343630513114810118323413714138132643218441647432722627812617623533412332074558614647821131372413271244133044613512416126342532731323332126132451626230714425631513511045424657153130452665811738221335132534131251327424420340467113442321423278551745102431224022241323213577243575216262634511311214101420220621122236361215242365111484432722162551322125317046211541535241121262423134861134241326352427112406322213011263102684245514212245311364111424235437132214712213448174211411234143221583242531352536433513623213336481145744331512125137621423522513213237834633383430115545474154744662213221615212575101556231642681745538122563139321421722611161223254082128532124221253452345128433431411653471836527413113381111614324417425253211063518625206331345243134352512661612651063431367653623531234742232411742210141233723615572762147257141232522317561224257281422651311344118156626132321121153321214123283256216181112622114456588354525125350321111621843578763262526251134108123246442512377373254514077033240431303565216620542842456571144254365186274354212583518315714332262112212442313911341372727614521225317613416526411223774112222634424735034251373235412432272534323469212526174264385122510462122123351122501447472053422711116242211124162674325082125113511560326516264114281634111148327524111634515336322245713211011353251523135211227263111732652431425233132232651281041577157432564125513865773317228154111593441442445221563523251165551225361731321242514111588112375164502125814261216185348512614164421113256423242421573232321332420143461122411912301143144632264435707213421373352227861433243635127312176512213326165511554325611513516454133321211322668226524325232229121175543216032123024461736347657313122451412422254226634453714351532458661331860141451116215613811132245721452443613353528213451316162625414412276533647215224727357521821324344712310072522226142165763625715131151101362141426465324755722142211412382011444515237151534353412533645862443252442355115512519742212610626711453564153641434716110107132311432321240111154116076186122140363323112314211133722310411025323335521412422112163221151650431561126441216235561323525612735235321322182253382417411428253472310226563635511112444233157271745716454641732513042111523342158663114247536641114826222102141132321852162424112854555252572244521531535126121343660517042143011132432330441242431152481723244512113416635123524415013514251223128211311542138430231131612853601252261264452315026522437523333331247031524441018021434111321713428242137321434433352281725247301144712216223451241432247087113121210023211564517217216053251257220253401221261162766212431246402177121173612637327384523342364542374502331169637327223624116415165345131134254332314323571442713314367111643163345555642544424734533312431412541442405632233333042441243221534112050412123422554165312235414722642126123637232335314244587143722612421177152274223154564114215611331152833025344223547671221701524161232131545025628082677163321224512418156545615297363325272457642322621672653551311333506115343146143326515654355033584226616116763651815843519140542541172251342331245443313222121513412132674654211235732613752504830324423611212141414552447664564511354174117216052622231131342256303240771340143721311521257645643517333823633415341611444528112146372015374484112222422134341424173351517842241614611523611141165314174152446288151274014152717462506372121421310446112773112211142233501342281325441716412305268335344445081634116013472224453304737464723263522237612615323441311321457283451141372117311210124276014256121031532213351131146246528423228151342340266533214232361544515423231313123117225632223371236664232117435151267445113232624556242210325132321505116185272353736145255411471213675133438441262153422418553151611215216138232213114252255033311112820231158545545014532151316130462237661636431454116426158384837671216342722615615351133611124133418377320147440025615133523324522212124511358142544272174432734851413512414134451161532473234738474122171443512250113553114256461613861271411275212336335337310134163342143157872250526784512024223531212162237481244231843342413342426743415164412215742322325613231145215221526521143756630229545062156227373113262413423326534031221171613353145276573441672246361241621243612124144657122313448144325653211455235332125413537526862557325553118324121124115203116164334621216423304442622463021753215233377641014242321503100513326241450133405167123483413158131643140634413115233634634214733213171215555164265425634215352322124213171232224632432642182116246156172411472333641731128132656551413433374111246130412627121163263851244221216122151442034432726824525253611244217231667816553625124133231111027333424373423431540224131342622714852411411451546447322371525642125551367314246186416845264822234112366555234373521000801421354434243782501663243115525351137132143838656042173275662531367122223237255123512116521311314673713225352267523131862463121353821211516156261415212453227840262513345652443432545761124164213014121273177445156116512124245783651177277426312114932666641422431207411603236777226232235345216421241241123411521423463411511441663152142156714275215375621855166531363243163133212612245462387366611143115143123832617443486302035226761103216518343116121314324875614710276667431648443361117143155113425313251761213114575184516511461435211552426556315374223145314113093348332648246153112255574141063213163373646241524527232331131365237448375111123513214245613530603257452681135471433615301321541472423252722357154712441471118510412515512622033265453442346339557336115365472124415512331241254313512031226245121274412233544212245542241321141314572744914444276151231214510541218334437423114132281833352320242632624476165121223211378534134123151167316142313564250346351216361123135222151145325543154225213203213653531341152034411572115687558154713448317133144224311524423414473231122185024434752528287416306066118644467621142113121534421135421144544233157402274117126348212527211571602171651421314584842132272251121632321417071128325385441553012351623241176314653722524320136434240118316228321155342342726713224175252516313142336196243226745322252553552231263578622826185525224522132211321133413124610316145484122311433541222415174651565267217271143571245131232142521142246428375217163415232311381087833525241521432747342135511123232403131374114175743031555116132274141425776361622316335413142703511725152251472212653333441831262131412613382235512386361512124522651227548151315726735774284433122147523729253144503514312153722213663646261444712137323111625133146710132438551131345550284281254322355635361455233211127274347454234514626141416513116363625203425023111384426215166235524111376213613731302231211426711458153726513415312337166035414538418216872127513250314416154311490154341431322114735125471242174337464252612531051170202337405611111431171228364222811618827453321552122433544635166341261212451715213664513447225221612336151224341444663765673632111144128514343231322171161483275124672605333652162352535252152313143317472464111653115655251272231322704143221635523635527347522455733021512115177230111674444422222745633431421115512221142436213211101015321375135112214565222334432241534336311084321545416337211247634331322834261251215023116332415114202323322377655318451461812215314155315465221460551422126524546333213162028451535113677215514216114085230322453371450344117326611372424611044213168435764412254630113131010533341144124133714344201152531333153566154131264937653722316132231354348523154681113212117443632122154744224172120664215718111272271248104134365143320253562544464432183124602334113542332331515434313412543222462147248353282423262112551315124082213124123144312326151472614235371724148446111614102406511433231411652232612753311847345402218423421041532243452324323523381531248276256401134464211437112132432511073114177256124343414462105117534425154131162231255556467838041150433213635241141141492612711604647311326484323212333453464251413413634330422522211113251061443225664551122323834285224216654466174223152125210145121436414516413652625372331741157162251623174332132117241652185135212120266163624441726314268281816643638646593443213125671114134312773455605174217325734131233205332213632232247641876512474412111152143116141228342841221313427316041367166125333366153333457160137342121512110082223452116123628714551361134346262412441436131144111254123422221134416232022332281111524231448042241781652254111633736722210543155231213663411156534323413654442338254852763353217172216315922611441321246062333823753333211163211628417617157624772427458213112125841441224583276255358504641111513548321143858340412442653210121832586317163503628226331163614418745326153673121342624711212212223424743823163264212131252824125121243363345733762455172233123127333246314332301421226375352426425325318525331734473332611023426231335111431722242563333873123011141010114416111338421213615466356153010453632032042547623562152012552536152338261118124415133221841314256613313053433158511761526241533126274517739640344112133664343022528115181632261313312136257273243562143113424117551624232033521173162125358604424712421540555450323152473223211444442125333127415626232232352273122254122143413155274111342302151433256231328314041112523213255113543214202211152151215212250547333430264361420124134637251214157045213621252164244263283123111233412137271334351343325364114156161461465113442312531335334121123615463114664421412532112323275221253144416511222525161532156135411547576425256232244123213438121424863632944332511112223161777165533342563821312353236121412512515543133714154321656526232121371144681321338851333224424154262312111472145243214131211538123451413541433120653450342834543153413122461217655022136861127463362702351742061732823232325271224403818512531221121340462036927454127252311102332473362643535116141232633818558246575111143523325634103802134611343841515234645134242021225511324823532412453425264273172430226272713328472153174351531834061817372237613173121764226434211037243165133255325156721633233261362763222437322360611436812161582616643351723134112321564418461454417040141701114232231124461341241354521545203719433373423581171362155066112411122514244176215222500340231151221423221236214346155155111124420544264422331424254273611157533454381526233541113185843051544232153251352251431236415054214503364323632353413233252774464713452450444442122135224422814133885312453122522142613771228413452150151121133173324215228155315181284325180215615027336272231644231334613644313522924443214307502321234811331314416226553541625147122151252235141656322553416272346316632844431023421233844211762625126244331423461271268414117171571721480535142723812144461242422183521114141284342331376434133755633054173664237231654418547453242832567222222114125533232473021376011452532363370554362315165626543444374526437128123116116123212113153232311573272311237172263043012145325341417122462432143315146112117725432311634707135632631343811174643764313121146141182361720121121121251246661511320316215313311133212762463334122233211743253121126541400558652763431552175612162612153763321158313118231214113784743444546113261314387325123511174222326235242530123462115241111744221424341345336343321221151134417234412523224425115181271163232314121116242152231424327220217233136111954806311151274114333336034563410614125733116651145622211724241136214724211466824521411251241162553121334424142672634232251562827231121211213133246658413184137308382722436434222113341034835254310131741332433153256513372524522611586153134251641215313511135151422647221414234225532821421102324612772314114317122731742633331146283452607521531213103222100351556235312453281344527123112846222333336616532117141644167026734412361544262432516121056364461526548753322363427523483424441631273211131315331344264315443122229252802261652253515263422481612204343255216313127221225628205531231531218551147564246413273410074412272743115736222332133325474322113564161342552764442543678261522610681843130512424313283171305227262463141621112233315156151124443166412547358751342124284323544721212331552345322637121304317630123114917871207315150021336011362512721223621433531414036363673534554347816445522226651231433464152331147731531045444131757433274382744241524564215834723432162832686616112112511254121363324612573177301334571406432315211525141545417273112078508125172223512231463664358561323643432712414307237133340130541631454126441511641351483111244230114213272331352511435501153241561141512011565713125630232713110474165224522555251111447211212161441102701121776224222322026261236533117656224262463127134452515117111634145924221272226121442452045361114406352482043512304714714244428513311224111364271031561210524537213310242437154123311427510356632542955452158434434233654361573632644151410371147310412114323232623531751554303631633314611121533233545513132171461332231432421611234651121142654122236661123783481221143622572161632245212562813362411351163562117351335334282635531253144323619356331319411041436210101424414183525153215261284443513171714317574216234216476111705231363542336223131411560028236157523534364125612632231651342240356641714315312131122311352341442641216355125301310125543262143354180217243556221511217211352824141544787223130126361214142611637285144271224252061621233420122513120158744215614145235614235134444213642133108232132261115445231542224156112151113227141410333316812433213111161274656835634533133171742451344526226112221320741312235212437152155237410152450765261235521573524556531634416485651422434535645415215436514361236352425431821223641237263422531143721883132311361316111223332124311263252611337014624322143307327236122112126351113383410313227604410143874335533835724852317614324501144285056623832183414116328227212134431521321111351233515372755243017916215211173435232280130543116315061406323232645852423331263414454572313470534145221054425331661614511723154027316131252748363852444031132611531223147352221222632124327138113222164470418271261644462725342321253522152206594432227127341421512537112312442852136382213272314646411455532112660312514587132331488181452444114665117264336363084612723331213682176131364431312663132116142453422212113321341331541122581383171451132132317662242441332316711123875246547102331453423252215264543133713744152122134312424228312563518046102112162516312741311511511426141352211132153514271214247322235115624312354638421542641174553832174224571245332172316202362212632210482266112186113633227243183471232642411252445732231354453522132314351205316212345822513172812746221254552411244745163516744521656433225132152463143281107231180233141147350712133325121324133574325211132751082020002324167617444443512655734135333165454122536125752176552061301533445240331241613272221415531453567648063115675443123615133224770744667122427267313131463742814222214613574507611241155743132111261336252473145775112511563526215023121145143711634164342141113734654275245312134766724323354111221455236428531012615422161046323122623231333344462161132447751112224234639420383653471320533665556110117216421164565731182328643351557226722364144224512484624463435211521262632274128216445220433741561426403687275462414422651602444334627422742643662415626323231124245324814291644147634053134163111724441344161874314701323224561447417276541628362132734441463201813460774110532222156433334652118324536421660353142425216132724111762211131826312543123474112431217143322567116143455241781625145614216274423433444528414301242142391342441736131424543151386334821611775034362345011611227531224111651161325073736253332312131461342533314564435722862355212515318312221162215522414232636221422122661155140114223326361374253472651415141231761722428142711524674528742174326721722332171625173304767123721624113641367531138183415267141411544285032476453627326514202216642026113451400216313367155572123613116543731417424351454685102164251411245115434144215416452730133533021651165122263482114151245315113571633733526364214482413167446671643213312115712131574625332486112671832315144233073371434245761434411161265134362333361156615224552742631615445323745412222473027511162375245245227441144644453262413262635438451242413244237425142843754556134232824852524238132415324234928457335415410152318412232322011863231134662144447113530311822546461315473417512025224112851197322173650311733311218745453613422211731355331451285234704322351216164853213337264316325136120124121684233512523132424137871414217158990335234221362526241115544711817455111341252224615431153423132173038165664111461523121624144185426164875257324125286131114315131743522161218512412344137224726321212214473634432324331562212182523114112161326054143376220232171722885622141273211411412541342247362611162222152542278513004520416332234334254765458594214072216142155447035384514845324134265352152566320267213411123314161277546332232244346314372613141326285126215630453224322516663232245123341322341531003161217563545271006312320551144513475404545123220252211736135253124634173446146211715574417454616464080166403042288521527232421152853672337248314461229231518353535622152470315143111464425485312212235562132376472331223512311253154316263652522504242457863115333610282585513311334442012126357764824425574261113411721322233126233511125247534721111441282245361312125723143540647124234138346142152137641524761673622164433141512112132353511431212760441312333743383172474533174132173015415146461133126631250815231333120245351542844271110668425557115134081344531111253333523413213723773312148352583436151162622124117174125264853121923204472414812551080413343142512555540214221523331501741134738310263227361373211341565214133213243213421311456572415332332131112131721137433444112232322788252516821101374363125251052534833461842612753363621715224332134424962621122442453867222172457312691252855645345136333025301564224352111433433313511321311135241611534126141641571115456431263624221413232424343521133862127173255226431211032264325282611517181612112162262234136115531043436152154524234810413667356355231161542275521374953723175823311011314752312331110113531706310154022212412581105716548321131432343164112215245444171381234347442146323283724741221147364833226331556212316462413230174637310103523213143625658312431462219163124113514123051250412663212113777781126132113221621361241427021345243631651235581125154635675324346121217871632363252825223107262513312413323152126102113738525864142135141382821234315671324611412622146122046615156175235141653122410431113535233235432433413413324431246248124112112126531615512415246412533247178453363721441141255714223227253337055218637272454213611476323123416444136134785363634133112726324221331560071718143614313647812634342475202543012127353571311234026107520311437348333412112012251140156442636551104157125224197432431362121663523142196131446522357727113031322423712615158111353614255251432421244275514374762317211036211442143641121543211634242323120574113221344324723141466305131361112850055210734535416253145425452161444256415635232135765227151273201417612422113151441123111577135341332411181442142313352335152352231465546656615844144131722412262412633160136503163443466184617156421732331176412155733414122244413511461313351212441174351210073224304461301821136363427351406281576714053221142511662571051727423141125222426046151121112311664312443165160101516131673333421723227256225113713024134218245211215352043212103621521533213413713634531341815215313351352206213622631223153616512146222013646331841338113671134545214540414132743432332444133324210425672314346342352212261333086263368541417153407663645611151135333211232125226617747232171336732163244122227572227428352451626514424336621151315246215247212656612333634116313821315351210575131157113708253124215223511235412157451512443127222433178088311321355374024272534342255046652513712711648111211155021173124236456430113450363513452734213513371802312417411276535151352221455653101111641353224176350154271246115257732304231156144625024633021134211222271750733211143825128154864323333243525445142733141211213716145134202414155214604704421072602133153576275152436275113122124533631134282354233585144141521156511552565446136321626372253352317413132723571352115314411311132537424123112433436525211272255574232121736820652110208264173543037254521630214115121463251443034164872666711176322795253921516203174511860154211432313513625134322771477732171161411746411130843315111633113128623352261552333115350425111443856544415441133245213247112217242241123111432801224621284325585154134156573806518452303522301302136152523353551434422252361523583224322413762572033411232434124554114361523138522135431112748342131534626131432141463124424141311552155124223622244110124567414221433780632473466363333355555213151263134733323141551132172322451214354226415387203133126655442352524033342311751644165113125572217611113314373122552323144141133471131554233225141044461211162462362351562122156261541472242348146052111245543241324323343241354832365721321128148233453146505154524610143412722514115564306143712362018535258615174214242136521282560560547742313331340446351711413735434588114031726543467411331628342156041334331441112333182322113727333113324713633112351112412215326152452123031121241334153115523461564731421282317145210746731305311161051331211211011115614231755411133224127652544165155441558423132725213462832424641348323412263124242526745335172221124213341463663222712362151132612562112661531447715322317362416143341432052431746365312222551763627021332417621142521546121431545036441367323532111782132420556257631434412252491514623465615645415134147501613301604214462314131452736454342852133460723835224286242554433313322308144222421353121163051131471613132114337523244644334431144621131211761331621552332254622334366132254255425321735512425236344253443213411564471736337450251325144523216123432772235328311726081230432214640833243131883533621171483135213104365822771166263344342232762214441642444113431116142213321303122632542417213171254311342151634511411124243673015464302512741333639153661312336271245723731336671326123152381375126161652316572111155766516415831264122410835157576121341213473141161222443512731241315616233255217475141114122323832121210312223731480342323150244581013513142116332611377356452331122568145235154524841616851450422265715114717034662332207422861353761861576131013231410385412315135322123352366354243541422515156368531452424422342134215526652021305152247367102300312011750431881511722351328281512133433337432331621123362434273254113131115524731423505261125336228582136534612136821323125355413171315211411114271623432314124141441222121641046335581331713533322414621462034021423215332422117612626464336425857221185119351215143182463175116368316123624344144422843311486235222224222403213552243835136413121642066422223846124323135333310265302327152545622416543732712124155574512212234351162514247257074364416327562717513152657316284217234348462555255614178222248521523211764521451223421433462167315245032268413463412242753436135622013755514411415555341238643031413444263531122562744121473921152727224171344333472522135233363713226641364333942545553542456221542245476578813440236671121312578540613536326185462773331412433211315346357314371358628401482045241421828321474583531131326427364402771465562152137725311123542442364232320241476825452714543411374121134425732438651342403446681132152411245148203322857130141542233513424201243169331627132135816254184432445245858203115584551122474712224331575481435364517342116320163213759100312417322212422273112755323111412052335483172411228321355556513330224512743127214312665215243512211275611618531205224345241313141151343462626314225451176126115476113162713311347534346624571567213133354641213653643425134242551112213463226852451212635223112333313251786213324443426522054565822242347414414654156453126581264115311216832334722231753212346324262122124215462464011145242104155234113576145423631113744441312512654107645727460442612167716625311244345211614315671036146016611228251241741024624512551418114403622144338163147115246152464283132326340123181371821122111131234231621335242122617153464214422311245516517228561165765284186631432725763461555753171564253358348345728114302671244136425731525644122345318630412841511114451536312411466344852535231732223612381225142433332613143542446235321557324336658222316134621553112126747153232115265252256221002301742436524325051447335323451151223271113114167113525525034411262132446313437352421343151211112623663143212432507755532252225884612344013111720571372145216225214432624323232246233433751634812142213111368244261513752486155832732343201361066155117131223351711327411043624684437131154363852464532253372244632512742335477456135132414103344336243723715325141333625324530778121332362167211835275034655436204125216111466851172252526132174725251516032910713524537341511512162527443361321112572614320335215164144254248213536421650436326134541414823635111152161831458144121335253664331271141718345130662171652131152767427235385426153275163463121464122172411121931542523733333323643116541362361613327356052146222173261132405211754850783312413631117262721531012323413526617361321345451243717186222333218338761321416111166245651632263013382253244316222123247385342026811322553187257313335103315131176461445254241332762158538175321724542415222552833230771211132123272242373342557262613465176751243361737125124212367631502342234132323018232524425640223411615164112017235551525121617122731222132124235146134531215305216262511431712485181105432112206223315619141744262782734247235231156222224649731566286234142666741312234747633541151466521803351207301612334322236142151412016213313221431344317253344131343641142467437775642343436617833617143133245163562141653132103513433114243112145813452224351442215725362133318624122221135117103262246244320451212138557517312164612714515537304312434584236421132164535160211720208024261113322261321630101613584541135615285115423214180434172074246216412285475623224136273642386125323311101203115688137712640211662221441241340143602334134361235264745516617341141348966262210315523144623821731354212261116111723174272675216721131845275114542771534572251171312141225003611254321568215125226464418234122934152142911224352146828121361251243121531518132447252142214554133956767512232111766431415348641115431244385328122328644525152522334516144315223754747516121245043233113612307110222623301534317158512316224127531366351275414101523362212225632511217541412673222223224633177624230344423116151441232118211111732421243534714128851156640262823233421543773312760379712432162331101432415233775614120314329764819317346461341225151143642287251214821464205916312705451161143637677501241353237461410251240233311424253576643134461721412324254473541334443452337237256235112652126442615325342355373363041426782433423141314351361437116514341623442266263131271644522436845542413847136711457440335112255736215325484455514367201345732135334613541232284341112244443612735531253654121251103315545223313223122233321133275521222862214034151638115566813324851150436154238523642217491174223206128182816723023235062633194155533473637360261373173165456423781341163564320613285713467650742213512363155524135332123251313148211543213517581116718224481223277612652223233123661416411133213147722250112117122212021222218613331311511527465544235644535453211327623724545153447124626115442432732676058543281210421167425841321242221323336242262765213051811645215103023113421154337141517364231111521542235632535416227210312633437534513461641324232453121611176411752121233164522213462314410161125242412081453763564112135121511582563361232543151617155330125364318612134142410341745137341254662243314147113874156116252547343244334163245164523247431162838451030351832212331154714523524416311311221557722635151261631233122411154441302171215873323714741143117307138163152951120221357571353331123316252511131143123266632221634312873273142215131432753721341136563177551141213651234632257260534341835185472753441131422763341110231722521771234765251464242125211434135336043027431036117227522277244577784222352432855471640515242156138236324627541321179233056322224170523162133621152843256246213552255381011733113315173254208126341465243433332363423462233142645333215440126386162314510565385044354724171328211833185266411254210170441211255160327332325514674746463636556723666252266835533145122143541331552024313315355816571331714204721605447115362113406222324731116018684564638324107322534521321348126812343201753324621214225101113244511326222132535644528832255720433247173132630412465266181311204432413217645461341483214711221321241360443233414434332507252313626434645525141331351414355514417174255763154313334125134535425633580417111204223228258011422210512334521122665732632303152751574551315261534120214144144116117417155123632234325128362814232315112338127302311111212557115521111117478122333245322182467311755171248341414316611041344130317444446216352521061816857144271231511553421143744841125115681613121512223313862203251263321233748221633112391616882347334313322421141164825412331132221252115803246124761844222114322624113212472156824126424376519344121314103354320521555774743128514211186567113501533762553440012711548058256451264165126414132525433211143134121271761571015481485234526224251214661511374145352524214453147235616135130534233725243234462321201346421753424042254612222717456665261433556412116612411561511415623726022122481266654725306122335343114671212522242505234757223125815565263721327233272411451312136623384124334624286335014342722323410307240215136373211851334213132402414311452244154331204733134226283212158431141247253449135721412421043144651381165511463331282421344123138152874135645273531811315144125216223621151153732431113171344851276643438571711151222511322143424521522145775416423147466143143156212821141176433224355851122724173251232136736711173221653652112376013111332513423632635772133514312344612213652212267577134131357537143421351318411413161014422151261261847514536755542141723133351831237132112012554587331174132144614134242074433032632386335315534281511640443261327232028561443372633561751513422126351278313632381534621637432152466236143152611103654261265539455235162657263431415231134421053168310342131621215415253151144254471121411110828247103250467326454624015822102612432476184277353025351131684327473105133637236113410342653375361336111223134244653617421616276463111124133388417514315512247311742443332117312713133420111263421420418221011914684371712342457428711110016452152231023558526512642151415113272113572124272235651163534625433215142135135381331315151414442631135534450232231231236414811842314697661122536215122102334612204261163816333343402225341250137344111812455144914253483522412220141113416512374573442363424185625064414171020211522125145414335634143412156635222221361313425236372115112215611161841131214836526645446433746361242261261125511443560363726216374414062404211431216146102633024136261673774332132134042621144413413212454163474223612678541345314405214854111346147101205113112373411543473712546413615255213442102513131442212153673251114312502231312314011313041622235456706031211124231615372242321143621833154522532522355123262041452132361511435352521133214242251143411531617823055712121310336112645253204453762162528132175218132305331112326151121312345413625313236124328335143436421531212162321366125362348201662256613264335236172351414926213537311222551201326521210234125175235431253631115151621423324611654612230435535355541526624443561278528213121371212532154072531804116652735211401321332522202311414114120551524523211444225211165104621462274321131736421124246541321452321226726676326413213147112461332031142531342346325536345332233223141222280231116913542443522313326426221053112430154534565711213322323658363355045606553426342272444461003754456525542572334072503052601244752524325266441211026523361671562454141125123345342776137003537326235843302122238271211446712654137126753483356751718302414513652213051211131251512534122245061133317161643422711314616211020534455553324184702553750272443233516225376637235462512424457712131157411448220222215604325116201352524222246121511141133113372512645530454126610118752251621643172122263242125376111046021442248325263321415454122492511355122436441131323315612232117722327622111211211721442168111735010325423513222368183565165951321462834315331461134217012521145314444151222743365313423443637271101241454371476244635424452151111141715523231333121547614672655421115416145641314112541224113251512851861120146430394432231723444148742577253864535255422542435230526424280265464514421313683252255131651633311543326685333522726431242562615134112525347142534034333215661851588272913620372321152331442533234536222175414433345728145114532765241832866221522513913441246173616026023565568430131131135345223331143804041406272523121132354114554461225431112215214175316281815124531335433142404417242241141163023443432232212353104656047211123141236228122144125314125621346461117502363214753201155123151514321231733314721613301133312261327427115245413224283414114871532334552617168123111952651621244513427572571132142546727148228546432333288422732211114852233623543631141516116426410423213265753535143543411123321612626772312124472233212733111723363268654246162578143212721157221413322343734171711243827613417454353422648168414225231461616122231342210626241151732261456233257713155143475121113426431116333263540350210412434363225745817260103254112231656615314221242132011115532832544105227241321212114156656546513444013163213804411432222151424210354331535026155640112554421255336344021364214272222435663341313858151612224511142110722746105423312217362124145374151164551775934751821224268334275171112513742123564122422216562477611346121327122374634373172111712135368022450351424225812565341232631322123351821217435312367371315671321120453212765515743127278212143427015215224138242271641324183145342522118434242851208127711483211142761154422116623126186170761051134541261433516594232371216563157133311212142851455533642225135647124110245321266376224831134482143441833461212344235116611522371813548453270227153145271512334234124271624422403542011471374325457111701185443723522128202227115342261271412523224221723517770531215022156812427141225224714712745213346421151433218711115120175165406335225621223244250124116556382523131135341553431332443746167265374411166726226273131857712111411322111825317146215338275421111177444315161224141371241152125266216275413234851432226321215412262558571121212727418822163331072257232341213281613741443273454243768112066816132154125425261231115072615572641336325523333221470214424351662351831542336421457565451224482131332211006524230344125145210517726645236273515182542411542381352332626822414621342526341513143813445131522371621124151512254321015150732142424614516512344046415233164431276712131243345142176432444544515823182564614112513312241613306415452216427617231628215513431222821623451088242123117116212426213374165231036214145345316655553835333212733426564162328725631532726512273332131656114613261112311257016354433522126553568101112258111712504243272164161238145111177112572331121233224326323256214613422324242455226555511263222247211508113216511336213415621122617127614475344056632376187121802410781244272363375126131551755241223112850813232541872656645451414725844152641443251422345514313242323165143353626015452182553161543336493771523646134465411716045332323144521341615412313221351134232361334162672157036281141222122511124841881016722222323217566171352141717127052432232126657026155164125313848201564158262181424653847224571622125631511741211151612265172622253465212822231244355233314121538512014324227354352313723224441416214262821335411321431251514455314615442465157311150311236738155323204546676434115127138412441252472713122633137312326533216024541385751241234002246650434621355112211161134614222441441152651215216568314621263473654632411112623221321573583721313214410431133312131131223117128713331252515122565131561612517421346742111842116113133622412541521134111124222272461424454112356321162744365102263624221124716363334332145533415414521145545115748145671132665133181423201452351315143211522475136321142411132224374531251664441844156433210211721553662324341583156515116525223301653431717132344267861363216513251123413123923312121643151767314463155610211382221243771248114620244111066291241530461189432763162127412256611126356411121375616613501153221252381237314551653122621274437272155311132285754148011103123714453333641761133136115511445178531686242513565124631111731545461124516342332243141736770121138162726215772184646315647464128321145368214344432411142361343363452735303314481257112438233555643441545643152756339232621281261122204265522352218037316121124662121472533462281274132113125608542443116556211577511541724052134532323241242856034612654244471256122615340346725214621152756428521477421532427245562146361331411442623322637764428347185713474754232123121013550231513272221213441314121164423007625313333421131112354333436143225741102223145583536424482651220133174942713664121417431540650262331141112386426617112102411472686132372311572235252133722438342155121552123117314822353556343311111414667336212834876221041442044120520744327124643172342222375330455122253546565314142656615102321331122633771353461531128154831622264763114412512265731133544524115118461227332161013314112335338541255421122234122222233134232412115526245273358245557182322235414716354462424151637145425322532331146501062613142121732141534235155054122532042512324821225213433216241542253215128126041667151233112124144331371232164534545251522342224512332105221154126241240546154461144322171181623446143215812221754434467232131323262272321134556362425132222222151155217717312212167131360225121243311221334333123632816826724524217413083251782115343714112121410515722347761251131311526253451232648316376113634617221521553736284451416625118712225414274131153121161861712251333731742283442123158662553332333661662516566362624815512121336561321512245272117684345133373264704645253114232630451244605117323102351616613440443215461421463323216531123313275434432343531342123238226463333673335131258222141288273121413423253353532145413863354403461325232326414257241226321732152203123121105111433721515151822122106488442525134650412064442244253254073364412612131252761123224427791463161142311772111413405822150136311444531332256115254511236215146223323431041853239551635261336132225851113543524367525662322323315652233334531343344131661884389431220223117110841324213233300111281136214323185112164225122636452242436365324251650236276341335301131147243523312543156101311353515611544114654154723616114611344123131444285231471236477434655152311454431144714425732262282621435144321716732256114613211455145521321372134415744115114271224265223221381223111328556521317646022631330451521217210213413614144672132351411141122371182222516311357141221268533232532404272511271168263335833521255112113668234716112132336676474412232011556434513612625257316453231512182253118141472112720345511152317501162823235461132318273721242222522303372532155232542143111642213102750614633523101121632425543233332451315332883513453123266421133864135143415542317735352273371034224211115546115271173128551311532317212673243342251541164483833433348115424241122113543261123162244724415232665321742448615832461241451123315322133813472322730421220474243221271354241111411271514301555341453321864513228221117545657131141231242311452343144226441251502353113421456016327032453535071412111423437111341615644074552571631725124540711414431721851211252233021146325141412102112363337263166561665617211361582434141163414813823672231404223363115322602122163321412118332112312104423418171114621695332243465121211712165525326623133236433324221265881417280317643345647571213021313933274224274341482212101122142332185411517372242101105671543556226062256217263620513317666153105284371414421226414374673514434111524631122228325621186223453317116341341761367073325162113418115266135413615742872132231543627154265551172621032851122153361864854622158742151517618135471154195310112116353622681751412245321057314486246827251222417821243642254421171176413213051122437176414220427312121481211341215143763347061111414701452151112037203543461214141822225225357632403551211411218118242211731115400552710124362223223141281514110174331537321422331212243311312024544276585103351231341273232431413433355012802155633506881226312361274214111531513336312122621132131343455213418521124131540631132211223253613432311322425121434221242112114432264450253321231732433333733512040353431163211444251163541167342656831752511221631122110140256213356344422813133603622156233216314264612514121133634265152361151631331451603353531484015121532465141673416418745235161161474874183323181241224088225465336245416151247141541251142632186511501524244362431724214634844182333241363651115115632321351114223334526227624726721441673372351321634011452412221231454113453225112411111743161132623322223213142116273231346222515161541360421514474264563435212674241314223355366674144146653726142111139233331541522162832671141623617711213430263251333214233247243251654131333233121576233330142567513326424781411314244215221475364031330270125762212177424131251011141262111724223437145144224257474102174225401125144624184614520153131239161112426142131444356013121236114388212722176334245441335416051125224752236514542611152214342522162437124152621335325131724471252622125534278363111311455345651142457342742106832422643251262162655444731214531341116212811432655517543613211137251211523318415235471315432731311161213324712216231255524511541434182162852043332446621533718126221531416145311263388323661413335211137615023113233412555276151530412384083224235181112213232632364534847156213243141637432125125211138241172524144311333532271122228330523650653386357112714324113141516153357543371343246462115231530402557372372422126223478255560055634644736606031857235222013453618655835313684353524226112451522411320211303133241245101127326533311046214563736425122632322614613424723542313616325325336184435422344515518217311155613711515461143246377258386216332413721433645566331222166431357263614852162454321114245423111164212557124410431141534254724661611514621658334262324420487613113264521121326258331042126134211125011121444447234546215840161406407331254511532487355241117731224251124222032841332361346623678242634211111443212471654322121223232414455212352143213412124713154173645554419111767536124155442311733212010837308857332127638125111152043964558236264231536454518054433358225343471532173143123210872526121333044552222350244634332534181322336422423544713474226221604116486556411423212274334112223415636511431314745435364441815123124115366045224311512352581122733131216045152674224361421325622283664415357420123565623411047160527382126413504563315362610351642153135233380223452258401022331414465517141021452811112232321102324324462563422311524341243624870120544381734131176225453327631514245106336201343223111660181111443155633530577244516723752125233432411234632524342510702124621614154211391204263312321134221226411128462342715111213222773511221111441774270561424528273134145315634232133214544535433667135262645673772114715263751541426533412636114729257531121141335582325733421251133312247711465318448125115145271712372011112223121614357314212311085631223511074621238313242118934454352335121230142734421442631273332954103532354240444447724224422222553351257524441117177535223234512533335353676131134227226340321622411454221134153665240325472121627143632245322103353312640737532262612215533381364615226372432454311701535222244511275302212651435511432217112324532541318237624346624324234473662227160253354013634834147536415224224312564524273514162227122311031023141448102241161061511013596516135156443223126162454323845521125417353213247344163621661026184142423212211233441232334423511154231412316815111582648336466122333215337463342122612241366362345121225027536322131242211221235433144351271121442821133502235455681441123344581460325103244512753415142132511134025132524645412615618445412555115166615413178434122161347144315866627410237165111445142221214324431174133443544231462711556241132235366413823164334031432253133314724191514645577146725756612116412241042664247520623514123624445132322152623811471824523116121814225463150354212631471136411584242611236216583533614264457316343674422243774212124835537122111541450418524241627332152537306358124343114283715022642301612242141344235312315572340321435332627615381244256312445524345714314353275144433525107263812317553414812113261222133303312117151447141122158552203151211236642571251696311325243333421267631258124235351168211134335311115112571346073451135183312532634041355354125523315712172322147321255016431314213322111023153381316655664421551142421657234532411133234414172422142421575426312142511121122333121244114276415252424155521446321153447326588122655327435240434136157764441253153242331324133748248173358640343221014434272141202821551474224236642436274662048111245231272631521345321428752528331123513824352146212323162325652135213326343512831212513134314421244153113324611223527414141335523619221421343133135171126152767424146222113462138052114212444433213023444321013235131381131237513141113108453146712522426475512455407211472142657420071335221205982558455441612424645722320854163364232715471364321421313181325161252747575158141386133217662744542142232107315111111483572353512175255231373414216241223447216332724155147521846124322541231317544111225031141112521351316541714366726114153141743132232782332436416124331221554127331213441157574437466112512215272181145284531327242766611242244613573513534123051616732182215427615262122524411232236247313461333424752801145475706262414171224125111233772142163535351122621832464652238242644319515513112115801175713452123231161211312142013623631126425822420711142113514572622311111122157521212416321464324354322212523124253351405541214348346147142345681356233621872215471241437711617547273260745312522451422244122251413455451622511213218165134221113318171241414566117814635613237226154233422163738321143711611722116324135133483775962177143373211251142442321857187232206535431621462615171453252776324343214254031443563360414437211446653811216151621812636416233123232438222354220577122521235131134531823115511420182320531211217153468614562842703283272628313753579612654221121431251832724062412410111154352125161341274313714038025125201141465418024120254174323344133427018335254862625746223415216121125415644555143561145423611524112323253364161175314076517122322323262256212315146322543136463415128243511610254571101133231151324772534821412125445366071481615627412551771621124423731143413242052175714113126282011176245213612223221623266120111324146251546131822373277311412238353152283361210231382642085221477511323522231744521411231707352121212326335314141665353336614213543113264142303513612043111143253168162147123531122351113354731184154421231831156748612711225247131571035502477323843115177431338211455276147531626264441370173241836455412141281601168252874311558231561826541272514132431263115113162431151111115217121113576325214221535123526551663222313663221372452315312412427620447450711452183472374815233630123361111415133324802812111522162213115203112122102513125143216132152307533212411232846737232322122124142484533643453747213314323411112215142621752111563511147442115224334514251856134643535658741065153552315221154151234338582316242758204435418433733113151247374221431123411161187162547611125561135045250202221826126413015172234124528507203250285713413237332216163622327763112362373441216514354133113440466445611121511231761523146142258474233321432161118743212333562466151141564950444745351116662145633231131541377112217424652438540146731124725271521351304138475358843412842121122116361201153314110447482628554477534334412231162315327263436537155368281434621643437611224131286534250314223001451523127817124352411225746651831137647644351534431344111411438611235375125515335017325041401771257443457378123144121312437236424141444354411343216631582224345046334524163322141132723076112114573627154125432325561643411615274025021435331007146563574426315644126430165712316163672325112437322314417213157347563224363711141342276650421442451751128372362421045123382113415142518143126776003123223222582014414503174145531827644112222833013317433373331461213526163604581421228821213823322211113214724116165221553272333644544117512725022252404426445585232213456174666184243654433723244152164132142152425215172466364447255211211653135171252244665726266131217851437175813302231152735363370261515452211123661242445132164151511265552148242521344663505217243214135353722451246120251242033453111442132032221151368127234785028766615523322431621245011572325116371531527401622161418363523585643137580756324643314665352223144461243452841212058423162072181515141173414525125573323241734347121771334522114755224132412607232122163245162357224165343262217243712637614315670132112127520114312415638511774535125415224111613330243334311361251184136431541363142352541333531554633226352631251875111144111532823133615363518145366132430102141118011763524220162226312525731222641472751071342471025332144115171252214146423372331161815255033213212773317356314131712625065333673412645331561343336623746121373334476813211332351542261231556432184073323424244734231336137546372862112411304045216302272526142234571120212326212353701875721152420850821000241213038143453228212643546323223256223044152726878662343715410426637334646543182132826616374222317215258254366544732063217536313314231755243534112632306123600411112143031274324712201414104425313367171102401172724212822232220111221722342603137131741561114330216232516535733232145232782141153171125323123425722352574113741327222232751632223343300262211331334558401555426533441639412572111625227463133314375234744532617165256316452545103835631283154671146402631341244173151016654342332136624371642371337655323666313447265251742712916557534245312523181361254422554313325113311226327533544153232582207142227426603443345432324164961332140421431740211261351326763161335228528015615336211111343354143413113362381261131151314154836114210252233511223642619223513556734217174221122533426723449414563623864515375632131412535325317754324304311641623071752311447567241565136343441222587436221624233251445135136445314101163733944815330211556215663511311105406373451124745532566224642421177165405154423613443422886367331151281038623424165141672323321515154144204212613641532248265175334453164117322134465205336521513445473454631314216135332228643116723021116241325323142711156653211303253104443115131165351114161211223261224754165623453215225122116234135326331131233472461452326751174228162112137115683637346473751252044233422121255802137132723932221151446326111033233437161152321641117416558162361312316621283161111247051421421118168211242664441846361251356552121121231124846217286413412335183768153411224172012317285721823545264321282477255377320270114250564637815611643142025323152412511548167462273231433288174175305725461754253533321251421215212231111455337125552486245226141524436406131148246423411128372425216422121147242228151267417321374632732212494213467217322335455514614721291317642213216635512211246766112235145237113355134317411373163263716621225411653136246363213715113632413253172121373277283165712344246681324562236134554335531155310233226777610724923431215277123327572233014244441283443111166222512441521424113343327735153112203101314118550231542224417432341403421144532131766331506220613111221521261514455337131441326523364331311162135748214247012207544723112131567103813742165722427312274512531183111205531552524545502426119811132343314157316321312711376453433313532703016424212610612268136212522042623640632256222621533273475432466033374416553078223215251746155321431723221511404716121432311827320421654241122236244742151502411743133223122864201411215521350133223522211353143146362246411165635174257213112244362572122333352144213456443672331314640630217142454533141201816231425332725352071563361112413111144236432752534155253321532115485416133555113231542513855464322223141113155242534265216263177312433604317421425413355202153127422172233370135362231441225672165242353453467207124453733513152323455452314111162121821332146812250342255170311412432124336221678130340273595213361812582552162310362213264162154352583311133411414411256411161418638251342212415354626242131324155842542663713454147422332435534411422524329126343168436500107265432441365513715455153724313143426126763411212414625111762727145121113354212112115922251171725653133224710323521245311411526463374545141143057171176243552236631111242043623428114518232632231140486126522636335368222441643112011153321172345211521341784731321032628446141151142413160113218837352223115214221133252481236611154213611464234370172172747581402212235711702543474623324786625143023367614801453733151202206762426165221163513123132215711458157455684317221275135423615621352512232524533154711540434614643621101723576866612515045632714154253368512656421168332941257572221133648265237367323216651333113311230444724646434675744252233512816431223521331272294547522412255511162451313532435555325184552347117163263502242745331362247413512351141322121136171231623324431215211386412173473875080022413722122127262455421243074521413323445644122412373360143551183611241212105244335226134306322244172713254776233383145346448251152337422735644021272524715126151324562123145113552433411763462211169447433153151378113421541235446445234166822648635242252222131415544163765312811442211150051523242717711241582316672242571252713322234313553124831933591011645428623241123376810658222341204433411332464222371177215522774014222332328253631244341213415617114265241244041122274422321518135344847514168442538371832114345411437451271424344415257651631165397738111042453631232215166623414321477263113755633644723471647323215615141614816252712503141121215223417321422318323641301131211312123115771224127311611150232331172561663171771234562240133735734815508323763432341352223461357112553672431216142713232643236314241438466131638464270773710414225123574411722312217321121314416160335324227813125322614145280213110543221764155051216354153144121522125121568642161136193312226413363342144118234235222031811154711374343301611113264331533213334668114182111227844151630773111641311644512250212421262643135447616551474310451020634722073232732035513222421632136354001854714021846548328412122397423412112162261152464532452821312855331413254223237522352212337213273526675214423472554221356311231633213436124233664517021541816461421131143316674326443462783341426545773345223272363516216416763537661461641352454212755532322571462142321261342565138746323133041242724452232471131243107241275379653434417414032211252261414223251412251244233602342543221313121117325047175365224115125331141255631462133216424122721654313013381345221432264817601446244473281444252457252657451621712211156275532422224141146447154224433336323633753242385151643147524118134217532261232711722268121541555115618176413434112232522136251145311141626233312412611226263366244281171176221215211204117343121222262663502603826532030322232285822621272255143341343163364531618442166217823853211121710481315141555444136052442232255647423141114828313471332125321136951234117312224110163316111352351261334272832352210244555142152524222251441374233742625447235542531051327455223225412371343452334353117358111247632111332432011112132542111523672212133223522521532121517117411118121154313711551171253653223732531448112445342652523352432231341126554125221133705555348012541233363311151133226732422251243144543431651561611191353162125514462373453111142177243262544435774644734215238071445321734333310142133313337020151416771121636331762432152316751433358151532211152353112232152562475437223453302414365724321331374111411421301311533213635422323206283167351371343012544025146716316167311121123400513234413117112087431466106464523131123143153143171132413861141547171021511464632142141404532475162605256321645111126214234527211113045424347224116016340610331115261223314155458123107216172642245121333314446128305217208524631321265614132237113217561553034611315178227756433112231122486427686524640421613383113801552174233236648429523124242424613110864334151112424723213165816847241841103514481532643116122176142621132455555352211162334472764026403364225222311152165252166312303200441436112347463662122322614161373623522521561424150443118334022871253226211522744161443323613032344286134270287451114757384611142315440124012314344807442755304615871564173177781643121581037154327121840442045143115117418112241325445132384511331246472613242534152114344433121538634417045121714114714472303713513143733515658425304112254316431603332552157451330354315457716818426171463323252447366382118242015658521164323266532321254206414445424321867134542847812233715257214121122722151711283534652335212341113211113348222813255175512274412114726250615212351211413127521327453146004651623510181358312314145562230728332127344122453744412201224233123552114142153321143111964612266413372431413524611331133303554121738274221466141667221153711434513231233452628223522135544646538154122630555164252123463115213434183211133142111273312142170115175022258321664444201164128731162272365607121512243228463334323171151154515632621245611633452122436522542713128371511542373542415362852871632131212614326161535511512374483681341121312125117431370112145353133463212141511747605232510611471232754167644221543946234023312635644365425643311711724025153424833351781171443763432242337271158274221437155234161213186726778532235411253643464282261110521031434607438335127411343518523731443342112413194113160244232712433414373836544241655453521423164550172533421122251763343116607122534551542414362216215532682231241264324262311218611224532181543415154433425154112152225042314467346822318228251243871165653324212117311444111322112252652413776135312131234353134451481203605847411276445014135262625111520247655163132624563261532447853355213241516114111221253462148332256652532302116505261666555641334122331213335210616742443214821234144142141105213221124144516121441843636243148835514101744622151246313542321331816042122817163551422462151645314621251343370266115174230212323316212813412134271442845431463112122252448424256568616314361211673234104242141255452312372616666134324552222221724140542382615123325132117141254271231831824200641811166341232352117232117677342511413615275424964642452337153423143641714858123215557113213153132253371142115123282250412122640138410244721393524420222431154113153237453431531221283583152356621341254212611212142416522146566273241471444243353242533641445323143145416142123254153413633125820114122173134121124372301351416162153356434201564125012350416462524414515214437545742262254526465232111241188563712227361132522153121204044123111118613624212477414444357537362031432175612122217206315272382143173332622886222327623623137482412813224151115313234365548436552453551234213266104131721348132242155133127922520243125552513152532132721114744221462011143217522714042511341533743417734222443525434345616431612247131321653222441632412532312241210125721126282315377513113345412300545632121456354471125174413145823111510411642615450401233232352176133372853615371212670526831361633855054251328674232133263255273363732613414455336666573465137332451633446323212301201573267162751414612768423221434135310311348658117231112262712133120424513481524104211552422741443231112211331332215216252417225612231410562478243013501116011183251451451262212511343305123222024721224112031115428111252116315725254373237403517337651733844253133726346651624271631424473432541450167243581623514751711721438454103625147161335255522156115421325683555653764722631314221604232581043141416241361622129678113537162722230443451327260444111422120242121216145211613113754743221132632571437221311230627207121275132041831243442057011035225230142424144255554147661213316417712562323125153216744643375111114174623312121461543455422411742353183513753314323143272548265723251312662162546233411652822562388123256821456331133343446518124263482230522411442251213485431241214121802441087223314731242516132268010246326413311131356125165865475323111212131512616214324472442312111664183811435454311612143165552364637336213124543315031238132654131728543241441175431416123454492317326140431422113605334208135634244320215453432461626382154715835418421621814131533211461111298151466442541721145444331542220332516444221051116428778344854243315553451144723426421221132122565815376026351156413876473533366243413243611254645411372561552123155878232413172314242454414321833341203556312126227156114123282967142422213161256112783142421222354313125262233125114218138212321124413341142115041742213812441442222514264531595832372354113261233234313457535341244216121830532272321425417143634441136135514131621162610461623516314228244432365621552411201531444255326661543361344044135174656631483266536581613761314561132344531435341451215215602616311181671341485266116125436325746274841161244332203723172817652917661264424312341412315445062254148321316511737133232472824256112443055621602732148134532153331133225335132131283223256116131254531105713463521526522847183241210551161413133171534311803683441533155222151467243424357362116242344452253732112362141512370136333511214212533444432434120316132356615771812743311332211545453205402416321523413622161453121223221413261438666733335142152231015317417112462668255122653115263126060208042241563422434641113066223511643566251405412417246168321454351513642473235215434114313211122446343238766271344642652522756263112725412224254426774141317121122452543744131633325264416467451222431222237141433324711223325456543122633563412315267733252114121174135031262254131128562574121141212322465505242454441172514521020314447426052011430113521101228213544376342423224103231423544763331120211333131338121234724733144356363331346110365514621333335510641651156337586144235541262483212174303415131121412211274111310645622573413452342112110713132311251234341514536174257324702544125645110304611111322515412321244584752264111311133224122213124144437417113330525112252453731542034325224011547213169440351542326764412675383767242116545142424934243512543145431314531124128312641552221112423411014672132243141042331336122446646236154351131254046122358824141112419103119241423265111222444142204144127133421142221241454332636255323222321448253422734143373652774462151102116224121120333245571211412116151522162414225365122343745611517111344614554173524212307253336531323535511525431111142052233542274263211284835555445143453412146101811561354231475623412165532402637265172223616142422314245725611122742327415164262233112541721434310613756235222125374641422464424244202414132732254633373154031723318667145127553151123711511241133508334513452162561152163364336637123243711712216003216327312262452915346137463516385422233043313111132274421144334415536401342460113221265130723553344171650343713341161753322232127218552733215153321432062311636136112223416210332532333311633121520276724256884222841125153123331578353361121255613632112264430651531122267245041563444323612911173336651221713721517621501173145234212217642111415226101424513123412848241216111512725105043162421434111426514823111120142352111544444311231556342341422225125333352103412068413541234521221310128123021112419217353621623431545551588121042471165411132533441114153116024321321165310223512104574513512833512261413331315733133217434151615448542581524342115013131323348233452112133314785364263212672713515116467420542325232022266177261412132172286225511431114566824621762481511144073111211311104242122567551845135311662751212354711627814112472544421107382324241111337312315046232352166622223651352135114586451232181213233813635322642347355415353514671531454521313611404455305238542835175313542444110845622387623312401316014314431321374327254511235153345613123722817124316261201152623223574571114126235658329283162213731583121717332131383451921384301323820634216330839144311333237115173420714182634412214511152224422472624726311015302121231323113325322524271141553542512355141233434153451633134215635171272423520161321436462342872223541127444015436241551916180423224221539131443413653315625233689327145247711051525224146171791262203315516233121906232451351826138374217504148816443322842214262167533604312523143422537210211130613263626564401233922122831813731125331347154215521142224451172234261382211242412235112160126471661424321946633151613126547336112564214816143141632322245254422714641123414314720645422343371644675371615142273335127123344522358668234335131563551223663324424436434214510660125251422164314554432365134114807354325221448544123021314472724242323224152546532533711172314403213334562343235326314423113133185115441342212324125332323667364432361432468122112212224111316614538633341174241115543222531066155252132422422115348403001174331152212111531452411720342705742111146355512541412253465534142513243212831647267464453615225132135546583364115243227364851143327713263662301231231706456142253452136435115662216813426336516651422262143263122213223134111136267425324453111013156257261645621124411135343664111627826221722423321165411215822331053812513303413151312264721552647454613141862012056324154315561153135235141303211223842154224223817242212252282272621161175153214514532026224175513251243214171416113236122342141134223524370353625404121445531761171322531841272336421612812215444212144301258415151422233525012231342513127111416327721285133224213366228531658385577228225424231412112814315432203463212333245040621223121313182502435612521437235151116552361131522516621035422611524424325365616473333211612736135328542332135361225145037371312610531245043355516423423235336741533467547064294232146242451755715521348125312225372147116135421132164464712441314431512151622721312522152324111355623126283641412341115044144062741236146331752112622346276210846131231382161346155631264111311352710311230418612227580497214464136231160301135123517383511431524431532131405213264113712751125514413462103772341147751232561163321341711644231435848461215432141613141124415151522345411227125224435621344224122436232212316337541234173247825502259150414130622113412033702414333236140155714432313112615286148733123742432333135615362368615213312201413620175332823411642911513257516102245717281124123144151211202532669115643145541331141611577135222112121232325241227222626515245432710244062145221243322621562182302111245253411416453414724612523133018161230135141377122614616522615415281403717212832332245422273114657458125141174451312161362033718118128145253373541574116542121455076441274422265162561672111362112210440315254422462511412132212251663517235336551632274776416167122012211211232462445453521414283127513151132155522186221410152311235125356264116741421163226734250067342542210215172114250615315214212434212150447733541312722224230131421326632223120327143131134225157126171241673144833545023132332332223223475525328556346162223653414254113132114727235131652263141615453814122265524451728345278151412124733252430335333813121337773603113034823246543233422813111554612146103275422312625316544243764784513504242134014642745331261222411611156851141232145426161124262312468037651611721232131356653171653336243342262125210242415634521423115665333177512241242413256121431423136333411444371163126313514415351411111322165413124405421221781441332424474146147333226216211116122235782356345211114160252562236415723122404112492443763332362263625284237325334731526654463742431232714324223265530347623512112541021451323417641243254112262115571464682114653421723254562151431123720167723420131435113561248425313333675413161226432052255281725537181344222341165255233631423563342342235433531286116141233723512436412334372143264641255254265143773352364651421165747433124152483201374132184345366542614301846434140177131453144467516346312222214243413112658724525452334125323236863778150253233241232713012216721560441473273121304462134152232121174141352213285622401104181742416312123323333026043444125531143732213311564331633142532012123145342469633636231711224248352737564231463215571282626162534644111143645253064110124447715211631425511456203611442415121215635417635122114831123312853326515712612524377168342214345441325411472121722223233412311127111553522735437244136633044461132423232443141583336311435143117433226511184621341243011223116135444511713253353343332331483315286611482677751143153652126153631115145112240144144435152221483257111252722531047122222035247163253517391417212423117243225562146541422141235655120276344116341131364052546240411531231711271712538351117641331303651025621141572085342352147571511242121856622412433353852203133214572213167025161124551631134413711372418442225142124416605557442250137218353283214422154422151336571312252121651142881011246114411187412453375542113387225312035515333122345572611402366511133413031226448162271594215531221325113376134447884123426216327113233361622831455114332653138425314882128234145327712417153512124326357035220251431472014134474311411313057113731331616264832813131423151323612121544783311320662458114113364333431454215312115546844200566243222144614022627141472186184721231311421013312334513331223131411422111457187114712431526216286111134162116213705227121276111317424241174415111452223357112171534174117355237225412230734521220206162711243552313656239252314232732347223313366723122623611324111341111122342173131511325320124814476582434334723152315136125543457236134280313404588262702231620116221587565121521155876184410343625347554162213155611115126414127321756323616005128361416135136254212121544446102352055426762357232304103175109227823116018061321431444733215654165321522653231266521303152215356567650421535342626153543416257341706641217240421711514227521267474762642453245132116562442017666634612241411253508323353724131238346761523213248356111335351414311334040422412315351312161331262114213433322505423135337321112571622875111205241147432433110316354351163310931654353141312548142155511632293443513614108437541044574640355545233425125162626211655611311334344228461611352162013513121327344417625421141223233111642383143111751633273464231447212720753216123462121621117142575132230982123432313246353200225121242261522465023232423471644421424614425522362278221234451213172561133405223605111414641325184242561522213812317314740726532234137321161221108383110314443217102650231241114413111418130356114724442022220810353454447122222472135342313124112131503281134731153533175444222352552331201121121686052202112346612662212173351313132756224571211301411245714630525513143231212671141444216434347121222035616413532226172530216512032255683514117128561448835412151740041443013561251853115151561163135134422771632617517356441683392436151516111384563166514444605241853173527862114162713611423222137575214541043222812533405445133544334436131335454231115707163322414621651656123280812550251181303288233141741415111525268661221451684133233101540321427162145552333260427133226811828257535716624826311483612322325621187215233233242121117764461232324244188327761113842637633250422140404601234817162517214165430121624123345373244115317415332315333195441217621324224213141141451414171144221451412126162343514255421482211615124388824422232461786113126363612137635463273211610122310054124443352171153073121312411827372215816325411161724141324584486521100343782377207141123445315723223734592113316214227414416432352576212341611262443125132532242316621631467631141211762132322012484015536335302365533521741163744158825822757121736211224384248223761526124244112343323394447236270454523222653132663125212446327315626311514117513215570134121263227442214372342553364121142121611411217522441534552151232222157153266411632311415236234212344388621239315431124124114285562145334051457134413531653134412785417311872212252424151161452111235125681541113415124321241681474253351143164530332212474465523643325033254616133114246382351315441145474421217413236541771324172384251444132222688832223133624134542352352541621141220244223644212143221562412840132447128152117553211321031131271537260535861626733815645354452446224212623584411221351125466352034626671221232631231202423215307344711142546464341181151528653712551194111342126614532622582213247182511515873646222204073245523135210322450246666626433421427616311442365324142316171223523225338113364486471177255431363516166734255033646026433312289528635516612213764644516766122784231412244154261335663521111326417150461443733342137112553815531711573042466141616444413821748441235465612436323021825344624336455222012834215612401172182586652122223317132854525113673512362661221521458473161336022346615134350515435336441231366311142162118343226163223161467283321122534651142316642317811134321333023242725641861241451416124504588314747226464125131124115173451636325264061313142423432313543116228181244133432305801323113632117224554112127314351168265212153537111423213714374321233322526645221231826831344247261331211512127213741161221151231152235353391645145441314385121134637122425721572272241241134126331156376284615356354410147626936266041443311465324443115735442614337702166716612164215483374135222631113120831841155151344261356327346538244042433610131337724647446424543175463333331172335575352413435168323536435122104341041184645331262285653452141121821416132362178651166542378631376316322517643418243715313567133257612165546134053414168241511341671525111221424542529222238561213016264312015258321835422324351510112116212201514213113662124845321244431354833228706211734133621147322636420214315471363221625314614354215274623661441105285274124543135265415044512613373633246115557753641182585321233127234421202313312273136244113374242836422243544333113314257751231112114155373111235562331515312184041754115571623221647113241416124814025236464245566132155154141132232136327412304537730765111326263532335516232605257134164243576432220152252012221511414141243881463314032250112447024148464232343314161521102146012411311311316431432534544132137365422375221162314323633851334623544432450222014022155581565752121125715325134114443323455626644173112266351235516522363130464366312124127046116322111575312114127432133316576353121201362043221513174241136525313266363414241513475344211512145764573211163632665471541325521525385034134221454913262261144112261321212513421311722211324262341157713221223424121604524635534422714214231825348315252328545313232244322236131242511161431831283161232911345834513144742175213874613312721141218172364103771216254574322142532165232263761361224442262712483824104554084272144264144242826322121381225538384153332215513013735333221261552754337832512348231117611321225242018311441125366167221167342232231291525103344236468148610125472807275154431442463421310284651412546521211715741312328410455514142631462620666111351433561143235161335155150314161268135022137723114413815545364642444250231032523356013482334433214431252187541421442530224022138105627331334143116234327160151113651222723425415465326341345636421675523172424574576531664144934473545341031737765243382115482260310437385565361424026215263527331218537223313643432571283312175350325926135253443150322173444551511362121301543328353225163231281612156310134248104715662228214126431138426463331324437045155432435861661113512582844450131431764543721331321215615447123311327273172315374554623143185144212651154504662664412444210362431421140533141271316134135212631313316664328333117626414161261621343147135132441037622053271340413123041245637323478222255104758127751401151843281755134223212188477453263121536231215211131231731322541217126422281412122512341115125316785132423413213124230133452135310112274125233211731052611425252611444543514343641631644546817556743551845515185236528373032113514142313112424358211136548432843227155543656162527041332133151658402451437124445541261612317127337513111112642822131151112506228511314412523114661603752323530243872342401337131423765358767213153263165313222133824244375212183371624222534621245535132225121327731422311614141333513421577514154566031267264144664431624283434223565161731331616421131414551325621511613221116742852646145415122436523441151371537423447153424182434444211541354122336547647413432511416752212143355011212622588616338357541511095541253462442142134412142124213423167171432433415412374236361702584413352531336262372117121472334244355142224251155312222225312515276743741111224151666632132334457142221122116122663613322624611443344254241161344408620613332884624366624651245615314525811324336115042367541614433552660252521102530122211644154161442431423331413389256771137515774124375433124174253124533451434636746215822122243224022311123261244327171335156133513163231316033345364233253475227036313122724561451142411466623763523512342676604611523624246233543427755011562311185211212113466630125421431118017142071341132423123474224341834128125466851244515513227041836368211425588728134341132661151323235428432452211353743341111145323417315213122121871215431313246434623183631111032225842333136121338723538515151224213421642686151131235122326143426271574372202161531743435275256211412133416211656113111341403101716164556044464015633125015677471401551242404424211415344041165512422816403134513015331454305225435672336521024135655432541112240225342153237632511722132454323321334221211411412164027436383103595512213145111438312133143118112441776313271626332346028212232342118518804751214364612146265462382737419163144621232446430234176842453504341244618321112154557183582217214311321521467272186142855443152358220341764228640544353244256313821322522121923175514434548362172338543221268111586216341413521301231373511102413817631335232370310411233112283151351272368412324588152353412215320416126228106264318231355072178311163451824335271243133122276434315207613122342122124775125756134554764321282212501671646441512363233533224623754721722244225524551366211558165751335524632227211238521112763133165233283722143651332261754514146434225187332229427412231342463423451341221143320015361162521542441130461441132233561421332435622846151667210123220217625462268431123280031112613186303325163535024161612112232535143222332435311784752633322570525553033123463162131241252031112663331423465136551532645672212221823114233471232792711215431741225326334114211858304212333525244122335221311625626644441260443121523133541441610848211421212711294141161144746343333544711187032524253410132121307113625232141216311283234584161421413625326154212131421523141271123212132377324524134454111460735765541123333921115230348231502275723411161105418212456235210141354712641182113620615233374616414222211361202234322180231511156713626511452211386144772166164531252284423232354111456922625262261353741154322572151174343441515241171521021347711722111121301106658311326616121511347111313314121321581423233615141340255321524261125221423710382245132251526115111113104231021121205733438246517342545713342181122153423468242645013515023324444444177143624540074543731383112341224185204216215051215336641202264185416340323684455534413254073322616525751175576162134451015655521127411221435255663143522543232328511368516177613418684548422322511514455151113236651165511318281128552532146414454712134445145974114125432124332316033621531413011143250531318676447313251231114211364274421233413321441662452661431320784465346271114611511310272482263657533724415442542155511325311213221433453061671607263752121334223632236443434311228210511132756611333207233268271116224412415142323321118442215445143320254345354311656117241323451117232352323212427324722678311422122560621234752711222411333312672131442347633110216231022413757212331176745531171334403244315645371265216334113312515136112112134672246322165124671231035155215333174131623356417145766616443615245414323201532227516276222110230456343611840116616246254371521545423238112515723525362353462415174223443232432713512213281722511627311742243461574421221343438324021713114403111114274365125252251246511675036334584251612175524317113712237582252361431122115241211541373314111132274011987750441514114851251515351316123612141267135313411023654540255111563443151124150254350216111631623631415233262226230565412625223325113434216261213273516124422136121155453423175224425223121132523333260146535456352407311204513245426616581286164336674137212653742153651528369156716536343342352141235445266242853482272321125537141524201147221633351564117211221325163345202523136213314655102654236413667301374633511814327555263112511113224122763101162233537273283254132121481766223013323724177374225266123536422548321623853311302702531018354524245364232032301211544342211225551173451211788193240147024755036151611512822122237111327118241041223242441621132622121684621400263161113321616436342431462234511335131611314225124311375262136321091478161441144252646271517635303184351411138226281562513059534166114402211337115634241111181363321423582341342121225057444412394216236371221436214133510182332124842182213354224421144130313531122641165223213035560427246454230121032041158664418251111166124423142433241511112411311451451435626432756243113164251457242212232524154322151153116165203415444512156271154512324233173112245711167131445531223473562511334263894163246232122365132321413233423015124714763187143623447554271240343214015206254462312451312422312513643316633373111642311643731775457251211443743533312865512416934541443121125432120151436160545312123433126461241221142342162382436662171348251214331315213154121615664806216151253154112524410143511301411221602124311435811515042617761334512581335234276026651421622314947121354133138123533263622332224224145431514744753444712120318101860234133654051440375335703443435351354266621114453118661414241122343533632462131351762121315112301458111731583242124337113312823221153156754553140441233231134124361163512221158343514393422721612533615133415315230233436332465454241635201045204614661502453226423524557853151446121152343214662232540431166313515126216625735404523313521124131533321264517332421623161313114257256543145166282361732543832565246781215733228121113574367215651412853221311404617322431174221142264311775133521442247411130237354026115371124452211448214226151262323847261231762141423236545641213471345301671822243562414235163253244733253453542437511050125137213131152285828615644023123033144316326426515361235643731212231342151147422114510127333521620145741436726611524222725156511521318233271544314712331742331564422314437422521232121613126830454121412511135153151235202044411162737441013782513178261125333164873911434843236255281426422632215531768241228652315585275572511533255141212353638717245165323376138241354516485114236111126471232033225712142150546408956235734737512160501510311433452211343014122135313552122771151112312454263624855117117737555344521511755460121346455263741162424332156461411145328327133153124642441237651251260565335322346151636113465683152713152341653064223437345564163442134512412133144222433743114251415753642442333513115856552111253317562932461161118755224561212213254111174213566062313521168115147372724004181025151861455223118163513265431322123312413333446425215105532262331523632642375130332461548311114135323312507433131351323357263562542126112156131403637471245615271367431114611642411024051331624330243112833272444632376115511331142544211115743463136128532260111327436324444640545212123194262112534832262136651478411335452046117466252273323138452543634617211545352341467752314702143410323186177684213252347325430212123325430226353358372551123263511243734336372261417120516144231324110172431314283225147244526523251602121311414222473523417544820583225552303413517824134514315151016145364615232521112282223512121341431253685711726462222723232172134378724411136537323531222014554844116323442253114621660142843341541462301022121252171442418540662580364231322381313264325455313411734526253260541826523761622354525617164065373143404742244153132322144467361112625348361321534832742054224270573365113353201472231761143551661726138122153322521141624261872233136083473042315514126459013417331354414725117363334213185456137112315635623361131623221412554614153222533644317553232172317363121144127631117312183845223112124452232521328234551308422710422433204315505214058122403135413473221154234238217661738753134632213114723341846417422214635363541446651171464613234742111536347244140592863243275351101323322613350263411631431312554622266553323227784562144171251104232216334233351131044337140744141242125111401283151130266124325352543468222434066254448142322282211211877115254335422505425214502115624523322345363283421372225613431514286833052462225273323415431621552132361355512144235401023125115832223157726210476247321254047235311572412426541102634125121215363531142276411254136326413432337263323216557402435415115632032335654934121224533475166653231454124421622115250612147523143111315432338535402170619100424351226154243413264135552745623252524311131113522334214371177227612174533621473441642732555134421250333276517664541366270273841432424161222152181169712335346335647433276327422422524471266253131664122314547455123302841341786335430443832422221111164631121224312141782531524354331231235814647712315772123115343294436234612314427363612315434031743233223111471415341222214651831123156163511120511121783146762317212512031525111573239255342112072412426363431325174422156531434624413275255173181717721313732454523182422485114341114522017314215170604301568111512352343132413201657446244247341576711721672565200423222443461441833641511663516326146654132516465541111466425254267146321221222221424221375136211341871632323311811622143883535321222244266532532676624112063723317683734291431221654761521160313344513253462713455154644512151173510121347323321113255142227440231371766714221611532643155714114525511234651244503114225242133261252231552213323628451387344531553644125734381616833171223225136153442472242302266354568746642143724563428447377422181245212141213734213562817422442311134131341522157661111401103367122403151813324152211514115402534164010361443111543483711231152474272164341451251633464488593232724221316232444123420823523825473481111235410845213411541313531231141711345331743222252342431222518244465215631382127743823421454423221722435462241421111431347254425520453241466417284346125421204315116020141362851711116415125842611704452132221111033432165342823265571564521321112571283366215244628421711216536435270241213423671151734123213416463712354127510644103411575168616444083214202517468365561332121121222161411504131432543425153505142421811252743302132211113327213605323821152462121123325673332282272198121223625232446353521720515411261356132448252412531215442642323214328214272613556424254547723152876216333142461154017150152431182131323333474552355670725116331661164903481351815501325553631125244326710256143141211244693552213105413133244164736522812131187256514132135544123350534442523716702148311364652135522214332243268258422514164416636622822542232215252344115324316151221227234220146221374198203626132331834320541303254524371311571421115521403304354071421533323124235192210211254122425686458331226551235265232385176342456294353431265331122447424724144027523542152573131374565431222214701222226562274211225112621634751322471531204671515135218553133119135217124146487518163444432441633331216164161153821521456829447123011144812850255466252514143031412225316117121537626134375316427621630114234112427060121611403452131212571413658611364315623144166224382315212215311362712505216672161372272443536174272322731214184335477341331715135334234311220211184227354824291161513631127352511211839142552521183267368221254434560642767216374256161422633338673118212424445236844731243516614313836532823313116135013261114143155242354422371573743021116215552626740231212245374512151781722753817635232243115465255244122432461326631534555144652642362630254111517814172514876262716154411531713425911325612233454121550742229162284243282413265132121164460252322100366601325345212318335327342541424224321111120572542772127767354331274214613111121744448662784402124645161814441453711452734523123515122232463253253381632014222027242317444124417145813515114123144362125341046713544614445182752231322471033176381221273442216223131273417541342422111425526413261136141111134222122211318371533612128502566447525633712122287150551624222243725324541235111223234455361443666134343535102459740863345015142334745321366247135483115211515315234532456232422365416243517467431483175132321330212723111511282144518363217213542422151243417552225672238545754113131646525101423328236317633456135347254168252332612273654111125245311116342707411534210166352551410481367534544172214048731431222531343453636216117842516513632336705301123333673221162345361521562561241466380114571351410223565452540827454378641276725135245207424564142211641822253261353245112364550216211122141306321422243674145573582631233141841118213756712238213171440225476044175352564112418163232253034368452521116117111421161511473516221443135227843842532397312622755216516271231732543202112461213882474843325314422421225222354431266261162256372431853103551033161156157341418373214241641840272173141562112361142221557163212415132451242325343712755516517752133216417114332110232536442424273214201523341532602357411356413101431514112212173520511331532421224371546113131655263132131454412122381145121554213414241201221712301124415311375111376875415324354624112246061536234206361245523246373442223246675223325211543714241623628705111416211350211126831176142459241122534101377321523133511624463731725158304323422544390526240641131151526458174342133203817241152211541023384212232611533431371212214223141123511553828421711523521311231367121322333511217135111173258512767253570623555028522121312423841611413745313146431352546612131111311125155418756261532315011342613361500352334124753302252228844162151212513237657114381867227214328334305355312511244245915321132425335338764255242136433731635233185243324221120165151311431655774448322861244141523571341313347834827561414171462831844126312302638623422502634241432312374616326275322261513225532114440240044713440244225313614366343431227114105712811153422543715558321516110173240316117834114116613433111523213754247223229368314323116321136431473641726121175833711611215254412214671157461541441352131254238410044543230134335403113548111605613642566543146310611451513665022224447916157343151642434145137114016112459215311311113527645210224261024251456413544152110215176153511541113218567112343451554875362250311124320152431426311436243575033321753532421313163211104745333561114241615021374262151162421225212431222114461217311643341146232212274762712502165347345621217121132427117212816245152440234664251243523577631050266130453134463445346335611218716433532477222123225781266432733123214464332617263511124178532052412864612141578524114424864402213122441615124117152522622212151344141860737167116422134671126115768151531162733322376433223271435525363313968544502113706534446214151574712134321138526303341243833182741152468136215273531312044342442134531021515113534123513712138113153734153172233762221628207181336348364531416211517411521463314327213321413364561312155602441642713831137843773327212363142428513256532212561111278555311154221843355121332231302443547173365156511431543224410656324335165342444637811323621172112121313134557234267014643113654267334383438345234241267444532425264560414401116074146031313121141224141111211171363253323164353174113773142232224532044043025231312765658236511615774152638298143711111114511553427436333146181261523712424244431582412416255252335313318361322352221703153278114114113161123044212444232554451125517241447531111695554611740514126112261116727842511212150444612212222354212453153330823225322661136514628624568322574341511534350062570122374312315251167441133615531135732369323835016224212483531302124261036001664571110123774251220035324245431523154751222163224637143245423161623434114363331913647112332612411764584134313145313122832110245486544214375347432221323234436122661141204756211123134527416176105426058543425311834447337234202301532036233251212352314951203112610715320341452741646165211214401567046211234141417248464455716413041221150432672253222631245222525010312311062134216721455113121523202354251271475276140115823524163564141132414202411242024700751132043312734426131331342112142484523250417600243730131322225163515481666361433215286251383121348167220831540243244321129261253371152451357211141171414447736352215424151330131243263111431311654125324253625331242223462255321216466072422132857321346432724531013243266221232417432676617216232844311214131611411442241563331317623145425535044144816741426524453636032113871374522227556466524623672263216122235323441132215635142412312521635144231021162154154011088161546141334074327114134742553152218125112423541612337013225823711121353233626352471644545484128221546454331442230334481462174023317820221154144564131333246141632877277811313542142411414415224313244436171450123041244624713443746523031521211547423611137411211231631411416285522361451205234635213617253123238561101036412433532111214341123814362411574221524461411145751531225432665525434114211173432362225231401365530661121345645122427753302354946514125446613242421244323952314125513241374245206214132461779354351173215556114123303136351558112121321664221341151114253181112432487342510325035664353661821211312114336345223321102237351531402034224115533462225336521151821155213202112731081248321311334821122333351814272825772215743554446313629503111441142174466513712280133423323472542767370315758215773343531132121531143222251221414143145223831322627128312375811459232110115427746512324031350413034543331114115326310055531215553261636365032215621171782315322563314571367621516124453446711742117142136161202322531522684133124325140076782571121716616341177452402312212122421324337642417232111322323112284161024223028422773142224126323226312111526713014231435223146722143144111246442066243540134583144252234510460116631231351165366330423731011612332713562565580312713631230226224142451514113146323063216143246064222475311337722206131974321562546071151622713262133342243143743720255124423124215418714121136522141512666531115332115683456116437174256221383671155527563543562132434135614813513124291533320323345471722114613276442852587284211630222461352212412714352241125105434136366612512225341615302201330554503438551743114237044644156445243831418723231353433421026125227414736625622131121333111434221380563133214465425132011754725131581164212243167741164732136115223414221413722377444425152321414341426631332137215256237537153111113231551452551172341131134716224342215526122152333112285472122111555206224241364354142311833141422644112513270453143131143637737320332217434056531321202212522363216242113510126145143251511325152138648312417574131647176172325435521155247251319045502388256424581544132131335522713734372331622346102330474423226233416215121411013614143126423676046125165363224348123275242135614422432565052125512224443533422222111255101335557332732114252102711383164525151213421213634215113371127277623337714944147564375416462589183344435153802302112513131476216713247414231153548211542234513222254331122435465262837473221175147542444537135145175414845621246266222252211662226222511123461208311441373111111433531630153413823463054112762331421111364743111221551031373413754383345228756218452424461306351464341263326256422632443161111314262343252451353734224324714115225137280510625632224721115224711722231863431412221866456311364811617313621518528725326131652313031526434521311411261513115050532175587255711231776241662112167534415744211144281231238310322211131249913745122632465531151133542131623361147126121112132251113225101111712253236464332234112122722123252782682131123122512222121331233624066323521054073017112115641352141141222514531361421153810512232545483622611360354323551461332527123462448441222123435534308134510631316631125265441323426565323116961554921362316213120156631133812212734313333211212415174561114424314251113231214301381523544263122252522162445771352324532102443345118143441325141172122433223565015266246367726412512255241161234538263811432865210143664527445334633813173523516427123237615427132411225414122121116222615676752134126215110644262062314462427115212513453257366241345141424624241210456133527253272223233310722216854311214114412111178222610362144117215445152602517221441555236542235735214274115720151621632126541343527247117511127313511645332411741270123107465315615171523342432422657526421422441023253811556833623114286067121441346348355224250712151631336356627480133521526251762244232743325635512342142353421346751660131130222263145831124321311733113413026323512224312016011642651126114186333553202216663514528304418217442357312254141132153539158245162304321283031211212341111221725611318355331024338373115422231540217141325343211417536534332631658211466833531331425468521714108642262275519613141551006703432153242131265227320825715513812255232124263964563141242263843263143223655111471254144713217212175215788622415364027414261228566148621411115225145227633151234431315315734312721522252134128025231121383728062231851412121686343342523114144323621531034614512152325711364714465457761234315611736224718572422147252667412720136164036323563324223816621552841748151755212463432324231022436273721245452442451171541361354245261255413311124211552213346136154311173443292223360035483213122522231852122302525264321351565243328223644112527253514644345404351551211753354713331114122425251241313218446534502832231011252215831634134315354333175455753548341255261222244023412183341571514014146223111146561325221114216666614312366011721222331432226524317276135215243252718111484574522213344212671365132211235531735824153041211723254122242219151307223382112262131464832835471113634161157224553126146226513121421667123641441235653740223333531311162255753412364203524346531614163116331355535512371326701423573725524383153212762261145623411555712671513144215314111616270123643152122123134521621123534181643524521112563316123116511113153264145141842142126155573617734322122115201152415611116222724235432115111483541252345253714371243444302623624241314253161334212827210317217681513412132365520342421241615270522414367221631116015534361712323414111657320661512263412432231025724253133127121126271461524634062486127322216216340222105143253261140672481573242431272112212236416452112248613262051325341817331753237240261132512343615524221411402104364018711156566443512122243453002511526163562475106216130265320113314541531340743340341447825574234136312323132318232442235355648233022327521135231044633111134442311121136451121518332157224123262222555120767565214221321713513235124244712161363455212363231251213615123442216164411041255618467261255424844414266111416487352234721203462451465313642151324410116381452453121345626714631334331441154433511342842647524333421543322443631334232111263614608231247566226151648313712463446144148523151716620111721612857241424121123754311121226514233221224211446722135646572380514170434631121334215121164545236803643311531131406614345853326282134062622118814333076212161322251416221656636411467443411147265214532125561311133543251583144503214732441171045543241551636153704625121167626157426143135621335514017566452322566353541247131231322120451621524222524112012131713252331611412522244421310915855535562511113534452111514565422111658112436563146425437223122121722143262132853531771431322336225415316390224856125144223753263251123164172050625135376142626268115241137551152136218526131230365171118741335313115233233172215533124642115221648462334182222216100326271440212336321557234117913812301023541341412311124442517224124267512232221273816310315526237134101443343857222242648112351325121451115541012332475867431324463667492323183743211322167201751460125554144830442600461134520112131321316162561115071260212614213162346641631144353212131518332401624145346810112334441615352583421231101132617131114155616122141624653210212375361410443317473364255465513214163244416344355381054217355253304632304414257212551586364867115318112661323151413214111108442130625431312223622325262210573121142212213411652025542222311123272117113332435584715532713117254333572773271131241142422612636736436118280076234245524156444217253712218641126351011111385421126111131116328131224122631132614143031132342555816060155231433181114362431544411224333147311245202301171012767162174426236414511140101335117247020441701363435116841324232153542133663176621717415145711241346212162253331533316312026245153164616471143021612252534423624323143441131645124725644357565256532165222567514162124535236421615232391634575445534511815605024142114521113311304162525222363641214215112342352243416253724315016353055536728212134153241471300111035262514251003235113516622441538272113452531233062121174253226122352243173335450516253110672532111321452355264721575221256172226116524475015333158723536411201413162126651514464011175176322014124644113113152246746526613451478143253314562574267101227521324110231768195451704731135430363263223137822135845324147573201522424230631343412503317463223633617014546136331316122718126835220153632526212416623123584766146460341351432616142115235347513446353245121151632251226377616721231151122537436258347441542141211346362215564545566333337151032745523632432875171372242436417242653854514222525285373222101282275247011617202750231245461225891362258285477256525271226733740228532380017303663412212635242374373241421862514262243260562321751626421454815411213821727424645623735352356676351062617112226142363864772567225422626165414825462211414355386221526548655741711234322216622323346524652121242266441621713502545324212231425825424321417113343344103132301215352213471333383172443121246474416443621521305632461231315333145365351653444614131332251213411263315112311184637772732415612822031326224721722131471514443422262343401235421322313453173136335400346435264855233421211312825123852281765567406216862234128721476312162413237364326355034264235451531223141161511465243554153751251621412520142282423116232346491418126512171214145134265724271546358414630231554121755201012314163733271318522645436112324225276362134712204554514157714131723461313325461141341514324122322481625244331412364215351251755041737123453524382161211366552564213243014252552514236181651101054131625438341304121655362435541725364751651651417616246171533234522325464932441123355642521501171172347326356824231236156331114673222141755314435442752522322313331655214815533124172351027132341606421114574711712414421512151124325303022161634434721716214413931126353344552136526741655364122524122776121212813414136213324430562213224153457156626884262463481452011612421253213741717162228321111312307124116423281411611472174415461425384212631441385315277165112317631738322234783213232536442131445664538244556112111146013453273441212536328213513214253542224438235203244162421125221717547616142541334214171211528121343253364513352301812284141553651124353233378222331212713533837715315764542204511573685562225424131516335321144161256351227772632555225582641312431121127245108121436242261422415281532453378531562367351235311511334321163332415357372662341321667582355023181134375173412376764218352525370243143311626332628143411221531211424313282023242613423841712231520018412655873971241413211526845524381835561118367165166111605514551653812701182351712661231336245634635310426355432112413221363232752262214841116384211402254125062223126227262511623056313313156342231112324432211052554374135611222245464318114110472612121122713153341341857112178344113191412683323663841264141534613513217178121546177713121220134321420163323331312112264425782515213424232416116141453274645215733257562114112158334111413253282511341143222515038383454171616374747714262215415124530641361152012303214535325215283249723715213367137232229237342624431554782278252210541154341333418222216389155631532522147527386326235331221326065116343361544166136322443474224234352463235140132776553634316522231345462436424215213541243356131425413321342531522511512632112134106226122241436134041226455122342172213785548736293803543345653252112413623737211142117713511271655373444182163335623421330535166621345324343725477132184432112532343312732363265125427134131247110512525177831284331121161333534436333144868212234346344634514327445552326121622317538601253531547232222227455141488830115732203456540311811252521645667121712435327436222752206412780115212425214153216657314434324224052623447513242518243483110222361753712211423285328216326131162353263023361221111723171212215732182276234331215864513263154052151451484151467011123271443833281311513241132511176111341738323113241052632342238643315342554241412331057121724245266132103542127413356130024512233246751671741111536256321231161352711111827736512341226132216520543722315332623034763674231326041412440441110434324315531217133141151266222353631742726415650436203811221851152351741131427424142121222622345637081524456257331214401424413361473224672173222434641115711340113341162115343512133813521132637157356515466151473615217278211322711322146321252463116312433317373121851251345616156134811331107236234393655537531522161815251155235114562427723445256234684211143335445832221217011315561331223143412264345166703022113562122658567585626576342114233112512433245113065145373212233483216536366545117242251426573215425237223121131651484221127211514147344744612324322157355122471443523472344346552132323834203612677331301111583341565226231113623225523111233144316613231775415323531112612532662551317542271033325425152173536131613121211464641764705592134133752132663127712541135541472443221118525752634513715254157513231653731133081681731011233681771155213345270651214101135346156221474254012132411163321727343943681144771146317025161471282551167333004643062416361332512412113633142416302445445264522412134132146263351552683312545211371186482555114120451412421271714112943522354435135483425141719414313002687413211232451255447316135313724533134461811112238162552362322712407131634164827314331144252135275442141606222647422042125834144356516211131253276535513221313371241343287542836302661330420751314034421442313676641621416241566113533223350380124324322021107643044154144644831365173692342733012533652227245542113472041315217426142042183321671853631372772524642162235436336217311412722122123211134592136161387252622526714373215727301711545555243332180252432334513432230532363381222153117533311111122441803148571468167264616224443737174113241337033221572315312352125873251173112231483261514511534353253341947763113221300273872134412358523434533106616442223813373215336115143313421123424121333237111507123246123226221565523516333453614142138322711333757232412343644502343566672114063364222311152172368172328331703622335266365037251511153132214215463120526112142655035517711644135162652378384373316714311117212333441554415248231334123424331331713323062125326325323223783461204225445125133417224151646516147531424556543247421331126554247113315131427213425315171045634123232144511264362134225425865223524032311132213722137164653224111621122141314262073125414446448611112722324611830133572234263625231474122223513115423137701716501235132541751184552235321433301847321456711327525331284511241511805565445213311338317177242443112245282104258715431345435312312122743252314133315356315745875221145343121751524521130111212177415441152430551172502614766171246323661301244744882582585274571244744121211315363222473645368510122205141465381262362171071826381015032636115446774323255336352820225203161346221125135631673443112143337241224415113264030354023162347121441372272636357061322031152131513853524317136412321573624132741116823321466335214565232132853562818432223711187125546222341344211222951245243114274120425513412317111230272438316546411444501416331023021528443141972221231110241638551244634513151342261114213442721635125413135111133365211155454641522176115455111316023684121113211312325312311115663611834371525211340433312365612322221236813281325131651276441525722471318242281251447122422771081147156612215112212105457732442276737146424555361140272176334611822352442301415422132321812353362192753212370342225437142230317631162117252628112612422233133253211513343615332126205651711474121241447434613021525628216422015863521253246602142513342512231253352221533225342142770421481255334224365744422632337368381380366312022381146823105322783254071028523836611976124122434527023231622183321771143315644475134342842838248315221121471717331243242212386723511314042626433641682004421611116532268712421754214611112466973562526325341711228256666853740213152530152513407208171034667420242521574444251215531437152161247706362354143560121321382314733115761121153225121335233225272146182128121224066613261735175313200353751382426228311301242945227321346642153623165153041541644452218344212152234475433152131151111663673137725811321432252504172343236833131236520241538211624612473541155417271354306332133444353013356422216233206233322111232914322171237156144451151655246533614121123427641312142235413766213421161343216151633543721132247112463025126772222522450331251621414352241600953637511156411223234451014344231422513532372453623151105223133523415811061412165861121257535314563332353524420336111213134261212148262442132363714023414216234277682212221842215221451522545542614536036172714554422022641852146215131513261741239161214221234124411460216433324182654528267103203261624412526112027536669271711545165141541764175412524116063461816310465211016031421515831016528152716312524612451312281511133123525472715446646372631324618515715716582361723322753351356217625173653874372245456211373768674252554187421423223231823256863627241462213344435278336545147211187323304445043111143321515641437315132860266316442731526156155643231232122635353742414142252137884161034161012133150430114545324520615473225604631064427682180456243654124710162437114557318663123243115328412322513223234114574373053251131188322331241621215537233511163552170537331734338524875127311221321132516137431651514661551130112354427226814136621172356331412525353111684742471421525725863161533226131055157191222284215353566364424166363511342406342240313542434412712263474211134320225032246326054528221116282831355334251250212112723310223175334123313213251723513551221411441460113152856623425274341513613115431152364530113511113033155661228362422325217131112464110563833242352325575521631312122143104227855522723342112124143551562135142312612512222222712115616742266562515415025472225325311423252134316135732113035133141144241439334121235141353645165211353528411334135621443132615115582255830424754248751312712821515651215334317521343721215362161113546335245622472441423722346312312243542313417323513124511163755102353516275576313723134414155441144322153213343333173733813436341363471111211201251224433275651231461216652352371671635431127251161282232718133314142471351333111234363241311416325332157557750142524522531143262363261761206253134121622112612114251712311324112440311568124321172326612022312540273134343626351663331415234574213157107133247411232141082841113634624422332124510432544651111225244326421245156502146117510324615564151811627233552362551131173232263531146246344871336513130144482621112202553042312073223665415145764251445421446115735242164334642231627321052227154332343613162411063060152565215410552404252715145605514534737111133618471601257354114142733126111314542533755153382222763324753332232222455134127212340245231663121333623135616711364353583411113533443217821162361123251423135737122015352473211611262141217241341232453561254253533301276143511316112017351232258515120307426211348113311136271247614524254511134151211103111226220356935144321324144445311820155335361421713167582211155322241365113512126325247162626321550417382143572123331621346431503221154052633253401446743335243324430441356724124413516441557353415126337161342121123613343443112262421115317312345822373326232312156116423144125021483311141246514321272324113241177833214542521401228161321257524145511424522452462222254315335132424252021734861062413125334236221161377732351472247452240433121545252114133302452311642353013222431462711120111311752244412162653621614513664352381264144143113365305284162341222524314225324612422811451311913341412551613112213221223715426462315622223347633115516316312117335653412326535756210121437237142102214454346266171063662112225316352636136360212311228111421205326161145116132061032172584546534443232132122111323526108744342172131863438441243232751243581227451604152301136565154632061112521114151692252731656222534132114810578475171334812021323258421541031033351371112314673351781211361183212824322234527121255422543250126114402584131414451347225414133622125171622411513364434431110242462622313711164227836865144127373536211375234441516124371342122366554541340345014142464521251645144156175130065112245536572221330735413730232121654761375252327181225321422103435522123354476233123227364422335853214212732045212173514273734135547333344342133785055251141315332114133114267624114317641353111333781232011252517712153423133511183616731225221114531131231312135561745112343222621645312115216357335241133115637213352655607313353143155551422126113022540353842725355468413326025213116413635462017353253221732481131551348274412302655831223161763201441731237133152672011735022422612841516314376615244101636433453242115742216116216523572321743454161652436411624227035165175232331152662282824725111337312341456161257222352382577312472113354271252441311140242612152721331551347111131324212623452763633472624251484233212242262422541435342117530214411325412171463217628442621614122325610742422336442151387513572122132618331212883023134542484462381156241510331554142112341765325323476324331411324113312537220544288631422715630153222331553851145616360268603172724211315065731261112351412073622659163521211411324466323427166413576702512324131214363812652456241544373188266346317051311353342283346653347111535365114121353263434722734434522662127142313344622436724531325331477112154523141420357304621253541158450454395241231211443544331141426337344745235632463132241734713613147314751813355026644244141331421432721526212605051524546542581313274124132166350823171413224453442510533104452437636323533201418243621658343054663225037314654511330313566841518128611362313104130232225411223226376496329111241031114313223126212175144244213453444352213480135451618444115713331111643523435273417213326226261121241442272224216304531833366151155116522321344262138351672235233642226104347474232216423416211184362313731327525214525512642371141311412154124211374027717351051212161664342441304653110756525043222223235222464211326213312132232178331431454148441313514631036334611382282131123411424123146476213765222511721401317213836114411423133136632441552375222205401369155361123721021711412215521141555703253542427664512681361304281233543413522431527115111253332654170650642323021271233281334714756122522315644823322112011346280863216441443705112331311122571231142153212353455225336328114311242113745645113423228762225386341132521213137221413318152112265332115731326621274112324681323654514345147141215234758341242155242524711124251562160124121122352223242401242282263601135311834569214131275184136313133332561313343364185835422282012163112325132272531641275243412252421132422134115531167233715366252317114171427234132242517133315225814356317251135232452235121413184341231253123643623156741261572331415132311035325312132411471122575554282236733263747174431011137123150522311480215053274222112413337265331272523141222513122532223223444331221188122281321502073432374113262363584486363523182514232438411542656156427300421526381625133575034325523434846326124222144652630126231531233333325133223782153422482251551886326277553626142141734173613133125565551152635113665426232715621611173212153354233264166122372656738436172541128525333442745684331132443454283222512555151506111122125715510435543213114601236112681402451413253518793351123633210326355740653525121165516136611239130218543343416454246551225726738342224165252415217223714712498621315312283044672374315223122024433573361623962665261057333172344112228162532602340671723124373125245574153371231322284624226143863112465433521350443216171414375355366212142172554612131201171165563241713734654441322673172345254113303773132235313425417338456331351212223115624343523126432263111134715124323541831223533127232322411676521140811140343313237334202215212432212014453133728523222531522112137323123314324102181274222514374018873215613974322472324267382163665524653451838323517716442681372211447677446241112754632675542735282718242503354256350210334165466212321324303124256426522231534633364121347533731242046333711773343721717231464111121237152124832517525655778112214643215512314235217222535537312482621412400117343714603133234272341223733136763114138173134451134241935311443412172023711253442532143221223516626213322372544325355512123321244371146411352344023490541316533442145733218303653818622134430367506414133366337441136173234455735155631160623451161141145482014344332324144276434426281238712262514423147516177324344121638644724337143171532271143453261321124211166628108345416223274525432221313338311247233642528345411436372673170823376127142311128173122175431412256812512731153367513497725227611113622251341617241123534183143133141556241316815837242443263136133261823345422211754141418122545591721321672444421113323811261402524315452246343128174325322212633114413155133505313231311542242132156642305162521114265211221842412451112351464242245402315152601481142236221444351625333744173316352751124314154446875216211625272112855543105312134253651142224215314375741421207135022426265017441541165626211507530624063200055101230354145218235221212234525541321112411627481121135515324054213623336841344265753180216145327651522374500684603331222145834226142124723313213383471411131571333453412014445731378134284354721152558283412432525712311825081227339552117213221120411342
563272252216454165212424436741236322100556353426775211317744633116122121735534544523617215733151322447226463319330712634015584163421135141220173148244181881024631745136556131332214437362332553611255126237534011215322121232321426331813273424453055421213233583251427221645435334217152457241612137131114333421122142513281316361554544122252317332231433446426133612132141183616223115233415443353754326532341134172512521753467421135153165236313731162834181513000734127155228611341223615241374262313612420504853212331537102478214472811132417142424540322237423422112114314430042642231452250121218243772725243701050268676434163138444524454251423432653533241181453227343515313433831277431121171312354510478864525111131227243112224614725024231268324235243416223360733221154162111152543425513251613106110331131335176446346642206221731714411614112613244126587212231684122314123211384747413136712323522752245343440411462812315121151357673122216661164242476411253235101145062153331610440418332514927227432432221371134504461535512112351445111440414113144100221263328512181411141374261111116456146011676464112228665260177213256436662614125113222421443114561730514311361251638346362741520527232211153321131611165225221773142311621216236494551532621577516176771731832835533234424753637124344652647421402512738372131303257574145063354131874171145431713751412373113541132165672452323654115471322343152514272334872515620102245336215846523245537115412152514326151211886644631623004456525120356425484671554241441357115328512422252435315148112124617352435787037121710228462211352321413736534142123265941113752316615605111322346354621245358131332131433451534311241261145258431822613853032115873341432851331523436411242574155731452246325011388562523273746353324621153133122120622344232415176153442421116501263243215361531432231254511536173621175444445741464451226115156420211161160222574582543111263504311514332115047218145312407164557231145883333241174161143065553544032741653558124122123830430863114616711316130442324471644412501045515104438558014314244267451652438656402564122282114147342715114444432422531114327413451145146353131239443245137544517117262654171226545422422623232231685776318423351443152312353673441645259211411133111124441576311116417715314401152152203450435214612225412235508122455218261857343055221435225522231417033466422613321365152262331732121131184623571461813723420513214813635136731713204347182512123341610361411135768522331463611362736220122133280043122122452330122642673123111321257342495533441110550313647121251151203740244224234325021211481151367522222473321314111744372237161245333435393215462337119127460224344325231234676355271131111127252285445141124223143675112286851135283122333113141616136252662741457343611102550415151515227744442348140232511211118652340301413121410671313714872131134716162860764584547603321835535251443655202801124163622314233126634532633454127151314301475661711432258226391687822364253121163411554751223245401415322416215241433313662115321315241111256641632033316180114112131343234410642873166327545273541221115360134231311152413421342585150266234431257148443617235123201332450242951211582163145618352238323341112353134145361025412122557433413682111143372155231124226341123465046321430444216324582315161275761034322215161211278129422511112652623684604110335161212634165248264951127241621101381767333314154226126511111324027874255524535246134438631412327721233114534438446334522412434341153625240441113522617164424372111514264453328174633545624331112122344111722741213535352213622031656122152105532142183121324466762691211422471221263322341152413141221451431451352421127220635474272561212141734382615322022200124432304501546517354112425145512481622121213242473713442233148753517374224232611632238302316213452545427114521343320592262240233412314316266471162571342114126335178674608621161446416203352343323231412442123303011314463111115261721452612252242327720122216144321564433015324341614546174346462311633113513121134323524811213217222852552643445063815177124435213222124534511034267264221657164831424232523236043351625135412221154616430245135427340382343414163136557122813232678177322256342171551541275653826324173311132365211114541353146463531365173115461744224162203523223225272211714565142746435263217325133163512211625313127815434542154533334137814201527529123111525517656520117112544112414363316482115353660515647353134211365725112223436110125144117232373435254331655143028622156366115743511546144123351612118011113022223737215225213415643313327061337427246235643772344358427611615563683106453133132272135212362753712721211234414244567111216331331731555682184114212542231165561183642256251766406347311217224433727243153811453148333453213147426314133354224332343312353531843135332111134148332325218527713366113110714323346282474135223511533123821737468343415154313644434491525235413274317210122222361421316533262423711152583641522543511353076171365511323154235161811571339823336531113173465482337131163311471463124513472213426428133166421333277222215106315024374744110344503441215233311513113644541432524442162542101215512423611321533415740162322532331565212323152492452378131163617141264610551337053134442325212363411321424324428527374450423442214233311113458131223124111162534303332362061534511861415276753226321466608437807306434133222318622721251714113222613814313285152461406443361626312831147232116353624125202032223022382633483031243226566544243333111364512452422333172457115215111452383232236512547074750123311353122732546340306101462101042552740334145241563232120444234773611144046267544222871636343172631212725515513232542172223103353116241367225113541441754561118575286335416422333146416416633122353581304182224151213614252202133235315472015333171402111353714138151123446221061765215123274232151612525861222543133282711714341237233322338111143354762545478254148124810542111314472515421535747423465146331516652125343215224124491712303644312143643362312326548422101107241576634155363432225824012151681234325132236262417216346315133334311112614230616434451564255537088360196512211872704122272442354318421453321535485432515232322213201355211212264344512322641111357321331335236451567532436366234322298215117164151511102528232352321122336525132243653842417112244423235250712243112212335525166123228264867362588130874210425251224031211132847135343046816122174581542253731471446331113346425265855246536251832222234343435811215375401222412451111432426822222112376411223221631243641360621487226728544314476131415668811543126111213335201213134741216541711234252754154671515523311371531226045311453521216171152817126733131834615335226233351633111422153135341555362314322357128436670520521853321473511622114740525235014008113545443312142152428551212580266282111391023453932103563311744342232242610122212155617384227361412133014387451432173311142723401164265134340581402151520546281611412632121213723783215414240523526151575513211546133364312182284514742127315736123461114043483264232412145727340411417823457311674713541661743476545011536221537282318132415332515222318552443215385122432377233334424143614265386802777526711326113381413331332413566448335133411721525171663421681102511171251522157282354641161014522534113511533533221223481574221104412144435223357625132161210721180367365844376232448111415566421331351115235311123772476453133714155151361242323722122642115713510271122222301228214571611212321332261134433570825730412115222314312511423021261142238212216313412122715471635521115263384127681455363662653302126546302067211343273396754174387248241331745142348613636572345532561162100625474463222188082466162522432224355363251745218228686433223813282347615126432214213213363781423311564121418134126331375223835526121401242163812453726132411113113513271556112531194235765222351244124355382221731444643445551227437226111825133353124146551351315360711126541148526531322473441673666131334423223334145336144534221314452633652431113255336454696314133253332442326523811467411516221164410312107714210074457261515432512551675231414833625330147156221232224441342533344513723564133425534103551223515533143615362232547542241662141072174401126264272333511727627411846321232223634612086618652141521211323474317313555544031530316426853258621324214804237453112512532722141566354713144737832511643130151833723836232631471813221250455472745314439125161444176424377211522235257586151156450226342522625511513114611365743427272526216573844255424325111251547142315251133912255246234114428651842083116512141623122331322142438222533262218244281551052145332214656112632641485427141107411505561234582251562211381311431423216516345371261354336241221311441272150632362164526251342655441472226824575614133732201043316482611652215403111323035343563125213322517226855540124122067342541471507332419153221641722476842873242831352453752382115144612120433233415341516574268532541248461625246477307340318152627511444744866247635531744351374324332202305261274126653312271072322223158557521334222720405213384517103273163328575073433316141754111243224216122514661451342032430762413041425635316872322144221815585300210141212123753013512443811161621632131753424216140342346331214143364223122722816114133413312381748222856412173143315614112187522210166634463152131123055675115314651311428031511626573144726372416564428163213831113224723251324125622805271554535074141758212116812435215341035138236131372115267436112175582541315412420110621517441232221131372532448152331455451151444055521251562211413374334276531714161224432513652237540121853423712141527211282273122523832012736317232161033663327425713181773351126043313225421244342725831816152585116556253735163113625111535326755725413412123263454356346753330443254351201281153612333233736412152232643202113132743343632130411453433162451356465732533133317521311255131652246104223542713432216253448614243131874432831212255501131224164111173652327126836117333322151063646117214412157140741204511681461145323343833241110315312333532012182226413244542143743822325121258324131756111126272808522354111422154332781353231247633432354725315832233161915214362654362242816851528172363346145413714523121654343025035624315864147022172211242221722032123432161158326341722643502435612261111253712674314343313126323571785252843862315272164121314172312804745513815123417512111133224136017152723236232733560415471036631353435755447143213401584102651321865441125316836446051453310135151315544307115538111133416236387282277514387234424150123138511531113312435155335145173244284362441121622451517632623748154641245382551113210115112564447151532231261834171634325412435131335683212213315201363142712151116881181523231112351464353441811803411451132152641642326333146112113612524312120241523426135237565161367321566217653431353511150301572177614231161226174512121422512152245421361576136261214212232682645380213023425021284232121213317146831300132413583423065244574554441243182277503232125721776225276204342312604351741611141126433341363124316152512735651227783227231543222223732537114415271157222273142433215524218477522571347741744786123261052651315215143801131637342413635451662143205125118311612323111573717121403242130852112141424124551274471556264271831641723662815165222771184225712115334364457115775285032241248151352133261351213414112254352143444211211641221781811258324471613152715315221686623441174732562114315271555366620322653651323324304233622644614635378655134712172751332571671038511813211674129116220522123233281303233266121167311125112114416215323162414052111311241433053045554152618251617112545423101531242311173811352322331634412132022504351461104414321451353152323644212364031352234118167720362520186223462435125533275368238862432160276455771698261185341732211411248431511118361325721336435433111411145103202613320741154223623236322217111154281521841192441653317136123235126211612131352321461324682513315443135171414634351137048713713131221432261561435603517341323117520234112246132141854332475414111151331565514210621122321453214161212504310762025648155475222342323360144141435242726412615222661364003564502655143243236432655235546115031171863363311342116135131315041812444621511143467234322415134423374852624544532137124361226516012812516163452645282326112521645722861316612773452126132146131273551144321715331075733112432645166343522441223536553523423357654261211411111314364246584232346370333736374276347242733101568542375882253121145620112405535331351232653632125157452611112506157713244317234135454233154165367112325221560242232143631162155211125257301561173745743372735458523243504613115313576213642314621333351151112821442213446125423312062255122241658353224351424331314833341331343651473111327542214523412546542235223314324625211532345322115452333518415284312441662344627201755336864631722223354521310220123272131271482724221484323778622233534312222140712251452122322121760712382276025722445231323223204534542232828283134524428132111523515518213133232681315263344338426617312747352811227412128222422214253232416286462433117525212027231221524376716555505922172261222213221572114224346323513363133423321185531221422115110435232253224513636223523234262162541133110131522332142272214715364164544313966211236434537363240691662384374163134466113276436121432635143754236277161745632253165236433760423436410124113145344114212326232214215124437215132632222213461281215435317713172715464235324752346453214266431617713222316722327142415464362313282772823144556541217426944753224632117624834022335117324114435221717141246122613254763474452131215385116211402273623211305355575122155487142442243217232041325136374321431421692311124333325243612734451224583451224954151314174271352170321324251364123342230323442051133242453773642321875453331545323374161436153530415111354123134171335154403512132573539210834418643057132275522546277033380216321513313136522324322542115614764246432123641776112128353620111411352312551358661115362411234356122241301411387233531355323113412442383316527245714525515323336661224531736151221633333105241241102111245426131282322443221211578426343157852612435455118343211661144042173571134343121412435736561101064324151124378238623212161512433714476152242313935230622121814555361311316462721522324511312326444413212710256615154342514442655503230232432166617763131120511135256112455122211560263172633272146465730240135470135215461823141257586214813734121122651352213653225124634212113424524834714361211155366121144677642602871532162144753528372151535210724101423215124533342114468371420132123471322141232311261251220322533222117612414325361325176115175233130721142305244460628624255151303228214185411141886433434117013121238710153281362123417161141294056136516483145637118243315121446911211164402156255319504354631322601158304522051626139222341542244321325254414331217652226313222363311653353714414182444123323475641524555221663218511131211614102323848358725877643163575812536133623622662173263142125364224195212225551141610622424321123310536248313332612416373323561554533224816224151250133737535361411128442330142222113327311212653555652553165143128211380238233221421026110844143631541831123232415878511321083343374630222711311322313263466544411222423815331511580346134354685222254222215111132145411367153374221231632414416333713311341646537112527283421432724523421236626015622257444335214775422525413218646341112123415572454134316142163383315414752128225553531127233222143112543374123520318241165160625355413853162432624315214121783531181121223131242073571114276510521626672111415214411425451611657411318188344504322611452137426312705331151323613421232224571111211314431213213112372352612812223824551623124242315641431453453432133611402746337344412403132441155423162756154282112325154645422114133128521573131121226225441141416732830451142322658414381134550185722154421412223471544768173416766447511512322461203114232285515125723666162215483211165656234725050437245034050222413022123612423227022515125425324517532314424612252102264162113156135153138554442513112275515443204436623611250132721315744252142263412652546233455723621632216411451317324165131367752553298122125236267325131345756231607243833531151218111041465322124131216133421717542213843644345216575532322353555213116424140234123127815012134512334189112132367442212424213346622250235236305861415383216214652330167434412443322157570213431156642313525454653327234108221674115577136303433326564113364550241313161863114122235325428334557223462511356031145324416611522274731511530221157912282433124542232117403514714666336113611638427715383616511832412422171224111277677156575134567335472115541133341130223343341311133106465231521423151101121227222213304352241122130364251141425123252321223318721231212233364112022041452451573361432063714154622123425234331474726148423241125263272322122226311151311442645240416235246142235646226318121543434231223143453424236634152233311631351323223734372446121465634513117445312122251511318333412865415341515357682248261336013423221281212314623735264358250634147731331846355572116158254142313221324183268321631324202313474153312331417121121452440205104212214444468171530155159172345431723374824435371664343215235172811233223524645428012121511351311127331137227252742421242213441148214027532352351111333621111222283224221331161441425375141612383502122253315343771223444466111143133612520312317681156122112242734332532324327025474211354263438213312464133547403550453221140121641382225421612281573977142326153315426312457441211135515828824114142972251462110332485111236344344141206426410461477121453234333401165611671156772333361280462127134013336922211731422140046132114250876424563242785756111145014542217516351224531674716645122256137122637427432442352573546313440288533554711373446426418726212631275331632312644535132211338411424210013021362145127423310313423353311238132725215633130621271515233537333965173029561341614433631112922425445171537130535302842355167434337623135653210223242312719324316713123340126215375442752152136221636546654125601232714622254374422267445242713244712441551421271164811151154533212422433412246514252333263413228463253576012011447252385622646511815631145123222461363675042252164165141832248641384418543333634212321106683160381874114315325520312055324166412342535748662363533481227361034254364420246124321744503234141321124621301113614241734201156162048214511336343423551452173133313334602514540114221712653534145654351114163640825831312441212242432241487244453702515513850632461143891454021714571033215223343254173244174212322244641223266131524225752542241625123354426211533236282811444126771112261214314121227341631355261434447244166315346122522335024122262122616120112652346111126135467272313434213132566277521426318332441612252523531488531471832232346113421825131464012246411243333141201435161353582312365331116454811562542522313361155240214230567464345141115221141153252768402133320324445764234461155364321511551146145357661736425621443671320022113141152133314313422314132382037741852724206331633211056821167653721664612731615257443442884142354443526437052541242322523425515413146244181178377561235341172351123211355627219484254121423316316532317125223122543184112121422284401162242651151212222616233373231223731202225200236465721136356155432501145625054215411441431471272947324421321231643542751131246312216242356148422314478416221113623644142355207331341232125003353121112711452134246225452426114435137161433231840542545261237226231152314123632136331532124831241717442137615223153447462112602256322168121541244623325534113211922661213218224343347273024143242131536412314481023123211525323244214343311292112243614541122513364118526514262241317207215121254235413206356112112185153844232224316111637354434224792221331443131335202524611233421438502131243147542221422023212721864673154722231461341242522231215234252123652263541245136543416114932332354422117807511526433424447001017504454458125611122123113517223755374313422238642331122121773242243172242136230361536277681282522232764622536350557335547122335523436111722642551748154443472021527441425743553165314214111436822121814413547513416524841121321447124633184552011276222326321547337175312654128302641121554413523522218163303712315324133221132331103538325621013113654253119331535243116236123552570242282122333274543345241245353103121658611621216435107111354616402651341314244701622637151845552618633011446242451516812271171552615123152831571366311211254364462133116441255523244551244226221261151585532583240136215112156354315362025524484133512265762544573364315932157521112201233186333031654113172325314233817131160275712112343311135611241341671441247411178111367521142293453221241241822254211509270452856577478225232835413513337181351411126153215026136534424277223444730276130422114656325065422421555521617565741243012564145581141381115423421412411314113427235541315215443122222124225111214111561311285533636666155203614314274321623755472751219425418435515550272523442233511439235426763033242242877144342511436241361128354313511314126222115724224325134245864542322223311236213133111372930815317414662523212114115455321228443237627440013136111315712114544152181372343076752435586226112322293372312423523359053320646376435443665114424133535440523212222210411167533442325517211115335452311112242461231621517401114716153135413361117551251174321465535172523152114512113113125637511131232532450224621514826315322432314152513704222732223013213313827232636225653366640244762528264221263511145352311614333121661213174130722552513531221233224227565122410428181236311381436324175351552551583023703052112374586824243454111535821552135511444138621283323236285281712236657425623413422213251661467501510132124547262542561423112251330716312367137332611241055120186881232572113922142426723258261231731425145245312341716534271215611043188157251214717415834742432214125522440011513252322211335172331033437146523225113414554815342236234225251632376335632733132348514414801422131125144715103411382552374513711123127225220145213342143324351612263175101435740411425422422742313412324426172331710161372317532362401354124112513633411324415126634342468113245221345224242111721324524877132526166452613442212763703134340471727136317156361221665510178402041152021221524525254224653261252522414326725664125731456912422447825229142515775442241142141222326332354351547147124253135378565532210132322634621646726047226452145135121510603262375435132123527701523124146132132454444353567112656432613214742171222363225123642145156862121105214238146122771168259345332161516253832512576333247184381445172151541527216626114522422618258111213156314234231703745134152422861463241211334622131483183824483164713275343846135334175242424116812412612111151265222111821121112362468311345142313121354113631277150322412233123517313212216131431564411252112668811212441331231432434317447512160642167353067334740332320323142235113334113314311241141121344345243824116752835430503743141432782334267144351652376423535115727546226111414463831204124241322644818623347321355721122292956574425372112124641826112246313123341144313641577364124883742323221828378111314344136122522172555164051147337256245344123165134214642747322642164104421334331156584224562322301584211341254342014235613464455612241246015151456445147711323521486215332875146125521246126434525637222442767122751410131146521234161113124124311333842366212624114112123525313212735354343314220211864562313416001154321685243362660111144232257121232210216557337266136727128013152025212321447202835426732155212253443177356331125673115151238438826431345641211251273613332362723454224415831225031640842151433417344135336151151544573331226223122541114110613112213325321231011187544424110147243663162624442543245417316152883352185111512532022312414561572314353325424472613191223434133242118115453146211125222313723111318563422237111533233825454117435785443470256757241132214557004247651128455641207721275321225552306721134451847242152147111265573365846424112724466128056242175112525235541513666115704105116132532772385518231771132816021222332465611431512031342182212251842122232140172741146224684723450117572552372121325865151115178514311322522211566431811123447362846312243663211611321742301135313411755411841441301701176123323115721362232533177021211451326231142562312812221455212210631171340323410812022216340371723256137605575411374522232141223547351673139333831335381566153843327527414626425832515311326253351161141264452337731412334111427231313362261523412164632322216354257161331634831262316732133443572365623628565472321164541121555316775245441116545153141243321424224310141562427734415123227301315851011311222631403151334322041221286623465321312414726341412317614116262342351631533251226124127456850575113716737453446313223223234756516352425353813545728631268233724330167235215435171455351513304151331631647832312125261474223123411415234761276611770441211368234186167412574164161620118131222115486165260312355171326632556826334355217741035316318347151151110163331128363328533442480361127513737365120117127254131714733222622375272122625354343622177633541761311236362362755132424166412664033518423433131132313813231150111186367342421111732312754230314372713024165465413315925325412213483725131321652751340453030301174332116144316243261115831111341222323361255111431334758182746717471424414761522145231235221612202012728233135145312158736255353426441142221265261171147653514233134358211175320131612122433426111411132410257122115323123348213045532772243412256141662215247161273333506427835332061333142252335146643331843532823445122513352118757216124363111532121420345515676341632521321531315835125124428241332134054161183424543123144166322171415277814143453513061237769161711462432026546154173551146341312336743552166125272212123444431341232147317441553111231553363811136336534175533511622202122562534462132353475454252343521544532626112244325641114224575052251624367421416254637411241313145141710315461841717184541445316415711643141126457312255221544212442453011318121171413152125851111427223732216412333163113474262143732752312421711386125133141115872232441416476563711121541723725372513323162251132532335383113113636824573232314554432011114150622737462170322271812301281324655311131182474252225513263546460211341455311161224571262424317502121126954112212213371128543812211226063126131313210323621312385263325366223118342133142262845051101474630107476284756441266431335411723447711212683252102213152405882111044114771165434435222514135101332211163758304361232537126612216132251644232342522673616316101123264214107861313753212362327225041433546413756157222745512104654434464115548414681365412422141246655316651355336733222633118380753717115348715221359862322453536576381114443222535331451624522126251121544245473515474126139372314812160311311221533462122545140214652413323282317114211231111131341453531113211532415331514411225165514225133315534261354165145627581544725112373464404122461823723503176661222555232122362142314523361124452568534446118321125846551141422112153213348296776415474233242131165430482524751134166414248757462376232352344343621153312424113452361261322512531350027262114323313251523232545441065234457511511712222441275614013487126452525547246251314148234445124333143476464711721754333133504231625281271566278475261144161474321244021656474275115322637154755255735413482025227812132123516343654383644412442473542153882214133622134221151456202144312275183615462133372116024246136452131611111138064848015382625821161231725586542230441311322143642862182222531262236042531110231464380367511574617346111421232224073012444151348961143144412421852237301778849241944211558121144776313572254324332155474441652663111557335252263824362341215241233344241125587423325554312143324476143254341421538210231042324424244212351702252353335235124623617585487521444312235142522645461352313274153271523551116113231562553711250704343212154221117612436432215244452239504263237343760115561682136524253215424224122335737136315333034115234046612425333511111622933312431421124312261621511624634681112613552311227482274334240734261632022424313382645236351306817225232315364012261043221114146321612223733412182123131363064346670131622141427311244133344106121414322262723144270564324633232932124271125643539363436225063446135212332981102252312541454362125229565214215676112321500464620176986421675124228311122133353287112413214112311342222525177133131261212232264412182123251321425425216523104451540534321732205121231544224641414046212022111245373308342553123161254122671653235111655410414128532614123517427211610113425012833131552225621462061815262116251431313124712334221641521453177133414025131611125716117233241431212243184402334116142254181551723447342854124135485125524719547021131034325613042545133850244627236173764110154161171323153272511323118437015234572257422534653461221325454134114232325547815344314148132527368414524242541111687386635143414264344243731311122144645611261611113232558308115451315414431425646617132724521131421245314831443241225164131311380779215564131424324731726314521344141255322123430127643441435265641230605605422517225134531244121413363625332424324525350115537344215044451122514231332563517172413247225623332835222141222325512510141124142142352135144534524543613435261555314437571153312113382211114747127222444321521624172245703233321624146113421432440341061424433152444762420213242517625210454611521622223415454425272711423374224241343325584132766152912522125113053224722276128111645522132332626820527326441163582726478027330523216520311337204342378753384313432641624378421212246223123142211645253561543423331544775351683222424152211431106815142122231624242432653271813171237235721331141134111614244251153107221557625215514861042417738555334636151175274185323267511071416316011317162154214664251137644324413225223328172210332236282343341148752343233492153334232126632310324261345022534416213425121274548453343407321353267724252432517284313432545165616185138462521374325431716133433112153831233824640121526125220836214513423068655713226763247221435405112102135735451823275837232222573641103340144211655133134166764215223322142113246211130444314116272222110812742527735363361227160245226210411515272224422535563133331526125531211478445515375761323221141372461422553516232221252813533623414135154211313838734311132435254853135331674137131127133232423111142441015732271611317311243533323420364465314421143843112121221122412253452162451146141522235347251143292222532824263443645537731414354524243326101226323222475411422536473332343343123224240337621871324121843073277443262551361113153962430548633441044422371125342231431517413147417343214811452144571652531182341016551214430114001317536571325154413411142143524415252311224324211327583222124313217545671133632281132711316243117244114643511355018345531153013567111552243535522222213211353241413145886176401726223337651554217564222452862024411534532526506110624744545334315252222516551114457426411682211754343822742365186134743222772316652238188311261141230031552746513132403223232472242233223162253536542633276331281085362713415164243223142122636951141537224351215314171513254113135355554674116481131431575724142546346143222013374622512111332231327032433231824344143361836864715257113171153665211235116422271213023326130113511652621546322411458718421453563113273153853582311153061113773041213151313437137121612321612162615594210157463111861424427163646801130307424412111522312933022631735334311526532221104276273721261881534131353434255135502112224323324321332251473333003611632517831213362322123314138622130225744145752114676145033264642013114211174143222641712210222841337235323344511231721222221722334443113254134126412821252354381468757111661214256751213113413550337212582362335784624212521415635022514712543434543225445425747535472313538553113224154223452211555386422335212123832012122231167613311212531222323630216623412461333310678953247144476611321212011418116414263014342715253364446200614463551752323427143664532253005373715300446366274610414316616114112215362262286154642328524373218466245742442351113133700115821203422861271215543177317714145745184348243151521648174211044125443235127608314766123613141382152641616112077232623131313231414016340113431535221312354473513312424674113234206131103832311161160111211553598451342438214217117113147374127211336651261216431458761613327212721115340454214174342362242631211213673174753522216841235012145322533761041347143446016718661243123227612323223772541132313631222061151323421064172215453412224611654526211243551122041485355041151642328415244326125212220322115614252612516123563612412214121123214532343213573175422643372411524615122530042551455353113341140251171786282327111346322712104426341385634421063362463553264261424101621262517316742511267532502121565352342457363854135421523361161157513255454713814111682611252522466247733841245552452235325441313154392337313816217833364635142334153548413521541334241612326401431335148131542614211138235232232345610023511601852622221171985317523326755368813551818614412644112275122313114142168241214231171722264755573421633113216135135163522131621432183426473327553773122411548610272142161615118752611448171216783676324244136464405645505246138405221433132017733726571333745664841712147107434418411233863542863503453562131681533763111633224217584243417375454442317221122416168332346436524375484488682142138262355723610272613622413330765042144327577213620267210454144750628534546254256741883251147415132334652322001530553361712142446322181315153212038674363318345163614642516242153933151644182215314121641213213271834062113513017234791343526262328336335341176612752121511515641103231453514722141723562217380231535175125201234041614454230076111222564322751223214153323254323252735113721455244730123341751244558504360471405236654425123678211544252271573215152225214316193112211225233192523158251634473574441413411161871161142361332431371113210155143401211563714427323534531416124513621162242415665655131606313411177224431758412692274100414350462167155550651201223130225603132421716111471811422161122156434141664511243268552131421225435163711722341356021135581304352621285322323144515033736851166314130254273446221534122521621213336152514456144351383253281650243523154422434136401445154550212545322423572861532526154132254133526411411472141263236241453426287651242512457513705142121141122423246153533133532414526246461376234554220760621142346560268427532246210451337314103424133522324567583257212361351531314433133464655352545444465345412122214650463725458822351618544414312223171152443524031942552054314273414134033132706853215451012367153361041144551154623522516451361114672612431161411415438534713123533261333162532522173523515122223105554251213403782640339587312436530742238101402143328734213362115144512174253463654314131285164244442651333532211455303412211554573316313404612353483712575561553431331342215722714560341130637140011613164317253721471301511713134156222413451311322232250434457131331533623151801401214313253703511613315285236327313122738804443121543552642218332134212283113262085575345474452263712152222447431736262727603215401323211715273224366371137356124211341347413613211113211533624335722466833437525253135326381562243615733324154123641043126384811532301411115345476351454324111621551321522651214335324116343655244553113144241315825417123141115614674213167364435671127223242525854555523323033265481826141204655613165215861651024565252358747242422522251310563482644454232223232311151752451217252542013122335131534751412141161324765142436314741171264326262132473564232842552121461123122444574752411445173225761526070051192331254120165315631022148313476116624143156124246731111334153413258622526111220320122153414412173376132636540842303171188321171132331153151156111141107735111225433233725611368046275235321336521541343283436122310771131513311156124006138112315261421261641422127213532422328732231213287252021474523783231332356511214316416261443567414632513317123611513275657232431133823311211325323202412643261523166172114331311411082172341153111226414417514116521820614441561356420381468417422550620315334615325418332311166421520627242314651327573118713712341132723229153745321456135114556725411140013236432857861122213114341627422645114652337124417315211571225432262155940664155313442162264823440132166133323272544713522124173216862172343547153105456386135614385264344322414124304337412141415113215124121846556763641177103836644233651011611133233316727321716433446152214716311257634247114125222215517771771054275242141532681124352274632732271242522111113171232361766373141314681272112140253363623331532165260441251141111212164113333544121413014131271883330121313252563232514746412112723313512463112563123111665315363116070212311440263640203311024545633213085353148211536034234345224841552312147323230041615528477372112712125532185723250842113761552524421288331214454225533133126472256711234231160487846130382411254581204506224611521625113211440251613663422051302450622113441221166546313415223213341244241631611811434522313133358347648854652712577173421433450151226164111733215323216122338644916542311738255158483322824121522501451242152221026334232422333205334521126511471511037543227262465531212211434323174625302647223321614215121115154526532432311144350182661034460714126133131142200166244143352313435572514357124056134671332432635233571816267351412230113141311146522838235572520403514841651574572422585252502212512522267344351116211343550145175132275114134277186735441247535322122418424142147632760241313131423735405183214831435124412443125765141133241230254328485710128512533114150771111352123541342122742636832223185271116732658424437024541741119133133453183284262222451322282112523126313243333671726112312416033141523143047021338421221214526512365123216214375831431161342641322523144431643131351181147533063451364584433264245733152224214212517338524417343554522467183267365204221155455551023444347401622522102517736214132912421641141233103515211325577171011565011273165251142136550336624244071133282412325452171742222121411686134111751261022352344257149464534132571502331034662312526167527123627526261424350662618224144122261521230166511254111262704123113403183242531123211121251114341333541114123445453545123113635124133617146614125681413452631046643841463383446244875536211311102785121414248353665636423117404544236341344331212021344432442741556342171863111333275822292116233327352833311634656432716132161253615215444124518552318244236301135032232021533224113155145227432185110414745111311558428036160412332810633351451024222322702620113335445113114213113235733231247312148321145811653382636344560153262233115762134643151113653536386867424644350211212121433363210125341742453126655833423135814434652472332221431332222101561143572327441356444435948626615552232431363672226221272251537151121751222236413855341284221573225131973741236123022465226612421122613112211271531632263833232236414535375362512376311375125323213620344123232417541165286411134257121151324141541123534342134611304221451211123234442510282225071745332593611323216522812510137122331471175523644158482637610356157611336214532282745012143415618643445772234315124355421514457423232131636540624264110763321311355521527311116310761627144133412352214465342612544633358724312111564382602237284321412125261130311623731547651437422253122353676431221446613332617315321226324145564764284135224113525612543411515533224116387413542622115125452181631414222317311722161144421243451346464535123344555624246942274441846114115654341126532556153111424612615081172443442211631114314226433357332612163341672342134151353394384746711741131752563411131321115335362045433327338171211125543161424233628481324833245164430256227136104852501133215225257733152117235934142213123727155235134783853552412335384551322131320713577442421455324251821432411414733158122133338734444361224717611132218431130473521515307655741363323536625111447211651181182383317172141323111254275318221402137661611221073202532272187872321632737414312834662137445375643272431441676324345423831222763313553132272732652033101661246123134483173273335326263212346643224528321411813312127035787648363132353335417330332453425747211021462336112242694558342111414213653230718712314317334141321441103113331250112546221655141115135415667524241212142215227346246114464003623053162111281222715155237163224210177220547135131178416232233121558326122612512150600483211664262744614042161344322622514144331432165557157317214164067632562301633313332442522301424711121142582213122165541382212411462763513126361582726222143584366341165013433242546113553656541764137513623860311300255522172126213411521263182562237347611321115125155161101134073343662163373616141111348722315216263215451757733142142604855516545114520361631133521416841424067131341178645354423153522131125432311434154528103522232433428432221352113221146581513184163415420412211711573442286246455151545433125215239321644311734314233227853422334321316124251241565336153171361513631848711426333142522377722415320143185114332653414737226225407255453372264411012463542336114243155134746533642413211243511151211637111631271132164143332143552152136374671212252573228462351166363541932372341516732111733131166271183162317331203233110233234332471142351114435436415126172456924425440310604351061321524525487300344724118413182284353542335121526681544215371216127422211315116216132564532036124538176416417853133653414248873323136121154138111202151216344323362474272526425233234203871631245342462314643543751714142443561772221211016423235251532634223426536422411110724132233745815514311115551187668318221121895844433421106313476331113623314311562446226741323042142516165322645678543721132215213132456352524101253117127632215527122632153710137248732224255172224412221134514115604563131613332834221331122613274203724551412743446064445344348512425223315046745158235471131362321613136221202523332232031510576256236432371312224314167312122354321244241113255510535825737637630112231418312227233263031154232118132111411523621611756267428213464246462344412322150551246224354141364147749221112362156466111226222712222675211271734452433244502312232112134216744221624322611872351237151415143155212132732223631521215288119405116103284581641722258552416121536411155582224223721645616272022075142112371161126502603162551112112336305643212131431421335137127266311214712421627427322334412835361022661624314613173531131126321477131212632106481526110132323225131527131610441133541515218574623431458521371520216542467332334534146336232562401262112141235642111543431772664643646725833333151355313679318230440311507722451422170454221132670312247343821246121164541101511452764351844545523311222334752213331321665113251720524427331554477464772581321327132141311278657346561351112853332551141201362135530342421325424153337111562155128076128345458042313537343364523231174271112221441572354412230152636325274343153122372733075553234477231413114443404122251657432434312144222133131831541355131012468756121511046105227454111525765251332552176211347240224025274223264148544316343112231042366463282163331772164811527456277521644142462150114142321223751243431444432627232142742363169527524262332163511182634772634275233337237156211167285722237222557216304737531234322437344355267437283536337033552265033533312545147171143411116366837276411313153308443227213411712063135608044321743336112544412121171235452761316652336326244507734252155451566833622141154643231135724161373265142435085276141565711214455123776537557823663353545387315231262411151011154112342232301211612746223514385145132234583115232117442142814324332222482251178661513313333314365322122183261142412343726554451192267326332351630141571334531322114124112241813817432512321213138751336131463647622222419413131166312722612013316442152112865242411451113311127461673453221174412121003653355402232331256161258535045625334628422801046461143402155872512056030242251130501622346333437441141156235333133030517565342107433214741160252835651574711234365202517253134151238226174602415321254423416615642617084644322161214442225742514413217285112303233458743412103048211415543231533133593513155154216125835564524152423453236462325341241467321532332584337417622336543422310243481144311212153132564258376623223617514651121422242152133153334124258471241118331641864545121421314762128331324232115441221111341667275003612326644847252227635185113148052115486325136453556253621362581343523838432742225015171283624343241231211157143213334515732785522373314870658314111406833864545197623234117372814616223011542036133251177131235523411325232412623158231418751402252217334814227565611461581123156224346554543411612223246311625145241713116162313231237290334158274245123414246218112212271021245212263834311211736651318313525111416130222142043221424232335122531274211331233171121223216214114303475346356082122043314227321324523421221633106657784361535114332103222817242153345224362112645245241026713314460536171444123586431465156362142222144431113412234144712511222321231413325663213361542726040223467648612423351614539746214237430412141474117361402238112343111335124445625821115642231711114466764311131547157411353651022544511428584142161342116362257164113215731252431565442516424276312042313144346222633532139112137416730126164154135251112311662111119421117330643130146352255612135583640154124558341534633572631163315662250321654512121115164216356122136241412134148254462143643131532125241372241221515456335475160253379521431374667450410274127745329373032852276272623548535353283283231347161722253274324122106421223225545436251661352472641315132351181431231423272573421214551211622662241433514561142411105433143081224115103234141371342162422343224466213513512314421221202121452668766043652444233311152576224112361325871442123145513183473717123340533213412522153114636641264173153745406684411332362735455463512321543288331126235112614512345245523054424126586222034362425138747178372455747433132141326342118666257153248341331816642318399201631110531322571484838371041554127148241153421321130271142202513225245331323183623162124266323273944314514353173274111564321221513325162626083122144031747622187142343533273614621122562313533284123416462141763553254954234771312142642531334152592721467311311113231435841511153357246223332203134215227715021774556221411122624771444120322613256431216573131144623711141222171201223477452746536435457716142221176045241233415715132348134322252411111133658336326151037634533231514742271233435241021351324531413450734523264064145112252083114132444435256755304164273211611162657428307471375245161711542322435225353041235671113142412224133128134330171250611051373346221411355641132317214324645121571643213223314256254411188222541461447863125163134123541675414200141224626123453321227437542518543424028313166251821431343061423111115447246126604223625159144755536534533912301644313223420114153445566522426635232226212402362512044113252212865311434123224746266444522423321211112557272623673132684583544235143413378433813414146466318711456672542354521444246427106514152423326345225246153317421642137432417231113852337433154132222451224232212521551171043212655436234133311255164671647537216484446221316445673144362183165616312265321645362503351511214367725725343227212155714364514425521223732515444181413512713122122431503133444454458468221161011275335118584262211311266663153531322713415136231551434378321123214463312375140231212254122520141447343212402142574432463136511445813117353144245325827523417242314537652371247221265130234406751314253161115327162361232745536312144122161172261673111653261160651513603127516443145213353173151112512424117632131352113471472533245545441742564377141234466224411132551410223127511124820424762322530565035731143044225312172164541131313224114242122234734752215833126134011225235156266234523246157236726513383111282464714523414211131155175165155212263122114455115112422131511152344111225235511314454565330454614228821222433144237610021115263311151121441411314256606773131415433211414260017634003232630444532836125313117342220663835351162255363350713625175164312032131616384024832356511243233441320334323676514411267733161471213238163341218213714334725038156515150426144581315165512161643581334346458121226322212144514433524402324316353106212511514751103521427488411143256254114303361423857433212542251453861131745724514324452244223581747332223468332535425121114612541153243812462552206611414873773020451366431033130531113143481136223125155743114245211524512521114352546316212722425345443058464722464225613635550328231106314620112731155667132134420357531165401625522118331745111226744363542503124831112141444332261514332223133465460431643623183305115551153632122226346143136128352532175312231633361323115233794532123350465420742841364445301151111347413331160717163143638214336216426611013344231452522755371145212431111732243515256122316523433027166336651228213331322738824352262312611251223212419422223732605366561340242771722302312742641113834620119152334372231432611261425523205301645213217113210276630421825144623564431362132312222312241131682110131261322111517320135441436112384123276454122246223186111265262214111685315353426681135360178073115743715524446115351564681156161845332547618310711233123525211161083426123422531314165512413151246021636172253241031511243711332644323456674343321451121152246225101141342411215155641613543235435114315242241412943264502257037231245414531332047532422527316512563225626142621371321741512711651376153552356482414434374113403273176744063547442341366341724241225661312153261024711152747336472132242261521233553731422245534240125741522563125633147172415154341131813333123516835146003214427411524453313114224212552162210703554575265163565203164202321255113142311236814515421257211432515343422222281135777224525340221455322561526535017467313323412553372412231523255418334315842343454112356144651436023615137366417512133134762931514460532543613221333405705354141626381112153181352364433335343533371312145521311324485111584222661151121723170124225141462714670741611552132562145442548121701233635545434438136315763344454547125616226115116351113321411732543223318552663840221323011631421056612601514115345012316635352442163312112334231421151141375452202323633227647741354633173129226437828202113314623631612723664523761117462015157511364331753727225442631314435625190132354614261605242152011132547247671504443641541632253322277454434075443644354132132213014150233433325522525333323123351555370634121134552305541563102317538138242435304443214512313774512232601137154122512353366213543517027747456447322312111343736342423726411211424337617834221682213544114321337321112161114353441512044212136221261417072225547525472550411242333741111142313112341337122226433229123126241415243524111231615122515131324213311112156147225751251281341262243714311171112134334211025124713883124231770113252137133111206636553612566241123143135135752582262253233521135284270014431524056232414420113113186325110216371152510352248145262551221658782434233546424674174632347411854055341540441512521054321335332122223454345313354252103345340413454136362123511444254884272416236344546127515051467231114425274456111462231432641241445135376201567132712455544614278111351714374213622343134244341222223212658512735222123444514217762141044485266623542854121246721361212541324532243713263143434713242311354133167424223225346234117532455152324413266432533154445023333014422230231232501262274275241127121243141122134151512637267842156851135061112663110264734371272252721625247833133241684445622211962211348643273254676422242013314453374313283022141164231462521111237383551526122141241141823777144712431232827436841185111176333121474124071181442410134142432122183213638615532785542245324415516143334738732773244682133421531511213364233561447211684271331121203435525613534324645111323163218346821644117155414245111142614413213742145245473152631435313146657423140911274311323115323465121536305045321215471342215213223012361143122253262531614655444452345613346522222116422717313601114321722824165571442244152752511313384431414213676354224367242231541351223771172225322143641764623332613337722121157712852054684711102231252415325645564861771266232234414473640282241447111223325315726826241257402214812211162163343221272410121153545332421641434721124122217342631262144145441237116223111153223251274617334384306041335835460143421451546641273110841542131615141431456126164131362134324615213776632555502162647322211212644646641521360424689372254132717145412431022523833286834131772142422443356135611625332471452513222312311118321241153513324332106682394024831736450324541767013556123114163362112501154166150135251740131112435312446147677122447184218224351261765321424627322513702323135552232221411427222645121253214676571318455223235122044422281155113311854126424666226312321343462546135831213530210113326224515433247427322252612012153720465051187152662314771112153241151282511420114114313722530632381359551207242322343125126722413114152161178242453316112383234134314628146335643462321323325322372201235036341253341403214353251221520521862127222151414212275712215212133465112121432834114252031443654018811136527357234265216213852554314418515233732062121366372531581312142231225912112440122313651176142202175725353616217156161221372414109551954433406261434423746112515433113461156224436264516173235123263282206236221253442607251173136321124562724234316325303632513437416511123128314118251111222112017214185443326874635511325357541651121536313507256140242212556312437734541425681473261526341714233231712101553427302354426268425133134114552214135313224313323155123463853226423234312133145725233241421241532120143142547151672151241813302506342521314536541453677621582331833257331114321423434235231314142334125144295122554539258462421251177214213615322318831445108110126017344135734841521105431312727386242545214236444415443262313141544277401651567283063663464113425231164641023246631324548652773175122228614323341422662165152520041273313524034245216441365430411232623144516715621562785132442831352125616226732421284324111725328311422652042254110112422356111414214642234222164316524235222227221125117474137812625241811414139132312224474253641062223711527550315251132711705274314135426112745343725353211302411322368211447081318115242545424145023734475311335362224645022161213421136312472451512312168756547157241834523313246103131228511412151414241652242614616815242711324311242232226142410612431112114437116311403823408301143271156227030824321325331134115235351224176426401232043311255326522244141364775317333664713315761131114635531312145414131944127123112631432721222166767242643574724849136151284171341612412145222213334446314221424142242386115316242173721264325213653481361346228335732535141411232444308342510340226315211111512263346773523231614385355665454425531764435302240315322823634571641561635414122412506535664055361704112754017612425111253622431244730457433245571052151211312842685220850112222213423162114102131431113223157811164610511431551312156402111732224841453141132402315343445466374115334115111655125513631664331332131362143222531436225442112128531653433180262362151171123332434132311372225122845123211623466330156239503244637514125101163184434934531521114111154147735222024456337416467911425251574134133133181311112061114231613250222166251733382549101044282231677423026241345431310138122812136131222862712616351115575116573241341412612261233125231455525231323131472332324511333121217624613531632312243113243771326214622334114722665165125422431624329555111124422415012425531520351454142112546141012212111633112342535112545137535413822341351233013543532045140742722778364441631473345117512231331771212182311713345113401174156113254065133417222154301122474542261130212156323246132312154152445485313114635543551175531162444782352056324251411822434522738761135202775318113247771211181532162256123656525422826211322223133015543163646326342342751022401031112141815141163412112778763385667716347622262223332414211131635531455040233324127682511638232277530121224441331234711311182621366441641646337021232514271115716310375324446418552332354326020652462451211622375143485167254111234123652314615114744252427382315123745141830187122282231244413106213154142101703213020533531143242431714246323641508543323540463623172822423262533011602122514831315021551143531103125183686418340435448775555413414322315231732466632132813446323726274687133732349117141471141431433122287345626861162112705436385255402673511313111462423336826422652264626331158432553317237826231131441464634550525125222411275731632433127786223434506344651585062151584141162373312522338684133224134211233561565311182163121103532144245461266136226116428263274511245118221421421143214145222323326110557616186331245163771713156234614242116452312517312341212304411455211234650315584341231431216133213116121323421381317241521713430368148322204514213431316545823141235137473623061113162321204211240311272681815164451112325535633315714472433471353241781731318817227423573341141503373466137311151761311216111234131421862470422511656621217457116220222222461425821603220263473225722552518513525424432151741231804525476226520154431616566643051254621113152172182148215151246112241116247727116261466131331136511014424714354152366764432676611451240438011263346153134151213611041062754813182146142675261114243225742331143246321262176415412881214453203730434515566227482431214529532413756122442333317611723887164521024112211385421334133283256175136614421211724324623222414606112062312422425125823464553313435726416722208302166374121143582543413123543772606452351412243666041311722442011021641417116718123831133446273532411248322251532272114331173354421313136152721142232452433117227376016826144241540222361113452571814734431266422027412383551314131021422622451104417712401227232314722638266175114483731311263117331466114314317132334224631333121132042146413237461856115253231123141167342331374685025817525232522331121502026120518313106263637743414123324232161445624152557513623122512102421616062131152127044328415665662257675250275112552346346232333415551421351515054356846528131222528351214136211560415171215253761521150256142546823072317520626463615273213213343222126774824141474412613310512411511315130222626174333420288256217234332132620226241521103224354226113423103676183551762315242211251321151421413124274132467526330272251010221631102383444154226661482718663135376312725413456852413117364472272311514542321443322383108462116126205102332465554301432177615234751612652183263073826464232126424534541364025172115133161533314133212141427211585837115623132140162412252111434161217323421331521352324183131135084258447311422403015332734414382716633405354736137722645268313153266345251524362711962961514151621222663223142112247236212113315734513611145451361757121112451143425514715523373726111654112423233074731114101362112526201212172211426212632808123327224342311323561467236562423263114516323413122687311183212341262134441115311642345251112121241202452332342834128151431426447157446133156731174422176101482363375714614212602125537541823513226233261529321132616675211443612432212443771310326522232634453557132344432133215402423312350122223411221151447532112423451314213141177258111013567212375515154309411112110521435432466132837851132834236212131677256311663356421244112562031357244137712134515112563455325553114325162252555588381247126202131711562513512331142116711215323621572843421437511251322361613467630342524460724514585334278314514115211245177252153182227216272317562654456425132155021412045272515114136351143064235261871243544424312524253120563656125775651162337244462462376146454517211113325526211715345293326011457474153225222140311755644241643212244165522277218442471152154521252574243646647175154122311242441124322512023141539411475172347726063342534077613362325435603251664682031564338514437113342101434325311420323112431852481334622162712158153242313314574535481514252556224534215211161224276331548428322541363284141482713448133315331031114342664162716152521411617313413814431313332813131465113611228256144241056661604653161334152141213238476441218412533414174454130183544550174312531741110220113123157314912231518313461841142112656122465621452224234384412871172115232423025227620123914732842001122705872243262106144517432566127624465443434935312607236177113753224816543639624514123341323263655241622712236725182154236413352712832220644135211640313121481212331454525446151521455534243541571324567215146420714161432143332376424715350285522644212551144333576554036133722314105135566183140122731650141171773343122771864515343311624261663351616661411122131730126443214220633461523333542247613322141114662134172166232333313251276044342452114171863211786210121616542643111132144125631820176224421340244533514217251711719572227434322333313114621267341121223551541026425422434014643944163113182123021332341184612222153133255413513421511122140146113142232246161285241112153134320212346564511285332523842233311404742622141412345473275754221547446441321136422323418516122534216151571146223353156232112742513633115545714112225214562526125464813632593562255141515254423741315582342325113123343022415243215712131111211513116323224241117421412642533623643523224611153382147251424747115415163324444113467643235551151431452321262121812342403356432733433342735216344359661542536143442312244363540421444683274144545412179314333825245428441423534119273151441151333363344141512632120420172053521220432162182521162351121405243211121417144312323511112311551135531121615412054767152334152244141254473431662615632043073346512743313336252176233224143954214254361855321212833153374645221406162074327125112247172130234121116211375283013313214542212714161147441116253187526141653266321531326454401461121513171401454824122516423163455251361513271222445317726342241671510423502220443215744212413544413413642441558511513453411113311252141232513635232571126021312746573351463437553212231176215664128162318242581355452332176241121751325123606722221521122224312435434724525423221833227254212552133331216141961163043024234111154352265337112230144221553152523235117115111621431312461455406546711174062666643322322314342616253414568811131625314343542112722232221255201504234351123684212212174321510163215335131328612316513313125635015623223162561312205348177144112432311141746531363734446332146411214124110601423616187637211333616141472215211251635255523346661234155605324131418632164635158127477945114312174381323054633134001522523973164241766772362841433215174623632342621513113433252345155216611362135723220314743516131164732271651119166248332772728623411556210252112223414452469522545234816161213231657828651570632163227950413263134143622552154117152353310333413737510220116311235585312513521426335746021171123424511235267325452127071222265312673276147167556341426341353322401153535713154427134236814156135532861622331634153115422213433135113220662104856412161451575253211054326556222512436152164465512245812612435521415645542321205712152414014853136776720403321333231232453216124352782532342164406513171334727225211475153113345476257224330341117350035662131424345526107764233126195616722232315361112451315303580554111231233433222222632355641244361330212111125151254411622173432117656104316126871612112223725212761451322522533161565331335434328252234135321162455311115231512242038231411256921347481111521452072022142653163427417429044337151212353314721214233222323441202212862126767251253522478121103347621828437518143524521261321133341255316212611213443641631125322571421316527111865342553282814514131353442143141322231332326152616112830173121711430124143141452344210114322212222263321161344441512114212122113161541366224251626106332131212271851214112431145216335026133316727741816222602445352632543741312322126778323125223115311132335634237364511332078035165822174451553435138423141522828181461153386515624853264132226334864236036464153243753320400745221144361267484346272323114286234124321411323715767312133131232208163613426331344514724235431034524538043255150223411223511382441133262251506271442241384521528126612031403334222312635202616436557115321132114217616236313634552514171341528684621211263464127270126224456711765431231411242148341453647242465121644322532431001016685136611116611331465238731116324660701121535225112413146511245121152202227155115261283314314732223214454115142314160122102452513731223113321323343344432342741414213464534766125352114222552572351456743471445685477054114253212175220434456365416402134332564316032572238266433231151123136821233173317573127236151132431572233474133151162663145141611244613536631218316451346231122644623242553113315034173265254122327432638513872201365843822141511163515412135336444431034317511154634132213044611235053487341564674421611336125271541527313323224763252252135153512474306243161251331028413512442316307011571325176116232847113622339232121261575016136132131332321235864736155641271433275324341436326535225735544332231516351353233442552433123113232213374523413218781123551235024111511315431105163713311042422151625557256472641316314612217608111436512702553264222642711125155215627346237631311334513831411213624334603222522214264221237512254358352432311151231161524151425311251223123112647701468374014230124123442313126724841254524643163345572823511615324512571417443111326775305536461412504511614363128236422223311723233114335128121575617184212224351123314201162162337441169513816235412461152134132165231644322273346153733222223114152126311245576041251121974338351584251263263651516117153612243434323653326251648514451175167647214446243141323621468117112216144352022253134274214246123311342510212736215166133762442342511102221223122132337142417344214251254136831204661161333543561551327051560516221764537174302733347091464331515234181312333624326534231145536113431254611424426735343431211334673613532268703358634561624123322242275247212123265873421152251333132135534476101374234232421724446304023324222463142451225656274547345521101216631373753051141211124431643142151715551123512540425321511522142131132153711733481561177771635643243416531131511317444586031414135161944138211353328127161561331748157035317725117711135155483532531336114633231221534102416772533821182433262135661380555131345043656221233853231131174575545116132561221152315461775326237276741227325122275133116045103462344124231535526332124256631126313522551633854392431422214443123131171234656272911237461222528543711331437626713213731455207717535753543323223126431263254313516732623564102351541121135424362533212532173811333111418265522671413177342118514211337334272102332254155142521474342313134233371142223151111215127421124952321727441613321321144133213131054426042926614633226335143415371572485111816211175457221552312103145211412713218121115210541311041751324133333814325532343341261214331865421331344311229633357354333222253116656111372113318413347254376447752276514320622511826074314214122017331573343414514854425117381316652153345213626247342242113353662443323141411322245634510345224123343446456332322417426674312841547392111237425450121362211184235212336611831184114565253512810232133262135156427485723343342333834513233270622464871440474711345154216245610243242254516247027523417113410323273341443134733167150171372132163112216111327133231553341504344616131322628135642438813245255131122513175313456301041274457611363115116311443414141111121142461142333275132312158370223444152283353231316346671234536433354534245610864122456017211054112172673141243136711331473416134671321113231332211380181114452631246345480727221358211142422453411222382342266110122511214321217428462110145745453322663501421041287453478212572448141023442723553141344525332516286326526233314205154241162422815426202154109731123522615274229232214813252224233113745412154521346133223464363245521111216732212248515358111140561634455026112375235462245511262452326143777675383234742306213613866314145723214234416314235902766653111213221105123151224347237145251404118733174116170518107315161131554555441426425547541636653212121102111256213357702125113252466105752312113231223422268122328513112212782112156415252114135442744311312302255601167434375323133113514143425212164312214242268712782101641301451243548636311252111165432351367312614431663427462232753445134478752176193231141324603113262452467812222331212353113324421115220351211374335541335233062340135343861553233234233424815734271423125111711142581334171316111212633512512221242856362346128388438325645750331171327435242111332225650467133251634384561122122445124732221285362212322342223472307233223551743835116267523721315315328311442233515214122632347212316713113103214232451184272133161202131237446421156466312126876326784540051344121143311332748643742125154151332154212211242344124123521211145541143234130174576215533077728516540316453524512823513767342755352426887215347244631351352531332211434223224363210344242341036421672124344536516446162435242154412152412221214311135310126447262112157421372454044313541212512214237515315373132241226522281432681562322223154412115122334761214323651333833644530512616714247124312636434255344453215543153154533152728216110132111384521236441141565238613644244461373368222113506033121286423334327841967313663611342355243415102232721552134101372541133332705241013185112203254108341433342126642330526232716344103121222754171341238412211336112642455622536244221820177114724231128411020251531383327195122353163362266346236325132512111534211122221574101416331176440250452255371253131062152323223272665731323341152117851573243538033125572131127411122111340215724627662341551255021471631241684110513772637375362055261355668234537432112221751332215244542757111245814336011171764123111032625136551922462364110552431241752232311231621267621561311713336574124513126511854571422323445151753215832640351111114212572525413432381524704033633136324651376132452111341113013746115102214432141413531132461443242114337864652642651334434461231454575455561512313244353256630825222321324454142310471223711323602361322545602231268334221133492313362712366751237125132373527438771133262225545485415135322554513113611824447282737512313322665233422273214334421119563151162621723543747313319216014221342111301521351641613744472240432255145577452222611138145026111623222531421632851735113241412102341112337153754483222442517114182413115262216621252141131423553612623161331626022125450214421522286216142331242454227126671282521566121271131245214413571611260213034443126521122315152225243668214344224364856411735872133154913513112112655167814224834732277533223231121824382273320625254115137132323240313121354421492842278825212617133770728443287523252341263557311027165148141415337022474742654115261671722621313115205032561350221741351848713856242226371144452831326510161565461215315423524433312317165432727515114352151483424622277022106182352134407141193643332812658875122117512221312762232441464221113026274547552622134516138444124262814510131260712302267126153061238270317164714222015516432224444546142165424321456352281736116276301332562223237372212563411215355182227171611286254662322131412311634538264431174133555444841131111437473136373311352742153122121136163114453171443364663503335677751817110165531428046253211311531113113213512381186473684434411232512335313522761247543312211242121604275534421152241214381172613247386453242252815322144453120146353161425641366423633426343350436613122345633045142267615624426662844131181713124171216237212041462280128421413753224723425458153431532633168367134323513232422135245127212476134448423212303326141782555211323317150622421326364374336057353442214225637178135614653143743413171351321558235273071423141245123423648464332812171233334702780137753322743006341253831018143436772226256414315422561429454611354664225661323275123142221742531613151817563374210341107228302212451568283616525411179334421425457512461215422127465471241617121114474634453115121556671231210621321312384152222851313311741208662434534136147457114285774354363834124226114526341205146121132425471520325421355222245224232336143782546200752150326216421357315574176175183512344217134155241315623335130151845547445350425415421594143231134131221653435260464521575341417677934543222572311142143213513542161163618262311192554816553102353522612216725254171315305525663313143213225511211470343414116134213633521323216423312881576211182142221172254174717531145664611365156515755711115222377715121433044428373322426541715111675523274733401382062142321222424313212532031757212423245236684627394440545561114842141515136432451156451136315326172814332563211192571533155265131315537333141462410723113220236512174716233124331662236115156411365215208437142068112112312411111573321110662522614333553513265332315324232152371763512568214314534212832643724752557221372154552230346156132206611324812354228252435518222115341131546631714835216285440152242603246365410551354651121512611721122183025753224355681213334521554115558517162213122157212312611148452021121426524265306321474525326211225235524154431153428246112063132531255576157615435233315132741343421144121844670523111751734113432131432231543441145664431135115572121667026145102443123212433264464113616814852223431227322348830420346234312118477344544662646612221202234651123614212353354642211442533631614282511116161236222120353112532116427230307525121564452123813123621547721231231654227416461320215226421231626421654134353341663244511323462428228384414520447220524301327435241104154456316515131532130154264442228512613631244331452546257312222241321613152222153415421211215264482772324155441131425146701281351243341137221267413236261125262461320071535360213601252542741216615404055415214213635275131621531114116243655123218312441415121311115476326457436711143318524364121222348221322124471134324023565166942722162713163342125127225516176141271712434141115225131154216336664244114424313521634332135123233202481535512413514031271613271730424722426512223646245252316664303340522334532676523414623211786212611241231728114613375181162312351311124514016533564236431731821416435104321151242777515655121551163241514541324113107526654204652342455101221178462355225322421348255336134645510620353421133643254721033236200135312211119342413145072220164151103222432732347426221134112415227806223106122831725113611324184412313444151124512513813411262341425783232342112442424115442356126346333614212344611436227325411237451533345563623513511125835532334780121111122222326311362231120472332335361215343363662741632136254363165247741543327517231433576115513426545432151342555427613364547402426143304252064642625247114114111113142825727361716123263531163323531121353333851513608653271135245156607032214121034447221212424321744131116122866113604364427654753515521362235613021642231413627534745727353024312552222354636504515146324201111222634715365514624661484434565121135154142537276256215762126251444141226331945057571676805123231583312434557322415282525623475253413667150110431335486347131246353372751201316411022425741125262671172372734331116243112721234121446323263675084433212453141215271312822324034612777304334412362722486283102116123144212135355246125111115513112523116181141244723353477353242345151111425134404242268322124132274114364431862546682113243124310136062632073545426244224231224041212178232841165131654247181135411344123721617634512472213188544215112365134334721645361236538434722273252308435114125121562364723245271213151213116221341422345312251451441242346250412266412423942662145634812524663143266331161244643244122751325181285143672621423547134538312512443151362721155547504133214432332434281912503315351226631314462164217542124133641470524133244245283213313221113451172212431717222756216311114272223216315922563625221255415072435151372424137241213151514361324312357126451623124422481233484322331253206335374541867117442213544361642327317841853254231543166138131317116534444414282243211525111421233416544247342854225513712315334146250236331354272214491121844435638423236812267111511573112232576352758710364203613246723542141153541266214121228441513133112123222833415743103022511741462622241123324283730151117334461353163817341272223147221427314226535734212441234753225383224215531108532117455431233540641126031414475774521112114331711351538854116455143332111160541301223573245133542352223211456481762332432813432441233722321163215253562475311375442311307777011151221213212061335353445478142351111124166852642145105251107143212242954043230212755203263581251612123143214242524726422331614122265356452536111125420113631444156623222211212323402261321116156231565012022813350673616314171751124322473111636121251111161255113143121222215615135172242124831311583130231003526443582501811240357271272736235466222457324136412577812615331114513361753215211155414122322251153649184132352447311622112221247511613319318133915272116421118325362348351513355731111564170132813713731801852141532132522125257114028512114141614214332531041323382488311161123422212516147324344221531303632732415541562111572316125423136224273115361153645233334341333514014251313236366535224425727413633222412702136350241117224222137512529814113184781655332533525552846551161446716133263421012162873133425454611421421211568123214763312740143033133440327120347623855123422137232711232844053166267654636126157111343727511315210313425152427331624432511645115538465632444571113135323232822132633125153813610136115254431341273843121812861448722666571342533134445361618531778521426134203610921571344652053124510335122431372140414211803822614386121122241138131441122184711264244331151421142113252172113325622212365761225442513231823312631610215311211526747227615242341424615221645472301515246147268116125537511244622134434362479256317472672553342133246432526132248224523331210272466714723436362221712132406217233355542717344215322222477154515545122622174112353851243151133271212910421334832563125113651254731284532142263313210122351662442283123421761382353232164352518462612125611352152314152310011362141231547314221263337271161333425121132225173015221328155714444354514336242613256011208176664053622723372493433713834151454531135640104314467270131241134211156424736266861282144562447424402471232313611652251125351342112885644225251111424351173546133442106111016434647112741050441121512426883231125141514352227533015188351117352764101433244620013013333112203424225264614113285743524416337251312051233862612424646421411715642744210125512315753411773351224351341103813525237241273162124334424337323302014712346524679441221145414311135831126351652473113821322521307762126342325215162232367268162454336545162343313532412346453242512511331541341263165424424246341733700863331124214763532341621422115232623155128141302244278472745151312112557325154225665887165123562636712201462333272042156212573121035615017044267741412123415415882136252341375212511332517256185234533251122552657063133743163201793128365242645372124111581113826226424251365446425037324064522625112534521333312545601412112412303305172222233316224321736355151412113222485235125331437513764535221115285432232213411236162139124133555364111120213237418255665242152141321214403146154682241314222184312314623136322021144821433331531133313131276444023523615135212134231323526557703437773437111422516322638225402222462016348244563416616116352512421412151330147361462563513213346211164461225423413333446112474523522315216511055323537224714442222331272523223186546753615012484332114682141418443643274281632347323518212342515141514331253236161121232215343011446176557172152613122733725114116313101136287511602675626284527561823212125543441553136018542632011414554455314771632324411112212653540502512418216235552552233314553746323415211512371114432561356633812623125022452316144541442434233517254126243214363654884801316666326130425363424565313213716256133118311234437037884641342613671214484413111156053772424654102621121613432312622121125122047405145738120337041562721611322523313043365427316385427316534122312303111141245454233154145332226033443542211513223282064311721563114116113725113375352428522211541526221123352176312132214224131251713351083651430405372365616223163261233523222111826128970346362365542412352611265274362226767124312317132241145254811245232413083663014248355232411221311551112145116214725311725426311533116843317706752214332534625643764232232265373357212421441721126321212266216314532234211203333431513114173724116332452327332342162332235622115238231112165423564316486534531151844512258116331517417773114432316147224145332453523588673223320311440214241151215212328165354662212422321535425341314722232565311244312311631332622382345261111611442121685167251423234411112210414273404115237813671513143154854056360311163744735406611551124552242361341653122632461145123145633809821241232731451445213133314571071124215061116472371542121314301238136524445418841633161124352361272725583441741421257166131630254444211041234545121263424335413231545033112141213148111225117153118131131114324911264514136135711112026227774247422123322432432324413242121111674456132121128111411146131643445428041132761142312248432543462157133622159245177649522014515150216212741141317252151021634243323433452328217115156774144252311314321117235672324405225252523103251322452504453811261172520441281416175333343416656274552116471233732126533566716213414522401212204446143371431305171276772127453343415523112261213332224373253123142234444243404642820214204246256115264210511835514450147435065256311237211252673233881211524110501226211156365172085114111312660652026386153135441732158551476827143221331611232123113453133115635451332216966818427843216812751125121233313164127353564513113222131547229202771631353677152313272312220151153525791711216256661163115145312721333110423271766252841235866625415526586345405263112212421163234288452311118146136155219161214541011121111342451552451112633323405575331537413132156136321632211152804321341313262625236311325143341141351222764113022251314422332307463354211737144612233252532820224754641477561444115163352117278462241357344252835454102116161512721657374321131211042745311515078146371660561634135161162742426633733552322361351115421445341341331122756874122653753634321261381163644454159652617543343123123312232251374470171064222263882244425161464258337832561221631301813111133553712257157321225783153131427453614342342253040125067655246414422658132154642032236366054123262135323440675421432638111553172524623112631131431135013346122412231326141444112636551122684291874141395422357621373651131022412464028114015246341333423123254514731347602226727716241467135036034364384802361024533263613618214801231115610042648134127343253021351142502214441162328164572431344151374502341421246202312133425630261343151123154442433012077211128441115713132311131184516615411341422135532355441144163171421116644124641624835352322123623543323655513837132326652622545711621243313552346664125675613314423451111613627451572252444512543411338737232272566720123162231125341044431385257642431845772552111251325043211014221371431215512284501526133162446433258110343874524021113645232712327333415135353668671654671613756821135464442113133246351447312213722203418542153752212412132343141225164222761122125513432247423121525347267711802244635127312512212117536311525244215243382025261141362211325215411353345541111706657156446125466324813213152215521433324252427122313421561258313467264224011554253475423671412114734483151122351542625332336600452582676111525372222537171632042022413242161741852361311614102312418607925123442337425438212316241024413432621110421705542241521153144615136642242474531341272141652250371715434412613236144524644328363242327266856250424428028643322253420234136229181564181371212355175211326352181528241546257232157081262363453536924411115152115751412562315532864304156123323842641422148566551723253345213534281524237422227841161211724329227123124221666212547361132441171535414656322443252165173121343114726228135513223541653122325321371632351237686471736365663038512532234561525530861203455122127245375261031731226223331148568131442555111651127623243112631131137570733615891113012342637741415522537422761062466361287533111615355357643850777114617304432223123284316242622517521115635344641751132412267345744412143161315413762432222723251235625527154445221194242268116311212261557122660531335255113115476543611011467123461732336224571451444368135521162321231633415127162463342262241523825471371171565214522324446212232245216616328311245254155563036745515247520054466225373302221212322157541245331235242642418134331665512880533332316324843734257484632411521180712224345722533411531271512629677611324151421033527332725121630626310505474422613321135212124121464194324452161337143312224553514113112622411715415120623213516516765367425454061321424122263341511151165412221371514125112111164172240342745112544544256125163276510540152715103411473227126424116014631205541311614570127312151323162124213652906142171446232362213532342114333622131411121446241253311221553166611886033331333742538311301672233132314362654854334314416517222310547103261381021115281531811267102437146211125431345422013427622233222217631233827401171421414283371123434253212611475233315352753543251222026416737154536526551222175418025487326343332613544272743478524426232125424331351612576713167712163314251341621018275471445634251683562131561131521227330716414216480615273163318151621130634442325586161533312353031262618255421313150120852141152671312188261443267535352371235271276127532437223525272512325151151154232332468121374131206385923327431622724232261244151447648412525522213375241236557437483416568434134422433215112276411121132356236556101572137360252322216333212522421644254163182749731621222554364222684831481513211220049014654634522445516127613375014372631468552024665216616113248412433622353581544121446122286152353447355502743215350567311341425378742232141457274523152112101134231243353213224123571355116541111741512212244255173200795244263138125435534674121231432111755347444242873631425313232234244954143163438441224356635411166611225601122213653371072432342613143671330513155111365451614344121282247738024224604062345131240554124232635415408171838545651118183321643862555460341124113252212234214166583411146317142342312182305131126551414161332351843248431736336167624518821213783431330513511831616286121151103424104130215414103612530301212345173643571612214625835225162155574112252126511512418154313632132111142342112351326562432311216562325742214726345454453122165210451443422111711661513365112136263333321265562635751212612245152313312332224741404125171664225125427114363311763131116135104363832756312423673111815112811113371311541141021163601411501216321352336365113225434136122291584414810553151271223343034211542162741232117183116280821232428321746515625724314262012314285163113312315487741121176216211125232175283785321564223111032431414313424360723234322335155135143181559217526425211128345311311223442232155334461048247123351235241623242314515856651274722126031225511161127241323161350385121431582125441212310124624131112211413451616673212524423465115872666534652277656714644354061515342211211551531316214831006427241521652112533263413414132333232532246111577532403114244526062165382275310132623318012253724213863511440471531361028454136532262512331431324121221233114335132512324421626611221537811550816222523212346371132222684553821274102561111221612162253244313427442024366531413123413475371122817166631071621263013241141713035556315139214621111253515264825122507326261226353042215321412340412132328171341146234322416161165411446210322157852128061381531266364277267814416521833151311313156264148502112065542113732035315441221312471125443486130774111285123125175111721266224625161432032234334612345614711121610151211124344466123166813142112331640156635556526170136133725323164054443531303762152664708333072612142358130211833322311625656131161313272444526450526276513351222112512325552633334363224163643234321531644251115222215218340760211211345452432127321374426771421873242483676113824262268372346222227112223337233423644610351083641517212136225443231247446422531524413111621316251252242434242112210331184251332708504211724213133213213117577843361828635162263331147711453722731626255215532345244841341212432114546221123132113477252167711435144443117283262135525223536133165123114356225662414112141212223151552067358551164233313556118141732813415067104124184246318351141177222151226661437531633513803382134505146315827511243231212431457007371313235451215218235435623221422520844011101311222225323225161131751445562334716281241068345412214233373005132333332134135672623116743153821326521782242431123634324343237242111124231421033285775645615522531341811427825714211324711221561522473037311235226451560170392640222373747461514281332234131146463424453336278221234233321532141204613454524337134312444113430232456411181541316601622242652372814225163351123311282923322227291583421136153761654662112122158621131313351144612762514231876164563243226302382103105383165524221562327513212533321161524284186303111153151043434625114321352922155423222341253344371634345838624521410611230156225711754246036274212017314312317446212157231457501052322153102525210342125881283126162324172526622141234233200130611614423311325114246533421215534113513671612234422334421223112524354633571111152216245042143321313154415454326251134411363635261607116221540352142211121814172255336511334454236216111613616216234345453513652133143812121131314613332233473486746524145261648212733577416743111131825153511381663643531424264261233316414174303271521023331412261351021521334132346232213626215453834467321432332432467123221322321352222651216251626115578085312124166315334474224614472812221241112448232123314333346722644312166374361721213713571661511161232615314132186265524126431543832601802543263131476414324401734626321342142204152462355127324565541524314159183411111371347314011331434712236432512451123231124251347335532116244152541523641425222152688414812145033528253234112517213135341142261741622521624235044344843643114128274122515224561103260412242443114602514111377146632337017421757346140607501287612518354032162334512221527581212151205515336861742366270142803281172183616123434211223318325262302436357213216652205053341145367613310403311433536124241337522344144662113522132043263361211311413510225062493253876165311122252413232233831122144236126526563568431222301235110366572241452232562575451251042027141355449075113444347502523117221511134114133326446125511321223165443803424316161231281338553722361231661122121161513138235641115442154512445732635242121313122376341662114367243247745531311233021112135238633221175156221665723717116121441306253513146425021162141414274213382215313637315324331618716332421253626258233316154262142247233166478041783322149141025435537402242244235073374161447624541686253441721531614253723564231136442223541223131168211471353331341165442361635166115120646453664573153433732135051116112121641301416133533235834261434742220021163713344113544146136561548121645321153103652631704526413125125518523242161222316121134735173121233122522322169154341929431241442514531044352615036237065431321415868435042314131131231212121251216521316140765752425352434504045441327779124762151761110626721341612314434242722227213314214715424366132874423247554451250346453114443421322631442707346717133336622833315653622553251121451813421164233215174321322885214436203288263726343235224125222474132123381250151334358322441317524631353416325731222441445624531524221715151223384313775411113861256422436612452321543322818527148634432421131025720555353322554754358107142133233242437172515674272163425132232151515245167312423211615511338442411221136264513134311613312121212411472524212665832251433472463463321171417525245112124121262321134547212752132211113136133412511152433133642731512161223221232402345232813018125565632104324221311762124214453614224242452340414611237012312213383755223524223001431416104670681551052721631721144623311524254522418131132325374177116421522182215151173435617662243731582517132768810267322453213252161112454275411712833232124511542637017147224246344242276567331733263282131475741443434112313243451512115235423752724323601045352203352611533625132233555758402131341131351841250223552411543531232015332362311321513041435314888173241141633131326372436215758564065111342133151361511454833133181134663315314226611113284765147750165233163331131335745311134513817224632153221031034222736354871161522150312403511533111625523554154171254622141321213163514323655651285451253133412204126761234658353712363814021517451351423431236437425251357217211145214525335117130112411335661255584243735115673333111473746246431344125332406262371705381230257053846323133415346260362314011338113536151411424615215215845254362214354357041260612613731241252272261261115412242613836204244247213551274315741454361261113544204174131154141264824421175626323213145141264161441656373221455734353121521257485847324633583249231161241125121365864442161123635531943675376646733655032412776274231264812506142644312651624565841128134113624143454314663635755512201231814332256376121126471610523123543081164203273138110831564413201213332323665505736373441278111112333044262228207366336222714446146422177626522203828444162462250813253221434231253235262613731118544661132661731571825634637816511251135185566410231441543324332125107226349222165355736555624121681134637413134341214613234628225923226161143322615264273031377163232513216132150072311262423667681467116321232233713527566155151110721213352546442131142806197765257444131352633342242134937674243441115342152535353331226127556772211044121423312412647234152323142122721223224415212343262332422326821766341272333245362654125615111551431551238283132174628213313251312126533712562335581332113571444744195721756633162024627338131273121220120244515464114522621202030121145257284321711461773119650535518367462016453715131724511347114343215523373524145524524331432333523218271422217246810113016413727522631143547455132521131782171214175133046485212324122423151142145233442727812335234121666111221543521426335261211371162413435137526712404473313411234324316112672218212233742211512146221343423106235112316063355552282382255210131033344271341114325322452615422324723526342320233323211151512245051363051562334035265234273472202324475532423131532852321423253211334352255135614533146202416117745156413123613203161552214215721116211562716345160422444747115111334723343153244417121155613215537225126418341306433724152216355423312452331142571211174211471203620525125526654222511213524063532313523130642131014623623752232272121212441162182324151111246176815113231525314851157114325270711753475341712222221143333541122624455224214424411376462782254411568743232151311217215227112221212333334711126418221443450713782852112254351453361738042510462846465215771611264514123812211744558643132133325527204532532637663421825081265366442041244354115616734117465148163437343753135132347472635643654043112365332212384123112452336279113661165451211731253685131610562751271278523073414565517354826136626165351526325165660641324072113831147676154221331352112832351107141450335372421428064164424372526234325113134743135316214474221312846415317358471343121454817467141522274715314313115561234253157111174522411836232157315558422212221351426338354886144274223111360414244514142260772545153667245343311366642212013202861133437333424531253113856511101211263151144233612461415104105556125423376816641263222131274412866240543163433345722171134440415182104433544461272422361541151383467736315381233312333731013726163025157625250734241712357323474314523263131312334434132532124211233241141315156529411255373112811212641214215546173826643521830736241213123473152611146427232711173253273723311316544311152146514541229166663022118752262842565442246322432276735124356224482212435213344104221052313151433314214312231621338141021324543350825221221701411231343343224453140161035637134213153336132127322125226311122426112223561111492127252527373458113171304780211411344514346234163435212331226241334145285461382412122511163251114311752443434258243314266241522843323511115511462343122535738312111083552121161614361216124446420621755477221241747512182365127523813166315113745036655221411652226142221322426234172345532183731538213250052312323723558532347931233453251534213916166473124285133361163544451426333226424421747453412343139446122713660415252341433215255041417221151412732344526315227343123350314551679327452263517352143027241334158363121176164211713153416844211135521532335315311745327753356234172531217735112116574641256426815127553464117135222507524231237810337152531714152456415631416230321426330363825361535223455551814124843153527412345326618234462224632562511322842212106203131633531663166311971412212443211313221112356365315312527413325133361352750777566436535546255253134662648686212251621252132412521732123711488172214025162144214211552542473115434157225221613155616213626318274211326143344369841255471114444442261124461314265323453861125533732811313465354572541647546154641216186444223115242235813737724142143064322226717232438153252661855441424136614433716112113441340438643226123633743276225175243217251282213025037313461151022381351112534652647333553136656347712234117108336271115221434216162612172213421444635424138652463323233431571421153572617251543351316452354121321266346123554155012132147372265175344351103342334156516214161601752114261553312553181647633434514212124772051350563416132634712730246453453622221671216044117356424724561121114255223362811316231354228225265332225235432311461417221603007042648265167417656341221648511316214241611131622625326481624323321221203113343332176834662304357311541656438252332284284151114441413382323535253126144416636124475274212813426101818242214882223152234413224413227251231654313613503515236547325141721151423562536764258138265335177107105515134732751112335135321216383113252124223321405433325523731684334441562263221723547243484534471314111161153801241822413534127586471476263148316632567342111428121741557161574351143233311136111317222235156221322123621244812581107531225154143214711121712584102552133514321457344281612323224043421044365712375346622422623554154434211164213226242137278121201232282143273222452243267845435433214172035310261423231543184355104775171626212613164236248917643322635521321533242252344064352415832535777233223216413227418151154121651356458346512557450153216211321022282221434144113323713123033122151212411253635336235152623182165223441143616724125864322331063213114752123586138434271182644233724711221364414616644336153114614623456322021265535241183127434563511242087144226617333276706222112642213304624655332232733311215120267213315414017311231132287121122574614124224414371335417221531222631814352456115004230463275134624331223631361423314363147314412305211711522264527218324153261172277222353337241323644115642632674014102215131111731112116564211551301727112113293465152214311322223136171617626253138325175172221211815314452731121261243360233313128236442537462681711122443135481422143424345121322223325571753015302322514122342216353634331241611141132140241582465112126605516204113815434333315112464155155212143434342917253742463122284113213141626222122346522416135625463654215522042132542241233410317364627731165181611351314317374038742123352425262432523746325233164012131233117370241223335201151121615621146274513324364423642232515168135626146131460031213372432422146153311144202332110613441136751251923271515229072465311411116436174433411145171311323232313493313428477032414233641621483514238815116825228113241723216284837524622485116225114421434473211135622323315211571134451284162221244145112541122021423432224915327311551233325323523232732334614223433371454443154333333242375222152452525631271021214612113761436531205433337533123152111108126533223661234622155231332454345122125111331133582422141051241341561518331551545407627555132742265233745022143150525142341335114214182261174162874127702357226342681125624661033323364361567115323243222614463171374518422231132686240125673321113211771545113251326355664115161128233121721008462762348621221531750251111141431421543232471350153636162731823431114135175331214315322440414253233124722452651112465673251334154271218151464356421562164243651470222124353466331627216211317332123685421552833452512444425326153114131123712345146125333253451327142827171222235511184031333133513512651012121221101741124153453511232023514445143574523334622146113211122563238713573236112142516316334613181516386545663714461164158436174576171316541711836336441114441473428332234254111052644620421814312522523152455570644162252302726664364325413131154121420372234033225714730253023711216321642331831125124241511535516330547171516261367631120533655434424311101465331641121123121313513643432242525414581624115157413633442034724425183016113465416253124574373441232141162202311452582123242252541610277141411141234675547514453505587724144723046111173523111120227827731128372117114364621434446417317056142268203471223343451635146415216425144115361214263263451115732232222619182242456256122432237123417673330513141871613917131123454146213376066321273113633211326116562812111355424372225222623123154051403117484186304718385552711484312244483528356548120128642141187113641423323411652334374163363244266471657122226551137621317855317255141340241745516157111424181125237224435764128337441025334033185134614343161271364535144027378647357516112240516142564307714040144412053635234167133622123633455125445353432572511544246355331825146108714341444116255158154543541144311666110511624711141235612421424021415312131413314585137524535303712118645453524211455635120251131523241138126336221446514003141524176242836505224382662838752113111165332336622421314102223121344438150544732116764614512814212642321524131453311175243575621521142162212441774671535526146421242644515336771341223341563457526240724232872244755216730334321687634121116432324336550171324242552651424256357237412315432610312022173153535561113051311212111322882431151352516541621541766863160323125717754742312128645671222213276516177531627932132141811541347144341372368135111552623446443362116532556743741253327416733328113443252541121120651721315232253146851141212641262114342241621232221324474234322573333133551461814213211153533745273612045516216315231755231635211122113657511745122535411326412446612211601171146321351354245361927317559541222333321872421340175502063437122464122265516803645233334111151474646343154151381531374540175744732231272124323184523117342344813401416840128325453482141337113852115134656431651201255313571627625837123723272245211321614843513231428122213441114634652031431441502524431107431475227155665461322214623227254514217644544514651317224323112332123384135232862236114225526131319132142735431221211382742125136421221173331135512863611461136413331214711456523441636511663621417234178631615572522503710112162015622237214326206733161464123553246271632848401521055333313215113221728221742226665365155121431362336281315752581743262281314236415362351471236464215126201057348142722613424635752425157313333203211312243004582132624137331261121151112212329132111134525531511363565751361227471541617126747522244213634121222511744401111323216837012316716522444162271132412724531116816214825261126270431341324262252432250138741544512673422411241287126141582431137381418646401845542336231625871062111182661311332428327540172245336411811687124631612414212423652212653141354126127311888235720241124432511333367366210413410434141225282226136516332256622222136537157133116448372315611463802626732726711873531256535151512815244061254248142268254223120225631636172841133125433152124311233823221445612245253411823686264633723274104173512157261736122213733213423322742121156312243312615062402605715122211436212232421331157322611442331282231465125211331211385257541655452035601537514212434322324321323147647152144122130291124621436252115324214244783828514144442122222115320114320076103022064272561622487121622686342342425172831213117222167504537324223215354154574263233482171142331717125634352542104385131111213213327626354441131441632527742114844233153722258215612212443453413126141281321284257501695832317436441332361515517315245312643653532123404316144165363854242682403364521315752348027251322332362172442121648016415121857183012321574261335433810625411545150122111316425533412342314432675635322134131676714241823725221246375411011334112603166741234452446233124326677221211414251624112422173725621514657213675621254455213664021513661147621336626411122233633312842841115151421625121533531185431112651361672652121434135331151234321321532131250373825214246221561167154531224583722267223441041321224321112314321415203111117132152244525143131531254551133523411523436012401431284261311532610957434658213572343403611663212512454371253232155332465183413433147543454805267641641836462116228314252126711451831761252125522648228031312573727613282263427244450346663651115232523622413331364121113244523144463235631241411736651533132154532223477255034537111216373254225623111225415316137401211113315251314383355323543547441111113677577348235142332144542143217475333576314432811527611624122001112645467313321252255484513407444364311274113084852511492213307334612522643847135211213315147216210165163504511454134514631644141505274378634147323846352113285716542152335714125115334132341751688114163108241364131314335523425244311531126161375151523514243413186238222122110511237135114414114253125514112712621618241113554145760131152411343113233237527511351076152524176116413721254347344134713547327254303316850152444625601132333153171174818235212554347235375571451725124483134633413253243240305123676641111654163267662128271635811110222263334135681225378841232163554166121673271134722322436333425111351721414412213247722232252323511482323417681837236124365727284022254311614633826313212111031842371315285422312341567361121431623745323146173114125437614251815122012334537502323136546117137111556762426134204311251622545112242532212735355221414112411141021523231217343143443126845351541422621346644486714218232013474025528451018432236225641217367122646233251411201582737061264025454401315863123351411862253111463117673814213585518451556445671423155321511322258427336352141312214115228271156575182326112222562355553254475271083163222643271142436111110545551712101513123523331282311272121241255116337112741156363711311514225631163222531768252311223551121865564633323053533503611635332241461442213261355314112177744731525324134341641221402432631220172213844222183615352161351136220644184401345710352324128231131214165178441317420014634522721224524346533136261444313266233430587484144158141101544481113514424153314255876426071527212454814225033307167354150613133111135311231027314201336332228323353411320121322631125657465301316236461151412237226656281433782243003201241311641241296417412213576121104521213312133271410411147212124332301542244445843424557523445567526121030535213236148422765765212156421318241222521314124645341321631591633042412255227542185532282442220642251317362071114515345430554031775253213416545014186214524111318543233341441643159032452020405254271274761153524667133263484543013231113812314111316233242142327175385204352514455123652315455742523384171326172412241251446754823355233111681631337812631474521823213286115241243623342224030655254535155323214216533123353424681472411150133421643263474624216134715111744453522342353341412144146111521381115542234313316302353224341155545233132123422232543736532314422232434084252241582822312582321413115151566154128282156344501351112108334173531151362526234652707213362314243252953112160228623257013274366346521842384361122561631722154132432132715802512648571311615143332836664125241272621746151382515514142557221424173441241131821132315412348042234211217212123722322436511411330251141592113703800162223253215331541551343217144112770246413576556522512116262258137142157212234343543222273724255242254172311471312211651172712272244783533211423452621731331242338446132142322322213137312312531447333656623643225311335121344732582632325323244512141516611222221455310313525180157161214226222742111151514355831176405525752153623541232341573256422345141144144054423435617301343632162227313813166131144537426933841412122535437268552321606323111221336311526117523433335312413157101224124222321811311383522534433633233232411138222372523132110573443626311034012112063334121284563143343412112616116222442513133521433865054156120122334323162837262433334111475313313214643481624822113331612032444148322631413454174122111848343116122541712844644724224131326133241321759232811331767325211231744513162833322136514762435135817433241031114271161444571211682134416417326440341745832313421116864161136123111112127324255361237110335533272580132171333153544128136241712173426711451216463252471831133228234426536517733734013671361721313134672133647221212622474614625142031113434332614126357126541141611425165446381731446136613222315614545512320614531141512281331713118353323161531442455612226216231535356433561145243323246144417241133143220743436441415381333233621811375322512562238261433523313306230273311512311447837741154511330533123526217041751431311823477651210123022213664442111114155734122354224438522145152142441695335343462012517217411581564656575511612352344343325623158730431552114145346433281164262134633711436333458132334323175262812325742621171145253234523423244132163481163642313143550151625421723440218217431432381221332377185114441624277411411522223632613324120681175561141714435477536565319186052412312452361312624545653412412524311641773344311213161723362524123113561144556368485641311151247255361323543218613254751295365233513401534234121282441348211033331187613010834333157124444452436153487141610117313371254458124522873131221235204312622566422740332248513632221253133253312221144855023024326074521621343140212113625412116218111444331314245122415565021132476322554133523123110323880227623111161567371345054332325651332713371542244252343164253151356774237542470321113447464222631477223372111351612418412232802125635183644115224132446557322354123223063712123321311275413303438243651368382027115444164223651145712349412145121348134112581115220247126314352302242313625123060314175200234160631242235211462225451317412645251126113182053553284334235111262122463734623620522171224307625531222632423116352512266252175531125427614331131631741731513357213521134143322615341411633845473212513362352631222112342511244612355212611126635426333255420113422131141723186512541321312343242680672003111234522611632116353641135156621415138346223445167231238626112435721186262340564666612473420335845223154772134484244625361550110172673122443342824341066257622402424433442871717142033212262515336703113152425351505736412121613131234118407212431578373413164111217247283481126513172711253454444426631206353351332217361141144213734712244323161515673128283545162285821147245155172313726311111781356557501128461434145763324143522584322363154351221132863333643313330251222111311114340351511201124148514111314342315116112356023175254561284826511466345041121161312333718331024741135143423172630186116561242283528252323116234743235822547027132125731275616212634165221523243146014443125134214710671357414432124765221347281314467573611241161435256387652212751407245332355405812284111712111125242551114512215142731175142455426131437638641135744365625154231054121676342436121165224646237307336716226315518457223341126106240123120531261751414844032562453521215114213436281537152823213734232345311233174124515314382341354232053411721132712236714663242331322111420442123121413222214358568215225133875158237221222711212314113407242565524864333335411123223751762116602554021015246631113112126033383535423451211415311238366500323221131541816144233116351532110142641222413012317374126585581724411220442622111613133254533144325532545234554744530371503121581353124210524433115628241254123113431586745631510022248513311232461633275322242226342413221132636212131151654810544452646035130281154614171317112222605168343521281426371261473102223152051312315120172161433322245123611242147553666210235131645533895102325384671634154444223351131721243316512525345124256424713111388422455313352114431233511335272638373722131135250333135434351245524132323231143357131301113543225580711531235225413564121363344164332114582175133122511311817171475423445266163114114136666821146423315231411325533632443415560581151821534165663223661136084222483226431611683232855214111244311112322421011325543454213232338102513431448454482367735411143242323322443122235728163132555327543377116555734145145272552311212273421251315035423628416564113221366241466407151012551424511554022711832134506456155443747314125540765122145625285324165375375513422165421174512180154148531624114473268441114135671225616512132745381356233342119342161411811732227214222161052452422540112722413426112236414964514213335401133034273331152321031212314432231532631273824332123426273714401126276411453416216064324641141435271531333727251133435221117358131268122375061231504118623333131101556313125474318287262744031632241533272111132416163432144527166221637121274211163332251113422944657210252525521639344423125255141565225746126512264312625832345462264025412216281821555427622215140634222252343843131248414224146234118116167113810821133123512342524458144574541821152733127537845257251546621233124722252331312086321614247562156313442325812214431236311411243223141646113334302162341531145470163612223713742261283115264242333315311542157647471152122311126553354436534140264211171712121355322632142356317636281143146321212425316232734132455123133427646252754641144452356787775112111463113626231312812315214322635253613431621033114032333432228271623761234423222134235118346147553436621613232218433338241246513511223325630263376222214103260111652613331614556423327843471214121263654724132424444231021242143415864247354171612144224111642523135441111546146344322404301334871218631215141416541323342123862479656141211631611884736711152313261322223223312458611711311451345274432721368215151124841581120605464427523238229341323932015115413077237541111238458841233720131364341221321217821112434726643124111615731111234444133245122250121311208363474413112117358132143211145746414751281187152452301317263320543535102603325214536521162464633402113141241522533366125434621082136206462325442247742443477321322213621343214324114122823048346444773322261513254112186542314663343516464262541012273531674383618115265322122211331223365121232121235401132383112120115142313614145135552667421261721616245353823713115203663824614921351700444344624232112414546357121415353651414461044176432131818212331711523213422225136021271164441286216286335261242787126114713753226314623485415564134424144651232212238242272158123523626555702345146644132132112622142311545126843127336321014328343243544726624240118112113912111455547641454254111343315123134321516423411323191433643631131447283324324212465451253671412434133128251767512115610674331331468316442133611321312121433142023173341636474314316223362133744642714321567433124164635275130134121311251627134162523233453314256126411361114273111363466823513111123841317101752128326213431764282484852838434015132544325621571512892354334212121751122122463551446327213311651122221222484222011424527526233133311611651654361133236411744726516217438182063131431212432661472445142486247441211311167673246354221624621741252402311222312453527813213243333211227634404492820036244244122233122410375973343034128423335728711351253352210331382162152644142472521261112485250162235742121122404441105271113235124342132645680736642112425704231927344561722126316135464382555145223532335533414294214109315515521371231523110724317165174411285327511155551564264353373612443645425132112310672476647434143626233324458114843127411133626065216811227614643543321086223548341630511413467283511823504434643433362453620471244127214381113161335551668626027541221765232769664165441572611314411313035272522152342132317561132323455721515242337731112314232114416202311895318222521123625124232422410415245224352134262112342185321132578112431224218171347156511021322136143135518021229304415747214211831122402714012413633434454111133233273715331424261330274113745711527147321465116361211542112211542424116323541721121451312131241465121113023211113066126623336542142014451613323167422521551433111514843162223328127122773164122071351522403261563871222331469114724464654666138125133747443223261420132112472434323124432846551665422611114182365414241323357144272755658134725446452260652615346803143251288851356631631126143632465861338313213782370213341144222314724432121267640211463173314652214234433652442764122555451303453325118411242314182121373172013316212224183240123416630545422242441151143422424111452215182533125145236313134056153671313283165122133223240752123252235451282321212281123212163415256681231512711142522634111152416275122773544255124123525251542161115581332235414221031172153758131353666044233169172313523157412111533141146734646414828622143444572522102112136250556222233174203131218145731125558313154562542724823261614341164223214171735324275634822212430383542662632322171421157542337112336633217322631124152175113368342343631342310682114672514025145403121544332712325624734222121681564171711521362344204102525248111052147106464731152201123133372256246424261266212022322212231614441715311112522522871187643421572310518451264171421235346021566826616113731132516221617554113555327331757222101114622321436512332151332724841426624247623403143344362421440214034741531173114355453117742377172354513213122213640232318314141121103465102481312622223632432515142542466255131522122654811753437722522334134741511353215123338145531762543166335311181241441216622436311722122664561242518321425526431932503621504102235111301141114344441593261133143336715543366252468271320213362521251521136352454741465213285144481112237636325411243383544121814552562254378673623340831862113315244343362446313262615446222132233311242221161441723760141133867538654583104132523522351314434456222355181203311841115354513122113671714112725125210362027733165737411312527262172421164535248213621256428666107154142311722342741121631721072557741272171133254544823181423326631273436154756417475524312316535116147520524121214532115211341265660962233421343620843642472121341031114362712144551405306136115141161362354117113643465656186534523445414237244018237023554914244146621255133371383145922342242215514111142232252132622511362223315342154816422224873015156135266223273327262431132624361173126203643122375513811651123362622144132043112133227111712154444412224311161141554145412212237461241336241143145324667138213114165718285484122122233112234823344131392623141723157385121224235812311754486420256226256122564445053364333583133556465037224612221261433357151588281771251254513174484130446312462254523631131155222611462161470111352211205513372864211213148133763127144166148125333342546123072132615202151241561541311662647423024211045273211315411421813253153101117220211341303187232752152233102251435143143361762438822334315651714321001533118523267544471562136116421114123253440021625137858152321321044527513322733422634264681151691322241112604313345151173427123642314076136722616227413214242723332232173163513334265354146441353244563312311242141175162521241475333118262111223167114444112152342323231532232119161251160113225705142202455773742261313545732217155823265121522133152611765431111131045023323742231162113304864333125523223331311545731238502243311644147425223125213255381130418168310115211675561316413553383703748642762611286631447423721322436138057221561551117548114141415663341487235411711672843671115514272231845311421614113632295531212266412232613362644523142473554164611152734131553228331234346413545556547601463615410452212211175747556661325223226533322322132112533739735138443222152651114733222353243315463333157212122221130128123232466736454312765042525830226422111445223111249268315157636215621745312113515322500537006238610217123523572115543128573620312521121183104333342362440117332414231136166242224441123544514447212211111402472351213316342314236131341681471322121263310452261331730322573228431228152421332166723422262126151811227273562125514321241111422821246513131142631122351853117153623136110614613112241252530112042352446113145311131440721268516332144464513216425361252152747064321674116301417414111213755113331335351373441358211110142242305144164411236555123832384124731524633855204424242124773235247143360343312516351542322337123638444512310214670261232450432214234312134253266826116228445123311578354155341466634354442332362121546826127333153203411374151596306412114153551114322733653624047270224868231534119348415127753371113472242342223428326301523512327321153316653145211651732337337506151454111225432655371682114222463531132112716753253520173414121311453111725433721324669232155136212112172211111311863648148161144114316208312521540143335523105274565444412012434123143682211137541422233481141521461361458213318226504815552213434456514683453331626521714111401143163164282620222351347151403301626155221212167122302221348130533440622131815413153546147221167463355136343417417642783410661345312526466741553431236102511213415211438267435624421032240371721621742311333710224711552515713322343724134162202133364422652868651423304355113343237573527374517738843422281425224312754539722167212617301455255874322161123163145242413815146213562143111315664549474267422226120833412242332524100341313321853361151152367341152714531221363651124513583714612526622137136175236243122245712504233341224136561261212132432211326165182215763243422628117514721130205654554625735101133714411516150431231302221343552442313175131253552130178234562141346164343214125243233424116835321131410462214124632321455857210422166585213741523351151354135345495537554422211023312157162631224437331111226254315356266381543101524592111417261035231116534541254544745624332114176147616226733313462207411417641441100424203254173840433683333125634623752711313550720841731235351652145520428214605133236742121231242125612322316422654413211126221361445134548113113610433249341441660148624424633307677118411311336411323722732311121246645253222651432237163212512614208135751551141163221243777381223282366224331325105133342865332432615421212611721227760121242141732631533234335154474136235414343263113618172266743364275633344324254452124121133222222184314415523464412611461757451343412232152956127221434327712454424415313255223552105142136717212613255132054322843376311011137424382527135111611312134123220442352464231741251673032162222515553754340342513422272244121171222627174714246641441111881261113403545450335327166724427243211421143114636244682625251530111227342888313432362127281234226702665227432112541536246173636111115234432521261334113214621221355231131321504422545361414431123541626416471236377311671153214032517525253125512126266351531524617125825032138455825543165484543003376255051151141324745127164364162356181111142219574206513303376321341724421028404341451141332234276135222741445622214321216727532013552521255334261152337296112225324332422620547502151326267164453451615236131344813333426143111701425273372532167126266413215156631052431216561655214462625122002222112314221214121552724251132135101528184773611842223144163335571406851362781386822051121624753344200343110421562758257212024211002435733541445363122116372010471045322112428084931533052223275423441115661697565441466612587261223241721272324345143122431510321314170442620311846893212422152567773382322321341155448145343244701234213412116436561480621125231131225264720421011483111832334143221125834622412372534533235710278824127571113313113044176841146415171210542314734102243647783511172112114447211435332222102023161422234162155025353133143612113253644932672352113241454450383343112155546262826135221727115474192523348251611342443116612758122511424410364231314282488571751116555136142243413188355323556533221315352814824153422254147303623635178212564314323212855611124627225020315324324321662184211331491017561271534215363232364330612465867316554647222342473371441133525319366766331412733171554678344154544155568245812725322413021235225245124426552162211051434256634576534245715315311114011143124471225138142366313132683332242134143543224370413361342245614141231601723243313733310242335455223021345165310912275242423843115551231242511431635415125112531716443735111213423442111452537722543353525427257713387437454213423114275330233112716311137615244413633313375113223451643273232221163278118324313338668131937246157378123332055346731571436562113727721332621363463532712723654642521323828154537326124115604411162416114217642244441503115432241144141856518260443648248332636166112623314171187183154715138125671743731246648124236405536824313663524715432333673351213433562301432158322321925057214344111261812544358616177837111533112134202432143615521125767511472115112334145604284431812216240618615251745736541411464264411532301141231823552523514363432948734363132362483315128831563113457126061354536134442412121145415622123531162321310868173333553326707122213254723122353253121234216322312242514311142313361113417313442336361668221148521313111531362425512242226588332414572111272752341123476022234216824131711311223261223151323131138511443384232111273224544351638561322874774361157242112431136421402514044732411156132417214135162111223516254234142535842572476831133505163215183343331126337661421016139244312140564224431785348272334421256227233131413612614316116331114322555262466421533419933233254041381024111564722835111281342144122313626355160785138435235513124173354243133541331132456522732665421142323713161537165121203221227386383312364543413341116653244281512274842216287444422103341521511612462254125128464112113347427831217432726324111527514611144713454122720556142422131127712244445171313168151335331531527604379402316304523255533642141146417811634114700768411445352641412451112518330511221741486135412131516121122434431655411965133302627431155111637242752718241755123313432861743122124323566434621616473174141843416332423400158221332263313536126011276959121631132213431141832144627015033130662331625221443121733541341251324521142215643841212116442415264842315651208111242254212715616562350521214111522461165201383313222387075353221615326523580311224358311024212114417184125625281612344334338167337311535132635583434214314754214261172321411231271342366721311351424741127132516511231260324343416289523133312324543513166345641198067637274211430844821442131266345211437465132510223251382331532342125110419353612012625813474334631313213112702411788551775782312213826453421255237311553422244237762621201277535240424115317215221258272121251101282125481158821748423364651213133081486481344125481112652523210218213411231426811751181165437516142421121425111151737331111126611134726225156232162426231471240332211715425024413624134418145315524341153133351210364764552717231612466142231534021522414525515114265151232024214231454237621053414547242876254144253333245345121346024424417212225434551161543236262443244522375521861121421374554486353622111321311853561512347524242352322555513442224340512224316270735243422577362405682317122242326166574253115225152712614136241214241323104133328412206212335421264251620210611147122351331373633365433225512222142100514341726321131532452274672512474035132413342221712233347445711311250886638226523458174001412264721342311761711533315032236252381324134152422236165331041313331546217122663146061251545123530662227251114567114331441331121253232351213643344355752332030542368763350362126338217658335214162342433321777512117735383123533105145563611217132262544145136225362847624271465064222465134542222151434156411271323134265511562313538121314432112112132741433327331255468545333222123452424141431125137431713316532322283122512313924247716313241113707123102311631143121242612323548752235522040341372675162452715521735342145328152262131578111474321147421237215518520237214314158551731212354243233431653133314144135121257771152362550441233545041272233222644442142122211451110641614243556316108162337838333261511683413212171542522172213618433132554434212123252672336224633113351580626186532241162172311528331864192482172548552512225341227566616351433244116011303215432051435451331364211871454527631135362260424274381422413822543203614585327354127212544573415542217827553331478031812122322686175847215743413263322113243226645273101154135431803233385412445424225324523386146137635154635347431161513423637423842454511336312112411311521343552354612243430142122254625125504451641511250350825141322622655682362117134247122147522764433125521613116840353752131523016374614127551134271426365486151243431754662434641013613612241434174162733211532643124425333843472287524221443054614311340177323531134644802122342212522710571461231221527751221331311745373313434066311228212525731422314322890444732026271353414253211161121313131121461717452525453013421534404237235012111519134332625222174425231022147634105652416112151224021217413653232124211136417442481474243527211414631027824141414622271562126475512642635112224852221151220105313444331425715652658411656108128631113161613123332646251151743432116667413321573157322444871514502241321222520231484464484526216332513457551612212042251554124411322133322238271043615744502344726352121141725762542125521211553217043612314101316255211642644738552222333725214413415218114513316540223345180172211632464164522264415274435811256187722972361357372234141270268117754473421233312653426812211686452577234041413665722436854221538583416153631153622127314116221455331124284515618322262321312215428254276263135351524163527124312412374233251171514804721235671721512272313241125264152332343613566503224231155536263286232152172841455514214035311335612544022156114247031712405402161248256127254122511545213335142383135954342434620341232188423144102751722252177111142642513263511336421747212345144112545834454155462312517701217441731372813421385321121101514414131226206420387331307861445347135144522353357744824417251235124421554244141574860298341121461163452731712321542215442131621731124241151444161131763762424131133634325814576143263474561611331514512673322271114475523424322470344833514251713323183621733334234315224258734727837411216362177442661351313711413331321565112221264615254246335165447511312114424760213082111313661347411127145522340517142822412251641144625711443143321341424706516676566316021012528121487156266525123222473368161626576351533541351634223421132175385231266435847243135324924526821142531515131261446765124615521016313832565668052643241132173432751416412954336311463114553122148311532432220851334273511241223106434050133367357514274421135113531230163122143138317425211436513241882715125626436871252365166213653705251430515371321035157264231415113517064534483121156512128123423201510613154556323572207117183801122137187362113827165664726537537385164613335551124123281421165371316131241757677816742335112346042415152424425176568585251737157132168414181212543733372260243528131831125412111232012432145652333312414451631216421347141785412331134231735716701415531546846551522512516151383633314131644618785242163663483914422665344251351396145612182534111165381523360162121675137101147372261231762763147523412325564017736236344723221511113723161312635761121237233334533116651114048453113335273234353344626868232321621512562225411112341114613162215118524682751413621122323032658626852423785542554525512117151421122243542585135235122131733213321223111515342267151542211514311612402227331341297142215512112165521423122211022145730252223643262368621678348121232154511431213350842653937248121422541422121563824841230112501155755435512272634363144214644021633131211502161526351235522816743103212231874226513423131473212714251622163145751211211223352014211633367732287282416212633874432332154112314211341420672325288352545211119156234216242331526512362353726515712031447411241331122913423335234115674171296713542368111245524565125446262314515128034665362635273111351361073175171674774614454173411234457315225334332453471211173426626374322422114654114212523222611724125555156311811015211236713123564727432123442224645268124524422724131033142313638581123541822125407764614264213127637353316768143214324353834311348488434312811325266501112171172734515814546143332241516434446131446426525244527315348221412532112641123151312266223313454763417532483211242341384321714130622426411113611412132163136163323545575621423454545155660641212334014315163424521525421633314436241214122407220114237374142135121177152346123122112624142174434521522421652177312135362216317484661227635514322351210224454213553324634343523246124118325444415132251152225215515127132133241242243221347138120326813641237060124371413481411011836430216134541482114145312715642175442238714253421218524634226431351825171511521732251535123451818124542745784746111262632683864186114112621211134010243231235543226251824122622523015227226642344622166443346214016231412434265626362521313516113554178685133360263116433257633414533531321732126101122216432127120113027124713921331411141711123113551515713715333625171111116132271349571121113141122115126111381412546181312501711533211236811532433633673337134736113477332443546361518282534817325663121231514811142461620514434305412251176031265314615144124104154551151111138722623241120451154123263213456213724426826174651143363277224215384224261074453112352376246126125183423535441258421343326511330125426766111251412721511013711255223371313542243126253425112348714731216323290323628224715733752041447333362365615122222451312453132146552234521130252060321144153245263413118121313123676362383284261451312445814416314251221672353304342152337453834038121130328441252233138344612213525453541311844311342386565142221511275726332416526436638672844122172747746742325126214240253241211235782705377361311510214450523413342114221323165147462441132131125272135283135213015133317142221522433632644415475412143557352251624412663843551241216636240045182520244023781315488365501271622004873244452011511156562322603343532425354116515103212156813518751331445313315326013463232220723042232185358164611723422415314634281216662133754512426384253222522248685633232231531254601126471263658123535312231222342547394011355323382521824538131631227372117254235614323324664474561513311412441451814112127124241213141625121336213561624314162252411115215853335424524731135741601254047736131522261630762526242637847431226232531230317212257351226715626465512622376224581120272141323255133326614113414541467465372121742211586187534410211224045141611963501712171114434612114616511741312460618641314413212153113215251122554215053278131231431412432135511612623323133035212723115133511262584287265543433461852046412213273457113451111867351413134417721614531752372468841455421814111562225122023116766401453311252266263514454221167106351344526112113187745631111664523322141455642840082523125832116232325621353234813451331272223782211123213414168216621216423136351442017344124340144343541238224428253232222281122021124283412872212426251983415427714503453423177242238445354725456512152841182506412255471135635123111511522512594472725121535212618273564276752127243613163211411444156132251411428675834743021454232883571245261245525232142073221432237272654712112352213461554433214444442072463210131551223281711111318150147412332244581467126262352716173042321511547411953146120113512442166164321413313522736513542423511515371420111211677133143523213332111144546168161573351105558725262334227446115274104621436326123701514112472124315371022328423411532116332463232321112122231584435216321274421621131523322152227447573354232511615422111757512121446243417144111216215338674136786121431225225144544124354121751113382413433732436416471123332234636548244412331021423321231802285253364522144131252644481823631567115635525251226755144433015622104324426212281755223122474616363114512234423136655114552153154425611733117368367457355253535321140346721304413434136313427615122317631414814424425416582725157224151212581626541321724324367333521333633657213443141326124235315611231437234351327154112270443452531161185211423437231221321144323123041404254312741214158253312254175124010233320411213424513553024434514252344324474233135311414143153341233424424416354841501813412232621344427531225313340715181133325624436501322426233152321555157332481212543118320431713414111214126423346141213557148532465628133641121104436774564313122446315240142623685064411525624012412112408347131633126207425322116671113123216975611372163431242521734191133463321334012463233467271244231111311313441656121633426122213534127556351111504234225402214131236141171322101164332412137251343735131153242046611235008111414234423211414652421416202333211881582245521255033214311114421211386163533526321643217505432353467611311121321514267162131342711337112171833122264116242536425622182354338645643578513425527036664508752652103542721423122515662282042752141521342426225214264426452431322226184221536641227701127128304412753331762313541326525325233431103143411811351401714647342422143144274615250252573312665221562543454325220316221516387430121451536531221766347343241551521341512116121153556233353627543435813213481183125237711645451455121178632317551221344426715225322135232413255154035402648112421365641464211158121134648393215485522434653326121282214204955122464271131367443655364452262451323413544633556212342225321643542132482221144451626145174553412242533114231125523542216348422602161248824424115360422621174274366511333074143151304136417212344513223628163122221287281445864662221112563122631342347543421567641552444225212660478186811732437717110331714121455331627356164261123331246131354245621344526231111331322443411526183047325753263715131333755241224228214222483264243420440165553222424665322342228312343361103551255161234613182201224276135543113672142721523275346244542411204616622306573371443621514451731511232512556135825161513320554351746535351144705314321354316616652154432110212785255345222443131336443217212813312221313523340238635355072623417137413376505262346223321525114115915033431341476612502335126787825715745324356137112307123332183322255621423437727561756511372321275241415314038421513333124784232755652331281176248121232135734812423121111541137211635251353122254364313416303153102213252232522122413525127114142662215236354557117635311561122563153141410202442360114163340781057511310111553152444324211626635385415132586646415641347234115444032543662321452713221645343522213638034218133111542160855142222454671611543472254223141271443525323715231615222414031147226142162332724337141243511631342533144525621655212112733111715152731424851043452125624716138275431546146311782341422145232622414357531648321373543172433521543312562335433354115721322574553524292221131542526623333396245153453531332356712117123324242323438412311615256181417123572105141663347133416553353444553661822257355243151153817385161171212231751273452038063851372340579814463141412432212253715167521483351241656634245372325411321625254333222444251354617330231773453212123256245262343302611287621113524215321531327347317644443217412745652467264144416231751365371652745246216437016425142233217326311517153527145215112244613435712221843110263112103321224112352213653624865513154257715730304233458318114157503514134121345216122035441736221631217431404125125224221211617351448254226419617841625542213414443218552213114231332033643145145141638255738644540482623834116422512451412185373131212324156600186388551563462152235323556273313111421143321333655021112153132332112137614116200142744574271434612421121372522313646831523714551417142183138252011627313435533123556414522223212316173442317224522652771335440761376443155131711222843317260246363632116545842411634690722426135643646335612343851291172771244232468434184314312271782314135243188474711152142214574118372411462312342155563332312776173123124122562311250312612656162054626123243813381365235763431131121521127743164516155352142673112415147456534314205223416235426223822103322113772125541511206111432693284336120747531323131743602131336115122234315326201639124111625237122636721332132144400224536112047241713213522711215245132515162124423538352505183145012215143671174112314423801114035254415521545150417112337143320753312211450157352353543112152548332521231141264841724122105853241114472943362181614155512503242381716154112321524393565541273545133317447632126528342452212243181132128323545517141132414431354644231163320170512114278432173303411542573132365211111125443254331033375221252533282213262006264576224245238533241666156141511476512311281141241361366233115251852213232342112884137273375616111332632523325668241334871131163333111213356643752154015765355126412731626031375012523315551572412367331662536425717241414551332724321668116242442251718626346321226203652255212211143452131412015215711421734785424414652866144714214041647113564512556341468133125337221571118724227411162717341015331001434251622314243234224328233167232535777213417254266770616156445214332382221123111331018181222451233112133453513113113224834530352642121512733214125865235412536341212261437437122311636134112252252321052352234416264312411271251572166123264443532054631218107435122562021611421521724142221431552338324501253211345111488235125433412716020224436113192161142431545522441456144244622545415305273124051115180126583211112223614223231367433524122423415565324026222615483342145132231335270115641443344316532244714612337437721211761364311252313612254212613726737644427225331541157330631138614124532233121664621016123741655147315216213113263314533424021345212114204164132285113424915741615312427153531313624320321131237424252144240525648182384571521545036711461122142435466432463714022441143512134468472234145250143321233133252225222517631555358733332451257145136353304341134183430213237245112535403168133111233476152511247561324225152141272615136613522253423124552156472556165286665415352133433520677247216451542111411341483521447214651751122218612012372311152232452522411661443145507117213121834544446611456121618145114172110111174432354703237582116231211656388166112513431015154246610823314841120262121372554411816273836115243414324413773713327131235146611236604156105075269213236622175742411136343336774111313742611251523442057184314152431262212331610221318415515336516462340132156514242383216202431415184342123125485514411614765312523184235443831504342123491125534044125351413174151422624231453151333544151213223071337611415160672534837332806768112853741777461346245416212324555112221413658246121312514321531543621412755815367232113325371211322542111455161353111124440252314111212441124222654676332653268163641437721704653260036167322811231383111436611153341110626113545816532272211425147257234211362143727532372265311113122133432168417225645213265414337673551679322168451413134422166132243576453322147354113412517251421373222113447452314236332048198726454124622336325124151522126226072117325155121031738211222321831516341014515241136545114532223413324541513542134422623361204131211511537125354367131336673453343320187421221780327716423215451508333382212242254532414563111152165887106531331282532541211443311211359334011524614288751574711726122143615334377424374143714741078625216051883121557432833434152531622331492161111214166133242141103111121322228141231221233228147522456413345372234118211261224191264551217661131477210872221413314213333215255116534577244334402215653381704624114170211686460132261435544444331112331736334450433255431602137356836112133150326361222242352456715322361413322212158143712345821273534634263835143140422112342326131333442182232212574515672235134122272685115263185653424253443151580013531612253246561665343422311403236412123115233111435127331122114311555223112512245145456551161474314114715271325501105362203145217535524137451312355673167257381635721331613311526285351612854711012120244751583232417362452324115127312161335116147564125253345535324216631351361246260153442823651236222838131325614124124526122732431401171372843315176215163135691324234725129633331454233372314235161121471522338133663326760522741101445313350143251814543336424329515421131765422352521111525132446172112116853166142046525142763124143123041618842576003313436513753111623373344252377212417233276844111267362413362313415063374156125214212641852711820424376715002833251425635111552215217134153215016653227251732635681831762148615535528135522445215774144535233474324313444301145613233725632546552242542423511434011554136455615628504371511215213833364254232137814386235216483135761633164424258226384562367242724223110400133351615062612322222415130451314042217224321417221252434433341573612356123148215324126111602882564452233253621123401241144443145821141034021114533474184654416264224213734341448182174141636343421111323164416213167103034621144322445355855560622637835516601703611254614325641232211124112376122813724423348423345755611045537141212245265132472741211455443631432472556050143313133186112845373414612515436313474155253242443735223525541312113115225253162232134214654356412628252452224712411176243452331113241110116453022113116414521411685321321742632225380736312931351136335322364434216876321722161115432615193267272732610141432646412125421164642452833386527824352353131113421414341117451142716572152471462544532111745261168454442223105652341213514541532428743334146612625464403143741642432232676143225503281521216634542432612214963232014222331335425432854633614512473243232141617311463701113341552504571110536446612521235432613231546264202616076113211223210260416747121834622173215844323121204112587213463241641123457218213242612401311160017133213764511383114722506176746723414344344370411132423623853348141465636117765358231302511522111146131354143149414357612654173233031455414014731233104566243254285862744151242031344434413136411245027454331744188110742310155433234211224075323216211256562013653272003144433312154367264153854661275148321327674321466855212663755241222241661820312133561105546768425342235220145858424140585370457215402614664313645173522652811253346430746211414362314425447331430121543263552526312222216527213523164353460523731123411357883832135814152214214412414253325221116212365441323432455271245652022655233164452465441215121254433311533576514142322230655122215451221016422531218301253142712456222352712114724141227424622132161265573154121311224231611586421234521135314112313652542522228456512373133225512334166141231613735017232441211514241433846620207324124423331222112511337316524322401632140626245247187261262211471383120415033523662523221114211124122312728353321117753622122141225151532643221221459151244641411329612125528321242411355521261325131223446444211834585221533113662363248421346215201133848469011241143101524112752413722643211115533566103356255654612153338128157132412546122441676131011811511027715065104371214342626801751657161131727572551731472446845485121348311841183112424313437372122177263174141263749316237214434242254763441331322366210544152624642223231365041251133107253861522528285270571112238323566411236411456122514431212544206154383415381652618431131185522335722222444266155447112514417443121235711413141242401342117222233363762821275640154111445225415112132505253104132273243422150153431747446302612313281446617711223432323264233144074013115247525013843487166872457833231336133843364227125463344088151154176222440416321217113411112242681373252555136611267162328235544723411228244302243301016364412323142442443336223323365424342174151431222532511217134813484213202141113161611075423043382355613165551604542234248234614544342574231111623273124444717103773424423425820444341670313125315126415355181263623113446054213666472151261133144110535487116541233113176213514151560625367237332555113145223483972552438247144172173655264323723241330185544430215462632127202314562251326211255147332158532135527126673136862454424441633132021316364125162220366423116125454122542310532113712153244241345843424205637292454373724155072535142132171461423572271421023412131124185613422124141272464232534432558553124276321322114273516067323167122211852263411331314217815134548827532717303551231427121751417321527138362514033114236055761131442775421152131214213321537711614325244257723231345164133535444211204312222162347625144462166241314211311723531322025113723125153335142421541247225453744445631402341415322444102162123313422421412813668635122232551241441546412417313224322271174582555423455754273343346546643414132037131561474822123553312423437521516321653772453355313212265361115627121138314143654417531244311465323544173431461121211243342553787238312431137417092154215442334382136264223232444123281152484146322412422144264574224552111113423443322451514034511272271235334537403237293222432024342720262463323512135153341261327244424312521775661414254137722610261363441515964441331528132163573473632234331287162151174146553268712141413123331915134262425116816685724244012111532365806114581423634621584132816302362353365548263027542354134142652685715217121162513813516412042230931755311213436454612226171640352525312741220651232316521022581461433424111226351232148311253544384183032512662424574631344645142242133764147326476672312143611258712566774352123151168231213422551753503552423477041633156762235161533622856352715622151715126233282432112214815773143228736237231317663253108343272172433263324055768112212843541316206732323271414652614536124135232722322233272164151513157243232111811501555551213128142182326531223667651225831351854147252432224126344483137387143142177471122314244588413314163711216086612382812855912246713612444034412220312111519131628714115711442723147434613525511263234417151311171413101625530743715530466861402072216444262235421436654102455515434234143222284416126643117238851146435324416548636163333722541121524711545058183843421132545352454555661444652313302222174157333424626142331205151311131151361110134323121173843257324177343143331811723242355671586381713301212544214345343354272631311122143267174246150221537135271033047452522471126123211718774563011145141611367130781211454242616813113211531712151355356423425032557330264524244148541212833724351623328317114684467114345126432425432261345214742951136124454255112317342282314383183213556171233136656314272521451242111764228112046443638632505121231831633221414432121730352438144021255205425623235236222187220544330113464745257124333227421321127123381141542043236513121453432232551218242557231233131224463316421411526133234445611521359746346531721421422331114158413423112431722435427130513714874645112161713331322331737231266113644246355625447555443142222130341554715664310531772121411121543154353724457546645611462413272121241121225612212241713534464522172132357137734614304345185862331121346271614221145376331244215256232232114105541221342763921161242132362372161723133256333756514226635344131422545134111224284216353043331254312612436182243821128636723124443624251611235411041244224255214433431241118332162115414411212769451413161263174424314512322467727716212711737262535322632261314521226031480322374304187768661511326724093263764111412145112225832132356633642648342233544211343443472784210326116413341272541265823405552231623433525371101330163114247121035525157546164171173413131126632353324723325431143266432051211133710637481321325117372336334210534117122561626279321146517733362681416341273133153301384211253542532532113201110318641566343514423331226565323114254153151436213550121663272443531547342214144112147621715723435224117231311515422212214855643114305414156213631521411183375111104324110647323330532442111447551563132284441321114220517431522462532131211610642311348251145737681136429526123722457664023224414233222713253532155214246577213814131453286751152246072441234134227512131211324311618362732357025262843555530046150311221125631613232134700423561115411363522454244715413313715411159733551152753121433402312581172346341161761333581213235545168142351113410471275245412112831644233452144621456515332243645734311415232455025162264362634722322012222825526565451433215541174311816752142651136315256247144621615461731155124142723614544556418216523511252212221218351734136210713218312333327500424532163617167214211645244066268442741361351211531543412308142581264180213612431822318472643433343538213112772356254315143331555327468251254428156341524441231564215148241113735214214321230621126018757468121342131132532136366713455313581721034427124334247623153241625441336622734725433134411431214751601632612563543333271628152222554442173233413114823520241183210143122521224671611322676864231456767113322126352513481462343732672320835314405383351778152174423453252113216312663151681625527322128112214255225231323214113251542022222155230112467675323221620730448242116532144211355244513722581251224323323117155416111041512256811145214127150332221254164503543345142753413511223131320232732553215374337312216411512312165615233471634585464112638253836483052558522112264166133312232210836313132112324234761526223386511473443722383411027636532415317133710681142541761335632155131569352732157610427231341740726333617222240274452511262337271324675433257302112455211705167434237445133211313532521155541211842522341321361324617252443411337176464212213544112322235236724112711447454122111142206734111114082761252311267132205322992861627501604461535474263312032546435242451211620664155172712610442115131961617624561151256441215433237277242165213164146315541233422111264454526361144416133212427231142381526263087365332023312513221232231252565483224457822133121156522561341121235115262743660353212413586311332125513542375263454233445445412532384825634125433236331126183275451552250786216116124488554557552422553132341213616325374026331344437573321717132444221506413314285141150116231412119521443734472222617023175203287612645521751437358212815986111767651225152112147845670116851255213552443247263212211558321321128121163372217431265342153312563553005851522184352146674623815432633126133945126443110022364231354330372535310433433524741117128154144576183373284346573612257335011454065381384238252151334611121628335171115674510426411406344563555815574666231432143605040231723459171440133142516315126361142483242636112263712653232322364121312431145215341743642101211534487863413223325203111326512231241523416382351221501232312273385822262353314438154443544622246764043143166347453521249473085764512212355652561317431150425513257848211475427421125830611333125443623575210223361372623557116206343331143433214326231333342113447126413442132834725223243145235751313621444725766164326143352456243345222255464233513182142725442423117326312731115186221214513112711141316147133461423420334557314315241446782433461572437222212236211271165263134140711162182162051174112184170323138711571222652645711650125437164174342411631224584144121235715233415291395623141603242461231247166161724412126321581431334434083325804337251222274544311334244536271324844426143172341131435372234314411467353423111175334211436211521471122263820214530213144273276315341545125144105226414778336425122304724113463445636154643662215412278123331212322782203242220113264625111204235502283631564362447345123414625285135413172441411342583356358311168251352214646372825111812121441257124336343124122133621013143121548252438725113531126028343633143781126616605332742618533342443312536111413375451231353332184143782274664423362742230551334712625414232614344252112148163751321503324227235634145421446333381132464084553162125152211152440340448561275253112211322143221221254386463226132131113242570126161503351535528342882761651215212381374165137221117201513328712632224241687124212326256463636131363113461443114343374156521322142582386742057127061423312134223132617311146131115372023115614412432076634317631142111620826537427387017722211251811361113654256721741115221312063123162261124223522144133242773361211354332123654132442644313328106161223726767216233342152168433353132644811624131233247137103583155643242317147317783411715425281125313114451924424235651345360414353223252232121261283455521634272833241526663403572341775421213516722404312322433832221743346221152534543710411321382322481224322441212876112314237123344424244225262722372441443322232131357322634240161121237215621413223133143143154211112143223154542523323123544243222321521222010453213176426515112325152710211262113351286116325236321473324321314118213742351131634644344534623258124320653312736341434111812446733212301126547313326710231226180172523116634613014152326032346448551374322311122211213213154815844512423444351222212932435245174303463123833341414243712265562143364314311771562131723622345443111411732112142541313615124615667120313133211123361173118414441432148787354142634226634262433617442614626002313413523532314432321311531154236222215728432533861225312222603313313115220652341053511453316354434461556872112413321252133333252133204261116414852144227184228038127724844621515421611623131415723534361846641135340212544331213113356543524264222547334413811263261262353632646611612154132435214331425732723125232616632721337832401321264620113426142250571413161205212456341281733430642425214321455302648127244765223321416250761331236311551714212921231157151432414638219712283536145381546325115871131217152332541141631160717245735243522676313338552232124423352132634314632552223342136231712514315124342750214011713117364214364353662342016218617412237246621434117560683131222861154385612623161245310412652646531521241626515574511424274163137612343687713826221253427073717252451756241563143821231523352102143804113547723757623571432292421128211885343125261422462525291212144835421113116132411230224413436361342643115521212026415285321545531033456105184112211592021983217338638673157132255322235321612257413164727434166133132365365451555441723750263122216424212315151181233623585543232331163214221213423103632332272636350521521325160172112163177320311422113871122726233411424252576613626414444615213512471645231425174112133424323363261842224225618513235133426446313335161212865131214425052533114144247535245517484473161226247675616642212022761335113167194274164154117211213115123251544114411352230252513164061536653267734143136711414457057420113386113137611664105146111211117710117515261126432224121031455223214556631216317671231624253315110723135114127242332720535161371258314712111411212562350312135131611441714332235561117365151166442327530254541641367232213531231335612515466117305024163433653421151260423221170111721446441131446203115234354441437435253125162651219242421746215324349311148431513411811624133114113421433536111851533242115314265083213421251544211124305414513376215213464155317515512318334217241524015341852261237511133122115632217233763125331132434444434223512213223432312116317563312212263125852012415101332331242213513306161516723357430602022522574172132621411652441311776534140221225605524211511432033113732322220425726543114286326424098441211615271823121413382521170863131555012212741672742267430521215423122422812743313341111234282321317124537713431125105167263577641282221753361132314722362612341163735412221371322831312221232163411689423122223325136822228132833334735128686523134411216312111324837218354233412823852336362277133612105134062633642251653111712221284210151147516612153312213361753646410111041236633352223173775512224221256415711212306116442711312235732432112214742314571176252543831335631141332315371525658213246137434515278515444365341342325151242111231033316113141414163441523215852203532356767424111311551131565134172533245313423312034547646441241503016330751321153518250261262511242524546246157316312352322721365510353125703315155123252448414114132151662157344134411021652431312321253435466030331412713315412312644213337611131501151566602122135256272135322253401321473741430355622625423112311173515244221434322136141240558435175114412275451262657421247111231451272661532313457332115441415242122225211151224367453131221321241330366025072441047762116332251543364410261531231241165502138121424127741624573327214530544831812452342481483212062212186412284532223651425412251814517032225531154713741434473124254677271413221145374163017133344236233542542118346133261013376642354285231552525343502142481235132021102245520172117142212542324131374211444831222424152463144213646425794210732681143342535151435341611145210122221511462222822024332115514540131364518525213251471123871735632665278341724513231621361411561385123231181962532331350741123362640665146121435526141473211262231326246524220382326441314613210142441222122135311211443232664223336713172148761472534525333634175865522511515141811753103125232473442242235122631720263211221212443312330824245441211443425656446244645382352544561124320474845012521167661231421242816114834842552132653442555231153131383224645642127341212510861342237212351360414424315392426237230414413532245385834541154122755608356491805222434112623503763262354781122227191113256181325412461311942434427115143545262165921568144153453363214423431113834131557438222731341414643662336243246641244531563333431424167315813562142101521103371284321582431644134543481637247201233414261163411641447736444461481094123373434263631511114311151460626725117627150113752112102434164414713021165456445441312116481363145666474222627802626111144113331358117115711149142143631341525125512121612024223443541051631415261402665511572411481325306238385442224388632152121248661151215687246361365715220243304121443422101746641481231276472363761262631351345514527321647413132134423411533866475521321151552065515143572765213253113364431134373117152107220323556147136711161174243121242263451441312223521337211221126112355232220432521271175116411124551212116346012207238123075442334311212644230172325742543104264317653645233540423417705155114253714427153223763122341356113031131531312776316637782113517230216466610528833226613654451216254873433224237326121352312142341554110127256357417061413234435531325543526434447667106011245513553226317043125773124161315755422165107177504417053274622211351374131163551226471414737463336475241311332136723214632133163255236222121361153363235501222133312122414252243151411167151723343641313652355274757132232431414613313827278423351112424612244365113844228575465554121215463222114285409143114122256435078113562251568337714235514336743541183412534252346535134156217682142142552415161582455684337366043524312156327122243271188317165312542224133323258413514144316221828112045232514512524227815524321311723146238244616325123615132113247287111694050111123531112227258221847225362455475315234262202517113524221372733320112254227017341724106423273728774451614514462521163510341471503224131345612566133236531146344843284961521355131521544253424613231144416215351441312622541624646661352114484512212423314434214520132283604306132323432144623411126351212951214162422216551513313236001273134746241114130231522145211213141166627245151214148885452326813318331312561324455443153321223643540011012531644261541131472112138142312127354311241581223211213237358423213612023265565155064427316225122147667215102452212825274165448727214714321121233432212307324342370217275237322544422121172215133163421035126431126314313331363225765233143515621742311122873244333563141146231560417362543435252211414521246232761757550426871725021532344141555224311248212837406225434235253644336466263113651333450215460762154650463202271061012242112603322423731624141308713142652111342482863435377014113442523623563127165010831213336213068244341112524132272133232231254532678145131223521466730459431431274109112323522524516317441372631471254172271425525237260401505453225256132484686511116287121131233626514113556457416511545344042111262753361321533533627125713425222832342215444255222075620463261232112442313562033613536684133312603081756314226011132454364111113245283414512514171456222642375214434211426311267312522515762342423528571451317231328123514724243342133351230742542241212763532454414133861246310317514415372713334453341545565354316139242151322233371670414161253141381116711631522211611784114234542207111120612262423155152533458741141222625113115112128572342251351408122543233317121561432175322825441252241442550642243876124542331232244215233433065552224726751175812234155232426504332342711716532345848318121663675351272712513622310456432311011128275125623437111061511501062244313546745307422332551262022435504137522211503554521175121852315163271153725352458462851112738174451541271643313148113234290125235122512123141433162432361126044853167215342111334324331861443003321213336155633213215432131101103616484311452717134271620462221632417488431552353757727514325658466311327516666214842141142502353112224331241211434382415137631155612473145524334144656343211641233422231614243126222623311352638953112341213261736475822351556454326246214127465657524147551153506133653513224606522223161766345244132745735343424563052112247330417312415562712615677132282221842043241511126410213344230102111212235844432615555581631333524552235133112652364132342526619553422951661525426117336553446181423314372331116621320214112244112431415182100121366183131445373023137011347654445628617463336443672362445523518357772344446234411343213113451734245460603252324148104122102683838541512413365268635136665475117373521522361128174312361122561161315430440222511327516346532002475143345831265433413023111631173621168125151215325156521381453121743515341627545623132241123214345214422278164321181106543155621133121324424163516222278323281255121822164311525153132863534124413142413224144444025641623611514636416451676021432444202316155165442152516322011658365263322523422447122705351243142113376432623523113431132843512632845645252217134437325833242250812642112133523132576343135856261644433472331376273517166131602642351121731312238114244055411351111162263551628636115621573343132123447507211121374318623335336424543203263252155531455517322415241544501863311716421764653621236623152713413115656122551123325563417223441324163334326443462813616715143240534324521423942744851413615525402121162353323324155243143241451383321602345136224527237731732166724340331645324148632128501212265264723274631073166281556628325331225233144127222423274242126246331174186631118324055565433431826334433163124143816262554375215166811517531622614103025262115723221717262404365571344001226161046150213313406372423422356347631151232524434531521131513145122411515721625143322645366634236847225411260011153230241375532117134687436223217012021047131446243811125317657212311435253143231172122114235126364112110423541422615115725542525613424536143651421753624823116148752223346236214262673311346341372330215812135343445226634764462302335235235762484357432131122135123624345052243122502136334664132415527111661221017228635201244511323257141431584823713212314635375211820852113242472816831415113342475610334424234550623453243515166150453772551155615445432317116224440225127321141742151142417431335551528333122236434342731751330626425351422423283727311436471271315284723722446242258342545165727223315313263484456732141447452024316453521347214576140303111541350141582212305622166332112326711347110187561346431410513116224575461413256333021464432446141312214474205434221676412810212543211232532223386471523428212212041226324742732353732112261424705332148482822431161684617323682116274752343453141426124451418325536313323530132118316541334126152280124434435652247273513325253751143240217563435773534322531313011173211573253763426542621075273132461466146651734215143353143426116414227338111120545447422303135552615512141281340232215525118614118621733572541650541265371731223426123311218257124141102215023622153191142551744841321324422413056223131423034355141113743312225116531350544236212466127133137336253421502234662317812135333126350761106411221154274132510222211453331451164731223144166611341452875123254144325856052156153335171612524261041551341342524441411776242641142782672704103762334272225121321041111412041133247533222732461193584741165505753241521154512754260310312211243204217484813213457152270253161364511327112108815212373333213412153512453549206124651621516511671653356620734217134354583301276222346624272212212612203345235225612340324514265414452734252857441240122184116837803722575264227355121455144933601320431157411314401122442742224134232523065375711333114634131322506376417754126314443702144012136351721651362461132146847516113442534724466932513413157136432142734412651437225352554538116173162131587252573772513004324535202246724460662145227312716321462341587331453734331942333124055545561422312713216727543661471245363518353551062856100530354221423051801010473314525352432222162421634446142133627471621841486342164175313801562224613431354524436124161122115472413642113111315241223502314031244163532472521714520141614341561120452513232416141234412423221822302246182422311834501158256113423319222145142276624215315654775667655211228362435360367232132352111641127813743135501551534241333510323253573354446136646745436123474215546511230131864622213435115211704116033131341226353224461283214620431245183514532273636321552213466713342161153143524041425811231117624167342253610373114242521332261022324154614364382111805426517533827566148321552154551551422271234012223649270616246426528146258232133301462731215244241121448652423132434212341268163134775125572421443688544116352332466138104416011441516262433532131353111173232333115422214135607418123241211412834441342463326122273413223325353647424427846311115145256434114642422165623121165614134453144131153565423382334237144105472571226856115725632134636262311336111153101232335872255407213134721224642611841114017254134132112411143151533175315521121622411717020681724615213776234171147532418741424317416642116124386831431744133724175471434117275531367165635411222334861136212105511344322323511425528342223305101302522141265552657222846172121242114522512535451223132683071146551448326447223511522256365535055532256211450522231368312312235171528534251473262463433348321873362451734554448313636202542212131873555322543422321344437138284673382273157123225132546143555933445312552146531402215353115735313410122612415321222048123333043523231401340327134163135232581334267533262180324793513112031240514716684494332521523137244263544462824367294753230432473146472421265128226113385337313843232523100542133743227357741364113255216411301272351152222120144248136153278424413662141514313153143226303234353461344615223242473633312273113112460453156434833611514531142113365043233211145541227243382631312434073518444121433134315355131734262289211631433556452105223584571476231413431261431021833411433121412161455451135444223423113232241416231222841211143546305631531131271135042211216122214133141247431051573562135315322643730142433313301142221332368135619157415431175526377222471283032266184211112313165436162711705644324215637203012511324772224332714563613322450522204542458721654624352141212423342326141406321764512421565473302290344352135315724472774161242221170212136355211383333580104663380633502451112212461714514236226355627483134118336122334421160451812986141151134633531140403213956513252022162044251333213614181372175241732114714362936252177104514447137413554241157231460162154820372617144625131612537154352331124634327226156212723523366058132610154321523226231452514331548357521211642441170604418275165841136344552160123211461811322631511731531421142212261124112733423366451324271712141414562143252442332181281112147165114523754621337265534231044634571613315143973161583335122217545714512415440335113141124112224564515511523512451171540235342248461413323133335635131621421211164417271113622263414423326184134026123354154131532342244710520713714711465332422732133519337572675312366644433662511334232155448423354262247253312252125552212314527021343132141477253211336112202144134234124152145265446162174214131115544136623722511217512712412144472141613462011170242884035851521642332612135321152521217124555142214251113605765121434242761817225521313447412408462353175735342231173822127843674231227321127461377132321012304147316211145137255636644132432338721245352721214237152221613554133892240149116242880712454122612311752442414214178372322153016332562521122373652381331545203612123142357102126584341716623331612671623244522314402251146372112751130112344717333442302241521541641154113344442642111311105284516105442311301654142547270515165579333125312355316512444112617233941161558425262322313161512782137472386322443161273154545313642724152436263313128635523517324318223118445133113439171221521158122240443633511411020246366341167736214116550117233341443545321614691437415325111232412411127304752126851783022254131633615518473421421211127114666511725162141321121302323461811183521418015506151551522622152131106324401243243112311261727331164122232177132666111412151263131125247664653125555512628511333403222146821243065413521722141361624374353115146523725224222826323555154212211571313835321443474544211231472142216811270141824515130622363422130415361117141046234081312374422454681321165465625711478325126114315725322202532546132314222565213316722215810647412711315448704552144271132434141112131213123363132223364554553534112351443138532425122424255431612211153251668216141332262361291883571474538063333137621141310355840113642311161362613417275321247222141385326323112404263150328458611231421214337364511121613321517341826112515566222136235213651765515213776283332141424226363418138516432257343446188222513428625111414211712117111221321341371355254113178535150380742324631112152808365186522413211231711433241902152341416411125121735245357547731142721421354445342142332118112672512351622221132672467724414042637766314652551215121741823416115352165713336674377775613624225367033123240473132742241212316224363422162132424243821322128112562225196331235344383314741323634322281473323365231036632336723057117115226355555464473142123224113542144781255158234567345173331136383140414346232262112353441171315357340262235421671160221613671312263511236121213252521623054132346471415267573112441133414420623655514531386025144242165551565881431837203133127231351051120131117333124757611330071642322417231545551562834561673120541361361334311024311165733314544521415132734287434313213144244335161421463504122242113511218672862511737128421413423732224753438241337241641522721362232656422850436252044614424221412352704316147611442316141353133251543351324621027221284112511622035571665154152421286063204735143753211628511336122254246223623524352223322421654222221282311147411376625324117421024241713184234621372433385673611214516431114277451011115762232121355754566112364132482627273176461744555448020261720611436424228140261111824104732223254113423312618332442233365031435476565222325333181614413261112365411332431656524124617244845521721374611153367704125326711347163134423203566323234121371231251223101243016547111611012142430314161343142352461153216345632251454111623111525114236558222262114842135105521647422535171184033161334338544521232342712561155324341141327245513321814223641146364142222408013134231304624032362134411165215576572384533030142132554334246145731464211111312764427631143265123201318175240823811512433526856148573838777745721313626234412406515404106646417173326354355324165632121221433412142113727221401711183856445248242562562534611714134231261141301357415427541423217563655151413333027076276532611181462746212575415112445604122122631362556241451727304322214253172623557217663122147256563433332245147162641770123733535065252323324843361320332431357124443254364232626413323311516482623221321661311356761043500272142250654184212416583151135122197334423231220221327454451371144056376824234632424521252652633512113362551433635407016241172417113322121314164444313603811144733311313223422222222435457151343423275211146375143522771201171313111394162541324323256124132132264135546454723351635526241284047622221228163513352136125343224515181108221641418223814362341532332152346923337534414114745457352744711142636267252417325423034114254816474116512736516113512530153116465836203754664452692241401732251137553720132133421662132636111334514221325232170315205654516222534131316023618153164313228514774151831554140421233154661150617123615826243532627628710514331013416432345726359742553132226553433115523253244331111632244313223671623312422167365141156533333112252321141633627666221512111182423252114172552858263452323438235345332252511474144025431153132412124235223064534116212107741342402351144323535551465463524113143574033644524623374052715261432113713214732911835221136661401652173664117433711161431245142254357512862621131103215334464250543216024331113451432241143452010647653111423423525270132751813433320712415242552116011622142580433402038481544412444153221727520426823245134145525133152167155156251564375322054743264364236523414331225408111450123541262306532121212103231476416133885682645716171521156223345214112166431110336524212111221362165572816537415173213164224356216673652241527562222157133031412311242322422557535565024373814211221423532472542554117220621324521381413674446386512434141256538255332151648136773105413482232411203329561022235321025165627264213613243354426636441211154596321175421133526721241133631054211363554563107316551473625132142677634432144527172225582252235213244250256153317707812412416181315352321324203115222615184141772224421253824255442132423447461251046524536161351121221142322144330221567874552132162242557133542161142207262811671405132318141411118363514831131176213213443473224622015631351171832421332113232732433363836471112336435311421112224141221211313536161351328222124484262775403237331251134221624735171146262013315671474451505114654265323475732127722122175925633124531543176454115145222117921523212232210823441735379202172368454437833331458424252472271066224232323317121235218447663255836438174663242541821753453251933425223153311126391632025163227423025328325232614855646116143243154312162332874131320235820123126235364122126433136244315222231262420631775616215242431234235336801554163325125174265608115527672353221043363171721432114112312072232555531214431385244632657243292153152123117254421248254685482238325490111243246673112542332821111424111561135755344111214271823642454121121346542732644753422347418411441145111351127836144054458117515372350831131513143463354333583757226271621532242845453543413151264365301642132352122841436414542132433328412127667852133554221063252676825432846214123874383443502661656313544352124163846421255782461627513412634523132151245366572520421333556293433463616400412875411513223636011323541414720331441382321652142521314262263434442521738430632222611311165113124330755342414116133617368146231762642423444211745211564565467433225544452516002012412622223245321362413633663141217512212513404232441234244521777113511181061242554133844547692227314422424347774522533252454671114641611164621113033802311424061336210612223451532166622147124356421181273551504721642451615053232055321102328242233433637112412334200812314544151141611424543134262752423115331138224111735142871233260581136422625112263457229633365141132712673212561568222521252137272411325512312223313132061141751503135424531436335626414213733274347554837536235310243223138246244442442282823222462612166222341555141113174282154314131416521717031212672232144182321118341141071272624334521958253152056437544435175414922446110411231116707211128233352812365234144173611716268141329464311853750072212463353211338325551442546115415412133232677244436221414264688125612421323233215686525164464141117113363144812267466461141422352132122467903512631823563233345344337633151411432247422123272337344213271164529423454123525665422534225341210667632153222361445384258640202873402118441313421446273021144077612671473547131154554165311252582242122016301412111283521135218112203155454513321312413564533335235344125233613353497520334411543135252312116274324511412622632452511132141053101123126641331433156551131614446323212322414222112326314433161342760274231322123602122533673682157174321115524472571549311414316564325341133771331241721623524534143455125451367423406122636311564711274146321135632262115344433121331258324132112181552437214141334155242263341662133743523284220415115252121320153411631882277412652225211247551137714264842313261144221364434427534331151014542416243444120141113363134402521413334222641432542743151016042622612100317241211472648127553641243551132163543347545035143113321227616462201734145452216037264622412232231183413332411622211242413314713136341580583131324121415331132152521454625636267615210211523531691247612815421173325226527272206341030335674341112364531327306731133461620722482211355413214120388421165323133214201273125851225017210350313423214912174435613433858223541317121123486161331226733732011121636621134154311613552220752415124752253472481121311011311553315450283315051222541348402884261323542225518642241202471234131178324421241121371652272105171037755113245524112623527436334634455218225234273104712244175311234110332127444361371223223210413315642315311556226133615951626413535445171324210114231726242621435153554514412341416241112424403411115347412612524515503244345265361327442551742541517514232703673439710404515241132353044332371451433525337334524361143255522421443215123543123138417522116323271463834122321427434671711452211246162266584516754126132413654323463511044233451357411514717641154452511124418143975351731223230425572338263282312142565421475257424535164143211411412014243735543281143215421425615321172113223331674761355123164516036436222522824537110817641614116871224562511166164321255215334331444341353733752466674561121456156445614325219165156432126337521226536331466302443347242824671517114222363625122151471216234432614512464237513822314586332115328243145553473831242420371306514512254502378264166222311251371222065122113534622173836522721341653153143713821422301133121627272508432362118182576251234357383145113144215131431212322116221605355031757324541518344335022479222772113166334615124429326025452261628264521411364311742164241524234261111757340349123235535167245501114271234315271747321315426113351605511622467753431623524112556432232820223513221513368515574742553373432174341211212534562514142413241662549415057274115263475637554137205123241111811113121444873233231402217322111311520483472135633336233622423014353125306343422151215661211612235252011314451612221121654236331316551355233022654255137347643623118857321264611764576312502344534121212354027655274241443862524162622533542577633103143131311044512383732125136243121121422211114112581622164063212536412215783537242431435237721342323753613245412417012073282053253452137234122037552147332123552416411213134238361266314414374261116421223653228211533283334411242651206411152158336143272131442074151116131145425433253165423133181023227341213112417121804423152415142573154733241242182121228225524502255243143372405741526233551111463923165433252538362773232062376131246582752313761031452216136364254741215425485043214454314312223310111252811163143731122171141443433113366222482111422312321211434243421426355507329126128173736341187471131212531631376471365153168327032122320426382263163012844444131471114120233263136513244230611851513261455317353135166224463645351443183633201343133321143255122131617172832411049223341612526163111511308712414334753441131366736512613711236064684782705152816542415744321633518351332613213532441672272516232625522415312250521062125320163126417285227434147161431314311275060148516022428162462742412336154234101331712211451426531143317651147624652311012267231521211201261513143528335432191133512353124825154457360311265149350707663153425118274916510534242226501442336156232236563253271613376223222341116685143341242645205548114726332311758265822131345145141244258647512531562552152525315733511156065121714382514211413932120434622674215335554121622114212213121733431433317362611261683636431516145344551243161324161521711313442637127382375112334243721612161624581462535464205182367185741744226113121524312143535223146311011461511019722242421475331525370114274321245141523515556212164341111328763321832421676218566252334142322621224132307123621344818574337462225157674221532284411781476223081121734815213660321161726607312581111760356242221533451111514567816155334136823132152274454243246531313723715113124112541232312546425151323814116025632114356335562221358516313444242303422221332217111335332085717673414510545354316506341314151435436180253023422720327634556615122443733221256731373884136113543533125122322442224144452240571432130543128530177113533143110436732252423167518131714733537441561334737322641661423435714612543340361634766123167143368214233512151224748343527522423034012733152711146360226206241436813233351133655413723651541713142636583432222222223052342311432331265427425212784641416532158722221303244281262622413321721461741127232122572441313067455332569253420445395170335220351371555222551565241777111812152668125111073387133162241212133242518555322443312824773654451454153213243526803147522132212383253034311616221422731621417216655657532337502322234322363622514356143366341166022526317636211241454214144423743361513113431444717511211357151146138162511317752107336741411422631121217633212149361161010811381225172227161255622013716425127472332324416335503217171542332182471614012262113241035224125332023624021131812411322633001113422640372323421241172116233134132203345463441244154142443525662172336651261131276406513345262261275454114353264232124342658171545636113382765657283417152524466114815144414121111353132157113634150328237423444412613243215544172563166535485128232421864451114212215236321162143855461114172137647117242322516517321488243103462671143125853221498411363712032235374758622164202131202221432371362127125671117302252037451512123612244555134621543417645124522436314116212612226211155576213312716524233137412503241131434423162622711122145328432341285314437411353241306687373315162127161461331343526634174421216515141733132145812253660234126076124327826412282312355574411322232116416633271635548124811150671143474613735428610146333165755982543117350122711133171025243221521517182420213621512343212134125345318452223552228332125113674133047558152134327426394513414212433642054737732832221515122434741134324410334137340514626600212714122315844713224732364632063331485423245182222448165726473234566061514022531161231251236062463344322414161252241103214033365231223665244163382353685312448323221115526202631271113136116214332903116158144246231142835241111225531111444642472111437368312125354517561115611333044113344612414317651158261625015215543312341115351411225341642111883456531341546326138331323611113176412242251554211522571141827341862433212321243157411423331518372251322312311323323601496150115824310318175242350211472326455226446161162661221352515137314301317770561724023522562811132121626632214133332674311351141117743231312331520560327734314144215311414111127413112241524166412633446121334543512316316621656012411230565518525211713372121115551117344512053420338171352171422165514247155272584214652341382316131253757358331434213116011346146316352122225517121037541332432231571262161316316155125314013227112344342452222154130551134317354123148411466024223351144622615283163734763111355843361314177114941335466223433334383142252421241431212622367235643332681824766225146864226274726643121141715421545631101211315644116138131655431283032481111161242721213661466301456221836231231331352113561214282273572013230853724343423243110134502427584122421142441573125315345058732572123501615124615341312252272417532551161266227525345763365531213241413415630256271685321661431550442133351256312216721123114322821221244441627143610841258162373711171411272153142742171923823032237421232722271222124641215247534221224337113343215332276441140113250563633420116554141236514326563644448377286264345366142533561242132561611900442442157211222433112340223106132122331344012583112172151483827832232324704211313254316126424256132410342313138521144353153412511613122353327244181262635233774421440614532821436413611110511665560534366323302363434111164164233524114254431114441533278151481130346226221121232240621242321411135654235442432227460145526132341311646281311461043124144511477212174212153745421523122183133245355111113532143135171452316019411511231187637316313470253523808515644132211228228881164427744184115112223401146574133412233642443224246313225432958762221114141412113255434861171412286337261243681657427334232521133143536223156141435231822142451733741323242262312242656421167226232237222114222243711347637425335263482172050314402552864203419334163272122214533122314555342211112426214347115374143263271424043115232771645227226253252321451504122741132026235254761241542856467527223232162213444211222525741435445304533315112323322341044211763263228172241616221521351251176025435352131113252322236212323781421624203275563523675112231503151314161122771137225341171843723124621542261121604311361436167635084412543524121436372226311723235215228121313352124728662223381135121522444053633242831141577263332233231121102301121247461555322156351111373232614623464165301713342412423621155628343211012354262272742841316113436861384311531212054217324335210323754226112252227204553214653425115575343222321665445404233323462426836124613235841414355371222564121383624317123221132222404580131418456253361320325142812371037657512016234101105125644145224332331172356613134227315363561142113121274153401120265638122114863013015042965633318217441663624212000362402533242212211115642447356436111168140251022311825221742562742425227417232111111433116731542431222156321336046137582144121214533257451765124742134212113206544411118418412105221642664541323265628131211052162111454412411264812130242653691112154515456338211232362322173221256165426125687151225226625537121552358324122172252634553537624212347301182767231472131252142242122182287653413411444285447156121131614312325162135235342113223421862226342444122332275463553421236353355525207553441511343742141841533152250141323616104227261537314233132433423333117151401241051711217413521027123126514112364044613442541163731561375133227553755531305862836112437372352065625344262355151231214345145715447546413143156556353112316714846281244485538135143103251418421422110372212212212424811311362135243211412414514862113717625471424210516311137464144515358031101161438676400117841246221316442165221211144665151521233661233435684352811445421152111831362261533833111547234171442223212122114861341158642212614413115343165343232123485321433231464447612211516251618242334541413113561317271416316452151511132471414851223841151242252152622135411513223512215545482541656242245284641728333353211136518033574126362312543333764216136223434122771101232515338121133452323312223114221130361451442122823614533362345451444105831141361114113477723532120724451034275452425384253113154541331222563788131367718481227622651115312510144871257265246122323114512122161623314465364314352213531168112147332546331116215212702631533486142618533285511133222511381652352122424452413032441412511544335121623512593121282528413522642252115212246565334344211064233122125334622777227112427242566684712183353731343337827285385112226541514223674733005102115312402217541132826263223224332326344531439141632353411116722417513217121313583922223244353102553602212442144343212326113215413233138221335653242402442324374166411548243453633342848317524721311111032345453345847342133243431461172546211260131245142161561433352424322566651146222151466142118212160133777527642014166037721616835413553472054481582137362700330483212234115444461316574124411423734026745127823626151424223345143813251713133131436165363622332621343735413348541545147232721683133635251251311145363462217051600223863106186132607213182446463561321147143471012151416074114045623528173154323321151612114431845527115715551233134553583612732242215233123112522123222422422622002233173152214531274244336152438124636435101111325220521212201842619261336227652216311817332213644262433228213253184355710753346255211154255331363275138224251322243751136243545353342137455505157762344615345113371441545110138217313205742403053107261422321516411333563215316811152350314111545911211151112156012874411315441566714162712142221654353345321743552133111330371452164328281561753357416312245471683225153554251213745368131273322621066354143321353453311022335373323156223151441122114245115615364524462522271214243132214357336324414415124258141242312611063515244333228047248116152152752236671236611753252513532722621117571642663622253212131523451210444242315171221524641753011142371223155635106723215213126252217571523685137552414251117452322213314216722211137136137433195314454353125223162435541231474373161222333313422615612651151822441534524431141431166342223127530742011527322651811352517615224412443284616616102256472817532455031583231622222342232313456262465212223321971631221142463422557111274163532252288034142308422172342705128232211166276383412322422174441874524754114523176617477334110764712122153432563344152230351837556254731153551111531366425015633331372764511203721378142154354423327450346322161741716275121456727141112753331215146425154460216473278522544455237211545274617143141201215213513345567143687761452320221287112614438241133112446331323915136122611222227562024145482112343221414130132145341514266716261463321241414112253323415223641181382241270011404216473214314642412341814116123111712340553626111114715243612514154344544026531113262223403583251231710342314340647801336293333251685732112132126242412657128621133245244411743622155155461823252214126443450632531111225334718312023638443174422363429363225142235168235141213818341034112661135831552852301281121526452723120542655361772025632411610022722668210474543022165322211501133822114619132123125231332124872264615628523183231468112215334234139631321312232062442364313623346232243641142215136127144353161122034321760832014722206732315141642130634464821324415516212617321225241154416134432123425155135221963222652325240246111711151144142242244151124132264173724321531485532138136361318341263345431546533111362164325243423174863254126223151723141171063440332451324231512731812431413168214112323335662323368150475344316662671142321111642722572126131321412446553167251517466154542110246331237441352372501332332015232323342453761130331244836713123053510443747211355311243111255013141247165051255522552210711215321162465232421123427275112273336704613621437414258583334627111443364231132412311531136653567333420432351141624151535165313121211625212322423211233431545613417614176821185353653611210144162353334117536781701215433255212236642114111341516626115122533862441613611724151362173255415348363882542131438285263431353322112229231441445141744534313223128563542251453172885215664238121127565367119472121743566306431223724125440412510642242334334642241344312716622391414311256243435314147232212133214327852140536254246752233312361264653711065603651240573222224347111161104447112232627311064332157610453243113223253711553115155286382413942264321075334583311233634323543522874154513725640157323122473234721324124414024634553336223415214452468111423242023513354122461262011424321112254721145145627212631717624217425234240516231211555236651325367314242421622117144661320844511221321271241113531412482752416415661134113117332433453351241243181634524517331115038271618342331114114424445215601121251368232687961342226621212238231230458241682263132418231341214213241812831725102576753245621062152632514843021245146212332112314286510313215243627217613656117621632642832363351118341312325223434251277022556165775424615234632462341124144133111244136541124522386261314321512264771522228514261613363625152634421564531212643123137521663321561423631512315223636316542642551155571203653733545822135431456364418421715518111332852271454467335205145524533662763275323463152126711571734634443263727311161138112541414648421711131332524335524333168145324335542557224064666574187131423182127312215385156323144407721514746151422134610532233272454214221103214151164527186031656526411342516362616515112222311112274365411332372442341634432362246365222214122414577511211224863653543222523223026212441312363625222230412326638511226138712571817753340415314837413214232332452365357576701512073551235115811508111241522322313142246314161213104721336831312123142010125424662323304104128222026454627722156310111524253117216132721141136525954648123721312324637218536335511354174661164471134611546131618742755303315568100133222744325733273873224306483122534342355451512534145585235714632153124543351626332252124251124312442518334821433404234340611144353124461321222131621624452712367252132113755528152521225131823233215312222241113214463367394153331425112413734426321225134413115171715164834437712145325123613242521452237353114844347213182462173122622522131812322216632731264114406232245161171615264754418211163167462234332234856656315812431142361341452152113326532112412662326261451242122224121332171624552722315121653162354142213123271614531183412553536722422063237332622534721122314365445121613483127141162213612233677546112141516536127931143116574146152153542313164233864342531121225143145633122321425114451252512712107242254311262443722212233132636123705112114385111114445543622531437332404212164313133302405234448217238237362417166533428541637713155337331536233151125133414315216382511514475453221355782350132444522431617523771231534344321523341222136415451232121511311322254232381548743114646532256215315206433053416111013813617254113223066113110347333632616113421153245101346256234211546447127101136842322628710106321233261460821135411377521452712276110721410685415253423444312120183313236182524838233523062135532513355325710613353642234323634547515211135352672263624345364624113343267252114357235860353461635234263274464114146311385721171622428512152238141444631327224201532737265322325624646413431634231113215324765431143183262821225131183411221232351527447276447134152213111716463212355212241121574841832316173518435242104444364332235347442022335316362481543354111113911012212911375232425559324223156211141074124146704869424553183354131313403620454318733884385633511537824312123113230244644136214751333311145262125558342104252510713461453251732233844221541213765111404056146432445122623151571312424661542126164453144653511312511363651371552174411406364126132133283303486123416221621314732851275624222252423443617712215154241533332371102314514337645741147502127432525336311561321261258401721114454121314663135278213315845624227442721252412382131416288154431122535162602147172443241246414201412366603441430231524753246443271414233462113233214613353561321242316312462215733231455431210231612348236117145527226144334645114263417265205103846306674212171472617337122304114143322333124845623517173212435321836583641531324361531783638356816231143382526570215423410135551113382452728113421645813631557771241351333414381272118433122261112832337412464221255451812324334167753632411534241871852545144302501557417616383151273155110543562511415561486526263323365122333713144323515582435531523541426228234222155353515336225474152243353321516263421237612264521371614662556321326112123173433560314443336325212268523215432145541563132250233143533115222281841454011642144100267301132422344513213243135141625435531451715531433433114763446124552564251322531131421444453137486624223063266435166367211574115513431016413015804735236203502515313613453342430262431313532562540147163114224516321442152422522152423873762435321162811557331524636241753276202724563316434321111343312011223826158064601181743272211244817102260314542655163267102223514331041633523121132427313221443615448511343512416222111462823552334515642225114347252555613362154372064216216731281761683218236234151632061104527536341388553522120112121844323312223112360612551445546573215411333743271061416415110112434181526215150101126422576513724124411051131262842344322525254031322537132112613152361220123167294428228243815524572614312225223621144114251552355115345533225343138451242316512524203232350121523324382064578711621326058274265134316454113427543524185695113222661452473050151132421516526442422214522265442352225154421171543154233068464436851254322406321435115037725011273111334263773677265435882524211211141566262272712562365362354555095618125162241223871121342244013321122453232115531233231211144161173421233315208311610401212433654262131117111123224212231554126334233417159115533522654451325492215622472266134263164533718351341123424052463217212333238152464435751573310833351036182353213111635333011421287660141031273463351636115263113443761244163021414553310522674033753134865611811632423154557052166322434426473264744531354652777551223262513044623241212622473643337132311642453113254753302142421215223551165281256145131375225346521371363266112612112652722744131234512141536254517521128304112072634655453435303163263416651227726222364141251622673332373261154162462626521133722524112711516114246813321101221411245615412121717323111438621143337211431362423526323317026521442815642611812631403157166113131387143313611284402012622025681336117158232021874144212531356511311553621132011217254413222366211121551335134123641271704414304258422222355118415452123314357351614215732334621024534225462306425352541624474476665248421232111713317371615117525232754672137363136527413111145314483223127332315742253732344118313163151813341246116652564245412113442565321714687123114144473223135131151152432614623204241611461717243322512158356322152273451237133026138821767352033513430731666581655314152216565033171113266713264652424433251523144120714126216783631672331334224245115233662667154152643517443131213121315218348251311325522526382553112111743311535253841321716317165431046134144111122630412681341745432543143
895894798837978596794855789956789836635888689987875574849895774666958484987756957939928689955278949968987785969574885847869685799892437876466699699876994985939983887369887948976866868884698964952496548378655649958944689578858657974988387538876966542855695794486569497866847758958588778375833568839529959897489559898688448686696867594894718887367444959587464715467977295858758486898727674557885637665487666293733789986779679377277297458777885384987492794672967839469969867576796968579588497674899652809865449559859906988389995958999439787995855456678755748739937975969197757353779865554478864995986498812491999988859699649557998569479836564767684458795994539694777977884966488896297787945496823699997939828289388894525546846797335753779659958665688674876897894986494226678779566727382928849279855948899598776579869699346882947573746995739787659998837568796523888983745698858949459868876998963896949861779586949979575277688886489527993275959977758885666976379292676464954566838879896998699799849855987539977893666622426776957473784886228967855532477569688293582769986585989598799288295977986938579986888499845577658979846588694764557587655996843875928689596959599474876773759869882797595672873379966438895386537985498969999764759858789959489897958964979867766735987959258566784798636843899949986472974869685288789987854995578666655859974775899889961397989993998766697956996558455479738488486993879780504496589796997589389647928857273849969788747998975862994109598897659588946686884879679656579455469998998363988769989397759849696549899698542799899997693888423477979666364446476966236888349939987758639989476955497989989736587846672676926898677688769847967759975667757994756953982446759758692777785487959994989837744999878759597969587936959867549953869793595398737989787787897978736474576649773762674499375858678778855696775697968979885987669699851852682887693986697865898774998637955746769678589389527837787988958266999854782596788496699978668264965779979596247769986747997398879974458676579755597965965952479737855579969337745695799662987669799629795469889276259557988226556563826845887668854696856357798673359696697478996888549396985794478988579934847368384988977578969698786765936665789674866499655944398582279552989828369929986487759296298347898566825938986645459959438698489979998898289332746677644659987964496675669438776886985752845368253695946997698947847997786625985976698988895488998796886488856658582659479879737696585844788967559247678894257996364599675747773878957483463489756898998554787967555878869569883488984698857968986054329783695789637973989939479472957889689495677949676699688694458659568776959695877294495796988792892568778888896758764958666996998237397979849493299957796769948179996875863678887919778699878792666639988554949588867934569699998498947727985959883558986887262696767664988974797978875449947868367667756777966798288984898967259779793967967459872829806976977986566899867895899849989988987377762895893975358946777487977478993964498995485694657385828378966845955326197486449396587445970975987577779977998955478226761848789972263525759979796371478965677889889476769487899625882675889977235896295766788459879959999788979749275475769738946968847684797797759487766673645757468589888698689566676729786898989286987898798544928574897599479843997764768936895966787579996857997388789585998449941798392492889847925289548579856752677469985486789989578187579758789548856845475577858798779663869779565477898885655555695799599568785962728698587799699866786979573783959768359937993495967983657867749798766866899996666396538597969988892972675897395389939675582696458759995587965676874389741758698688784864767947496827969796909869589945769657748799669737287745999846626556673485957556579499884738499466937752956689884788855889689858495742396631894983950787563879848688685689694877276239776989879979891582588887355996459465348448579488386987858684856857795969695957669984489780586387786647976544767556575777559387577693838688893647243558675865953996279672979798799958566969888598559469994768655682037697676543878589998799694737859167988827269643574278829641489398748481498798469474768968875837952799987535587873988694598698774999777897475977889794757965976488878874497295979895865638386606787836849495375875788595878986589939428989898773945987995248977685754867876746969997712978759547976945779978837487828797593497598837898547474873966868795959468579987967899548336347557439698896656567982986997149955399888236997892769149936783823599582366794767768676446783636967538578475687638897377844997657589838737748897898477689775943899387396497984876876635489635769688677448468549977777794395496787855267987889998754977287898988498569639697574879776587933575599678793347768857859476596959756789595969676994857449625939669566896399898855889686761827756668495899467795775966859931848979754926865599949575698788636889385829380258557885588527863896945978498896759986759772599498374889852578998588797976985949968487689368998879696978655876478983798837765888984598638666488746888698774619999868697975975667967876692579765732875955979786538989796597689228458628895993955675967953297644848486776327495377696972879788484969795588840999668866348699548768986774773686875859969687980585863425948956874699578437876477675797847484485498879759977837599884546487577768789928759567397565699867847772959247832654989937588863682649753993947859946289593978369754776914895696258496793698779857639887758599448492896664576775678595898596569432694794798949636798496877575948989368897858550887616984339998688980858358573785976187596576989799589859998785853996979778394864878946766856647667786996708896359789899857944763674967984468698398676567588778587637858959356795698526294877778899725575883294486489697776464488725537897896398788336798982293988378949695559485945968972365999954399989985787568785965849752675997994787488499589889996943989579686939863957958857979367753977763996664479897679695749656756967289878397924949779877918638454998945378696577375967864894897457878558948388789778468987967959535485837553738966796885989858099683597697348987947796484585887959934666922846797844856675967356618968974887679856943858982795668552799566387674788885658897378794499796888495593782404679886997992545837679579755765985958445667638467885977664976395687649788787369878988978999953996648837488956042754758969978757988958344997692668887882999558582924469888289977359757776983633699574596958576896798984573585529895787843657533788775536946972666875669787598839999959686798955927789935997287542334858599538477864679982854347398865876992786789553582864697857593878787739397886978459868354966768957376855972967431565768996864699996455994698649868883742783974762686858773937883785996588279346887756627768754649679679891787996797696698566947349684937989698753495835977838798748797569585784644785598582778885587177938557979386986468597896873864869792969787846882435894894569788984648848394996646329999779689873495996649964728958968445567549457687788464854288889992792878999798585888857874972884998567882887343848498599464827465769373539898957439799835678699655965946299937776797916999687962578374594754998767695788799899178543961987282996696796877673372764893688384975869288166633858864831758798732385587886896366797687556557478939257875360983290879799968698795768362527979698899978878379973256898787986386828899564679554496877795998159985824584248357706439996787672794585945384966988689978983974168437954489896598557777977369849677977686789838595956789986386689338793878874877967733958698583389766569384597878298999989766984856295599975979697489654687296967947789776665199294599899636995378858574473978759949899859649923587999978259759935427577895997684434999235959499487642998394946799858536684796978666969255589458997825383888274879795949798863373668458678996942889867987956882468869698934939779774478577799683628985997978679299989883374589988797789388467557747457779648768699743869598768874675698986657576899566659977993789669789938778823868582676864982998967347588589886757596756882798359626944899576778768397586698877695975878636954786298656745685695367679968555988985957898858392773276086986684838597684496524888838681977648788946897957598899879254799995855897498878787859174782978746967769947979394905588666369777979937852887677956278979979966897298982963969949457888875864899577877583758528949549778868288736588947938598579699893478871538464988966966866676888798986658899948798687869897679436485786669674477569794979986599678756599887998395767773698676737667464388599335675686339998685965199696789676768579848965999568662539867708792576798782679865699369555543867678497785473585997982667875877499893787689877769377476877645997658968796789578857998185497997798995729989289445668778874789875997958347988688786378988479776698918486989975345853959887946996384957499588876695127255795334874576857967939879779943896459778839668789429760939564688959689858998678947969995892596738964455818971498487897739998598893399989689589468888845529397896639834598288939686686569847493967676467979439787975774873759346550989856792798788697994499456989936996718581542698178998938937776966494787986485984874769595496788484798788596434376845937846754946925594969983997934599979948845873798685257587955998874366377568886767767889388579656952738799599889899998996839997956965428857769495556839974958899667747887897989927657958886466855776359649243586256989489886387993977478485639334997689878649739969785764779888697589788395557669854365683483638596989478653786595886846989893688763938984989947879849432893895267899934676978878859792656979467869984694777793588896479897557357363947945998995898836879777887986628947989897869967959888939658585766679798995991758965468682594977977749985878987797786978978844844986995748488979779883566878579889997794857939944853656487969797937385888836854869589899747959884989555952457965664348989776593389765548698987158858696373079897229479938998389997716762699582976787789949388762637935488694026994489594665674794777959498893669678689877434389586979987579684783495655895667857678965873886889638966795789959738692785979893996986939885789969959639887845764786443498856876976999499989992358565969938374359595299269548672933866643968939485388567883687695844588438987686996798974973419694379433748687754997997726956963938666634879845277439773997747957957784886589448864885878988868394529927996456899897966983278587857568794985691798576775675648939969699478688847799394599737799285855695789549987963458473898797986958795669995475876553863877958886998999296754997496887987622978228698669473754955784978299975447579987998879794739895679325876356998273559988293967867377886987879963939915848578644265743779927484668283765766635838336966786999457599798586978993998679887574597883474662787789955586473837887894237688827688967992786689567574766534677795767694786579958225799585498417528798977790289874693966068475989766567557694799986678698877987798978589565929968574855794867877977663588236497188995848973399989579849995685645849888485876879889747394366789656934489599897896969998989997665599386783599859498952354969484576958569775477306979928645837926863995729756889365876969927962896679789496895867698495945682934786987898649897585337886629786896998837996399194857788292985559879789466685375996996864756798356767353893956769878888798767858596963997966553584977698328587592866499890438988893586696415389967767777767799959667863996857746898799849858938864989539269943699468949785968456579972379739388229249658666339488956777798832598997967977986575899762959986995928328645673584586986989637764795753465256885673798345959958898999483758759325877095474587769778895673754598799897856897656889699899979558884489567882899771498882855935554969988847279575566962849989748469842589416353979394982897355886399768699584668692846992695757865429469336549877832868897869974676498992789567598987598577895866799369844935383359687599977747964789469868738982965226868666242997544589936473878892999795865876246983764476292359535653979299779577786857656754884987873797968887827948884773896917986638876357554448785799749948388757875874574656948569569658888596977796637895998789749769896688959995887896957594899698779549939795989877567774799895648344988897773993777949889897877846998857984699466956928486798895438595988689957733959694948699789596578968999968843557575987379995644898487394849787389967478885714678783898894288246456742765488685879698477974775448799596728773738968965597729848496977588687677498274855569770293438779946583688575687958328686985998966786769879646478675736278764897525996528797697495399323982875838597347565896997669448973779668845597928443496986544456499775885567768956437776793887896748598985845746569744456829377678558969938597995795978557879823997579999764976289777667645992537398379585699857342896734889693754869444379294889567572657493864898945987789549989986894764727355896755983959497497845739597824986626869627765947994776494876759888928623889489848979565659738847249877349688799687545857978323169878496779677797979936964685685688396628684536395497454985894294655549898763242896869442998775569958878987628875558974775853259779959683586277899877836888395868584997467356667649475886796893496597793545788955389996282898999553875548588772989788386387499653977965568682887658889775255955739848387398369889777668745543235584998595645489929788777577296469896597777965577986828948466539963578268726885573628398896956995978989699548955976765758879837987046589598798936579833968491599294839996897598493393668797337654774895955865968865798435497998467986757828454488497849795493889856997999389489635497918979584677995995848969967758379387775690689659763778738979841974983098674498984989755633989975769777755888378757397675728255686353886598666599727639666998699658857559799088593576697987589289881969559767958588857937758776688788996997755887878897797649875955953784586584784778784399677684956979437477413579698689843966654985434966999567979767975789646849387995448772899673789867684788876664244497466689762999673685936342689559495768986737658799988957574786755896784789886666668773457988975204797986668489789959877938478847835925498479555628937750743388949787679633617988879659787932876887767785559850379997284969626687878696470386978599948989692488865546377633999933543883878788968983997787982351758895965465877969884878898847977858273673872588598886497485789356439699946985865889454467789929396998879779982794897785875669698862787748866862894869277769968589589994757656646872657254746667487892473557988662938733598569589759787878398646276935878639745783878755577467874769674899945353997597555868549982779960297689697368718678381996868869646697486998529678838946569919486676817899888929756996882593852289928988762938949336454795497534989477849888469878537939434497843877679895689998875967658696778738988659786749784652568897378687989779948988787873796863987277946855678896674777637597978896323337889785832889535949554747557389869694763538799796869664798768967698579880844869869576777569685465855365757758562814778886984698778696298587994669798393737568990989558969682857274742657999619536294558685770543947938459559889796886779664747979846695695999746585798949696765926478468698752479289676644462974887999877938967378967989975739894988779865935873778848759773788875746839897858639764939867573328938578884887347688497484486566489894359646998662998869457489856645588539936529787478894857699684958979659838778557367998865395259995496596686893987989933937868988323886897548637774924988593869999488747647885982579767548897564988756789972357689886645858588774924477583685969888998684968688736287754578977649689997578966828566977469858549757448893769799788896798693482796989986536548445839885887373349559447995778789959946576778735899636995776673298976767697988386696657898389859887678659974445872707278345399747378899877979865794682896768899927380778678065375775629496674854787578937956269897855799854577847979688228584996626288758897279865866727659599868768519849854728450654933858986698763778545773897654677775877778479953563539937279788579998767499948566369877658945765999897849496984782575389779476776463788682657444762849795696987678598467989763737397969728329695277597583238917467796865947599246388688999537878426689736462479367579986587898727578975993379857934759573968683566689378764529647567869648499279952995886988849939696369977434967977769869277989225673548885539989779335877946998158759486699767646787862932957395698987994854899783849949835678937779858726737759938839698828726987945653387457534588889599689245788789974277969455459476454988698987375299779882778954493429534958978883506489453745953587585487778769465743658599737682752788876914447668564872974892963686867988789878739659886989998679878256778998484586845538551698545665676791537386858789757778347849969666598652735788487964979895986269778844694756998964587997684786779679889688474883899939499569755995566989896798788478879797234669764498487546838969497769573767488994783969776685277669469468894573678599579632756588736878998965457672558381239874873399869989649559789297687889469698667699829495868987682885884438798687984564785866978958365648989584772778549659589993993768274678696979947739686587967395968797455473794829786942598696939388663935596626693864837975973777857977427767365889755976659882898487267869876454955675938467998684886498549599959589379869557888797437591678964798846592877695995989787859498899689953879575599566886989928289379989559886856457897225596987396654959699790583589284776965357816397952798576886595494391874599647275448954364997977857799987339365987537888875896898579786734984439649776655666888888966856768459258968769979767887888888897850699958878945575959758599857543788399749784849889848365774579997469388775494694666397994457694674976952969864777348868669856783866679698869987399969897555688779899885934767957497768798879673976996789678949776688965744855885878839479426978957673869678787753975998848788947787985438996584867869875496668997678566935897898657974535696976957877298847384946586954779875873748996579589879399797435995887788798779967899937868666499476598584797596663696476964997769984796649765668849788634247896273987998668886867798757499767389548757677899773685585795879575165655976989649594697974806548682688568736513725956897975706378885478355694848466649664998584874529567873829783757354864986995457867493787578795866842734792466356588379598466976878978759966878892958999865745877775596986635769688989658684964534659768637778957945739983867893789869677997765744989795947797639886227788588689332638463987397574638599595279487757234547958969974384594888441223967579917758698688397426569964383878288888657739698675845594644953498886589975678568855687959256979186869879359639879877857387566697727677696597695986684779866847772998848348677888899587462997358277379996989699258599985698999745592767875754836896789797568796977559937976994429849495362788275577728638828489396368975977874667994746334497954788896875776887974859579669957989355699966799569966788389947765795739553479454494889898683598493989481789875688758389796775158595979437649479745468599676495453385683796624875778899486323973767679576343778898674878761398889847678497377949705588786869736754877494785598978848989435997856753777262598925839995869469963735999589953874744848654797269588686559388799888698379896879286689537577686298578898482686467961893989874758347893763997874789676552696296884484939994558956359968798967559785869497279445797465899997846588837979885777369756679798384845584969842899723445993188277834948534977339556418399247589735782555749895429657746999878638827858292585648885817487789529999284988775985947851958886775385999592696755992898746978956964646699888473354889967767643387937954996794769755895777577689637663887576565677985479762979369695879959999539475939969979832698595577598023168626688598556875644957485638635868796499857889886474487779996586578296775498345578778998994398798659896898978760999796779668598975959878999767869899278684798379878798848884899596959738254868869963928586689644878988972537784967457679398976743779338486868568668487788866479775868848789684639637599994759968429565696493383986226769449757866749886997449794649675547778986894891988496496888489967658682658974433842999643834779768978698588959489877859768767907837878684989994749769838678576792829954599585988867864968995687978894678867997784555569752357758978992469936532585584699664695668447387727498695478673997538998298773277978668898889847955798687345714985697898093795946994636536994989964483488983632556795888893577674795569889946789789999873786396577943477654937486525969593884967679689478569969524937589399794755577396539297289667495679384659961389769664718988899878657932887745749786868699186979647792986699146967739585654468824838996766537937995265356745436384365899699465795867858788977765957649376841758996984889799657949597888971394696866469986979586987889166763383999469779922988498997859688666929698268335248985677678888976985687458337459387899459996489973938969465994538924465546896784879955858889682197867697769963285658878792797795187878799787368799488796393735547645779895677878689668587798728948568656681957483967479927479675957836939799598978973799876759783299766939553737887494669586778828767566298854776978485668695939663654933376879777996652996867956788955959686844649829493988999679863477696769794958992949488975689988387973679996557975629799873738968496882879685387348999876766895376795579879898699591839992697538794579769689872799969798825809786827986697987396575689899872885967949679349786799646569999993838499798947778996899884884776979727867477336758884785796546877789453726873389548887843762278672698895365986587957483559868589598695843579678878727477929958497989796984599398464669978549985867587685676887551925857863586417998993962379549757935476374657997976854888547779473977787768793876498499896766935847943268468989594844882975776559957736788976682658736959765485499847576499468646989882857885579983955937937767493954867484497648777478814455399289839848832478765599845473989955976853796485687895888477837988997748399964955777897898955286574599928269749898972887786726489943673284475793886889469998675373468655739599878789638842978949834779959499857778876668364367457473489545895963797598386988948479978963597954458755993768969667387885356287779784983897696556854566638937825586898936275658699497999435979779836817859585584787336636986987868983572739656599268668984879299865383879848685964879998469869395798775697964742868458739145843778769989442757268685957592845969996589893974888992626766759357797497978996778776489398986468468297965886216887653845537385389943176938278973575579868887693888975588337742689566847595357399669698469977772796679786774875879992463993842863758586938778948998853588995099776853555571854684667498648779876874358895499687989588948839962979765904767683746998466788478896877787597699939988776538319937695887338476352945796939847688736668859563598978695779489469538892938888969799588484369496669898996287995984634892949489382658896687536635699989776383378799979577575666888656798874999454957579427772479791389895366988746448899887874766858675547785887578726795979237286568657698827867747698829944988396636779659939698967998596848888554862963757278889997987888798266777646954979586959875648398989965639859876884527476844977995978837666395447995795689888356569467968544948769489889869677858939639168363666884937697305967687988986588478578889488984566885477571799849978574879983688382997887869876989795445659843487186786959369964559678399868993288759894563767557735687586840845635324746446466983699987688237999488999678785693887759758638385999975597982727654033454849887973676763557669798624594485698494776869646567388853176588645997326888975948348349999874946987379857898576791399888879383937898777667778599766793678736387443477698839844447854969654676759677968779789968638947867998759767467589726849796968847888676897668837669755887596939446885448957067579893478885751636666553297357985984829989350595853289869894978967768694785485833797977365539999677854887834887998879996944958686958725955974659785773784707978564652999573953853627952388626953729852797895778398355366882587945495686948977547967246851766299870797654999687638849495896768799759897928688768759675558679977999599745985779494777998976988839749666836934838889578394892296164596783879956748849923598947439983475986548477795358759877858589496958992598938944396667889587884789779897849686658796768477899959898847767795655978432648467884954676558958469834959526928985832792583964757988588458687977798756689487845557879477546439868337887587567968867467648845279967966998128937959687769684697338376977897479555465964978849798879597938882887389549959486789692648656277432764858988449959379986274234546549875993588952883879558999467297799435889297399949789547876386798697490345499686738964568967568667559863178946989759654572559776657399676639845565799893858679859997586279247867881948896778857599383658836965456938578967872987529857675595986587938377627786089889777694956645659978959674727399989898685754894566998244986977868547977566824426989836983539498898789827963974755899163739898445927788767568874298968822467978655779497546886879979295867869598995827883883277884768894925343935979766537296647279979798799868587853945888689989259985957696467879828498745588788447995699422729998529878458427467468889859896674886776775589756774377469978488599908598957897284658478993766389894953977648987677746738873988889459745469554857451972758658878888777778442794895936769597589864843588168372594965869948397687487795868898995878895889186549889573898999968169787588393987297693947567958798699958895924629978642582865769588592888885655688484946586559756496884782864794694886697987567699489588983486567787649988353597868775666938699697771737899679659668858567956935958982969658982961849289699896488677887964856528688983879662886937746865795789477988789297346962753869875857257773767784387585789686978883773687838788867375994387992453985678697875955486654884879396748778493969664768478798875554758837885353525868846068838595797939687696966393989869596559986543759998688764489644277998585569875485671891799688989699679725747577998199935835791639776953398876784287886786428555983627899489957679635279798567984487979088689997986957689395888955399786466567896858852828899696508775989829998246765228882485858659766677948202864663899999418962994769789774868985393855349982635897879728418439595347569993544785698696548936865776777934878489957978775656898787889646999938996679686534357489888438772768649885854747339797894858238469887647599987873964888997692286684999656463792995845899969973666787688847599998959593745927873694993974978884799969694997889674659498349639455497863897759675757494343646897769879829648486885897994496945375686375667749995987976685588676765932973984934906987779487579953258474466479875878655686789678957739786999987858689843928664455499899997769597949256256279947695838972864398737468898674597866876889949767467973877434667682663639993776675248478695856865393627555657868877594979774877959387558998838254798288589776689778369558579486747939984959689679824892896945689959795867798494879798596377177397787537868228977785499759786948778897586949676897437588958948148958867788698895929887694975685993627744944458652183777956468585899898798774869998988496979999589448928766979785959469598837983484447937997798547562378645768878997995693949498758166753957692785998499742996839677836596876849598374578393869986895767885647996559475888969766976857889588668989875985796797688287597474699899286699747874374928996484827388667767767436998676638789684757479799387378596992749624643189765939679877676926668888866377458848828698699835886569369468833757798485759986297783889792428469357675899852889939668949699475299977548743856898968259638875398986977977976795988697875737566536965856988289479485049489655067778558996966884769967875592799336729887776673978878895993998997966538695886889996948979975694655775698769498968708989767943658588453695884447556267746964345977623394469664774998957884787895297839494557973975437348778976478966386698695948858369946578675387868959876889998196568866777675992953573923857966694569599898769836987869666707675755689989952889568558343458998569399357675645573675546788668499689384778857387894976597344779879579588627748556564993797938955247265355896788884559777935685236587985719795764439882797464799867476986788491798869762979889989779962727724588795988594859459858986292936678589669582649748866956732984757663699855825749773926799947768945857643598795398983485847578976496964837788459966899248696297658969868063463594536936887975489961355989579383897225969482387654477887744647369749738567884778645945856797438696988865686575686968926998737359277647689775789884661834798798749878935976677475899939594695756978588779968873669529648892587579695596978738648935749746838867955949877393466588845629492999637687446949837998898876647469687879967266553689965875847587766797979777552898899365933377698926578899653585898959571798997675457876596466759459653767829585536788377756465967993664894469747789787857773888975649559895898656894557686786479768685784856686697968288788588596855947653856289786845748566935989777778758958982885895876589558973655626395828845720586862689959439785769566889864458899356487676846899765899796986883467575775438845899959742957975599757938997798757799689789879689969878769289990654477788748689865697877965898978789979389488867875655962889389697888765972888997766896667949987855782479839867284499746868998794588977892689567958771992279691845776897884778652988938828949999773579849865985949663987489596748599747092889748389668773686728787679969776877644679894439288854763967595458777989852964564797965889635468994498545489899336898929527648868998989988975678662475398939689874828399985899989977676898799589758696787874897774655864986944879965950892838898541877899659447999967819479886679484648559349636657889876876897949996469786956376682388783866758956498887975694467855935467988397867578939799937550969873698897798587388871568968765777979488447767849998344756749376768489599558588689983978664398496797949796968754373677978887764989596388486945859987476293576668886476697895257697268584388895815693675638857599758669633459668975884885987494673855976983834336883834663764675667778976787738999776267898863643946774799849759999887394769874867546599556756598624863798697695989967875458694689833988985631954099889849384969883366797993963899978873858658684839455677692989667979799666526994998786683985646593875667783789990845239669848798867389769696258756844946496562749678437448896366395766928866896598745393543833428976738555348947946887939857758278068699349788357966534754555627877358745657997389778957488489778967847896568967995889858756646879767941839999676549937965738849695957797897792995959865776969857978297857875358994329975769399722377787968485774899877468827979886695494787765678788857673899798852993696974884817385999668759287759995477988787794747937398656389994998889866986829593758852799838986989768484393794986866857693748963549564859767957567967692987974899698545895396766927986768752884549688848895949883865842999734672769989666588776648983388976699658979877887989672939392566789579746785654759774729995362679987369986887679497767908450519749756877838636973955878888788856837888968699399589936587997967686665975489877895258975767549452448673885675109963889877983337593533949839989787957947858698784388887659797497769765996924495454497688989468565963748759888876776454974989852985489677297864599849893936466386793699969477878337988882416855573877669748788697598997949635982967849478859938996974887497678648858846598825969885568938865468965367886498934689477247985425487569299794689387747799869956557746545871668791888986359476988825875744322679737498376496794836989997689718797989784876596869354985899389567894885758758379999727578398928375259428484498688299896469759399789887386977885965357274912556998999898986887768777698838977679897799879694884878959998698195258988676839889775898494774757796763843877443689337886856758642644597474667755769886834576995698753646896996585898298357979433475669456777965899774993669379359459479589598869388667899973499863799884754479487876397877786557795857593658752443693985896899852938995369753958877746884765878476776869998786564434769889886959899858595987995445493673877993786793327794634837743876687667785963886052798958262196989979587859539339746640773498745799949537295675987736427468297636755985726885897733887884968657947775676896682869979454656494874993899795998987798789898789499958495786553994674994797389394668359973388737437862777778779887137799787899799887975257688776497874269696597785937946722797742694946997488774975698579874348697777877666498858855937399856679898784697499889997764976775856796448615888979359747758978859249477976958679821294669787999766788682998858979639997899959663999734935776255798346938458658299584878976792724479896688694968256839588786686865657944664595969786998684998352828859730385444669938779875635489493487995889895656688896806769636567979936952787694789858789584855996986965837968488777769749847986996984734868989677993948866289947589858998559828789795674838493466599279753457848745987795589788873289898585987892684749988864585879894979578899639935379755568359780949796787798786877995593889666754897873888387687797877926269757644895478364874069788576549666495956967797454697937894755497928885852973545664386945782278685829475994796648379939447467479899797973496571768799968766586799866266947784337690945766695796819368097977579663288487676985749993538379995676984494969786597938968885848589986866796799806783798738356768638598789916656375297598377778787535687396259974599854693844569885786784788775824832474986484283597949863779294528598577514456785936589554797988838287797853793683547776998465899685747398546935869993893678787576788988498768668887366958580846984587842957671596997948783394777797758887652558799993252676657969279937996999897047947992515486754699628449576669388958973799966848285589959282679247547972494669977768679756563895656694961397869974688747397997569798999429976939837877981893769988266797776758995997784592486366647596939898891896984668773796379833473755674359288686393845595899779771688849896938878752676468895979988899578499785848999744956564533985889996379373795595968538796478868786787799878577777926256639988996977588999678839765869577377893885898826042958667086498998759986266378936967745884324979286586586597689976996846728966872648899744947682544796558888788833989888699473943748979666638847989328867788398456995862799799834597998974949552769769679969558797499486757587985693776597888598688778667952389963744589444736795996878548524509923979897935888685986979655788935835939983959645958653776865787978577898487922897924566278982946672997567885588598888364465656784266918994348839868979921858499698798489649555949908875738796797999999677698454998236685896879897697679887887795856959594768684967996967533879764877895537978793498578335868554549848816747858872654876636875699884849958496849938591574357846899788257698677853337397989666948832499777799579695868524995772778936895839447478389485867957794684557794557899727544765965958896269479795747999949677856959896699634546597897898988776788969958578657989879586697689889998774693668675828996699776776549738477799469893595858574775194745975958865963643266474647898654657756859592488587884763784986765984778766979449486969987985894896786338878778093296594558775954486557978348489577887859867764379835869872668755769644699894698852790784864687627569286597964959877979447677399962478744638688277397519893609858379566858696996692799579689799962649781986885398677895583995349955975889675898299127939397737774897664569388848843989876777889798363336787677894972766689984459769667367668798576873655898299772554897988744993595949862666567674587676898875894279788679766743639599799767966974879957689689889695966916954797768981695589459556863848848888828949889887535569597864838753735785889696858899957665884979889999959638597546668788897788466924598659888886236739889676829748869598795899949859546853684759744788789978787966986893378589984897796367647565492687938753868396987998895397889799428797789387847597976955637698798758489685759869885976957357959877894999599719957897899975756883487849899988645997589589778346839453889746698489456532449838885789886787489452894693979869699797999987598767367379396467678897585848659998388847988356599944979676298998663975557833789977836975688822839557392796997751698995486677668729989895998869557994695477779294789776899697967385874743990488882404559148767845999899396579929749288659959595967698778459579742899766888688483745946846859896859596983768982999739697999569735788897787945588587867826549358968898957773796536564897645539727957932767265579773468859777976693866676835843794355977989638779677544492865869876997923557897787635689658969996897879587795555543968598358898312855755687688686479965938988849959399779884575968825975823988583878853189466363669368809869536959958782643188899439596597655376922667866889797987768937443777747567727788767863999952756476896777958570959638488799459722388899255576534877699967799475659358897699679887859884999378873993990698152424897846978547597767706589969877686996637799478876498666837788567869477589799771647487989486557748489499887992378648474643678466174298866998763944399887948889894957894546885674665266988672344895879467399588987969645968565587985894967788668588546958949975433687583229983968858648655667958839967195569596698594466992923588528789859785559988898848325548957679572658479868999459942536846898899997938329657798873479799485852473646887955786245772693488987778566976896655887458879276558358868589549886679859976955898387398899587489697988881487787799865975737379848787686578923673757773596308687466767688698349885053997899782578269786999754388182487696624579762885857745995868797395122875974158485855779769785686547696647974097976856957499739699748897483649474873788687487663695977793478978776823983936487357955398997695689798788964288578545967795999677668677694527797455769769289776557791927685792478897999985599697658989979448426659896295887968665788879893888886777399671696653739964688659477982798596699974325695697994596949487588977959851975889846957246997698938859589699649794768967388493537855546278764969335795269649966998534676998968443889659857598828648970986668897045965568926645755998666354528454698849848977598884789962767977864495877765796897572987887896445896398625785968798988664795885478766953776885736959954958696628879988959658958536955694657751774647499575886494996759892989886645989937985663698567874985987863387967799483956863334587587976773699234787437479976955788844454678538767798635769356648995683779676946585837758787988774973898542586976647466993688464954578692786599684648599235769455998769966686658489845689979777337755376857746394667682876888699757964987839844916348865446799296787867189897988935987498963459625779893879924966659798769796898675587875596748796589497353966869899945975620978866788676957648433357699879849979458953765597698857746895954899959624788777696888478596935658499486475748739984998777569589497283495889643947889849859869936871687957277678896388288436784937728957934925999935527598625667977928296995898777939589729928995493896849795577898996898886596796849699959599887956897687986562679783969469826889969999293586676775584962557658838586799679959477994893974777662994799897876946887465878974911486576267458794368749788449486686786886683935465839793689859769889863999339487874973816555768367599843854838877978764758369988287386564897966673575779895793628792638899599793895987638487942958747535896379977479549996659485786839766283749674570793763998908796966578796698756593758457767592298595788494489879367799887659549888688976965636985952686694698989893967869999895946998488779798885483585564989735778748967898997759764266495773985746448883449635875896984497987939494384798998776678455662959533598185998869794676798959758479464798985799995468573567515686998688858688759633989543979944857978778454829894979365498565777958956799975927597647789746669447266647459969687859798629858854385487996358748399737989579692389936758999448998938886695887679797265873952584806995532878488986848399472688644834945378647664996999589629957678377968986826666734882464899588986848237267893626398978995587888737686988674949487894947428488899679988277295548586669958674888878786468856868989695528878989594128918649953887596898969499984882248276879699205896795679797595698727387835469864979839594597677998977386264709996689869856934368657775999998993675689449668989957889996667679574337585468687295939839979655599779857882863357781747699567399284647647535467928884866399579897386886798978778899872797483877958577848964759797466729589992499697959698589785987873979958639483877638489984536491497597258489998948958649895588698578593979592254677593479674465367245957755773838465358972962583978262858983495777593854978666665249697783539679997769786778478888883955584385877973453947883789482196896989967825884584546598497776754864578866757668767386998997529660546838562577777966768799919459996289537787598676987786263977992956628488487269885363359987459264899877589338599399988989896597779926589999837948893595369652387773569696676878697594667787565367754995796979587988639968897898826479587973986763638969689649395778755337698947846543757966159567979927645779529683698779859675589999996956975889946698951658969458946784798799975598357683877796838869899656983364749344763987866685994678199837847466688575769484946947459963849699875766635956965737389795874549936438987496643235827897715987765638754667486466496868777658666767857799399679985566489753727269353425645667497245634588997677889795627498927389585463868968978562484697987879997858988860843389729588768454599383977976879973325579886893828899588568339997877985557584779897863989339675875888368989556554999687867488739684933853988922695875965634886779795758236468347895794877844999999997978788839287998878497857479878737337399139848749378687796757843699876659153767562398892348477948869846373273486589375892478998623938699893595474876716883548467744676757788478497929387847956898699458777624959877699991865556959798642862746575889337855843947993749348374937576384878779783889466753748689795838965969936987881487788587485677578997459353678993984729993898856249797655885795897857967957477987766574999868992557492959864772784694989962578780779498474992587542799859579684677887684979878695932339648866837598478998999469976864878976685489575988993899959864789828899789797894988733986675697377613682479852859644759695789558772687288359878879766589848834978697475698346599497875477963786487936767983769448987998869776482885197697737989599637258765816565684779795988939865484947568989873787649948599977594748578989579999862796998985878685979415489959768137586247395879897827965728656468667678494798382989877962648687989873896283566694346789476587969697866869655938979676993878899957664687766994868195847985965897476989359587847778795786899783887857408788997477845889775679388869787688699158997989355878643959279293856527539789959597683964274529768499378648765284777889869944888559345767939223772848682996588759448756489719975675669666987976865563287886485668896999885568464858096388892685966627888758989879969959797695966899948894576635573925265556869856549326763857335788498558688496999867385348973655968738834933596895489997926744935645687448353689475652635955949687666594988649968989740359689735769446999466787986947827674745572837369887697645794979873735559934872287544735888937438458776947997463857983685777589673987984944786998689666799669809975891869492499796758748788979889937077895376638289988967597395494554770752787679574689478379999756454369652788988877379974587854297466946885787832466988928789355695863569968396817649483385546748896856958998979694593777587459863598763489498329417785679856757867279643746785984886299897658389496729946988897788366578975498979858498396598888958658899649599739458677694984374593777481538398395698799587945565988965774369644466876754975947479988691675869869956997978876898449878779847826346537787776996483788588477793977886958555638747795439889298889897848877879668776833472798968785989945953965689694397855479398798483999356489845836847886863499687998989476559498886995797299848977639887865758875678979948559961789346588685552696857599788579663889888882966789586957549977829575799944569357588998999582875744958756776956494839379975779666969393549869996688245846359399228345682557986428878946946367957765669646776636568688354369587599586959689798847786533687966893782945537595229508686758687086993067737338375449569637354975439989996777976497596306969929867865856999475275886368499759838737675658384878177999469987997498772334676688394825355695993925556583388628559876787596968988765375599899754896588775789969937659881624552789388892689978936798424456969888696962749868649865395578995924682889589634795892536879788589999355277886357675569468484547834564873996983798886498786567836995569639767853789288859549860387397469749596758875994673459959458775897763968487998826966798860475528989554588985777946673789878860886976858443578897428968663587899468577799384974199674879773266388684664568776669676998599766679695779879879961537785478859969585989998488589754689849768995598865588998989486586438894578882496649687598897794769984755989973459293764787985484784999535587492983975691755956984397639666966396684746768729496856886879888579895768798427985987679956746453279573799999797863958369955286689795677896876989499646276676395689888348645948398429935889827989777895298779957948995754484887869587695938668964699892798778578939677997967688866948379997427284893749299859799785989898785847377886898959789699493669762599937899449899586748328694599798696989894398678449489998864447344280793664715875688596889844697898868865479575586978568658889998589864677644233798589485739398447654776998784698265487966494987838254687459689597774979999585976785887995348899759358795747775983796796898459527456453988949645474678658949557654578678648858639995779945935565779987785882684937889744547687899765966946479334399873365799557869967895688989489986398358988464665968463889668647768944383956798477489277179955866963867986798347449687543572446944844972956996597298856273777394377964659859989997897966574868769587969979308794699698484826764978897999869173888996427688615846586589256840985582997289394677369624478853775497997886778295995955586736966987398962599335673996598999899677498868872887544833467596948489889465378849787789687539469466887667982998687892538296468668499667996429839869476899667656756985498885739674947928477686789883697667674588996638799724268746993727997694546864339877588576896938662955853799596945798598796795967479497793699845894667877879399974667785676595795769759998799827293798696569888569867879584768389774758583269974878988495496784776898357299842766792759384699547368487937488385798949698877599689848877957885465497897266928796698532858987978559742566868948988857858357866876787749639959898945778967592579695826547335873955459968579679989986698638687599939795575694425887897987689656874647757853697987599893337998998665398761348574785739639785689479723695584994865988758653978968288774995656886938987968793587779786795798894965585876598892436395888435839774779567997749636695467286575574897236797578685889845704688778699798349799498967458724668658843563463249589998876856989695955775998684987897879846848696874574688896436960539898936992877758999856675639556285985887548868389665989985438896963529947449235788557379478987565995499289887787939698677699995849675887341947278598486976939673254218767469476986694995865369796388697688475685696847868968678948645759666849852375247677425678277773772798379927987261976749398756277299786889994766969878959885766867765348785997967988798589966925788897496548967365878498096967897798459766954941965848999945856389944675798978459475492939986857458935889589788672898348995928877949596969992778477669783578945668496825745597897769548989778429523925877116769649599897768367867669886596735979693755873492785972699956866917475477477494694898694997879668695975532439944882264746994894795768949765995877477575788472179643657778474795558397497996888897958327675934645397784977768937863737879659479888764778747948857772588883459427772439858497789655949867979969669709876868639647989853549959668954596645997495756787945768798898875146876895773957757298659658765278763399688798994558979789896297459392958465756227779897668673670876960988972685788684286836869534549695859389579789986958528648816427566648798729968998795856982883897789629799848528897865399779447768739596447578859988787875697896862497739999739878948939599998472574985864838966866698979859936239577995798455654967776688838928704889927499584684997897582935786739689652485553794354935868853895956588485674693729551759583777737897497688869344879687399692678679898345796689968799896968598389495927975839989598868882686798597795988796888939657825356439699446872194569858773846798298725778379479383957995797564646927484892498769767569987588765986667277886437826988884595956597866896766756899645788456454636985799796668379692656627658488358656795659829985966328749288786984437897988788983788979896888893798498786674988385997869875869995875979894839657886974457464576944794276878579787555454475997786697946563988979966735988788595439955489493569295878684974386496768956579198425959624859765485328435334793277827809966686688894898815575565652597596267585498996749999368356775668965553567789295889435639687966887734989969658269698855979838998594963383848698989346768885495788559697297895598947848449979539837868788975985684871654676738789659788888978265647486856774595574377797696698777887886265733759759887979797466786867358888580558699875576835773976888965599794857579979664912466758677985569967666874997668688687797447589987686898755692994879656479895787992384567168794449778965994827979979085697868665747394568244849654983266988788596492445748889769887975859298439697778979876478679996959823889798964993788874138998729485796984849536763774497595739594389586928474956774777565459769658992687958786997743984995988978769598697854879978455485699469588696998787638675755837582799596787289299863848683669386529769898887766678656768895664998956887757289985943883585879325776898878989667589756933932544859496766889588422857749868989765886628699688866687725265387525997695643067326299759575728897437689946695691584565984876283599927883863549493677655459967458958849396839553853856953948382538489935264488477468982964993495896399966866287845576989832069279976994758563992463672278967496927879765757779372674578349246797997997679599759686995398175548839798759845657579596699977471978689593792787459669597796792999896678569989846987587743689729975487593888568657869289646446494945957668779769477979906886698738789289796364546857499995896799497576976778837892578555479739298488425897483877853963996989379984788896928587867648789372778838496578948844688466483674659779999818877794843585789999986556465897589854996978158358972872659996436944884965494768658973284645465288779638496546549476588994688985596539898576945278556278854237894841372968807873395486555839675859468379979377864789488966468983248298994874357585995594693888826778859979859492895577973773983471759856899988888736576669685596596874997668791296575963762756489886977747837956799365964998256936597564989647857899697786563533595456587894987654578985768956697427899866977997684489969776768399858768898988696792664865787965479966848685559333896486589747337556997824968855956957575864449779969897358488889389245478737787985958489496784689986648927657869787966944486794959357678979822848469556738826684773878988735324764456769774677644956997586967888987457738638779796898836724975823855987486883896987294872777795596658978884897789886998678657995766476982795957995474976987954753843488894372889823977178997924345452479886989886699989897389944876727997664797796598622657878787938999663599514769954333376779467974984913153566687674644974875956346893699853946696287876552868237395326479458482897888546397648788499957995793963668869887299525998776967846959583697899389978673476867936529887985885713484678686588773889859962897984985999684468899989959515687487897848899869789988968447779478887851836358599565994663629746659575372374897738444758783896988985957763676795898349667593576599583689967979799269846568881887727888656589858898897659697849545875987897968776759969949779646848896594549624758476758285668428987677679578568288652986547495789748959977688585898378587567955697887288973724679596588478946797776768899478876989493889970778486388373975799897313279688885498537988647437988858849985599569769568594698458857959874577979896998589968785578465498685598626759968766888793477864466856696614849247687379989949419685682683656766989559786766647829397859339339346589247939984945757868666967967129979399897898599799858924987886445659977684847783889678789665998494559878569956464990333897785698658806989839567879478699996723589538429677999987938386574975969333676588279595669967987299777794749296677792689879692656895819677487287655349979849698937659446739798839767692347539375348862771857648259435598584868989886692969769673996634778684799977271357424579839699948755957893585499567563858764468887312685478819569689698969568255798792799846684338544397268777998997888976856793664797858674342967496799785489797679385992273783986713837479936775799665888988837593593997689675926964589898846879799663995937959897494898659398593773399388558479967796629997699819644476638996587847982679739979526949689697696348679878556788989564595656989792868798387997888895487967556585868457898767838789993985887372659828685779886762885465974055889756756385867698953697941457458945557547999835987989343663887798268857498939962998479693977579623958984199977949534848887394658348798898859878728649999834469848789758996258987787386934736769875443935785779967096348875778990468687663853836686978387759686985459898777736707984879889799979799729736499878644276937976988526456584756868786778878586267783593859687574899889889768892994787866997675745958583635778979898975974739848999857842769948868753887559994894947864925677798325897934659454567986379647983986793688765475587866775779487568986346588954567798759787165667998988946776874539997983628749758543256598586965668796299868572977499488978773885999749969868474596988989995955656786656555987595338447359577598217958769396762495647975764595593958779546893999888727554568549766941962647626777287895884478994965476996698698976886537894897769416354956979957965697895774945875336648879897897898497835493974339884766633678898583457963769885369697397364429569965897331961439779926756796539208583678447336478955867978927454865578587754692854399955776962676877496894677886485386586527648877236856795785773845999589657877974869787864563778756866787397787774975786469649976859993886479789977965976977987441358369776866989728796229787699645985889777967842777288847564248796959529878968857589798698359256296864758072235992795399567997967865499979979289998978999638678976477784737979337983747999793963985789976978878497797589676684854598747477742686898448848474585449767885859693919998967898783489875966386797858536953545588949878299279698858788769869286965986677525648996835463555693845568767874555896746979994877186689857659947938749867764629967877987579877957989499677797797978639697352452889469794786994568273903888788235767088974769854568887489889994786792253557835867394587575476669899438778897974683597843286878995774078468477932976687667979895847755997599959958889329697792979879346977979868878768883856777549868579747977852898999384555563738689945563694675228989888499778947669826976874798876535854758884867262697967938993798769995489832768348969672458939367496978489775967987568249478826688747889420599739667689778584978958360768895984897844686454596877879559346994999945789248976377589793818834889892940399629399442369584548656487493626964656392985863386788788847359744878679656695982796855286938688786687963883332824986779459868876772436436687989689666939959886988777748465558566847699945298926667455859988799339955779298666789959974645434499698857997296297878897498979788899967455154783599678949533987587938462388645998448889947753843683789789987897637645884797864846676778999478936537655898799583687694368868787576728669798869768389578756982776567794875961986665286959696999997468937649375588774566359537863774599575878884758959158768729699667777589993938967859798498928679425647963862425459967876686557864638789761435963689575435749759485545999699587555835782699859853437996648671889667999388799599598989181554884643397889882378688996849799972543946749765798829896894595766493995866659939879838999882857665896878278528894982965549848845765787974581776688967798789598748854982777688556979769731797799388995995869628756946558366972696989638899539748386782928877854863399758586993986995898976187757498664369769869448577999352452579735348476977398984989995776899797464958949023686468594745588676719052783969956899669582898774749865697979955485859437796789789835983735789904856896739697697899782599739734545999439759869948945969999476995598258874999778664555796678486998828543587759738996745557798736877773786696399984696878828957938978876599778999499494487795765587745764777779777892689394888246937948764922095753889857869326958444559985746929789495683658896968754284565562379956384943754746798987329599788479968499483880788683365475899999797758899954389959596899488442165795986967317539893665929889986992959397786885894886647677528575689339998629633559887963865856365885598887998576989279567868468277879495478998997027928767956969857334913599690739426397679769894877955998348587557996478867667954553846494634957988578475449086459986796878779976762996596698678779789586897696747962987396568978638877433978483558668868774577986827697885676394768495859987383469690848884768686384699464329956998978688588936853567884963938938490363897379597957499969778965847949685927696966866497779367938687639886996665965628386775377953898654785957786459589738860984775583846742877596697487488896695879779255679487949435598994769489795692694522967956856564856899969788789669427339585687679868576388847949975975763497584388997999364729785856993789188294699297284799577947748472789975996979838947989492477897456379686382679859942864689795735899542799496369859587954976996678865597685827898618777988578829976679687389667469786938483833974989958577939586685749597444759658985445677795857875469868882868577876778295637776897735699849685978345758755585999946267993827979818526899773769728944949578948468756934957672877798976754899625759938556688999972297638954586569885699872874877884436595987844593494496999579989696547468968989995876856997996888586799495586839729974728657968783957656739395385769548334876999775776669763336699995936958866744878996768483465458474827709644639878458949777347469759943445695689978965468789998965738888426597647377889973378374795459855799383999964283965668894585888579489794879543357784797465978797379965345869578675567767697936488196779965899999889578787688978599847825378395359962788796744897969895599737657837799896899977484966470736955788556779727825368638777899878588699678327889869885965979767545588394753797893889526738673389187678376975364865976739957684469795989939789798974968787886999689399587938877244887649623996477797849638569697395658679895784877786684997587758888863999739599796674389736657795489898778388967267899998572736599885437589659527789296568879387498758989985493939648843787897898064976449945539785467248566758513633894998684994694959883595938568878849425877789859698755768797357648337396797696598848759558493778699797796899898979348819365282728843889385937365955766899857669967953797363977953896799823849868697899497992987889596558976285958469999775729849685547888586892799676691399643852899566659354938798969929496829878785999698885788545679933677348569795516982579339683545828369745745979867968009883949984569898607785739985977768935696567968987738768549689785775526918585779836925447864349985877966853829599966597598368624486929949887875487851796775648694948998695849659583844878746868788783488879697257577956384669359875598936878775496644979327877887975787896698366933835288347888385469235877975972292996698258882999886687943765473898474968969937747549951838959478533955587946746792869836557459428772958293687358935684363987966798795479498997595897533575967748999249378477585866931887567763580889788899567879963899985449767734664838677863879883583643884655877648863685039967988679934493639536474857885968953994745469675977746837546887978945277855396293697275693396859686989689664566498467968975697598828973764563773487886697985745799877596739767937638798788773945758995696387338585567378536876999895848686979655857435886737277598996896895684475278656987758957457697958569265388959636527969767883595143696835959659688475459799556886794678987676958927664693969788967899289938896979574534988885657989295969966888477869994668739687857874856999876347789599692693868967974824797777772987547898385646679545389445749938696839596774699649884386675588996474756374827984448485484297995981888796593986484994579718359322475529795678485784784647798749793383736849188988958385967499586988586585768678799187695869884869799567767488465999375967465878977967569339968388885799548769575875688289485478285794479597998599689796686546977795976977796279557768679999949262867579783669789898822987897727482578467949283999549479598484595959687863896527958599486882972957916790959487977418554866829949959692779769844793678398634588785888765776648796369042946759898697878559678625744789527786939865729666793668785994579562533998838394738937475742779355454586998837836775673969749998896962697699439979976688866025758942896589779968647942789548665194757496289249159879888774997598728957949585378888865433534427456767868579789939867877478798856234856644697766945669849878834997585974787862765787776479793479956798937746737758336777859563988697896969289656668999473177858899978946878765377723928798425718564997698889695669858578885759892879787768779959895746176706736567789996977987269378598979849759987487878198685577968653537977989592888987997975576867489734897765984688957594673859297969922978259956470436969769342276862785766789887999759975978835627787640463375745824596979672686799999592948988769969998686745774759989577586266477867796299479383579476868649999881855277559647797567627769667759999435572267747683846568567764658893828697852987698698399876459988465895445658374648867375448575748966778878756989933694956258839568999967256725970877567988596475763997597638279947678688857869578274597798548928757787562747896777763747897597876375995899888892715466659655369575738868778993669775697697659893677888967876797965588956489969449593993728968598988289998559949209877557259496827874454456895732694989568892977339582599649685466954766968598974668868673659298985636764595533519897797889827986985756665936778979573684656686577887978456665739969948247859378796684497587737787588645844969982669694235664773594644176776285938639739697749485326699598859855846999579763806789998748989694885669699954287688846949959778985857856497992257562987869986863598684997999648936678557649668946976969664598938627283389798665479544458869899783797465975296767927544858786265585997543398665889343685862889567968794256498863575475873499877889739788854497934777967675845686576949559197255978938983947957834888595844688853563947299899973239867478734849978959648697796685199799886957298799967996989835556896959597876567999748936985478458597776988477557899485959894699998897498288983478795889596546986799356989669693847888899977549795759409299848739571659856958866643159755968884786798668683894833593995945787592967495974499997743699547783889599958453778968973887947998447858954568678857899657959795628699688899985858858875777588789867799598933979646795784465469797769958665789673866969777785196047898848979956792486578449879578858991869357687947474554999942896343794797569366269796695674437857566315968658777975488335453565669888859656467654495496872569958948259887639899439966449899879886787567993597769799978066836498797797782865597479857739588975895628474896379988746883689275747979677488428887639478679263689884946686347368793884779452783995736969656629659579558747299897836484966384596166794788795968799459789636998906897968936662628875657759546887949959949988937595989286327986844567665598892777887877743878796688682969646764675877679569367475953599649689983476478699744889595887458198898569397429795989639973399794972598886487887955948473645488975857795998484546396839578588437966458947675568747869969966567588788854656937953738997947637639994437776457569643658676952428997835389997653868786778867599763768469913739868352788976989966678647993919936578367858769489747984887679978535794767865817343989965389484549686776889567565582269457874825284846478998697884874878844788678077547897637797497787936974487975766695888687939677969777859989699869285777889869988895658626642947795639757557665545899254637458599794896939298768466887857856957473897459798679655949378538594286988268387994986759585778789979548384499577979489476999174662342989969561798499585487967638689454668954758497769959986978899869797688988258868994865438895579699847737368987476979246796519947574989798885736856446998854876758474775477673449966448589257899958426862375667974756793778446785687875989665974927386887748586458866498795978998659479795885569867589797949678669626569895989559549986885757942567986724875489989578866775955364876978998658669246576984852365597796558298747789538498585596636839899678586789549699364694748886398869978939788867791787875366599649247872776566277888873754538659538586744959983355934555963956599983299992839896984549679989927799687999687999366893966549938978739449974979879859479659499878398927177467897969674888658859858767778748647996648949797753394999876799988362998466799468765963587482288886786389884787876584787769986937549898892979449939796498247565416799487867832699648679296669777597745876568774989895742688934685849794795855779684946498788798799574936472568799929578888999749828879878674544964838775484898525868977889965299967965379548749494945885773586984956529848586884994729398597349887455998556598269553486997476746686795825875358582989789696343756778834788964827939956824969992385946436683268578583977867837477689393619879696897897996964996978589669428724868528855869579974479543966567056872888666566947638675875754573377787986546483674552669857879775478235974837897553698478949747688897498759986499656971695656998189665657658578642894676598748978998999595477767979499365988888764786468797883665889777536986876777757496825824775799889644533588948997758957889599668358557799266488598496859385858839988495535677588895989565366995458396938797968567998844996933373774763896979557596933658666888599932777399875828859257938638857728898586596594999946478967292987375276336747635698789994789482929758877285739859488874989966599976385258864286675878714159487799772984235877744875836899458687858699884779396374647969898469967669694798642479469789687567585785769677953978955988938762269939685997978999956974595889768869888696995795533825993484527773775487457696899899589836559547894739436596658589533577722396436868959588281699997865659985714776458998557689555888759783977875965665594475879984888397489839449636376568956999736895577408368309889955753739785879663426975595779358427886586297657498295546597477869737646338977938499748789326885698787795569277886667697767933576799949985999999497465874588737826978837699857639485729468658967878986997436432279933778695559478858594867329787587338486638889946785356665979765857969688989867864724562588684899726569993858544366887726975773329449885747979378949735989376993973669699499579746687886535458793567903989966989488458595877774936336395689935674579924999409756742563746789868655367373878745966599453846779997599589786956588597589965697699393284755777275878684778986399765495476668874867968543567864887667794986555189896768755994769385577397887937978393837348344978499993759988418755966889955788996799999993879559699639937767884692897889686656412463346771889595599948898682548639778756956947998679567554555754988948874664787866979639389649887477598899982894656847834737857498283588869346308857886688198977654278417652578876736699898639758997899795881772568352557328558989884867446978597754596583424873798447674923592488695155997659286687478676288939748892639889998983976769877654986485857999366978889791685577849868664858748896595444999953789649882999275559947949866377689894486659989688762887998977456747558973559989988987778477964745865824837469759648788744693987875498944895893469356688998998575368883335777974966977758971884837828779549843856689578558678865675587355885375859849867753883697882797857258977869754978459795974879997674809897496998858556989997989878789946784568799617225348878878586424494872769455798669087796963838595618755667776889877866759583987465698685667895881775339685513687463663569763777779466985898959857448439798751675993996548899293955475496887878769769994736331769577856362789221459685587979661888869497794249788968876456974979949598795773999969795775748886679874481759882266688883756939959988662883798863698873363896447669983888587793467484666979668689873664345957997749569668868933987999738877394877986969985655396885949895995624879746983868984482897896389776596786837567985876786247793966891869974597394774449996799676544418723684879935466697847955696756788488778499677674555754864226888785473337777672598998846973774666749888876985757999685799988985679788799995869578597597798849999753465646575859568888849889649857787778696723672379979468475595588674947879962889697245694779889993276474437986997727897496986975975793976559996979773366768879344875488789848934369877584588734796873887974589967559786794372794968586887979997885366959478867898965796784499258937346889734671888758972889964595583914895326769486779898485689838855694858526385257743575982772686777735974379996798133857565367877737387437445898683696948356981899743799397399554687959877988956974794855959498666399889593957566789679755345496967698848895575366956999237778787397947445896885488877844667969997597394789949867479288578554676797759899855798996499956886948274894859998399794893969795869749899976279966796998995885869776666799882977969749239559673775562894883889969856999998957689874569947549957983698993679449739777896577599287653999986389487284796635783899147569998565495628564596896675957889996647837859959489996897694585683999068695869686963576767569489796485968845595670785575897557694982848484779795838734747998568748669558286879996782678464796969997597572474694538849598696796744377489393478396829897779795673669853978755669786969989566669759998249934589987799686976989876776762283987885888994687596876985955998798988988880688764639469556562722795697547467764594799689996588532655684746994955887757769465954455846865679989999975372489793494788779999974656874998432566798969268955875886994779947764797678883837976465957994195888998878967787876876658796934379789447768847668783990449634555976937888966689279957888789389998469699895975587956378438687797975998536999734438569885796963579448391889899467675498549078986699576749988388278885874557869546895896855989848686597987856758354967799799776987298447758823990859886763988908852396936299488549886937577536549669888889666884698875967794694489527389856956974828999959976495977797459369335549877989886898937695499849674778767777883376963769698694494839931785987968895949788757882444391963487596795167863965966573893409889898756549878869595896895989674967667768548877483617777448573489693855766544567774866635757387994896996577879889959677686569499897998286699763975938385256769656967759936297997989867471669656766896764555786944674785888782986649797583568978948673995889828565968798638873594988859976627794779989669505788747748748846456485846518936778984576786949677546593874788979695948956668748498648949995788897495253579697686886979975486796897796669737997853798343599979375947465739493757897977979692797795788876895897276555864469997827985599054858954548558999998739497892868875566989497646478694776388892988559549888984693864633597693854666496865638657674249994975784249788568938385977754288456889499686687729677329889648986199298824696754673789559255878993835463786974597855799787867685594894692789479735867996958899968899968772593667667747558297259717865947995769599896945769535437467494999952975946896698961964583707368699927972795983135654999832233596368885999666796527689635765228779968285549257389399959832459894383564949656669828859786659547429836397977385886765679699564099497684898689379969979784477975973596572755572956781999456879886798697698697397679558257985847356559799574689399876367799894789645477686736839926964969993788443499942833878797786429699967689978757854494979789776475897849566776877426578854864888494683528799677696347787274774379689734408799799885999234954276954769897899679958638548676957659967754487987645789997984454976855764839595898949698858986989241757957788778652457567979429888257699882369776598769844967872898674685788868984644379633868286648488686837858797998999883938676969954946357815582772874784248786379944757785659979678938897698872948981468785978439669948677546877969958987394957698559579459978977629713745629347573497999897578987983384999645895159889669584738666598859485969786969992978768926976596277958437868489369989837888772818359873865699757997496975538956995899963387349969858592959954876926159997854387878535879936679865759389983958795615582928685956888645746947552798876973884467899868779798587399736694867488859797944996668975872989527996869532289886889659889736779879598688875497978418678797719768646698696557899776597976354784869987447747899724892585795298754477944398389887247588345479698547686478488888886476686666946879747347557838988648998638377333975886298896947997834955769599885925649977576986458568898363995727759966866596597567559844698346459897768438587769589786678668699879738687979997963755989349753266364639952796593841989497598576849975985988876994497688486976879872889458838952659899289658677678754775667668699946688969918899647627573278963739768826949986438676947988987888374986853976639953278565766979828929979583789988699748577388372897999958395948887966649329338988288986484778764977737695478395788027995673874969785966869587155696764363694868737686667555723968477795988776979965876597779899593259267784988398989569875467862665372799584959698886899998275883895369667978873849698967876788668898798785552973458898478943667479995995908689696146879854469379895483987866984177675946988847762968548886999696546685589862779588689992874175937888725698883999858697697868897149477424268969359357678847944374678498199268789888899898967474699867993847686747449579979767858886395696685864997892569978797634278179877183757777978949565376293459589749997398294786379898677568485579983848858795687927398878448668599386877837867776469959476945985755538558436878789994689855497599678672647768599659557446593392876969973457478656896774539963775399966873779876664598443588477876499644992597893397497986957677889947878868758757988999995975998956479999966483965492974936698765899862646783976999895359994865580598544896767995934994965587962784546562888396997958739555989778728998993999887889477569899788573383956759354456683855986638762889497893984345848999956597883844567657688788685979758546477667994773559949957965995684895989569663488939985585597996498425628752873359629965978654985756868987668666469973947784685785747793856866777779848998843589457783989882493688577899865674715766869838798772376695589758674469972884659685786635988596879424199723955586878595796836999889868339955697466798968795683939588844798935357747875678543859968877594958657666649674438865582786665862958765858679899633527765687889766849987428778879793999582799805688785456735964774849469888993997753888957776777385867457799879578778897993897773898668888086464868258344294656994866899954662724765988964995556417758338848449867998378670575886895987793866898477485999775898938457548896475999679657859583679945877857699678887398438943465848887932769689588696725063985686783749678388974638895888329959939374522878969568696976835629797887993864697943887894543762879688784894673965398668886698997748888367798877899544789933998987295994582989599674976558557583795374889496479786767439868783955398634864739978475949486578967879587795499876847887958779897681894934998986839969979944673996836588855789644369893796488779774159889496599494792537986953929889656659877873954793866736967796165796859478674699989975747885878878496778563457967066985496348999696697848978884756859858818277579256329697765677739739999847999999876487647767697959792673889978487786987849785985858938896979664663737789568369995556984458253166689969599768858968868835779968929596885759988588776668827978265549998824457671425649787628996985749748779966899976848796783885166877383965486999588284999884568448996863462497963527995987969835988691968667557997882829897899676889556978863978583894986868586954748634542783589775674997964869597954785368689767675347899879377398738784982895958987598637457737638777979976759719458949433978777439945683658857879765753952685647885756985427969298659399318646778922596996645978876899278827585789998955868979797699787759646635888572996788835847879895947996949887739389888959868498896969376999478736998434889895644788983257998765992774920863847996676656534864379989397648293775864376857897698658699367969993498788565995469699685869737967668389895674861694784269872868894874374868788984885886799577326274246392538288987787566836949773999768553289988787266836859796798475979967468975956296867336729678588983862697676969536889997989489868886789746695674768648967985467558684767666997966568552336645583989978447687797434728947768658857798954487865867999972666773648978368789549699967658777977613656889846569996967376583977767688825887699993846538448978414389578983749568989982698928983999374438737859969995897662357794993967959986869252895385536555778978685608249823477849799786748377649392277976999482894697247933687777569876849759767538898853979899498889659676373999997743874979597762865667645758765297798995855447963954942996477559586888998493877798326487773388399873516797799799867896679338888937986336989998697988787797874742897459589863778338698656387966849667588959937235847846993477694976578743934495839886697485989987846885999698585979998759898979479968967495295779895858969688535996988598698279799284898959933789848459756875834875958566636887289638444498337932959776693565264679997786939495998963777897568929999565893316617496897599495787967985229598548359839966876957679958578485538557757799966599633695436668764388449065689932736667977369985287388659099994758695386886766677837879947689885759993694757966849496677837775648769989986569737228978739635724855666568588994994879886498577499985599965755754679338797696766539758994167473699637845949989748487693239597899997836095896848947792383529985784789698697758739679544875797864749448769486392451894978595396977687669597684877873864938949249849397278998817973696979999778689955688677855979874288789849867322579999798788897958559625687397883867914646979558357674788854846787869828996626987686837844892867986985794487335567697956645876789354888598687896586474969997946757999487995829798977788726396968857945479855549787888995769876828785858897737929468473893676998788989646765699533687866686974169787869889755468752694983762553895527678797587498696959567878649347717243393589686586896997767866544888954778899836894688581753894255549725949555777869759668529868949774858774487663294996685354389928673999892879577999486688476678764546999387347986589997779986588697829775993689688498837978838869539476893587695937669766674099799136799477456894363544768272786566858938836996598923856879955979878888835457965885866898369955578474488653658558872359855564368959648757477363529858645686339784947887865798569754768967576546846297379966488699657675488899976955657985998569767496878668985228588478499788979494674788799987895550679773375388292537545899376985793667887773879957681457953676689446697999465881844967896499767936972895829896579377949666946984951785585878257749936789764356799996899993576279957846838868774836987993579486798499948773276848366999999994772588855789897389448928788792295486576727887889675558629979899479689587779868774679585595888493837898552884542778486776994466957379084645859673586537689766758687179777999499399839436899489829379963236465956876835867348952826879479988698965464866589648797574779852973888977399266739398793798579884776639269778982298746779954774789698595658489897399989956725969595688868976963748794598434756344657574864579578748996988285795898866636538599997597546955564666334963723873566684991373584658684693977986479559579969797773947994465959787539679878569559846557485976598765784879627992988993278864888868836586978364365999685375249278589699398587957978698865859797669699492683888686971848757397377624439379875785849998729666623698969336998566298997946393794774863678598599748683999689967578988554688962983545874976566845369897572753359977979959999429846866477983696769479268484778787374965584968339786992953463999985843486844891166766949997917829969974786349768897926555720854587977599976496998737949698797799548398735634889796766589975855229769958795959795388852385893224999785889868138735789596679973849756956699598837693378583935958775875998996399597467387675765887866977334855462756648569408596984776889695899976593763996767966957898974656566776778899889985757569979675969989904657278924893788985899484747979966895837689998786792874898796495283887849946898993693893762689994697556772794759968994395966884855983676685996878665589863849665694756379525648978588784998188642494995968939499887679548973786464989443945826678788895568989959579997988462858566837588745577175278079986479835978689455979887263587489599598894549938695989793574899578994597879734546896381644888665669553849765998659699533857962998998895989667496548769939998788534668769976448349577277558968674374588958885378739669899928658978687847469478596919588969965789865748468964648897958185969648578478375354793669923827463888769896986857576687475698758984959846647589656781979475267196977655947569189923879852776968394674789998778759927758598457743496964368976593949826995756859896989964895549845678678787978968896537978856989824755558694794589995597788995438765671568875778674789983669947585528649999599485979862959384779735966879678496568946677866988699255396777284934378589999559699696797786788859297857574789755455985939336156959865867669966939947786888795876882923886958676587886596475598873978883854859785589656279867436535673664366949385835896236229854545998658831639997389962906567889738695733639238548524766686427558495867882975976337537965593874887787347928899687678188997776856648779959835785885898899874639585886479878689679577059766898899697784855675956795464774488764856848559817669698998257826898837678492897288798856653578953994575929898693994689969959955577878466889735648584639884694967829952936667974935769877748949866455986983697699398777489899876748824858748355848974429498355448587997368855599148759898385575654479859694678991489535768889349458995399969888978979859969698885896865868998969729799936882784975586776997348769635739968983954879889883849385796839764995949868935738886585868877459679788935959887547679895263692498959834996789556694486596399894859828659359535464864866699568896587894985748997685837785883659634768595776767895972687887844289796697386348777437764866389689393865689972785368949595539743537459783744878993797257856849986726886648846996499598575999746559789566768877993998697859835784759556797939455958998666859966856766888753835789858957649977794698843877977696877995897838748769657796295798499758992957799679685799852756977724276699797693139999247682985788569699884875779788992998848644746796238776787759687494734888989996377896559765458798724893857867679759678898877686797778977926989730195699948988874983359579298773767648796466899699556982976856998689958448645964887578698755694777396893336967836989999885796637979998722945994999796789858976255738749556947986799986575649289157361895497889668781879985768795697768478298896765927998638938927848778877579867767972662796849877862736468778828747782737899224333798596975376996485779956688397697599979752678889367796595737588546239365753706988783667992838428393534286286887977988267284957792688729796456395967733279738645557875768647543798879822897386582856877749538564783965784745787887986566965697558799467979667386894886888598759965378695878588656346994868673178978847594953538873747938989283796578785496937695469397959987847479773866799674464447989969475868946694683297829937788469487964877979979956899897778459986857574986739888889679925489479762895946629788987899767572894884799787655846459559837589759696647396187779887968787947564776998583787538987484976969787879974481980993592268886925999393688988987795984588799489578848599848939684788858798366378959689989942698475918695995849657764889995886959282598749774666948678699996958699648895798579878649659584749465688944766994799488998456687649879994534826959923975985797895597898859838753533986685462795985597589397342189377977746836656649849923786039695966989964446777379837264898843994748794797779682769647898887588768677684996597767978739594897688968795776968386967385269372879947697994945737165682878458699774855759748885369999422897385395459977597958786975786684683999868975777999752768973749276387965275595768882466787787892889855737714538848776895487445856864366799541824697249795682745956974883499999288676919088867568763887455479666939849189859979762439896749885999876894774476394977459535358878799634597558574589399295426341149762978678549567896499688956589568845779983979995862576915688952789898758478487947446494757788605943699938539568797759986777559756969479494469897683694839825879529797476977687753686766846884638993844852658967957975547768786697674656277260863566844665876973748779834778389456958497897949995799755967764734489484498964558689285879836456579947388655986678787356805887993988443968698739897789974434595823959297566778898774826488778994658986785878985447455797699757956696477786877698067795768778857995768998959799961774969493997857956969757575234435798575245986969698976853789968715955556598894997462978775558696995925667598477939286944566286477399484799988866568932439866568956866959565978967876389858567879347387995257688999968873696856467455398862678969482937772873996262596896299593658598275898145264928875957988794633834869577888984877676885778998995969795777927647479546895976397848947019899465974956849997986676936369945847855687422898989686565385898179476592399586146879439043785937564994657686999954589179796476798795726563792868636644464427458249737956644997847885769928985967489968325578995688464894878953595607677296493965898398499724898655699499969854385566897789675968777846287759495226355393968068867427959445779656798529796976438637788498887989473669437838498796969999387683868849937767294776535579628699477999568086996664789688799479938927879975695583487588998999915624479676564893567788675959786593296886998380887664399379586788972992677499837497767369544468775687757868993860677995636368689654378975379593575871999977969868596879548889735379796765856916993297879929859593755898988359756895478538998769393574736598978557671697889866496498685953997798994575984467775767378978653957699259547868429795995543336758989958989878699979889745994366598879229988596889588769526669734686358986638877987992097883838715236738769472697579827698647896524779447894392876847357345844965398984545879719766888478558847428469899967574999867386895763789893569968887798666687865986975969473868983527979595234378243889879288874698995687338499384286967257968859989648367967469879645779957765848275685298469578497657686979549681956944757689818976595657769897588499593676868786988898947759989798979769968549939877798465585952457808792667669694997719898678738746773657976154939967264398598887692498873668799589839793357589656726887946598357399856463996598793976937954669977587936994695658963896837688889685543669992545197498789766888699976497927939949959994975888498987834587969977876648882767581995876999599979696859497753475372269874945876799689732675896473674297918888669899958989478975476673395589623793786778988988853795487957348995968566797584958548988394799939479269882968986987736868897798744999587973879657386989589876494987515496678289899676985656773879939768848695384669598299396459485799289587737369895493985368586595987494868898866676969989758858986341279738925999859566877469469995447788879827458552998973475574875459679922783596999793538677836794559887594676579539687947729788783449529758864662469847625544897857355696746654767324769896874892252466788989956587597464385629964867469468848786749393888949573860594774835597979293478547889868588359367278929758529798595799864868494266947343282459938875387698699949737798792989364767988988858798689979866959698796787755735788684647789645296488295955775859699677657087639978599967374326747749874969888465976565589869397338448669564749862787853797766999399896966298587585595856935889883349566497889785135665956587898958965888898681857647953689977739482387957656858899489699378947856974937998786489876798666877953965889899964968389677686877259535886674937438769499556595493658747552553849886887997779668394374695496478567674637386398969898858588637384999795899978558769774666859859348646464374664872996635799978075899959775388269699898876846877438673554945954839754765583589799965778848683888758753989736799998879866156684985739769678896938886979799769983889889999395947784686495769845647874869579769974439759468838349798915185779696498958860687592687858479876698977577355789387869586277777987352727926626588687696678899276695548467579467757942498357849857828794779857933759388836879987553789398597989989669258899268868699389529598658992677458652833248849258797688299848785475777974854594518498636892449984893589595883933739988966459787763548986789678786993847693836526786889788887335979579398969872755896786785767349777349689499452987894878599396565978858846798587373697393566587356699687777748968439986869988563743957769479868839789789489769688899499553898499379252699879959624987877666494489673668766977899464542736852989388835778796358776655782757467479295792898747678376689995966488949381897668687689485848846337374438489776959752877945748549989576899963680572585839868659877359298589999656758998368617868745789756735578496968867359487833688545745779386289668886934576799267472939964582586638664758696816188768398584887569999699979967853447363443475599739675997253977869868984556658789665499899788977869872382897969445746679577562975789757778646898548968466987965579885966684659865657665883469879795989769979245887937957397866746676395433777964893778468586898469768996828538609799696957754887456737975785979468783468574755399854684769848954876797856979498697846758995735658827283655895386889588369985599836898717569855968476949689379889988888969066870988566957795895499599754844837889748498999997484496878596483564928879497734945422728762399885636885687386836968596837528775678585695676337875977372869886979876973796789856986269286372885495466679329993784396248348253678674776874859956999793977866859878995788445938689239699944877779826485979449948584847429574665972646858878888824687795866375667339142659758945891994978368762998887269956677677587979578268474446886287198644974298338779887986978796589993994958568899954378576576635473295528686297743993944756355959584878798799478357977978998777874888494495794886897977757525967685789766967998776969896539916967963644673857595958955986888969565342969548968998874995979869756643357856773586894597768399939955999686789462776989666784878868968685897697659296654989737785996747599879989468987347953737995977359973589976986494395547876563958638938467995498954793489394969477998494768464644704932759486977949979479489779953875794545774537749886986396882975375975537999884245799363826779925359938664966889787389447878883389259758768776677347669666264749596779379999376956956987589724786799679589855886858647795497979898969897397958456797758368788477495643599426848287668697858777358958678479765978589074781785775856599856696973682655967692936988677467458657993399648868869987493345896477296385276284677979695286968625364578397495489755697485744668989466664735459696999475848795499778494671389482785988576798374849688988888997898897899295695899385464676949777476995655976988679997289595578737585766845998969876635816694928996677788653238794885744376687497675425798299642987699824748789757579897749859586879399535975965988594739319589497999879979488985998938875439949856674977793946967375755887779467383984875799865999983994955995979896949927983396378399697621769564994737873558227879799564999898889968746582898789659549995468677975936979967984958984375647886488676849889694453634556594186999765389675978783799589683875768829668798788969668967788463689965456776909999899868787972867867987376376958899754765938874564988778595499299986998483757449895465586998765986384959494958836397536976569696543459569986899596597489966995887386977874773868873598894568986789795929894663849667824883899999793567988484885896835988864286485968579485794666423839677888887695693983357096233556379798565887676995619990766669588885237689929477879666458238763759787795855569778797942589866977599797655758359995956067957959675882495798886368936185996674578498765399898445576896887864594595677884849947559656935799996533996643948477874982599575865585288647845577797528639389639497396997398427848769547784377865574757719879425838987798766589884576444942364658687567667866947599737573576958667998642786739483497828877895794074983567879476996898598446655898993694399946969492994974691869494978947758994388624599638859297697465944579595685969848775289875799947999578969897989947678556945457278777649594176989226989757489788895668748889778759799797838889459265687327297423584356852836698798965459683476567075677638864547764593446766938898344389846644752796889459783742589987989756995838435997298296686990832874596592958883732463649756435935588436976887745498695993997664689869773551869869978658664396824495946864889739379756568944996965896997795999474999356897787969976389993937499756653935673859799754876354749868549868875958884572959498499778965265669469296887897349779269279679495984559459567689868779765997918676483486498456448486899689727786898567862876875896855851698965995489989897935976768595988689747499775668997799892892886899344952358889287467989765296969659489863886769594534769098999678682657975657546287999648688738996832898999549568999686656632589968889788743688949539845936982336577769883488636728958963899948889568495673958947869567989366374574667595726697795486787895657999889578679927898759353657369887867849694968793685629977567465672789699897555975888938587529997756696587947956594566395589855988469795965694997975686397862896794308776799677585549582766779588998967846599784459897977426999573099569897993849977934689456799788845376695473676986896974667889494763751996999659923679686395982517868476678687794938876836986887365656289885699969897769356995496797994935642868889633789267818858859289777939989959577992586778257684944997958745789755896248798886878658568868758673659965445745695773669288752855588794956978654975793975584867788668974884467799966899769448244638576246589635734999289524895682898559567738898599658588577892289919469686569746394898876689787564977577997875689649255851293792745765878884945899594797377485752957536783446863973778623688979873252595563686874739991448837556894786979999776492858959393577288964915867436889969258977247672888759259877546688697299479984698848649847395976533595949679974799976594567657886695959678777838999377789676855675537697497455982957977949556449688559867783726679851789847797996869379585846965998887888859987274760685698989739566586749975674778795637789996435787285744946698929976382596853763767736922979978874498888294767878858895597795784878998976759798676679948584918875394799927688487865996787987668775739849677757649774866797745324879965997649996368788696788839789948779798848796727798953917337566673969754794577871999648369966745677346724988596966654767769966847676664881899877788876988896469489787949996337794883395486592738975679932999389425377986285758998775672599476648299836858898299887437878379895444746265857489999999686728589677875359595758478965586969357665993926758696896796697759697267868357596777539927675448924898998798978698855359888974889497778887967662744877926668928549265596577848795676888894978797798699799748885698698676459747996796437596787626895888999758984957879988949497539639479992998353745577478723395545545755898676749989477947555574878748389694729377894464699862667348925676489997889688847856999689879499845495388398957988699628277929979326395984833874292998866949886967367789967565774589567866992860789569768683627994448689969779755987975575686568693896956537285779559886879843948389459627592669969966859486679397778948879488573869733948338568749244844789796899895584965683928455664585698986868898789538668997859764869396596593966577795595595849899537599948748784787788799945757589999694658996888269498749587497839974562867995789634879667859988273837293876984748877579479596876299688488686585864883429997377762548699824375999469868507764778946983899598984695976965875669377796958699626674679199903353984929846868897982987689289668843699495625699335988879396689975455587949557653958396788988395546694866576984897309893437786353696977233898697735779376697792689986692864768956274775497887844689697827738835899976947383976959447496689689365946395798887794878885468399997898576495279266490494564378893896488429896495759786938375368999999663324959688938977685764999798487748997989899769348968589779479452687566891687699959784778865684669778969085397896877267728456937893777789273639678566766799977966845396778797948754857879868996433592399465587897898698649997797397667354869854932998578958785449887768889868768456787989858595294348889799939773099759648778379599828845343975557766785787779983845535449759687596968885337844896688397238338995778689955596699978768778757944995958576968599628693898486655886963497759577868534796888875838708898986984678949869926597595799699964996999656949967346766877998828393859278745784246279675935992645888986427994788376775758739499677799979758987579788376985681985925846674887554595895478557849549896795679887897843846554897692553969736888244796335756788896337869438657577583997978779945457885564565584769996766354268996858645849946858876466498798976766987177796687928864969994346395764374466699958375678834547596967996968779957764994897453748728629585789946687595843987535739496699897263466648588793897999797884579153362994839798383934859875679863789947867996845495989596946999638889759739787498991169396787699563557697596176678785737939955338967893949384966629288778678566688559787549954876588735674686998595477679888277529667785836899966968948649846879278363986698398988769937598687858847947798687693548789769986854784446566996293795869477598653793853738576457988698745796994759734684497866696947584589986678995896964948687698967564674998658782183589857358988877675849886599946385787549559368946467898659764998985888588577946977635569265997746375979698676976928483869957639949566995973399895889469256680836964887796429687599773199386986978899679399992992858935879778776977783778846678574673899697875696869638395985899577389989646249331895666797484838878796539298999647338879998797996569983747772865795822958886532884484695965584789585863996469279799286792737436946584599679397999979776776398596787566465897793379369976768765699388969972682436597987898655958778423499855237797582878887595888664657497875999753264985556557537874595698689753989393374777789697035853549845746985266886679695955196369595666679058898959988898657599974298679531389776649836887397389688848548578959495888999686989999587379788889398898687979773956959677763455972476589549797799382058956940972958825997927697578790896373988437979788998498859277365836994789688649689794896656065999737848874752983978796578759849977559778689869796989783590848798545888736586777543876683255497785844866944553778568897887767679917875899897839758793298698978727587566586499798996965587776572565993844564485667843788266658675955786988796698866899849867866586758297757249466369979868769896878787986785867587929429188495779634683983784763968889798388899677289493387278678597576865358853869997473789376367783779967688783998938698986747998475654565399546899479534996886945359678699998963273977548489399347887976275974607589898998855798798895853996867784697749879879621869776879497376868784696622993899588296576487479892968578798966469953448967448976278773685857748479899676697946338598798889379389975858795875797887977964876495696669568989999769799969979462688599876998966895789757189968259468697846475744888558758864753883646785857889457966787679829797875379879379567775965487832799972638797966367666823453688346697923648594926697299786769439827649688889676365979869930664798879596369287878496967888956864699999553847819976694993948865644817475486358834833895207939669665569582887896228979859956985593876668966277776594899984796768885975388543997986987997939376595879954618859984484848999875888988459887356985758878267980746984899747898897558456449771792685483979672769499988888647896557764947697497499656778984683674464936545989693664664929864773667868976898848989859889883694949879986893537887928799677749978747297986776488797463782799248646785858878876775529856987989989377439528859859728955667787533653898899768595974587992396926864489367679296839869493778687845798896456549995597948998574787666857999936266847776386949898845948858934747999986947665547538679983757846237708691457758699687657473939568699697664969872976578465399699495868484585785788658999776679856468878587677665577863996689485893789999983663693368598698897879659555849612858983769446996693775579436972689247877775975924396779876758986949973778482979746737867988938683589566469856749866787796658592775725848719853588378596788572899349964559665695659786857866986469576554577878779999979376993958526487938764479268645898874687395999898546868752397585486868926985855874647874644565923897697792846584887925878535999767978999873909991688876068843379725988777784888887264678468697678999522633366997625658278381829737873899998786878348687587449994339886799988473496666279627465972992769677628839835588689957937926775987958638779944556356827824389226595778955978669374792285657426869546243877957863955496889961786899785887959478959783577299897489763928897808774968827988147649927754569388888879644895867848979458947488698497859693775888766856586759892859758888669623897899459775698744958696769856976976699449939878995277334693896723489879839983299467769589899998445986986438484957994467699793867838838959999446875262297556747789797479660776923886875438795597938828749667898757287889378588769549483956964687978976886997957988788988839382668959869085887269276479476494870958842779997969287989756485367836678965954586823458969556957888678788937878808594584759394889698488885649698435864245689943377594969295987749856643367947764797867467478948983695683599644597848782683326699668852787989459724649947648959533596576897379768888964774240499388794979289369845844458898949977395885156386987986825496398898275985788764796998981776897774655938797965535888699899675698735969626484997889374866595299765683978677967467892529496574967757628768759599654378553849769983237955665954946879499937797597587569699947799773587779802997968469959794883795937769676768895867975945885976349555397797978796796764887659837887779139999664463896798573553789479539545998494564476698484957677920749978959371555891948898999775675669987888786585268864999855792955897543697589765237749499806299867889894798757157668988972855579364749684639784838935887779765998765395588684795575746886288665797837573584595984874964997376692893867469679583296676655892685995995362788967696872555449469765584396878979738856364973889668646788889865979585459576579839495326556457936485671677679894557856483577882965964868957999637467738944898695592939874766998768989654684676585933776939845567695966865267683577595628759299995577836388882975989577639689878983547993768976971998856827959389082643784938624397877658999861479887778767776688777854889787253838457985976887876979564823999775775658899867395698379247878574879595966587774243837977428798932658828637568676799498664975599872857478989799899998769353476959764359996879697745977847968978947654112894777887869578883689896765898958987776889758499986658993826608938826984957978587947667657999349670888998728797696688947944966449649496799987268486897483584898848656489858958769449765276962882899875494729793696385936669889557498566956447896887576759858496856399649786593846848687386439558637469248946884947949929967194784577974771985654474996766858698994486289256889998887579984598689576896927988969698416747966294657946904254965695588387989489523896498869886982575968797498598935925994576879458784988977382899886998998799597758963491597389495787997797489996998679969997385795681969879898557674638584492882636855725978963547868556766699798558795959559956486937596245985791956956976557793124544984487647896799668793898483689576858899847987789965575859879966929839046996869709745997899878998687687775657544589723566757867235594898566978896643929268779672473947653559477358969778866656693669988448944798725968663894985747879779299944369658978649698743769595685684455695868176788756877906576988459579993998787723599938996939568998689766767856785694778753825446399868558473782358549696559984689897596947574256583778768586897388695789686979696999657296229896766855283976298639699598434896465385677959648598976378587933714727777874998358944889894377645774967989887768656363798805938787877863877985945973479469686689956965876486648588898295766848958782889726996879499899569395699598775899798579567958873847339995652665388599874779587329879554989637987758775889697579935279988944998899699499379744575894557777955275876999997899992679939678985569366779689489383976846337776675564969859754878788449865598887898934762867796778777879856849997477597699999987693866993558349558555682999869697899457454997949425995796843264597837775549983589894453679969756966966999887677887767597855987927779559796886899637888859969583625967995256797752566779794955899542396769775698956483685389973878449497887368699777875799889978368797967667488898438855686799978597858783759479195665779505566688596973575797779888586595955065566596984725339637588798655657399897947479728767788867558967953798995789857377636586492759895974698695737995856788988757589997936375999426588777969966795597868387889796536867859958257595975793685874376985872855898697736549447966897957777965768875395977966388458935795769698687439897566468535557987879955363876634578867998654438637694898095397483686977546695897558538782679898569594668998608996839568776785698867987837478997918827677985279398969723388479864998037898878897939956787983266899794869269378584596998934838988694492986964454947795359472893956988273999668978356979532669689958469692986897599598979474959974678767876893886689869759675979255894784947936587954778859453886869973629985623884697949888967988856968797489869365769593459485976554886867797688489493868795648869873488846893797895659958576684736996583498559448433884758846538188759647854898484879894756339478448646869766993894457769557949493937954373432567933976668392589668969758474967995763858368942896976897897369848755664965896488668578574895778866565648728669587893675979799968998863487738787999996529253758788979879732649947795658467465889969987965588684657789613966459699777946443797625878769876956947736279555997847662888694775988478245847387097989557488688359454878963788368748574687858772949897964869644659675834674999789876695432587885927534978696788966367579825568865798758957547995588945746959495277953999856965979977888462597274959666889894982983898477978658979898588986597299977883899257989844362962656794894777894854798675778778939767697797978535594377996566347877961895439737886478499831866545595993658788694474889579379958898395759929789977784668582997378879866689549899986978329893484968698476698944969774399879787949728457162289895777868367689888699679786746889988796953998969843993526746668784562987873698774894796889869596684898656566667979857718573769488756579377767748886367828856297255237978987966536998455964843943499557658696769476738739575817661985796693416879949947377826949674867788999775998666542979699875859854588499898584777855467968869987765589988666955493648996947677784248659368823597777969796942956669597687456966799872898989889787689869898997879277766956599895599785466426688695926568854766984597477585965638969494296799787764534278667254887667967760669429569989898533496989899629978928589845995758644764777859280892895769165975548799797886949287665996853587976597739968867592846696385887989756596688784947498797765499686467867469688756999288959895572985764659854594894897699367874636798979637899782489559999593397928533978956978855798664697269598864784389988587975589969797987673992769776563793878563965335859767953789468258479776639378977957176468985745973489968333474876655237749629576778566387336969698977899988554665899954538458964995658867496489689699989579484847985848857686765998999859285498194589887849849580543736748998539789989539596238882978769687646903648997395869747735349987969995576346447696889747551655698529454879475769579493759536687698937779996868989674968354769677885893875599959558476683403674728858898674434489529998979948588696552687376594959699896465947577387969865989785396254899799964975976857983581475547858842646885999759486973987664499785598968948774583968978987748469865647576758647957696784996886899994946785493945573473779627758953978654877389766697977777856958964544988859897969981656424598978895997487566748889812977848488975748697853699479458467888779966769879766556972289577885787979835595653656978498675994996698278776999665676985997973593778978579589899839893598656648999899958756235497577969897268685898988865997785294778587657899748375995898986698877578867989496993489668696846585577695739779417896564849798477859368694957989856975384748796789699956295498968869495267289435938332333999969888812639988899689998968678975795649986878896374579987959758755762983898169854395550772678626965469756332637678557378877569074986899776387849624887499378262678676564829852566976767678839399840498749998776796989893647348687864846998958779253358895797829674948575382648485558095896888698326845792868996995485997764498898469797698975559773569398797993957888748499994598719959397985868227377789894358846378387895698389886588969888668992967956696779868754578537987653657678887859797498938569838637469959759394556999429954864263648568889577996983682674878786467544559597789663954356857498977532867486997788456597472786985774752857695889787855876893565954368680976464956598694967799699637988474985389959742993945977565577649367776958999669378438554259868989638879798598799468983545967597673898777579589447739938779687679556277453765986667395249972684953398887435965267698385859698896897665428568963576856566586896567787765687879887959970497889283895863689595568787839799569465956298697997999841680463459768471559793958789996988689978969944798888478966684799932687993977587154594469969987888443936809889948968396788484667695426954268069996879758496268755856766444959368959896867963559752859758996215569895997856286979867879963976963749759698477754668889979292699626887726569759892574994549983859694963491578483747569766858497837758757876668498462652527898739997885786998379726898246497879589965694999286337345739569828593685935779787285779846768969973897997866546672859653846587559676698568976657797897548789498898454798338769738985543966426668359832223439899133658788776395699649857684679789868798978776755273559767768659474756789979989699598774888669976877889986397667992825394933474628897626879679885346969587874578798767894898758824876443852996959918787287664999429928786889883989847399646789488587985578989547598888699498269845727468793789996888878799739827698699858882889995895559354872959869988678478387287466584947973323865547547383997985979995698569927357285487992663695176564838646684679866889959462657659998957635588597612799837969488366895753657988987998988684689847337729769692779537998787253626599889987856407678648468588989499784986536866998756397926697679884759377799577672949257897595287666875399757958999932575935828879559559498466992899438878528926575764869986676666997159638499493979986568869468589769943664764886275899795389657697449398588457933959285997647987797989955889685946368956748688998989682659792577975998895769883797472836758884299737963847957989847659458877386366297858934475478595565886996592887785474945878997994288485895985427687555268979984575754946898686868748878752477863383979698489453989679499738987599554559482226847467493995979969659888969787975887992975689488899787666698794287758375926946557288755667885999766936567395543973875489598855789795866594767796869859569679787899926864599967959878678665977459468782874479876475368799566887775988877987838558977892267289573996855753639859484172386397886985658464999859247474578968977759456933648758776798588578687896569762899468889646456979359975889998794586992947995959845396966878743839499775569735844699868859589944968679957594456958893833738884538786659649759544943929799784789579998539949568857685872362387899747833859972527547998756696235887966762397978758678337392256446589694789564526559989267677661377977645987695998994766998978385856758657204937937418797684978797976804338482491659877477937889765996389689984737662388855859989695895655984767399949178536994068557966898467675848888255598698949885564877777687777384388643889994779956396536958737976669798867593363496662257894555680478868529988559197956878852477867718878377959974788977995956748963972844857757836686275888769969799956698965819675898287778278919417444823896624965698848567684779696499658388848392684999279787964867538816854797729575447465766886688918269453396389738895868876845966979798654664634977265573586578975488847756366849476457786977767651649729936967823576857977566899364547768885296849648598629455496764755957282568595669737837778687377999747577569549782979674436976799693679669978698746875656548293784556949386878947696865517549883343978767889556998686755279786896553458732965863857569697878774979938699687689889327394482575998977585642927957969836963529647545953966593898966958985539655755769846782677996975796486442882858543587797987648665632877848897548897435158536988858264275842953997979897478568644967867738497669298976673874734745987898666195598677595745876878886568677879987976786858955737564584897988816967699858753799968476995872637488996646558388851586999866395799985789869836474598694986468385699478879985774643499383696696874889879247875887797856989415649637994345696891867893624959826476988477878883769738846778998766165757987888857598996767859587958754887456899747959779677598868997458668566999784486568977937559846777656334556793987788567256998745969988568969737529885877686859983349877885668697197269569783878836676788698965945996945998555798894751794559739446498835488957662879837748983389876967779989588954794979497976478986593984986657463778695349335976866829686488953855679545537859839582996559676892599869759656874561526386939875365595233889799993787999227847369859485459697735134573648994996638167659698847978937655979864979967876948888856996546363759697995596888775751587796997966658798954776659687896875634937973666678938675833646798454665275798336774874799385979746995657694473456984847859389597935984778839659957694988569959988994686635984792768576877589894787899899245855599999889469268937788849495784541264466586988784349863958766879597927395997489945576756499548689997899275888469895692884827699907799298499974497867859248287757779986959659674899872576555897423469847583635588871944777894927953347546694979869879367968675586867439989943576866799289496283965967833468696667695987762687968969589379689854757399874947393647977378859856765197669787739693588335398976775895666663358772894947984593247684396627989792954875979796768796689295628996279994957577467857696962785988728998786588836869199586378989592969788275575379798554674889673567766398859889789889949735569875688855365652486460968656596399948948478248985237789969769876763966955272729873996767319398976645487748978868976896986675795535975832589764488536546987548857657279792287667789597679975363674896386894949688486716979695944936836766844944867786987483928883486489578253689799886986898927688999486476294245885998369988383688428584799823577735768837685746895694982899778789594760869875489983986576578652888949967934948567828588988869784876447784969987616857749599648655759166547948979668895888947586288686884539874456885949658884597566595878896799288977639399292974691366859575574637697697473697875779356943644657993997999897356657769778921998758988898558965875993496656956799357875997659777857682994789894486849589456993634998795366789945847929973943974995829559346812486584837866569795488248485597986955889476689994837983893736273677948779595966689927997889694458658787758629954498664296979958897479999896867590955978669697767474497787866693947889968299498685653387887667996891998845978949976694929449669737689589855567399799496364535982486595665247379887989525959976642588348948577999969883648474899839986698579285878488769879388767883754995796984889743787888689895397596394485659895796995967967598959487977887689948663978886947689856945578779983339693472597871968757651687745988852989847986267387877894686962947687488447767983776975459639984978799999979654967785858368169749277875929394878763679747887895489968757475379945387854363495477764687794667859857977998986838985528468376879529688779478858749855989388639634865943998964899893246479738356558256486298458147926299789728879864996474766878838776399789966967773869657597999269869228778979397795379138587545756949897699493735399834869889364496399973549899597597368798587243797669379687589797746978789279679838776772696579398799789884467765849387899751568929589868998975187787598798583963880892596483568888498995762968389356875977957398689997989987997537797976767843594492983886825975889746189354398899226767593974974796489594888743857475768598948797484556246772776758555674983789956566676985876993158569399664489666982686977997437836345576657587796489999869448373476759639979759577798389994999892886399374785737998998397998745767945587877933767839678386864976797444995394757689498668267979865258887539665594454898386962657689595939597522544598365958567466957765696689543269472487898268548909688878889888869399725986984689868945898258834459685827789972496882286257325988881596734659976544286657837553752986883889717459879958768688696779845666493753639489883698932988775726844686695834879865879739999962699938843887567699669738982897859659956257528796963899776932845783967893387975696685957667742776857997397794836487536948976696976668675888968685756697849879698899463899479594968757999952778758621974687347496889967793549597757784986763976268966949946859996884476992697889737469768538764986588929254565397989486448979987577725888965837951869573878759686266859479697378879986869859932357626388791778536699799649886685699527799739699976723642496799717834495583692498569728782789288863498878395699825579497965259413575474927769675955997264477796982767299794996694774896854953684959976689276937674498966563998896272949389999777897698967556758886949567658499356975554762995478496986588845917927593498364968345597995887658788463887779953889797593266668778738777579289468868188983795588834879695385345868238939877794489997569788621683966357278696734477797979866996778975995889977819764588849987856399899788864789937883969567899269999775923752837992898996878779399947786888485389947129778676636583799567596655587798777449957675454967957239687486639554599892698529557697689975596973953786798989983888989648965659998677458894483499898859454325839798987655884638893388568786867649993887458889629268768933578988998682793528889799743966988937794695564293934865638577754897775943699999687277389758677486353767926965969479283777885669669843649694974957787868388977956677743567667667797329598768754394494455633796699999468739348738937774446568688926798979576899879959668583465398578998974684775498788548726948687552358668184915363469862674974857286869535685588659545988688568569559658959895998538787386979677699853677575567473743377949756689789777848933364345592875747983551879864685855874686894945789867349974423887798889884999974685576676247899599998659596739889998639998737436479885899947288455928522789588997954977949887669459826898397995677486825427785959989989769987371964723768585975332989629697966995768373888894888998982637988769836738997988743679743298997887487576853987995946356499886689893594873794948777688789997727884579983949629759993247889999687998999805778967525748780882475907338666654793929788571696767591599697885357877287656489559675576955458958559357873795887459763579677998498695287998636994876883296767998699898998879654537437569398388952956589534234347359426789987896694923646698599859786169881528598983498797999697696526788278868987856537889998874578783752872535616659995990569994777656966879867965824786935987954558782693998759979849866469368967972344785649979847978744977728863359555892788478679774997999864469564558770989948637866607788399547525659596435886957433757698887689587975683887399488853949509266898794664475764399878692576797977768445979259856958979943776738552656896952698996598676796884942987665479868899868497696964698257939888998999478888844799469775773496255548966337298585639788687633992684868779899933549798978758551885848929664637828927399895684456553277839583795477648365679984597579544369956786799646382779575469956741697464577899975967785164498898989965986351898947935884869378487675858686896499759582583993981458914697767836489989959888375529694864356858766985997783685343769485999955645464877895867749803786859857655774868697488968994628687555787682467977349764636897548866673777793579585625546669656897589599787688843988365887275859776794289995959699699646948858247938575399578987787889899775668697997499766973785986578287679484489994583464949995426987546597592695965532439675855752696673687597999735969666739759978347868763255863973598478487593588798465338745788438947579955686397679275876888726577746988887885997774836825965984786963888977477665448177777377572628663767577799888288563887729525582796555693887665945958773759588996974957545746285498892818969694893698926474539795867965895675353886683969969377549537625568969974769584387997789290788688667759999297952846985497499697782597873798687583798797998778595483822377995888699348493766538577790955937977999998496793566988999796696994855589559669974366929559834598339889878596962466992498298589882534429598377967747758963997966853955999688798786882899856978693266674977898798999888566688828677785888297553759899864794793865859456756389536588269988673456579976268995387564783289666857983794789289655674877695464593366887477969898568788226888893975499363648545986577826899944736649767996634865493899789869358766867257643965898479685779756362596866924998484959575569634835878489524588858599797958962355968498252746737757676674986366964997898787583895489577343895843948777989937686778565797686789962257656859997898542635986784986989666579665589789487924839754677471488546476856859885895723091787687797787978496878856478456667974876982446769264476453388896688586556956676827992569594558559878753745722856877578885671393966786674624698696794927396774888984788967649987746592796889999295854897684959199438888778356868688969684894776569889899898938978457785545999544867956898644378978895528748945696464337674977799459845889999559997685689989765948698569599354786168799956683847673856888853955943586676674828996885988743838989695897747638589868974597628788458956467796869789576387797867998629399676979789854798998783764937788898396584978389458885976978489899778367738769945889896854857999846999775994844876545647379797685956387484469873473989968489867188978373644836357639577287839778599869685697516237478769788898951965347479779727677887867985767477385647646689353953999886768955698848999859587884598997857739983777455979288498478688755777737252869886874745656696599673979484788898977849579555996829954775896372496378977756973728842483429573924849968959879974879358399732836429946597896827674957899493627896823488983596647987563668398986983754643669882756869449352669927588695495499596885957686849698937897887594569797388582666833786597268967592268345649846499696958379729497375779967967697687969374677687359494676863397459889751539789897698497676938755898489788487778799598576377875727845846518888486694977388689899788979988867898777987055968799944848564899997979435997979879386897589957646833335476487484378642458458989833778879984878748835793859779734627944769699999637689879597776538997759799729585997829998959883246587898769998678586538849897757679678649997648789989938963689968932258958877233884768699546541558853778699895974779665956989865789928799889929417787776654968399477459937768325825779532889799875958666952679736918552995997667899486757238853658682779633997974634988777778789879876963829684967594967754982966354538778778786764829885298854997589977977819269988868387468978437744488969958939989545558779957255779058997688898595856757897639787974699476667992674388786964422988968536597886867873558355876586746896938898772944758824996687386805499799778798498565495949438746995947735789625769647478858999248749396978389558649679689892657865766799479366988978575682497943694895686699786844876974835788287659898637644764887658778899874775465459776893389797899599089968688676947985842894942378577532539789456972786673693855873585749980539897993746756989699787958944727357808747989894998893972394937896576888767888797938967989887854633688769872948457827917345879886275462492486388793479955969649775779675475796597694566898992333763964984488774835759699945896496799669649356965656858778286999976784898725849989976697658695838867585969589742836566359995949867839396448836588864598669658489879697988943984477254454655635879728737826199896374743098835469767479739987868899577997484286987754687976394678978527949566465878998885767658484996595779899962978298956597788998886957464997442987788738687845864763776776647595889580837696437897878875667899465758994957859774588778789786496589767938986568695525942858326377839687508424986856775683837322935679663669568997979989757459985884369260767695739955965679988689896736786599656686856383939355658476734452698988879387584969187597928399877785534887873987638877757377798677347399766399786992067497473969429333896587293585968634684893639567929678696979777797243586447688676985466967993698392887489988377898448469459869556449595486784592898954938868885358988786586686955798592587647389648978777989756782599089354989779954837769879568966386489749678689996435699468458747978739542978598438776397689759657653297585867685662587848987954448767688696945676647955679969446555837898637747888777868877854728735789794899769560964886798786897847843887965956799976785247699925699784297775449846989656648798556769787947795887857497888969476988566378895469895987899672552774995459796474849976594679428569575453755897958578958409774579979677496823998985552492977854799828999677388866879736468966986689499777546876687889998849794576984424789553997495794289699999653347499779769767562669886687262999526757294768872598995469995689878799346496595735389493993759895994338797897859988168567898698938857929999875478799286828553636899497958238896794579977777664777787694758388667842936467799584867566646899949698288648756276968468675275789838889847997975957657465559737899643998879789852677566299886695878278746782965644998598998499962965876696796389275449943698996988669767957887778888464997362795647895959448979886799757488999975595577966985596966665748825567777686993945724666957545669486956796898747748857195949834959398744874267779973248494979946856793574693359579865433775744958396757755079546359593656968935455435998897878738793779889765666568332785273778881788787746658995979989845849659657833839988495989454889896595343568947286977577364898799179358799786449786955678559674588789354638694986984539999396645995685778367698959858967836379999742997344427854675648969826877689552768629479947654875979849446799392894875664898999849737697488543998998845715682478796957697596976699798397477797988878854978653493798737984835667445289887775797959929959988474645552957998789438982544977969844757789807578669382866769849785994475888749764537839946977968778465989499687724744579965697977867397666972467499864985984988498659963690979259867987993855623764548969732898868898698365767987934959978474889988957367979499769269659797577688952996499986859759973938859488688999588785586773768285778537767863996744464389679938942348989892753686879358939899765569569767799925387969476679974897954268496976588997989997488478985755273298556568888899637608696679877589869293964797989659485597389985785997980755669399869797913967873873989747558875636495949558775967789467665347676968985978577823937883537972942589966889999883963804797686759539959999999985528982876598967868584765767855978769376396465695867958179599985499482586879187572985886644886348869149956985986866897667576347884887839775688777886959999754787586884864695675687987398788236797846686578682659979836794849786598749976845844569795359867958988735988896998854786796679782894946948977663992885739677977478578689563487828537886495093287558874959634348768788460628466968663797772966998988754555559694576989877886797698663097749598998479788756867743884599868978697563859876665775888774468789598774379699989546648936967637964395699677278384977887475728875747497986986899883799989744884657998547983989838788786957668299579649743887496998865899775682593279675886588779498795875589387987842788394683969679589939343867776356995877556777547986469486279789978919472965638897872698379577894636485969379846895548776959578834875384982987969789953695568228598934446939999473635989378779929649659487677738478767256275588954377782548977978989999938866477596879685868899637739499979697466879778884279977692359985848596594757779987965768947769973077585697967554466565685969798737589899989847749567964848867948789752977969962683699678698994758875266689868987463989789896929594899468779858599395897895947348497597686982489884787499474588588775585895876587989857936685528967997867869363769587956482744796879864449566896999267792678998897858686389896498977857999773698733729986877849652487845737887486639875986889888979965735874779748968784986695868635959599779975599777876997366397437458996649858378479796776888794979822738442898936477645564298593738639929289873834347957673976867899867994796799965789759559843389886556728685859978978649892679984879499686968962542549737579896879866683977579775796868366679465735665483667483958598928857676839385999658838984774884827988276643598476758357774797778329855759797897999598579884958986869654468529527368688983896688999493887487769577676667993459898874783398849897825446589929384457898916546558456697688585799887687899938889636787958459579747888459495878888798877692772589894388994996985727668897527399678868497667976997588723898448878778748867699886327668697888795967779988879555963179343378865548779899898487889479856479777659593976375698868579769798974978997938709995766999576497898868768979266875566798966475499999699864959567787845775676389977729949899865783487636685688164899537967376559536499589539766897669889766835588654934699774989857599582773868785943875548985949996756748992888487779477988897798765884697997996872699635496086496678565694939946758887759482948469528991448759488897359253589759578245285357786499398599864784638895889949749677886449596788747749826737989721998989338968548745956853489458429686695599268682693588357867668465664795875469573978389995437957752769883257986776999556377968860318275659493877669532877868487967969936894893969595976697456683969286682773946397958495782979939797778997958884579988997995898739177954884546655574792578879849997945495956999828438558993886883397999778398089554836678999857698658859888975666589989178576565388959399867985653743647944479802997937584547970934027365926959474864369923766659874738969938377777897989778475986759997758447787665297258937997786768498527759965899755968874749969946987568889979647589964749669961929394677848599987833432928915567774987685536706584975388853497534726365846446757688282852699836953457352967689856495358688995865579997299974266788999576789497965588296685863984599589426387394754869999659976769859952969537998877736478875854825388945999755988478798559578798528947979997885887469692954969468888884768695789665498989986764593788967776798459999499772872964976878678398557786594479375735677989687496595487778845989967648896458363899779907785497769777998999453270749872992444399695938976686788769839859926678597676485575654688839694797787567789986998958286957998975836349856859476754767969999879598483844936937899937976965978736698797278874976457448879596439594776836086885628589788763998768987856697999579778976484875857798979996555317799973989997850455579996978999676606677995455997989984577735798983499768748686848967559937989579487964799789954869478456998336784747374867246444798999696859988597749767798398538796598959848947897698695976879999849367563759897717849492379899448858454942378995758697264459766497652989889245792438595378478989779946777879699683629545547767782945345599585693539892799349498325698739997799598884866467897568846645986937878733977979957282968587741795759679798999752867349947788479573569667847998787576759673797645699288483383987696979687865469966662588696496967959497999599869593979377456365783975818997892937979876435898988996689780888755564977849968724858393147877367465789679398893685663568799786798628858496966976648454762683799499496654888798977598898458499598637887517998499659557828849986956968794589988697649965378979546496655848978895666778469588598969968835888397668986739328748699956877877776758467378568997974399934498995379948946846764887949697694485938895843536466586289589898499588848695688698668686576278897876769379738486458999891846944555498689995539998484997659868997946564589399754679966778838799839887994294709513569589685866665335928954853997893869653666978949779784889863348764874677666748575597458774775759986996878769668479895778789984357656799245886963597959699966986624883396572759964766968987574889329942683566595868427639462858788785677894999829278776928783654589647759933995769760745768664787697594888745988769887958976589738586671857366998564866744724736827265978479988893772759799847498578969597617685847754659448987902925327993474448594544539776554678478578874397956286379444696679578893396754973275736778595899778887994862728757876644898713937677668749869463287778699786549897265667657977678699377675653866598798546988845667958984978796556859689357567573555688537494979597686968839565556665999683976758989287868895386588986585658687787346677879679488879676855987768686569964548534298776935884299966675953988287679779889479589756999270686994899626795948895979777432679844678976578777999893858568638562468992787959959975666579748875959875788537598983868787948769758653769669885738576636599569795699597685318688869672586834859778276765717397738867977569465726879286886737378441524567636625668946685685977997457698943458832659454564867696798969557497898672989655784857975538773268936768829699365957855576987448948869487689777598975593223696439492776924935452998857744378769659698299674878788246859958456659889778534255698796476753777898675875759994184584859989749343868837909968796739995899748359998978986964884975672936397895889486555175976356599486955689268766997758877396768849737834886639788875644658945765836828774857242894898967776847457769965497988499665898467779567949368986455556859679889788739418984544994893475965979679648986858673444898979964749842974489799979875879866822283772827799597686667895889459288996385766358987867787869595866689786965699649596758659988939967863489954894896997595684695764874268783797847468288785839775876966348596594896784778884738369516517997666988447847648769497946685879376794956697849965799679844878788295887774967699463989783685688567877653727984978598599568884689682599879768884476997966575678938769788798485575758958979976978793994567448861696974697838889873899867893586997967938644369545966379985968993659757849988882587587968779356989597648896854898875697298497736978969344796599384998687996577867879565588654788674678486764546839778886979996389586989997977288898823679984385655469938799867979587999899359866877746592637787797688687988596187898784948859888859667728838769777938473999784586985877444529884544949665988844552778953675559996436787789797961964768889671994885892689893867489899995938839569894786586973567987588223884994874627668896279968989577956569799886879688498987932897489366994851887865439745786636758388647667588916676577775379893395311767497899698164888496874667396868369663979846777758499885597856984856595849745467734587946979872887663855962859799682677918648989468498727879998583740985896896656866955381548864479855948759837864997650689655989794696649869448889727683978359675526968829936879979669888734899758538899987976897788888589933619978663596576478858945789939898969784898996489664887868259777824564757997668879885995798197789937693556865955739795437984599994976677898895599587585779819369518976789893983763765979339869674984786698496878378977876699868886286182652926894592585294583888298786689764987569858356422878896799638383998897659874949576658665345664779646499888586869458647544779289849595244758584977863876767684992888693686487958872889769796996675867679666688598847854373488999869563467652777789687368958957978845865975496866795878948969177669657885948849997699667687866897959598558666734646879667899466684684798666833955923788598799598396892498795768735496338474663748885996898848979985561654588997939744596497466779755474979787799859289789928994874468843897868494999997797874699587498798576958499989484683563876594588989297968684564689977779252764783473587987999873693595796798786769594576852695858996958669679793885668657686996678624494599697596696419969398868745635547753542439479859755966889624878875989785676537748868776489773899559927988187678795456949857759629598869797738464676844776838775968331396817658669236653585576964775998739886679966973448776889969675768694867296246859678495488552878398874479975839899769958436449688796769988559729759974938879233565859989673849445993764185959896578499789787949796893594855986678897949674865487787496936645487974297799972864773685448958978596519394588494692676667565137299848648279448735239600655978987388546699852587478986836777954666867694588274596999393558798334946997755698555926755687478778698638869633778985569967972489488579478935338859657870577478893339859997869757797938598777888767668926789979596389979768863789699798446549384999875688277799789889379898647686349494897889998866795984945695889974675298355798959679835736898586667736987577964493789958976596947968762968846678997687995258795288557768588989869557434578569898987848506686338994436693676458277744996484777556859878786793865924745497488745756836887625789567229959259993889947543654888561667859725079585999347792998666359889899773266738978476517497489819657898975789983878596978895678375996558699477538952779188463868429629562398677798675496663879578993844383798993838466538974779748889988483895728869984806955894859887627979949697677795589976736649999789577858696767669959999558299786868769588498796549596659889684484493778646599686379717856966894999499753958937676969588247496343974684993496796658599788565358449646589888969396686988786723395867491976578584326664979734559795258888788896885797469644946668887898969666998475285786855625557867985277567879497279733874737995987278936687982985936978662795839979838979688772798865988889269953876764949859798949449725787799858749297574761967179467834884849998858597863999286825487353789283679687578599789797569538385699849886499776769838853258559464768574793465397749856949478778865987899649939796979898987667987587874797583975982963149393836777394647644965887596794565955842477759552882845359478998698624677852959866669947733782868888279896473864998586257728899956776696894883877847289596956887982999278878885994263948692679998363658586786499537687979989877346899488768897694977130745467547799599477558956865959979875687964657828499386284295347892559997584948767855878684888856688672595948986446277985958599949267666782877684477857658876998763485978936599748939822985896492795728766687637767838889869469539798887979648859389857995697886445876738327567852977259567868626889398626664658374479663595407769979696389869929876877937538673778968787452945694498956699997595738889698498682742798498859793378794967768548968975688996784846256799685569355866885764447954486369364658736768579857476967378586979989547489969697531957859396358848945489464927275598969674798983786376797455893866479983788368597354764479788768978698799686794978864983789369468899966367979957797882658887885855364359867464684683768898586846963883664869647659595736957869578728597375889376945996310752985598695935589699348348888998899579727788855979796698947976737984761976979495769968929486989247496785466528896995577543357786749646848877498599689435667776288895648589774867995394896894967872864696269795526294847784358897883462789859758689758995981577479657387799358325685568597975248945599636584748886436895485586859993657698557692689659056475767875698565937838668998893595798677678455182578799978872899895969854959889316897864888579959869628689738999469758775689678296924636538737858893794898988699854999547698834945679593867974577262239753486679659648993577773888889598757399884989569963859786387958687565936783896263968743874455854847575556959749794925467658598767954779877949975897699656729553745679299738878867654897826869985792889447889577695449799679245588988753867779475569766988376595786367936558962725878947498599959686476798469697977766893338896598948686788976085989539896553964779596287878973749959569868889986789678845993767868946573505332784778699876768979899759894887478630498769879897558828685927584628757895693766358743966985852595396999317862663497748793628668923442769896489767627789867585894977573594877546888767679266936765799849328082998549668684949749877785995568895678448865899977495274829457772946499772655694665769597689699994968886985829932699678294889698378996386999366987642738997768986979977747848798848566983258794797945985736299889799997294983665987895658372775847756570675376647747348969949866876371458993793679573767945949568534597344199974955787878284569859493977567284677666489987344649859894794535699668888979777497383799289886497774885796898573991755884795766999875988486694859668959663435777395657668538983944676699678479933968576278799997679598577596945793736943356575688576458749645939892399578987898499897767989341859637939596482968979876877595567862795363929978666648587569624272999299958999579564957678489768995988697459384696757854889368876969859868855565299957538855885893488698983746598328768469899459868969449848784886694998696389876956889943959947794859971983852399596779792684972959987667966549847937575986473468949889869986689487665567997889568467746274885689958499067969998989879786969879996524866984598897788584978785399999989499775585676555869477695989466417768953978938976538499997969975673638796367664998359555375569329778489484857749899969974469739948869277637486957987956976675696838577975896977985587838893779786555999958852678227675966987887949929788654849654969499768363758976996696839999449989877596789879778795763898686979549771943494695659197786978853898396987895655978538882549565783869774792788827958739459396995467596868998689888558999895964562485476646868993958686938775797898496995828579669275988489769498685878769575893935579276859268788705766769278854598686988785957769966799824959727385868856746945674645638898969996965633899584758888782579848944895686798287694892678698867988794588798394595566865298474986885784748848947527686688697674877855539657897927884927968564494443679667859758828949775865846873864297466673744374679776849788164265347429838828797783989997754878495999438991559178576885786868857989387945672758998866598679689978778462886997925767894399857886947699738946798696369879692758983769973898979684877883686798958885886578289576894766849783974538778957999879965765368849766897727854964967888775798776788915596788949886656553786349994494268353459897999553995845936977978485686582789825984721427788978556582540649967713749448976989573969488305847499657974554330471749878459955856897948988679484535458697578977862974458967859864398949987455395558395696976685686529853627588957997525654989992984545875965965458854597947368999699745838685779435848675479788259718968723976688645352699998766995344415699467376498986888588659144674959525388864976569488656968199657955479595784776537988487998599978498678558795696937387945855299798578684978789587789873548786744877869884795998382264572997942758779797259897899679388357578969999536559688489698638667725886757787377666779944674488651987665746998569748669652878374965997695899964996678678315639388474580856976694622769999983657976566439579534757998936738227556979995496956667578498988553978768675977896552357173487975585796787798977877675798575627597322827983885449776876554877988624989977286947757369846936377886876695896448726388493844698962955955445927868548874667896869878976797377427926466898395864986889048955759878659368986997743918835365556839556625963499877676485765968777749488958899477265427798695382867948869799986737499633357165625839485595538897956537677626493992756442486589874797985582979955838869482995733587648479877864438599765643896896857669225885779458753878548512766969989287965399985746953877566845974789468894687358969887766876583989659279399657587685885999743922984847678936778825888835843799946985869378773838987777832896959968897969589527952695837529356599793556288689688964374869458589325978686565994997673663788435669485976745635299778582485654328563989645549397689788465859946997956787999577164985596623676739595497568497676939752296495745847826796957778988959373927748758854368928847292857849884698746575478775952598988387563557358729897496768465776845788359889570695756979468568789574693578789997448943754378799968695775596758669086954698477976699955798887978978675889876675698799778968288694984837428599437652223579993688298787488777889385979587679837997679476483456534829999734965489797858689737994896878863487762835677837749759969988797755646251958783998698735444698369927596872978869488759469767889955697953928747589385645869726996998994539946679999999596287528857998476898595754496897975597967795971895349474949679798449778348286596927696785972839878389556977585769949794987854559478467285498977788594864794872697899571448896785578835448777886497483678667493479968597869998896677989898439877874683937496787349383759497866529778769747775999859258959864295766569989595996899495769889957276978767593483997599797789775569839855453966399875589657745584987375956969768764254889584948678674749989445998935942977594758485529738957358999999766978685762473839356863577447998799786835979747387668887678778887985366947357354953859956868747958898846645659884778957787582848987593777489898479589289585836569979957866453588664946788477759578855755757885578995867795716895847687578216969477638643869956936689949594956793564665698958949846935494585577795889985798989599657769659776599247478473773798947455876979787869882948789775884665579424528879899748968295379429686876948597399563597745966288779864122385574494765898769764842857759797896326588689894677676476697978265794395696977969679886597879799356687657696787558565678878885654599984498996838634468999678574277794856697578985728948579677777978666686455784897874637388248858877686687894626977597588789777784697884767577995398789977395868976589877552628945662968946775728529967997988965564758986978947976593479958775899693969437597494668759486869696578357959894897967499393783674988669626556762957979486726687697826397587753588647654882354874756686874647985582878955872397673763989583589965996995247956874568875889759796564475658776378668989799423559938979997699998565489379699889598999779978927783835589855948588965698373866867896973938743464897628668894953549449966889695589867759747938698675719867696497798879797388979724948978869858538867684496559689985848734666477765677749695587386849898776699658875795787697455579897897847879348979876597978467989568384596688838785797568899294764898783644466568699768937289994857498953497856999974987949758775786524842658387729977759945497872788878778698724836863973545647569923398993598839994879946690767996525589599955693759852968785507668779547946894347798829588746889579998897667885579869977874977953976969985926977199796984545547696874799966888569876748923566398279769656838458668746385484378976863369284737251795956669357879757476567951878956787984698996999449945667956777676489887993679737356579375659770396869958682675958965779987228368928999898686155296352813899799896854599783947954724788666934263476588748666259779956779769676858785274978945594945949879296986578359598537848878846985957737875969297354589396489439956898836998598494959888445968988559694794565899569889369286497755799994538839349959778474787973695846894559599097696479847888397797894298582656540553779999679586844639553533378786898376878594868787897869599354563429453789693678584745877599548924677265389967797742769898657766846777686447855579576649846681789777969340728886988895727476927543756543887678999654956968579855578976769774445250668697846798535688898292652794687987898747589878977834685888797449797467387835865655967647596636899367488789997755919798999984596645797999959499296788455977467686567565927226878994945876955984488675595794974834687868479859789648947969447966788898895737788458487057973999643873658593854977979777955269869785375873547879078895835976446564787894289985498358756673337979693828795784597539979845499979968958625967858693958458965672758892389157793836789655598879983676739848498684985892853477536699978279689859858859458355779993699788683898370578678649756995663669935897995994955795788996385567488448978647689988899977396885497636396656979976836835866452594589849692454387822899596892789799486989755933788679273992749999488869937864797794977589698446486976797372479974584787394926647499985788684679678564857988886456596388584967499666262896995955967959676586287376788876969988578997469595962936587959647979795597506788288397976887953797676957538464287778776474999958457759773777375697553979838745969765647785768994989760895544589483858749897857989967596995578968485358566465343887394884368499868978317995873869598874475579098484678259758655863424635875949995874889037385988897999679786542932349879965969698931886776686693989684988888826556958968475269857998867964752858913768784783788756282976968998848357659999265663966736986987857936489999986447797585946867987453965868967723726359566578684999799878858955056683957949797894574798877485746959869575877647499877588387632838577866599635855976967887888749699838797863694898969494887788336866849427478439740568676598769388697468756496788799489863583386458694796929699559793687297456837993968859894784668998658489456888697385679195877795738999482965699868879875558872895518799266734876786299663582768697529999589977964543565885988569846669885794888059588248885878757566952997859778847876849849739968873464888819985895777965487693779488793866694294884555995834766355594397555575896766784998547988899746789889458894737754879992595756763898768997585999598882999477287799587699997339738879478794858888944959567328587878369748528995379776167549867647265979799649578655950699673588546278685666655826779694982555939587949968547534192835868932689997438470994679368277867876776596968725626769975520798975775359988359939357883698496886846544892647897798625969476967894474669979299378878564838448496947447294228537939988647499497828897684896798522479859889527488667884798497778986747862889652789558894868853979544997979978647849954587497765877985459894935999544598413234797384836678759557569947687895966855878693526978647884778597458897565847999599878695832329765699887356757879988895857797747458696368947266725197887666438588888528938997989988917739597789686384856478648787297877973977896459275887719669938247979678945992595989656869598558799895396479685449467756589989761685989868987297959549469768937783598766684798879559544579987983874684497697599786899839799755768763972594629558468986874898699973936799559688236848893789574788273867857727883696986965387547449764448688698586889571898787738999599759798699854986242657567967488684957985697578885869859287955853799856827899249587657275986759876988967897347779649386858898923979865979898969564977999624888978569569737568986893349962897596695554998896485675789768533848874379495679552886459295887695783987974954497598499874848936674894648598968358866581666785655968755894897588654667975954289689287549799788484698987898796499896533667877698698978978683568748442789556279498784824869628508994794796929987777649562499719764673745679981793587589638537598496484796366748243766993787963475897296756653497767672944763222897586689975759835987415284677825363997747987593652632746946942798898965493565985579598659978969367986078759579879679693779689597796767895869769689878879985837664997889654488988672978945762894288578757997981855978889979998799598779482659544598889397847786718688979586969994948887936854568457888888835985768988976859548797589787679658386799687744297849888764837738977968854395998771465694415999374457888548572948688995778765999374679883973782999599367764569471698298489945968968697898786877485595796492648759898786455885887832767889898396498586599958985697986758868965655555695996857958765759675396677287785847757499565696748749766398658999778468843598768524475385987685495988647594584467293778886489735893678968547499999756443897997634597485875957849993486355883398625395669568496276379487899648836949676939929788856797878784986799898799223674994699989344365665428987848845796348818497858978778879697699626966896397856297573943584899977989778799392563976778694837595827657776559489869864865285877779838965878669988649949497779349789869757387893469939999779978888987865665965668774538587897558668958495657899787879993496863493778776926997756785978465394233759574968843944858779386866367578599599792764775499789396337496599773679655879685399367397773467477272678388799994879266543898659881998373755775686689794993996776896753494789289458462798675766679855796754573899598677849899788669385979246575689496694689597666796563799799978598898385595696385667264839999978354248996157657966764973697775537875365755832969758989799857854658379963478666865577752872386758572598984788994939868876596579466985984795765553474779598794678939999327393854957969639448649496879575899596985992775659886959688297694497769856849769899996658897936796998959336655997669758786555682864599889878665542688899766963999596975557697886926797679888785699987899659743685949998955998379867178967855999939956898934694988966957978998896545649367498685579888783833698858593783675864699459746793976652948788663879364749587556975959553378688766978846344948888867558776743234844668825577598697698977274933528394967876399789837598982694845779787279549764697746768994859969959699355686964454898459777337975669894679584447669847977852547868497983657437967636256877967893587899967498826899436958439677279946968627596895987547476993748387597735776666949569595487845697867944687427943888786685835749659794279676944265679652736828838989988353635659856344592999949758688693479998866269847967795483584848594849979393958558964846699553455948653579957794487969673667987556468598887928669469630799967989777494759665899785999987847855935589835499968745368476599788987366858297348869968879995965776777938969669659765967971977978859987658968874388576689874696599797899747848979586797697475736987652796799463697499984877873844946648748994899988998943699895996429748659893989656876518779589598893898976776478628489696813989798769876444745958779983569797524567978524936489478986854738989729824399748346895759438777995976538396763895974859866928979868864669998949758766547595786573757948928986767497965797672817799589248885885479426757629977587997599777899769859799997558479748668538762996443495997398498986865997667553956985759845778992857627688666797385398699943858999897867975368998696938899564997657687957846467987597668275959267688855989759898844596958858976996669388793757978757896469278999664689548352563482236634947775483886996984526058665397768569679497688448498273732694167995628649949989588564789866367458977679788385889748489766983699988995987891945764285277797989964436276896558757699986555786789858394325689454867848794999480985887637284299158279499431886734227998554859549987777373777975669635957789454648996958497788588353646899667574773987988798829676867798897987638856686597899265435879965795375288359796566729997894472948458999878983369735982558537288798798799688539925427346948599859366739897543484757486297667895778895574967994575689968765947899257879786877979759423932258928289879364897648478695353597755379788894977678895673886965798934827689198399386596864777987693379695937649795365894565825148866944662975884989898949877499397559938851479783659678673338897398556779857698348596549266777889889299870548693977386875877883594867513399885766987958646968866474979629697935888846786969977259782946972954859294449268571747697379986555379838428678898758785893988461355337937869389697547897369748767699859755659771748037479957888568845276238349959377384876776553855859859899549853558859853987639489987886788794789996946888646673362979978756688276998983667867987587883998198347884938983659848999847783653796888836386861757959248985765370747899987665797688545399984539968496986352694994677480997379659727874969886868698568947678754446859857898745776972895395833899968987844862889648888594898856897668876672459587894677986895786878597365583973985816883896575855899785553644465669963499448967469947759999839798739549429737738998479975576559958984777399899186883445547185674887888976589934476388968278898917763996593968495976858598588494499754888454388986643455952578956928338728397854833824576847557428999874737984389376773964787766451444589496758869944298748859767889959987879684983956795788928787776867958656599399969896247965717674669879848469522687679997977399688788969585839075879779592899905467767875766694779862578389848755635658888979447463464828949876824765648817976758875575978657986474552999288767899769788865584575486566657599854575787925498783936866747958856666633376687929853557567886276655766822898987895996386889889567776742797798678444999483867472856979566589665737896962875878537989963877596687783968836898483486978838689275649393585668578994485343657788977779457583857799974259687262755986998877869588782676597679374886569883758985469338743967998983884775896895586298573888996697884754987687784368935989366469886296937992589785346479989786689964886485387168799976368567999684339468249383676989964978896674896779584663486889855745353986869886796768387827856849942698547559873589965766896696873898946896740854892787496696593866764942558599378992648977996946399765239688793255897969959849997686945993978856687589464985757558792696567694898286462497995877695583994598589676978268845996977283884677885994849758866896986937964938859443685868977133697622396654444777689966838593579879489676596674766598988996735856975939878569976476988955469276958999931688799949346784444991975568676639875877867799987986493497867978439533596966883736598974477855865999745945874777974986578676569876669898375869855548983898661992577359538494786685998687594587768973849688788456797967957365778868719697894906938598668667967778895479796799698592664498585749623876655983599939537959948396678936899598458678798886759952137969786989979334971566756796899968754968773698854884667652635578727977589578484624698883497466693869956267686599749688977546685887495757669659968786579999898874587798875777776576693888879789869738859596543986288944887668755957639486568599998495698698577456987995689899988768966587265689578458879939789686496875597838946834643733947398957975599993587599945886779683997697666719759686673597899734565938879996383585997657594477998371594576489855746689898994893446596888489989368895669576869599499958576583958758682776999597797755466759678637485694889988378869498985898694399364608891969997659499944694398866875963985695666836774887548769386877447879864447643759792287879544289784495838489663539499877589588768536399976459599737973885567687768994866376860438778867676656694844888594355996683762688548653977682979986439857999738979498647589890559945839799957776379789897594836349558656495534474776865894879889679987586966267558994487674767686478779769342668978689777849688797985345984429988893397899888719848794499948545465585989467763559996658859798557786866937976577983657753656296796677832969572574575946795363294456868757585787862598199675976753773434959468899989273448742697847897988699836976438578824375786636985499698677686498539987356568396869878879663379768999228792599799839989958925497848959395868769462487889846797399795762757785789777996677895698568277846492387838278956897699769376698686996299487789665798567548575939568967857776773877968969846893462897489679759857496644636479824969398232995156769434857728348769568958538676576796896657495817658453779542896994445333677937399586856357949388839887555845535583726896948587988845769844687793688286659999388989856799984845799575698687877964687774875799327692665497826757839697876688755686776397839654757898975666696858379454939957895798987288485663966869683549627772948568899144795677978569625498747699758629897689588949756665669299998688977978829649593689876987589567775935777985156986645769693665463788145759673725138497561772899899658526488589537424976297686798568385868978677783578987999567798483939885676758999696977978654957847654849479853695528488458755997483792779478885284755258758667569748624559573736897989754848828975579393989468745978283469552678859577988578572465759875557888878998873877988957373855556568879946989559634959966846668987964866747799575785782775797848570978385672876959483392188987643774656826975939786679978358986224654997999547489148785688845788687798396045986428669387199867697529669898888576847476668855879677358739797688840689887774885949228939768778887838986795869583769895796787878699675575728896457688845996899792838798748442975869975687977678759949869365755225665864475595898658879376959936897868676799695867397599937576973469694694674993155728777895674685917192888588237998882895878225964496798765828637783597489777688625457865966566378875965666886492677878787562948854959538747986469572698763855965867354646979793667687649985668446438669868795888558878564666697877649399388686778585778981618674498567997697997795858885748996767976695858639489768978959498494885599976586488867966597384449697879392875609269764866668685678643396647988786454764578763956898978778778744899545589866944879879779989863686925458277995527666565879984999786477969799887886688674996889887847576579968733559449898978934739813592529855586489677778777608633876893473247986677588733999696794668199876888466774783975847589569789969353779397693982892775935269797855690388396235833739577775593894595637379984778529567235645699593997764094799374777299885859486949766404287967895449678998696784679996387746819699768667987998838695688979889893668858787439899585554896569348595552677425567892597469755997794686499748755288786656742763874587454827278686649869765582759985153499877679987586988475979596759487725239876968975598986779938889896626388857979465373998869398454896888459589766467556759486688466927886945788789377993388973488772734599972724678493996274458467966797747876994864756539676949896299795987579896797859896636966867779888429787865868493936957688964489732962525755975887888666393543864899495996957789957678454468779877748768899496988984485878649979598993486788396793779875284799985459791918465478269719786908899989794666525889678778647966886338975645833796939689354978883895673896765674498537978937968846949596497478969388966676645443855397766599639895968769868641699554981977648995678985998467944566649696568688899278774299767957396743476654956886294867984399638393556579933895894767277469976846947634295569978697584466874854745638997579963897179775958595738876777975767649737326888598699654988876688757906396447756774878885849946637988985994958753997988466879366977756999555765938858737868927655889864259987794965697989663797896678479245859898894266897594599846787887976597892377996779749749689988788994544976668818615738696749797556478688854978396773597778866647559769267659872987763927869978879772498946999974644877797545787668966776888568742995985577888857697976869959876493987866958934992869988626746677687949777997346447188387459567877898682837988867436758579882879588838850458978845768777869937938876788945999787584687599789899869645937564886458786845588679548767563295799757948778176977944566979485668365168554978999995388997679989778656955778976936696958959476998688826997786875769467389698465798588978883956677497559984789949769599854897269754499638896629957736269793877399859948989375957668967388964978887692618644998869675428355035169266759795933896468769524765698877998348289859669579647875867570544887877878856887966857769885947288979748886777947758589989874597496779597995657497977485795898964848495786879698987899647899398677896996769565275344568866738596467996764944469847779988967638364978783949689796319999735884469354685695997926778376948896379935999485966476997856566974797698728497937499981945576555928499596878987656687877776955949758599570557588869452856286465729938768682879656479499996884857863486757828988893668898998678867585882957695747773777866588585657998999667947689378995787874685658567767779589649879474687467739435985990686794335499884278866944588847998588598896798477527979368497898599865799967638675977798482779966788907577631999598987896756463579857653598594848858438565399598875865995864975846597796966749268998966662485794789754996399499899587979664677726572729739758786846947676938899766886429565797948568949967398289658689868983664352499786947894875753784998722899673795976995598676999799684268998789677873748769987469466868369528848998253963886988884604157673867683583699880894795889349936499934997897996963952999897984483967949834979879478666719379088995296595884795897973643468889774168848479784355889973855797536495689896463897437684697888276688997979559624387984838953759594998583897189884263469788258969235628784685865889848586478379796797589987438889767686987675377565889785765746794685868894574696758774897386768773899984887948985446396677353842369345963349555957955655936776698798799287908888654994375666988498527973949996338849697927936798998687675375999874868558759986676986567955523689859697689798987894896867612994975969970997628765785895855898488899947499996774756374596339457828674557865396458789874996998683365233585399988933988699589579898589677578999855768573479693525612999557996559556737948279877826957637956476685789797789979739745957988977064598576994974777892753698979877468954678959867955638528989359589868944888898758479399789849688585588672689886698893728367855677478657978596988558659649979644678898989766868849963974668778989666785955787879869958997785892867478768965698585999211845786559958453971629573738876578586465575685769998887756879995932972599864498389684978789836787964975997877766893677249893663975389628979782589772587872676587693694673895689853949687896767885789559838563758883689474953966368496969766957803999597899758749665977564497735379946775999979796993759886789691598467946999823956899936858478795987768853647937686865888788477879879968547594889556768725881962987778376946235722825899179893658438865255986394787859686587295586944699999752877387888869873595777556799296598992948838937899796776792795599356862446783039638369784968683679916938869876959979349978998398798892998982955684788849693838689887969979899743796817788877869376757586989763889557688479487589384356996549793796579899885987984655777949726559894976837484677798663885787797344396838739897869898849344895972933994754686976579584986868377969865798597937967658438466369689256869862396994887879835745985787286867679948893568888388608586796468989376977863686849585939787498497632785979997989788829967892447867747994556489496436398466979889793676899878949568999833898265893865828947989796988569974729875555658938799777235787934798866536875988795586328789646769699799421583777972679695816742496796595675766979593856769589895754865486868889666969592944765939995993646686633977896482687864979557588934856853999587787397963478729694987446999694439978994949988674694984898895589742984793798988979968766877668959496477998976526858538341485799989995789797398999734929584678364666966877477894969796973779874436847884693488827659949643759339869478793472614763998285897258445997797979887389690968896924687199856958799898696849989888698576384665684985778798884662975898299977563686939478856687469524956559736705865954895689478864689786587498683499393574777454566497769856668689685769794589766725684358668945557567789558887836798897887859996265988676786298895987628664683573295496366566685697896897968498962973598976999795936934459868986256978588999467774574767696798775797676889364657595997953833964598689635544296999574485978665946829934389727595874976733357878548899789553785299458847838944756365356499775166897878286536549877950288654687499345847464699969939698718685699897688793892398553669488565183734698759286946897854535469759628698969655998775567979795998498792978498895889986985746799565936567369849683558894895886986996695516991566578697589935697886782876972492683667559882898468798657796499768719575258699979877958668667988958699298279489943855877989898935997285963984888997392917356987925477338279165788959347989497799796871846348826789996373788507966578349984967899768595775785298986596999459837346923899866857547796795699498599748897795688789346794489798864557946587848565859577732395869795994895579788796968488855763999265763982994589999732985965981784979477498368894845999789997389924565859798987983685848795594948679988427639889634598379677386286988993984888886994277798887748957776926757789952486894863877929859796758626988767695293972696668879995968467785977997761875532728978589785989884979568834857897559937448966387585653892986939682997957993878597554853297979589894775678967969778874829669559497989847578583358373884794897679979668858295557745252598997659998896604268779395938593598976898896697337646237776599876975892849526934439386789585737879156983757998158995883767673658848865766966399876786464685284289986986394876458984948498938854789834519887879588996478372284956349965885549598854739589879698768537937859438498295688879858887857756879956356575955669598595887747897668994699889979587895854788867933677999577897329389887637387548788794943487789895898798976686787255463687314849695852998767849975888836786944465645668698597784989675866457848979967403664849777958787569479789896279563437896789759553436546965258889977926699789499477863765797879978656789447989892989647793665766797728899979988899954779866574277878986863886497797784875689876989897438889574528668698565979998675899799398965578878718835584388577982989989475469795229597891659756443755997758837568785377985993758537893967969996778966369846786958698897465386479678778929888394394355489754844577928294942579526979667772965757379974948856798555865867527777998562896665434289593879993886994588445547668889875479986778889673589775653999924794098574677879482779997588594756986795898365784938684697375769374783728967772685799887923986988659968944486558938847240854899864554688575318664387766683669785778867782752679577837884998836457646736949693748645677787577354696667728844596955768966924729689905773856572256849452487242589998778456577988666799595648585649499777948368797697654858886376576879759855573885989996994987685888274459968797283769596962647743688482885746928899784978947299689649745656794789390969589762757879388679497714938854473728882849496727798833669666584863979738354899794885969845937886939449747799378665779699439648539798369926978965687734776349863492667677954789948895693888755983658764939476497647568629987972965556913494954777911477455859998659799959986883572566958579799446499979899726679956526487984978968659957958898739987889979376983959849846987398898579998598895778775536798688897688795993986382735887565676769996959985657992784959956688537498969858766885948982755946696897799598687492549857868837497357159939795799689786756489567544769258886967969387989888888889457899250587586548379946467557784748468863475989668894389589927994428584647667594854978642798887843957686669679787783598594955861975786768769796069687472299886968994979948808746769797894197430742568846789779835777987799665568873979696699948577785579756672672447838669521389994338795977828676886397649489366655785448379988575847573796988873468983986831889559847724859975799786759994869662954685932466977989983964677867065988686372574773929528578833556777358664776592689583536895789933786277858967656788786286579538498879449887583987875879754859699885296489753977486686767767989833439998744679888598748549898687456974836398698953989696896797789746568843978889592589639876656985757967688553979256599779795798673895899589880998887727858558899266376879975635894956576489856535889767967596678999979978678928859779395765987973246686549858734997767957799985997989857589884684679748467768845878184649536737689836946259484384985376273476778768739818193478778678692759353869872674679659959464775524987672837269838999864975945979978878848859785677599697289693546899655799787653866782998679462473558547956868987588797657795685446818669458566469966476999945734786387688693697667587376399568977359799998798594549657998668898587797548465878589641939885658464839977289797979888956892676879557576759689517879788649397858398398349396944886879669923757887879859699854894967559759795989998867757895395754973565545788997839957678469898968469774655379297979685889295576859373698459324889836676573756879797688982838999876825993686749669478779849989767775583776857359384995982576886865888477645985979875948956999679698784765898582688983445685828797874388762794926887896775869595977266878396695947885275396158198998994341343995578674486695389487899978985854587745889795878935274985985547998738929888284749725733885898298757458916933976843556799767636597569867678474577859397872287579899733894335698729287499588599867748567958579469498337847986759584886738593598998825333838878833693588866989389726395509788687629457955779589996787868759964558684846786998679983989933667646579563479459639755569367937997318866987787588788670268939989999767895796866894652643756951888685763444867847793463978223476998744575649770558935785838447697646797689979586379599479897895499998774971961476398982279878376986978694889838769881928778749768647769877689873796395337984744769648577497956442874467775478992839778494589497998477879765836783334384899848898638944787799639484958483766989874863765679798676649875656899679069575969873838648688859096647987586629968898868875767995798767587698847554275789668786936935895687859492453275867368743999996767277995475979287798859986863379556357565795969849875846954814336687697876895687668876597579653787597783452877987592885597548587952972967577884843748488693748888899953893975544449895959636757397657898970549864489758858968879675198676367798987986459465954495995647939699853586859316684758754879559655359773204267888849665996896986839985883567797566738573577576861867749644776746796279783989969777398444565589886877794997886649989975459487977926436688935664978779888976687939724462797777678756686578999975675694596969788569689648785699368659576996372989287887358594594664898545839886057899674686986838576327949588577747738678562685998355399536666988946577654782875366576756675838397799794936466963799967783958799997997797995789659557879759264758849986878929893595485744647675657989985499899987997764784956376973275645698682665189669759992673748349454697955789453677989979878674566588483955195685538376926997715187849356964379999879863346797384995758795787936586998972687956874778824974849575499997673434867957995554236549281297993884657877967669399576886574987525658655588776638856846493469374297476695697479927887796489449798958439833648888939864559754689898597259256468559987766752366793967693969889662288999685788998697788847983483883398937794888897433948849677889479978889688776388864884969596497997647698464648848597763999484789969096479947945876988988359286986874567286755998346738949941259648376876788657548468359998678347699594887996999886397958797778898933988298939938687389899648847995698692765477784997874966699596283862777992566643797958984898368397587288489729766646589869987683568879993549794989787349586976977556667942979858986697544635297948869868857746968673853977864856568798974574359576776259847898779589698679584593998872677875599469556997978639993998976667997774957754577895697438857388589659994547527773683885879584468798986849778563278778798977765958499595996494998708885897677898494435996987843899894974897966555765666769888565698789954477864877495645985979616654988921639368779262834866566858979753799895783789697486587698955597768989749677724999567589694668462886677936829867989699768577864972897867437978627779686878446839687578939678058537787586469669485688875798755639944777565529744665677777943999224766282396799886865958799794938697586949498987943746886669784485768888787958827977949875799477798799795567886685968924259637487897397986798918952795999826595466568543356659364668898899949885555375959856988688276756599957979883998689337583349886337957653994694468892577795736223696988859786778964595766785974892989333885995248493962356885725977696477289897969955559885837787799967677539989696979997998647549572586475589599978666766996938447599892676847973779862228398993876545994847933938897668983596955799634739859669796598755986834989779586577748955696688529972978285998486827938987369895464979899649888384755997499379639786522984999985957585985676869476684984677738776559259353789376687334639365799837865657787565449798647886587393899795494267934779688582472655976198445988957585648935678874697485478855665942793668575933784569889696893775889777777674986997949657687789651889755588756669579894889956833998667559764739986769389982698998974987686667287785687977523986895575333228716586672397945449469225434369755894844856676686785857397789896585937885599963679529686576577453288396757734977637898698878858553565356364287875869696967983996824589987739767748855925499837949588465997889658454534827536655794798379789997867658598786659955676378878787768248983844694978989765879284879749692577879539649889583787944584868537989943476229756544299553868686276229396997589816658555596797499883897868957797399940566736884247861496938878999788539965736856579962878984387949778576759392887776859956988677435964857266697931697946986248688588534775568989787766993863167673958968727797374732998899889797873986876767675885489898456489864981358746684464879976576537348997735825258554695637644427633853893539428899469894782799794838649719749349594878766879777399768749369768693995568895846632385666337748997817659385666698679485479953558846948274786963933899747889745845778599887998854464639669794839959867279485869926564765918877867766675989488768637946838999973586458857995975684777863397997574756775875863886378896966689693296526799933968679477697576279788689969813999486468769858669876672517786968443899846673375249396883393488899099986964657645798966869959448778778839756268887616864569886675948575789888678676982959447928985737789567978968946269779987949976859668987945762955979877997833898585878745434777689962357876845862286888773966769776758657656389572879655897878695828687675995896799745887728363654584896454673976697846688899767689366899634948696729767888527489968733869677984794948244746678675984929898745748994497595768969957766547969677796686499986999698666775939885177864694465989657989497954334376986897559377498978756877787486978646866596369735728688149458978795999254699995947828665384784588463885996886858988669077647945776946779329968948837498983486693975998999792368849495488668894479879978979795982788579797886849978959388489963437499776979948695669826789878856987787848469757875996448852894789959956997665676999774967937997887827999756289768787942858690494949666634377636899885289756492894895743177685429657738684949675985486794995285839976995918867443749387709584777729298798975469789498256596685467476684926693359665907978655998638794679678547849689539989794679746747489949668446693876898786935778585942858179775885946584525868997669784747798579677732139995487448398868447586887637985667997749789969647963746217699685493960895994794755799787686954789789884286589824474585887855959744994899789676189786458878999858965539309487259822967679564956995476684404728848274873995589688265898656346936964545693868646684869976789895347924558384329546893847576769887258658837686586277655765389579658764759569978839596768988699574724899654888777568248976987754678986768874783896997789996334394344926167954599896536177498739588683466538956995888275479699888646936986999693896748879872666733869994697865538357699996684587783578388555548894989979647885837954535577869695498425677988869347668789879379859846995797857386799729562868778447864884988683498272239885456546659767398644357392469949476859684797635974857783536476788275897786478985764539756655908869588996698687875588855669925796999377594574789778994888698787598689993899578975563577777447497797992798569988257946895485357766551662888964867768852289797298869576248987557996128988764643777787784668557586829449577749697958865299483262925783962987883887397589637947977855988893376697464955958696893225778345699699659669667834973634983598579485988697995894967687668598949591567989446287478875394868295996583099848476988668789379626549849965486889659657497966877784829977399997897938385988757948868963748739999794947395754657772598787672837858736869484638975937621186667758697538558589678655438578787292369789838738477988979546437597577958553954859563777856264768766688636984786879698555984878693584696886739657599392884972478678969984899960772399669462838984469587679389987770746856439663788977787376589775384789945777847367687926797477782857997788969345827464928889379977747467286765897468859887892972995469998679988976669279284958798858566794986337789875978847639968378834665798577988848749545978685762674897747539958275969982555384946486783921886563779339595786764359785943923284896698575867899789897899898858998559685894795443384677645758947747897629299798476666999487969587367986539886267874526667597585467222459879649963645798849698866477173454963779948367278852777999688699893769568898554679595656983777394093888896989639896735672866708647698358780797943584968567952838799969697467799999753869689599954487877525885968444657428853258557699589767794957137637884648779959885364799647958568967947779786588749276557899599879797949746966969548897975889596969947995858047564834848747867919284968955584897945588996478465786949378846637458577199988968783566283784599830288148795657361439967365939789959669986846989972794396858496894887545787957785878790877887876795699254689666588776872799969599699748539558487748485869869896637407654598939884865597666588899973555837786749696584468968749665793789575584579989999479885868937856268953989498695985993757843684984684878949367967896588886268977756799884763857898487798443984988569768687896557899829938987888278743599599549785364796899388978896673875928966888889798967599566488647954779773358589999974265462738758858989968858758796868878699717886779888696959665388888889973598897697689878647658696867998937965886798486653545999786458368768348888393756778977998698999696899887646488859945889589693390828684888584439796497996386957846989986594567676897824968797963786997882827833989537886658959477688699975083748924637464996865885989865794949586655997578444548487589566989989899895853677847878794659997785783397648779786883974777999438565495657949766979588658979457485897958498769365995799497987587535367585769575778634939782789468738777557978594868988786694498786698539495736976762298849987968736774965886787338893859778588756765938779664889478524784984596298989556898757798976887468795969934989325983483986999777578989359799838778564199864749487938599589398856994948868265683947779359766765977462776988733454998947349369758994659257946594376767845387869599978699699944668965474996507699687478895398479983976779638958399697578649853937686659969967791957587389449788967753796636477896892947476447828997486986799879852887794596998995896639976698897378998996795669864358892784272079374846959858486541868983947884937498876996969869839798399865359635999597979999275489969947895684586559759998878968968988552629795656882889638845776889862836939931867928937848968885575759496973669752599997956894636869677877597559869083675656965882947465649993589697666966297778982758578155889353999786456976796489898636878885434339679659787897997398579695784914728579397459972859997469432336843418568758895392848979784299769978986499823964485498659889579429968789999947249998756544877557482856889879886667995567677354999599579543859939326689626495793778649757774385989762987654929868859299952757545689583779443655564687836953797962399965863969299595583589694657667939979998877976985894719648887986879995985855539857883955293377977859986765887899893992453548864358557439641996569995736559496843867489658975479592759477923967767284666958869688978962977679993585588699659586886784497879769469869882296563649797684799565576735778366696897496675583995739972965988878349846868989982587559527878967749898956598659699597397682867675867969967826496364939773575678697856789440977489749466536369774698776485565985738999494565988888173578969588576688737997648779379775565495466684632293985586757978457888796999938876697758985348987879984462998827599889744292623998967779979395796965896545698289282788898926782686435777641999554562643464377986996797486996245646969865796697888325867759989698234579476552986378597856399875794638539998578786957686999986679747966285796868886497775668745748566628698879979986898688798663779679475975687866998999375324863975562577859849359999996889694895858698797598388473963497988939375598965398858593665598865449599997456364469889896849648798672485575686987848633657797497367939739884986979899797776977478276639787364373997745941668897279553394646897888959399935665676997264695525795888694969949945835975866686698498289759879553740877479759866468696878889643797554465859587493994998498899848574745779931948938788941795996681695699857738696578979376398579868748768758559993859399773798668947479752668464462848697462899965769967645888767771956778653986978767993746788479346896717889992289424578959574739779497567569579163736979656377689695799129633872984899848739598798469849939677997395234589449992887598956399847294499635477789997925496796495375697797376899969885492557974693424768675993682588397678999566794898479966574759776458878777397553766288943866696999873426784389725598786445679459478988893855333779967668868586687974593999786826743778996419939877885587454837567885988786668252524866655457549698458794488557184266498993998858968979667971887707933962983178586995892668966998588749845577799294968667479856955836869717894788336995495563478852878974568285582778336864863384989546567989288469767788387685938998699835525986885669996364694619463747478495892988476686787999857935952649497355997966898967689796899663698759235998799949756979469899439264648797956949879234696696452745587465897587997844599376894355889688687927697589575788434668784356486297759996676398784929878778968738397879769784227779499495863972967597657988595825678556798829648657367678876697555775699548899766785748949778955899652966556987574888688657949747838758952647499687835795896798947848235833664884955897673689489578786472498678943984158868976657998806697259777897356995458884897748675699758584679667865755787868655277778869775845996094696773976866999988596876969482651576503668588368432589896459488847274489867594965992969992888879767586698699783278444437759793958792554668733449679279998446566659797779863899256888397563665889856956329789598587776756784992735686899845323995684465889547894689953849656966693799567726688789466679678457486945789299887936799389387778987859833959489958286999566965697789759487789442788989878894173377976386478698498784666687979798668469492372957599867998437896672533974735896647784757798973896879794987349886578875587677765833364849784885687296894972688789796569994549847885359678965446589192716458477853259596842698976757886884888686775677977499948872787855349676966665897998997499689994878779998559989656862776769588477895699978747656588786885475697936999398777796649257584906399989889589374988436655949598924552699168464783727726866987986968798583655693777825648998497768699978864274659976673989975658579839876698327827586888964894448997348578997773934869542485348942869384779956337768799694958556665736256999663869975969846825458987667686798795599384797453775599784579688579949945956876679478598568782569448666366974252997526993878876668953896287784787789897596828929856599753989683799699889959667476635467849746897188487638868656987999597427659567896234649739489767649599854736779657468551692577996369936929664789558876759276876775484346257988987894254949876899498976457695385326876678495875787899752489859795489695776529758958755983979589857952456686746385786854788587587827467636668869828648567678872867399764937952966787989939989996838658553795892893863927989897626343779729688786778233868794697379997959758957954564237955498879467659567379978997346479965898978636948372677896889598794883773888999787999878397787837884975977749984697897676788785876947474538587554799989899949263837494876497984779684288947694598954859359799876876857548794964568415487459436538368769894778765385739683548789279675578597476795689969758896993947468093667484497978855986767748597584867784884263986258984882899687638887798783999784969898365829399285679999868986225388988966859949687673897567893899248592972768799758645559945877647597145939866875998966358933867789975467979656964593974247344878886998747745756454868778559696999788754897798588746567274995266476673529376912534978769797966978738393786896873686759465692248964697399245696899969698876794639393893365878967949886796698389746768695824837699947675399849668547777783562894178567784974566973575659758284759936989797293864537590863437638984849578967389769468939929944635877395686439726596799687836958997966685275496778797888159749879538665766999764798599944279968847669993597967566646596783687880559698568539966768797529893759689897791699875237697957975455636894799982239674948767988998533749968589945784895463992797668989796877894975949578686673285799998892996599628698968982997267779987892895749789742389854889778775897535964565777995897899648497934379697788967985328767894676975929479385277799634599857898858666339789578394473858769877598476788168569498466885867997792389836874587746757994767299699763887688866473866698764410797993697597449835942995956369692569797788729888368254667896669789867897289786889684269583473324977889859936948457569685699486797589958354398955782769685997773695874468839886966957483955885887537787563647399548456449641974925849493888967496968766879658976898737739529897784959767868797796652783565558383946999983597459335784996757993364985872888362895577884493888987779819578583565939579246555397698896944694875797592979747887637938987678889499971885969657467995895697676650687948769388992365699373973498788729656745588998788885933599984369575874849995888936697777888989675878749782964899546346659686895699377687499756668866697427978598799797669468318416774969979669799788988989492998657779579782897287858855439978597938921687438578055566997943359749566846444669953965578997772596444766886827699969787854965799897956986593765939795967665998629966987769997483957796764999879788967797799935577567775849787976889464865796595666988678859487858988659597778294796875433647767679727789988887449687975937899777798386693945887567868857592884668995386368879324156788873288967687949978698367839799299568895998797277766785845993989966858599784649695838448954977874995259746985983075973799398796874263786537748734644985666789669454859569856999999575836949655699368899763729995785269743675739458876578985485979677644768994253899878598565878886985195854986963069879397954599356995696998888987687926858618959561538783588828846695597636289455446995468978379768467227993982499476493494363236855574396899655654798745389859874869562674786891659685967985589599584936787978685278587681836652284096595993679686653837948943543877278777945565687987898889781787466459766898997843834984834696269682883547588865779763739688866657726988597799956767397973557657326655575476769896862444279969854267294949777868446496664888276466366669658499186876965684825826797576992889986669874739987933788987919947938958757979798696788224989699476754884752954858999879645663974664558947664659676476876313978728597999524956565959768858758498974398696986784943957598694697588647992902466657688487887873575327993868997786757964989692774893956869495487397886699696993776494679596679756685479669979373965967672887796676484889769795385574794997827778489833438889479559783689867887478757835746437980685644985868685997973656578886929779498547558667475576396988345846757636659976650968798897863458556687685898867567749768750897837788498922788337999474783758484296595688756699587984559766841697597776398584966984576394298999998456997885768964968989889755889974799554749794286948478456757637796964399283567779667878663827494738658959636995999122557939583855978499259769945757828938759958989393898453974879989983557589769376548834457389892983965844844456887952477884995893865949858878955275478455684876486978365196986997728942377179488859683563567675678698748902397394879548799978693458879727358538656669589795574268689478955738467752946982936205687979465977997296953838987466556966367667473735999677895426398949458978769629747957889994989672668758694468795557582898368987668996578667867885863787867479376435674577897848646799777755878865679897859389856382736976968595746683985646529955468959894989553873579747935459348657799853783797669892475977846786999968645998885819649876839368856997782878989787667367778848997895699575484886987773984859968679484888688893489584788866888854832676584638468826785479787677348764988686775786685498883667594289965836999669987496788985658889264787439894694574494978528446427826573975978497944997938962955628575837738827648773427896588758965487958657946549697899777548749878624698948448366965867997568789394089874553537679977858366772538949739337559917897978898456547375869585798778866895597489698812835599659979457983639974679963565545893489895388664708873637967877277774071237945776474996356859878248988759836966888586695587929237455979562677556987999494833626997988999747696694566998983398998255866968674868868869705899699514584569969739866895998395928894635898776786561754996767898946878859989989687478999868463499485565828566889676943799958775680956158495588982572867275777799582777479497668685976858887934955363944887976687474568294439784789497588853548466889967549548589556748968385927896879649885659598857748789854796579486899899598354497794287255736789755926639857985842597895638243497678883768687887929394779898687455446765987887627947992887473684674773758638647328769997567394566879335576776939484977695877866543779275376682566965996969999596738578749838835698699349975787942854795496996469887895429796993436773996878987843378649688799942878138996758993669856689779477965978964574467258887849238537948686772995966873759678665935489478887387465463788785987936839496448426786999783788659684786789476785246656676486889528378479974569887864979888748844479549954988996784597757665799449594753776897994656697899880346855847843788986988859976965935645666832878837787674272898824894376364999879955997669666798699777587589294926442567955729595878548389589434678744956729425958373789389977678949841699669458654987987938988978709493957472775886866672489872864785898769884931896826577889767739286596889938694848969447886874787988754899698898879699959285634987889798557788699783798989459485977376777989986548879897987495774979856699998995439477788497875694763848869456859394985789777678596773968476765869955787839768978976348847787897672877896875968539882996766247876595668778697879855678425716767987758897793554395698973998666996689848466557886874865339799879658658849563899786975769456965675437948689886936889637789997729269685486459808999656778594577357689899949565559764998698856637749999456367326683688996349694886784929589377838889453747775945986878666577958494965462983485989327708587979798596277739673892656686799893798399686786879615659985595867794968385595768677857459658497828998765787362932726886975486998249969774494829873879496682837985481858839557559868976369966338758738648443793499592689855869555767635945699469889595597976747638866844398888595896638799875832439748998716558595576377878855753787588808842799386885876967464982826448983254788917866895988985754997673766496966774868953641758727459489449799697876786657666385496698599919859968828989856994794729348468584977359763776829957954828295783666463989795994986549697859897949598929976788495949798977648796476683634595589949526739797925896889886972677954688493596799756776775457979478627698979596693967566858878877883973694365992974897367544902799699879984286584989679757693786599697799659595884678465697898979745797594598643848673698759875497398765767757357896286358884488749978787489929378692798848794798838459427348987789877565578568777447389936399773376794686775873389884794687553696973765046967456232678772254997898795449976398888799866542588838681955744594978499398774676664659796462693967594359999746755286489879497588399696396834933089845389917997599787988878836795967574868673973969688989840568689495849649896476477945956998749997984579973792937788862757969566886499984877985798685872997669589564849968299798774794876397776795969737373979968887878888713396726484395866787287254799969959879787989639868845858967795793955995788798864737669498758666735487869882499759429845882997795899638685564885579897878659974598879877860765646965488828359723599742769988889989669657884968997799758639275364849398749929862599747737888796768796785366354384866777895886877993987798189445785496473448285699896768899966939897697859886378594852466398875778498978457998658864488894458487926899558598562263695878994195779882786889299987999788757776786599888778298998886354896765898467489588752867738665537838865788568784488265555886667477774899687969978486644817997956255848865354586348668465988889697647896977344939664788793794824699688485668879197799399384755597889994557857987643594777499497694898755864595999496938949757889683821848889879895374885749786665959494949796629688489767369449698988866772649795339878898788365797797897839698874854666098796928985676959869695899862694547985475868699878868889747547654636799974376248495998888948597884525843878587877624547787582863897766889897979749984766874288798987477765846598496975997973886795998774739888726366995785537977985766658376682788864465598776792683737748665696898499559798949997359776888877777399478949553788895978586969667772696877968682269449594086978987777579579597689697889939988736787288767799997676494899798886799769692665993667565972837238457979949209566827468889937553938636449749868376979739776773859898996487849897569957953739985753578588578369943899874466978797899737849636794958368499849262997678395674489652867794937947848459697676358499472944896757345877782689826959895979743894799539528775934575759875929667978677749198859547674939539765696757979789896559963474243869959676777638639497965893979775587639764575387559885538279933796884489953788469938496895986657598867776878399858988658776946986799978657249785357388782293376647928998945662818596739669587529599897487778484958767757089338876868582387658648966887793889839693537677444798594387848779976478646874859985464979879396999776999982856598745799836993889299986869659567854526334698689759382882658975938396998843489877595889974993879999729597956758445969192349969964798554966552954485
