11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122144567287141168142322733623386516633456578356635271883215488177677434326687572652764544574454664777571415268573232168111521174224731476745287784682623136465283166264668212368732213214534327212654575637762156687661325317532434377445256551377781761337441114478424323161464148436247174156627743663776716784623234376216851426845333622545585657556111343433713852467566675414336567333163384355845848424672134443274186131112754861332261426484882332334468868617715526412286811371272165148882111826475533723515837876872488882537286326753717665834233122157764645124345136362478631144853851358821888655177432438667674568352134216185723188167115148362168327765866584125326152888218746243582838865838622282866558256333751468462314416148127537763347112172387464157331247827747441817547727752315356632725242442482777571645672245615667416538685722866253122417748613654378485657131366247511386754121213373324586835651758255517437274424812425113654524337817836314855825554842321328541464643414875344341287453766842784864511774448871734253711374384734143338252833135412423581584837142541236226331264262168381363667647235844482175236818324826363634534857237575441168768128182427745812112746268735146457525134471656372528223627888653435471658834561873462123338225482537713871444635147833762433823616534835133831168627612788132424154777445526143234733245513173112315747447877112335417328777778636235157525257367542861411734173488286431411261681441144271648686142115188426732585348528177756517527411136621227878815667786651442447734775654554286638223785458756586623871134817666674225624241514183377347578141728455428335112512426453774643281187451652316742312341351768572453683111673544373826567221572625312672422828367616428432348147432143362227232885448152544177227536454831632627654861587247115825552555775521251624638782468757711863476474233117688756853738125276171517582643727354557328252648671857617128641565347454136675426477867348221311363544277853165284451122542448565768346546847276476718111635747447255517157128271678742714373662161326326531186588674473583886114524174127255248152378764241652142463853626567273655182868423182281272471651361462652581545325345488642644185725315317186663163768187688731433332327745744638682434131451343616521583644487414268615248534465115426764681184111328823737478514617754763318132351111173445488214346277535442344776151575451467831326858754532745781245357584811333876285463412117881817454886754342636372475855185637742631882368874583376877187284677171245614114775173346866815114827378858575733128866521437187534856866155422221665371333156421518314342623814467264712417872441131228463458671275486556662672672882446742187324476744674522677758728884857251646741874125136181126874441484816276664583766168858766871158388216535667144714758387635282588455782781747611241873216654871582618841877538632248556561761817214756423152422684852144734735456177531235322471434177461448763741781558847656357811385324684367534275648725687281786281434834528657145754484337786417536148318363347821755675645365354716774378686473514148872214644655325668118664335867356251328151776564227745372246518624884523554228227712355357827643273835534421618751714738322466738161818835112114568571684325118734823353883561516865556812751716472352246573374586725132873348812255578224437558384377464248546854784875653652248551463423331332678386761844261667243662428526673227418536748831652346631726731875345211553762837766783513358325784157336624538416675341541267255456326272244325482357364457851187647127674732861625846461716778827326725784288678635265457314336672274248632636675542375652837211822638145522857184525216813614148272236262351418781337141624217873332422113842422876764881652324745122636341281185717622546187277664461758613674362647327438688361546735567173621473538883422337542126458818677536624784611753334853635844457314158276462627761734722554236247473142763648837433117785522416338681244754422177478658623238414561153762211282541364266515768318586753573341372547425265714744126374388574662662432262633832843473472615625251131771688778484385365645661714572744514338336111857511858171451736482282665734663651116765824413211573372276123386485671234122628841454174871216154457242346677442461838531235784464857174818241881253843817726222878776166283512147164523864243385736158381543446446263337745326623215548568252461127764842522153135145485118432246546754178127681746571112846882331234846644232437678233815657551841663228382718634466273777118435778686533832342367536582878726322782587862347777458164136547348757643718265561676148356322533524883213227565846441385751451212222166152577855574554143843723627753771523132357212673887687883615756522834148876134578786461866128847457413755836865368545473716823177548872858268571825738118886473423168553872358477511838272835446765636146634583733812426585161354718715575611447312834253277778226445814232115811274125767658543126358638176536434865755173384618473733116574568274662152351137513853186535473156435641833571355288181524866676363613567262513224278743554131652434364788543156572688217274483626554724547328675284332881211342358226665858888717318847835831185152721472726735343666267877833882352536534156622222771567182123573435346346352561552135313373582156131722182476717775858746185881836766188712465161628537437211845318223444781383227226614287251537284287366778854323677741687323361556815555625843765887328514554178463231425374126372832466871477212322533852683872337188823468383774382225573646222642646224311424217627126344138538153386762714863372718785335771735412667221273631156884256363176685531258315554237624715473464772311572716517488287166581558821254858155416742235363562447722248242858482536461642411568672133116363327812678867841335155466378432652164315267168158245246383512878734858816152441816418851815425451527261246111441584473176878537528514728373541215737642615373127354723524337623883326486121737353271581263276876743561377611654532675856256551732337754831453448221812377381371687328813448234361485172565827278213428463662531777367627717228727836473278732362532387371137333184487587181613283154725355622318454138151863335288512884236216364443728368418476518118521551667278544342165275141275532523251275715511421484171655356784334733271866762371585882823136817757488874676155263642713768588246453118157753583246554366643328311187566488432315771718862361433742584378184147574382482816528258517667411855447148167233551446844611424727688262574117375821285421184473378111338735284516781647527374644628785252311243188218456842631355563851567688346676285765867177741231286553612568144584372646188354135525583418261476557732326612253662768582742857343885236572387431477263335175548737888846434741867288615728762476516141464155352385478865784345638711768585732711772866773144216448361873761817473123556374185882243816171426155752478552382148252411816388432247528654246565836536575865216835782266447883758132647413167785477248686438334158832676328682227645568435524551727183664615533625612442267767245674832336525163516551324787733375841647125685871422653381817886762135586371862355485866737776152152773718532447242713231557767836185484315417628267251257226787866445273713381665671613326852511843513721828631584167454521357775388826771711644873861288451241234243623263628747768678645361671458111461666832544154887864384858838224741723546866823134587156553316117378148772538785114743372588366557874131121164721611775438517116274525634828288143652435144848255442451475883342212452524343311274652346384125152756813234534675813836777142678255731256687867257341872841148828247334367621133348718451274878582275485236687237826848828333482241734532513354813176383376887726115353663513624143426673672575441126424554887267424651245684437331634368468237523568716464438854811425578228863385414714785384577247188288446172315152538234777413567568487467175117221322653233546743136341811266852842516744144652128148223672562162818633361668416223678186383374634832578732222224115884615475861887845327781567674314156856233673454411165828261438132282464516138422277561535842615353388343347142871713854674716666127827267183886247284252841117436564388575534653578531868623847346541738185113532131326373363564437663687114515154446478534231184524166482141665573731253648611753651664314163772371178273476568774284482734281838122788244715733732588143547548268351365731184874558246172141756452258465145878567412581143862174821283767843623535875643135263548822326156821631135248231126331556538158258514411383264253718216832671317544555617126187534567611722188536467188461788748818431573316144718446478862132763633481366161763587661366121371123634464144721263445873573877826711336432384321815615685324473282643752835535242214836283867428523652822385461843155581464515455711631223671878566268251452128211631373726273536263465686568485114541252887161877386623133762364616752826464148764148753375241738783873831734736585856466124226575188183711488157158458451465653422588542457312416145682775545247832543358458152571517635334885166411527763647382452628555717582344733111651154515457678258435265257372818176282127313351486412658572735156746762376613448578711165775571352218248165814238611783558278774688356818378363314753233424735561864415733312182888578714444883362546438111366864368122837255872474436353317743174862716227436325742284712434412747627651618226571374165351866315322137382312312363422261487611618117372672722318647237421262511244336315582474287424356726724522648655833426145145423538741834177818846127718424374326551532566261416156171563115846183678718413462173441611823812347352354545228737423114578861841558322426222644855626277565331768266766142178567118234154213752277646721634385424171862143545355846625126634646755485881518854874884262422442158635714576525784834475557381145745647671287352688578548238725387334162421364777482268782138578124862661267353621614666447234738214316168845487863366114876765466174655457253828488888727774413374887583838212731381421481545376428865321475765176218172338513185473256183763451588264151777811828524412668485734181537414333577472534322618373138316681324817352153756443416388271875517127284147848586567882832526387668587643371275284534121812547738714273156313354312862547264253473486254451775557536621112157421117131643135736737243187634144511137234371812768876358885457865553822817358411715674663265514185687141415626477233543386375575813766855152872383167677742134234148675447441745838771838433865234348546832155131487546635765372735228443463422724857821815113847652676553117668341265437674352635153412413341674324233485285323381215621322432353463274358463387661734544157314626521241818653778827643636562427213511384445327376685655728712681576271132134113814221221484547171134275336878376855362614531162652672425644567884811468745642144385288283276354555744572224572538627444648121346245457546355717171445785663863133648851311842487533241563532252422515538337225245378835134266761486732223116444252882376631513714112318313623757576824343377584574424442726448747211731423337745811772662525261183131217437317115178347855853236336618321425382163561858611473525112758885324374475188155151817715862268264256837661143135553413584336616745646766864242867825371161121451326275223784213352535368485451731252482776627654634786468876483665535777415211521367222218675118333531112866214381354514623873246421477525161812264178851458486788762114275864547211138417573643265437153526868365174681622646572724114868171616165378148754778323653656182483167743133674514368822787166544577216714556333538756462243846878842545477854171472228178515255527764175283231847887674622342847141764535275627743851165822538546714476683366338383436862661557417854836358646515682462887668628356378346664614286814833223745772125677726486411682836381241186183538568572321485478163636267867336641158724474772776136155565885165457848133514311726264846774454487711782874418268671827728514351858763824745585588284528821776453588167475531227121684148617581741651276786746133223663632616848884576686881642242585513887436471381215436487444684568367661322568312547688486881651871516177461785481338747826633253238572765845352351883268168671871883171838672543186758371731133541544845756633285643386533253764376787862148783314266872883147856744536222177483621871576765411754633361115327882717528378414622155528745572784365157516125626368111222288868143322178886783713431173873188648717734444255513633355864587663365344556164656677337573144742245383817457548784121561416153745116585522152453633888287833818472217322652543486131642352224371785233762885425888344152161628456232483278362711581318551526117631418385473855645774681456432414738673512412615177482216617553812383382487364567478765544724165436261278712288273831116767786414267832537177127251554624515865221281172577858476226475268555612652413178747355841367156484571878162781428733754325543675556643373745862528336515674341326182225535114877581444185116554336331348261448517546623564535288668818217445753232417774271351114152386746266784741454551236516585417484653587653531885726544265743543877874644614261473525535314645356777617627626487323658114151633225628446784573411243467615271553513257525837625213782744244744175266611531381353475563147732186732861114213624138453225587677841871388418133764273885418516666572284163361472141745778537827686133616352486814172755178143337725122356373888614464841137511123756651884117378651525386573332545881636218866364356352657841141157116272256526237885724882235174618754386754673383514285164141532653242666323714744632452212125767845742132115454656536821371657421487158517714766872485181875754281131834856322565215161135152764548348117254462557378173167857828568282268533253667177673225235324214672555878511753584412258337185784864364163661752312376771376278884838867563653862611673734222762347242635767313133232418368386184731145466133273774226227323437856515721723156346374555581716724414823541458847586424832587451132788677443625534512577278136225578272471886648824314634574265252361752535264565865261415384468126657181232548624374571754518551573764646173651883878138725221863736675578282376268467242556232746626255583583744312115154868325845465528111851353818741284841167172686683552161568138838117757524666281656776614473251877887637777864228851561815566767721556568857664184135758683353888135236138536876413382583718846325784668262472326733477168677111564756433423737345833531842831111431451388577444852146321271255467368158834885121527684414346558565633783577867776843416186151274312437516531752274122787816114154613166267427442245321251351424624485446443284475386355165643521552368551573842117237385677465344634634751848568684244388828515112733464816576144853386161688127277854542526782634674622614466168524638824376214265467621134183635155876272865772653323161387677272413388561583834351887784811517272363447723555571811542675685487853674845421688766342885358488653716863515865835256183128155551527435441277425815741665872625316446865428852665283345734763373512853313542318531314137518741336632245814538181154171271534141454725442673561621752442588741327847853671577313816562813234157537514485737888263235528176632582748868482456254834635522368271515541627784614268176271726824816343264273132267163347366385365448361687736828835227741684154264764621335854642785748827461857376763583428875543568263423885564622141223555183772571261842654518285377687662661383214876843836377736681374128736673131877776218111167413668865615113723182278417768213823425788441452276455361711584565677713137483811642161481786223488267447524584777435621761414525183125728451282525626658864785318528867337731522714645126717425151141521611364876653275674312314825453848341734375887383551512631111482434765256265622317234855586317482663183387164545152261552513646151773148276827171776132721128475641426723846181145767643627868764821812134467832783372285244766173285856316877124624275777576841763675282125651228626557535885845135868882856242175565216438744285457566667767212184754424663764884551513483622848773621127325726446125273437456722711684667667318383868358586444114146838316258133243745171165224354132486231387724232687883687121316551661337423178855172155741536853212471823278332112166728834152468448328467277515326442754773855783426844526645633144553473688474152272247224137188451866211254265377783258727851367173824887676413136387633863113336871268384438771432733376541218154314823464187783752638345473542628811565558581571587738152266758256122511287377221887346661152156234271118258182214728137165148337812685514165718535835811823513353217456471554546522325317826456355883141466866732588616636761141737378611817761528133622461586487457735387516313516282642613166777353217833647853178563557714736668435168326785348322183612612364754745728328616152275683333875683157662526173458257484457162526425835471123565825421435535156167484376765718648876167251864283718327551456214248847312436552488286176863276187448518438142632722281448535167221362166435447718327224556435121424436316564365346863582616737475718781384358556385141133728214241137865326733634326466857652613174425467662412286564561414746525125871831351683617145357626817687343771725252857517364575225871127313524147652131281881462242511168263326154868151384115248482775847514822412482182516528726143446682757483245156633874483125448868445564341475343688483285742421183435634565323175415767655771358778157817142267278332665355142615527583421323354347482855762574628265254661553452741334642384456567444582161262542231128873517387712363272288314142833231668386614812281586113138632115866513847155716354424358837573425176717737176824645417284881114138244546251656734546841188167283347476724142355176871431331487173458862115342335782845824884687552577326175411184327187451758516846256264738861867778585546766714417878337527417532514573252822688681644462161152123453113276325684582718336572137882754668587675634641387774433263413172555677358571511227638535648317256251242687632838323358267336185726872631447265214152136487543411113155645148815434426726287462513588483821547343228123366885322887627735528544756321683314813667725163544475747228181615677733341463141388138232515854644767641165727184167777456568821824413764663513157581321365573121172514471774724826415424512761171873143867571524183754783837117226333711674674285464331882274233416674811651884662467872386763586312447875786185415684176287856212384676842376757225878877672852564153733262481664215833782843272853837727454648276488225548676887585572353511233544866434387387644641847138112814637368787187836737481556575545443836282781157367126226718355134642683342722341756726453543128381836181582231748835856438261413177238125243388431668781521642547527766637244881682113361412353725728285886548632446516116316533178385674475483275662214376558676352561474664267547716561825813577588675182734784172241718716624568385281738266633774556486118448664722611112142336718251865767578843558785314824848766327861167435157544164782863247648552268625755582477556532147111153362841636163727288652224231477841475463668665743418387716722752862762526724828534811621672612336324337122877561283375474644272488444131371146888744454322645713446114132551766252362534247621823722132554477517886875822372868752865751467362772272463648681684156758261855262237541846535838871764142325754828381562438332751231751642833341622527352541164424822244823238116675817875845545358363477333725726313434116515524533387675866363387846712343571164841162381281578683283621277462828317828488552816116273752113463742287781376851721365223538335563114518273811671171475853443676172787766672174572428288666633424165541157163481178684385616212882423678687417238736676823541221435733142323282532422181651675348214456476237774385224337467427251886371737674327144875588558143262425421811274775233277614842367367635867778833357545133732764357525523572627854732282663482373227443226826753514535333735532461346557621788834256856587886432474477376841431128868316553365723647835338871216627546463127354465341732426285681883477724735348352415662742822723586438151152662477154546372345225357681477371554358568373157388575782812366477156577577347271155565558254671721611538271731258116668174827541627273761422318753124314768581755783815135478327835123686875321366224648131426658363671453426133874123523513837168381618478426354367477114234123255131743314783122838224386441134824382828184837233776738845123241423224858135283762114625583586113418786348288275245345768412185858612442732856466555418451585165482628211436253225776846475847518256858881426548644813556621742378622151647318783241531827445744317125213421453388713618183867433464827358666311645126551266363183432645623774113758215646663376151523175117773412874114224766816243885235747472836675861852478382742426767663416474343536466653558121621476544453318828868433127382762618843751521778586783462765762364882784814823844578547713114528115547445345681466237677558818754887868538415448548762148633471287274238475477887684287786386117362313566166325455222781647177645685727525773545686188482174781287545687848757414851224644435587388758827626286154628671365536555218588812441286252543531721728274166578417143463378526346312178177188521216132385742331531445452231382586411383142245354732436346567673148442885768317782234661536832433535221157587667335723366857837581763846137175853346755476336122673666871422555111713252846455486784545452857763567652281382475873526235448162236236774612165662382716328336282264327634128663678183834376842646348861821354865584562778267386216312482114863546114862318283284171661317152673283121568733441388668641658813367584117868182658843861728472848743718143653232674752868782664365847877347711563728527788415177513713746614342368473823646746885264587137561422531475124456238661832774372428311827814487251861751421876786717216688341464377211717351137738663765754816832554647146421468558661774831566813558848336417523671212571153682884485764226853652267576886645517551427483186613332655528414126563655851552232715768434257358627687747865165784847744655173331265417871167582181624255832516835241468884276445434263714528741344367361477118548675462222723752633236145874845633547467223156314726788741128853618773423656625661224853114135321866362155516221381516774122128431114215173246244411726538242751437711267461865586146523164155815621324465154336851756324387233463171567711754554112561248672151614142261177621233855453347158516837427254355487518868556815275458688553325122223682722782532642425611312362648557141352644245233587683428421386261642463643157612748143488726463218771356668535673465678332252473122321463336663721122152438142722375171622761287518266442158163624355744226821415545315175851127251367425481228485521171282533463668482828431648812115253832143247536154163586763142167515232443474564682647581434263467618162225835374357822435735457651243572668436386237564567644168632718377784758271888866135866333278356768862161827432475381344827282582117732561582734737663227522658823272314813234377271842574313478413658448827682462376834853578863545845556354585533116514287185346544727847542584676878283472446246217521147781622884148765515713881664575425547874546236558725271174312216853635646168388323362773527374317828126133877357161113343112526785183671414817686828724688164777358772261421752818124527688731818776666713342526173773613145388564738134576716528427157382885583746844245734613448532255541878731674462114327545624123172615185552776832164863136382181171785522228831574418131743866883343711782311321847718441715634357863723838316265768357328558634735755863765832576236635878267621726334174876424482125825424684543747353624137155778788377212866665884446334858831835817881316348142551516473563476754367671334734438735627351482116567142347718573182345866771737876447645372168247568268627866114217487466245134527238812764372648474462658442576468455583537287181464354113788114262252883525242276276611616333333556613671628587548685465683656724611213388822365778726772511622555365116338822767754574446448745615524787512762841575655535714331367816176387683651143385332211543628151276233874288885747653765876824487831243471262238266136814257613678136282718114657144451322314833288154714313744528784512881532378714838166532288427345667362573386327743435837755757462674228645446527258274223651823744826458572233142182667532358631571618356738163555537625811662244747364487758513237744241452151714764665255118351153488261811183473358214376271431128247712465776685548878316238721263625433116462554381232521885463816373251541444233255648842557866543548271271235155318827376836378728854258645357224418486845821388778182265564338171126154656212773234176445457712558774155757243452855221436883356277718183515266661642765763658117428631816814765655773362372777748885355213785533436288835448877248766565437821835882453242412128636761428183523123671167888175768142286263226242267266131838637582362354517457586742225578367224868452884541233247477626218423736453558755415418568142742341866345231458725573531381155175467313116516631474677218366145213181535827553853373286332134371564425382645768271472858541172762871474261125428785886116266225787818353638268775128432563834316731262738686486873156663488874426526541257175471674158752856166265137838414325231422384265733858728327567184338623426762147153331565788242588583741875443746667345416436524114281614616236648228831772688145577782562443386217324657132258565766473655781638242117116762677313774664556768553275763545221534143126383321254348366253457183115213484278264511575554735837187244173383136761375658638616135577823478718662613656417882676732887682872556385484571612786142562525715788854233225841426177241167821171181317851851688843171684343352646787263367436543186176272518352164528165853647136757757113323837167437727321158218566363241164878774187342154165527161155234323126524457618252677735656683142824731732365767487616156166512848617633757226542382278773163371887737257231353263243213856631866247267632533411185437521675435874785325356173782311271425246167286326338353124812638888448213227527482815488121663463177218613173358763611858712812383817564376828584148155674346857874433341765236381563846615428631537647532433211173812825583214655428137226456531217127452388288377617724547873874425113467335222252212724745528237148774234381348671655577427334885651136848463871375843636866243743868315218826878571561428224245133742537868162761437571183826321643628224467872354428132217387564534231363154581775667155487817754612612431225881454114383266284115221187476273624538743576127668681242476314385274438853837534432652637584481848536268226315587848728577336782466115768213534351555227677877174317554723855814845622434341824647853846555112438342336675218618431227113866735234122372138675855557231834351237315663871781668466434254516666827115741488814826865776552868712484276422561715621622351217233225523525318122644134151114383821746337364821531542623888426117563137141647168158668672843544472146566557477855751532742464473142483822784847171466652558587484811265525141737625512676188142118642457512338563216867766466317831488174233573552688272654175128133577771428566515547675587611113271315545141772873244847818746488133527568834855232113315687771831475544865473628556511658423574573778581523774778348273154788734214512123883372163236422616681524566127416458855558451263386443638328636755467736374653741466848825165475468541213642163143746883233372124414524655215141332767631686653751745284258387157656722265888644642621651547252573232846283155618628487735875571438462484711688625825613863166816573472853283123532624517756815441664766437537478812683818661564687552112762636342686441516112376112711278156387837658654356184614444381256781335365123265371818218218464677755738142411288281377165117144271672142516218348738183451572361564258786664416785717683144681432774877388618511434711633863456864873762385863532828787515466758146168377541641335261437446768133814117138248853723864834526488137173218187136216656718717237642227154147648867781174235335683468824777662718144446558741837768552371244632487274747236347564817181226776251378262352274482371653145428886718264234775361237788546485785288267452565761135686551562465675786673556283215135821773257732714838124276624324185445111627254577347222748628842513585643581653754262756475478136215751361815414381824365183183732442835748138887635273568774124285126424882718845643173222724525444674373831717773643516114375235166328877512232312536643355324554722885368825441217323421321472346344487535783614312884535282428348174824611487387372464143763527821176633281278666468173878624283742512282461666788536688523468851317168516575683437641246557356584756363644238317541387611344713314617411842858236333383667287212883132828585375765453465471761453347788166314834526865573432367485714587114473483264518336685888157182148437377585721182552161715427472658712553536185527886575542111447751235518361456521762326673161766382678726533143761144533217262422523355443678624837546535217258318121544512735436714272667146121188388241783281225615554676126242566152374635873257563355316631448334418817745857636576223131162617217154587663828251151766857142734731131335314844242832485863463678324557376114226428147823638358424361857543741372841555766121324614712376876227765455684876888354857343448664474881433723814723132778654547738287225134751257237561587782531658252725775742287268442283133857422818287621785228856667115851145671765223832455264411281761437677383832165466218225854387357855225467423535374537271868714576518157728812168632424444716381385263377175247754883582216447114377718554117458481777623553246521211121247381313277187462347374426845235875431122278117478842482424158278254271213851554546145751858757851477512682714473785632587285727622613131357745511482482284278353778121532155785723371335135362157265887375833476256531833723374315876721128723451285832468876155765756558163334481262117258571548653351848266564543873448827574745252461474131341144113367542316321513312823173551516285631555515751718761742655845787116481647122336763631467161157686781785185246255553684338722478587341224765547434652632821253266727348655244513845478236638315822837817423533826431417675564726317186568511834135622644168384887518565436214768878112135227617676588787368377575114134538627681244172611531132713752178311442272643368842121236674235265556366154774456664514252275673683164128475323525144727567151647645514827758441322764484241253435724868163773783517371746174154165712883133683216733224417437531854572227127818554463653466752135821735513386887178446437578457736842424716311474125318324764635366574871447834541718823555154755856747673334772181153138512783716463381886154545673115327371164753582186828336472183363414148826823184375186433648148536331841375285612472156373634411486855625242434754663226265233524224736227637416518363752746585143666131863418668184216715861485543611571625272875468364624218775685216548463863355363858462422566618233858825172122574114672281675534777272144561336818826832227846368382846674642776825536787188368166344733142355218887786685883426218722622516456821162682561848134274451548558825568348545528536834137132445884862566376681377477744455325216647488162216724714562416613551117577872571762856411723132522415751862121351484758518712172833261872356735551258448712751875625268854263361547312881424333514812833128241528787216718883682556675486588443758584735644444117135771755131678685755288157833788854331414855262782731267416416114644154311724815838182268267858581113361757546322126813523843474451134847555288515431516234284467265774488148787266121477323741311767488363832388475325112251442314144617732621818126223184164745251565854127537583788477587551174244253546865746753444322767721783468626883426112878781367838248587518786841214832348172113221184161431487447663147178654684472847822772638617624637545764786457587624216636636451651466757618357518422227458141331432738827433437868165152273126553451585638671841172814266185778733545734137576678836625818887532382826442787463133515368233238554344537654738656411168562312218765325141386141371166872186215731857835364533845523384352566732633487714673873135882611618354531568678477584767522721835624883846231776515671873228311831215244786521384684862857534638611264142135735154531542375178647878141252132642145218555321363374328355837712116771855232448125466818453351664862487568661172238573657374528446784848574548664423725856244262143768865861316888166582766457214111313632576577587834635414633155142162257273223336687367547512413142788261335231538832378316437477848158135627525615273542354616587575278123718736864378827211875217637824526757756316784825354876514532114463331124282687772278343481754378633112525188463777681457482138768854827438218415864616827257624632814872568642727564417617865751784263551311885525728682262718364436742417614646365675362838845624255367326614468882761216433548114828171421514432162127755831842366421324211658358875545856628232375313535664637142532116556543551341784131288416636437465515661683153166617523845415657146113353164766313642584324613387214863354556873451861452435732188643451387448565215256324166518463838117641777452626277327172872328588275448466468727675546228538244413568578822684553476167482744475467174337161511366345751856878532255226434178642867882681883387517127564213283728241288212468454451287426247582264284747244175778472568675417642331551264463714774154422343673746687541763358154858877144686481577864233813636353836617412426638652432622657764213457123327263524836243353274385171547311515317687677727863733133538432533145782342545363167385783238567241654164768855772364166736875114874223436314722334576238477131837454831821864887383271445486777728236484384128141618451286171347723845661852224177665532455315737472256758534526433628251122841334728565512313238177375172154128132765623342725133328251671375113111557656418327577511126124757676383517521726266622732678616438711514371644725568518184143121662427836534515124657854244514537875866312223561234511728713136376858351556178134317244344653551614445381678826713643761335462253831442766517455831444428548225774567115438245642447436881518666142163732784661575544231676685532823126112575661666533558811282618647657837325568868153663585657754388448278536441568153182417663652573287355125343765331885736263276427134336774683345752727335851326143532726481418347667586658346251155627682647354633484348375185185747361417817164255287686442843722154231333265175485153588768727664774516172786557517431726465662367236342414348865715635326368667546866351835366375885383236475254622644365574113445488816314355385824463322167712561547666215581316736361522122237316631343145414252821478526181616127634524846838535814522334144554156322831418146111363232337342184142314684415485437422623617672523781384446381267753113155683684441441256485846515461747887526358286213355277321365214854747372786575533154258633882186323556173418753282566814335541378121845882215857816722838244125342518416748728233561734221448372135647687254641726624152277615735686434812868541557226238443666883812244568682213183815541384857383134452574733152847357454863215734276388475177211472223872257687744586167112653524715772458835117746462788488176348544843214582435881263855363744418818541577538388563335852653853311846723385467754511688451621635887755447883471765414171485587286386441747634375264361348133381423143575156263188886365786855188413781766218177783133257454232645457561136775883377173375863745143152656118424548521637526788537185158267342147183228181378867155222831155361142126565748263287471812126454321415382764521423254757541563487561344683676831513245667532133721713471824743843557424765786281564667211586128655755578345152568446757543225547341277726353721524114447853484274736164561774347452156356214183688534478474534545875323852528873867781657424556464846148657564784213442288261767715752641486351332378548635188547776151656666275615354272616133567411254333383754487316648855588585762272455813565221577318548564231848738667323434688487138538626486184575441485671787221841622832287851218848427137775117272386137781377423287254674417782864231113447615246315871886525243236722631767548351151132253227717243488814315132128864542118765248678252425584461766277782842845142258588832753256382212518563527825322278618584687685268483887353472831816152343517384214282745351132754333653356334357124231231683587526572721213416657471343386341232223416654827417334363255758461334773348831775571687821827384436115738771564238887258836278343154843511514678638861366654741344132451618771126788442134717812628656455624762842818522742882511526387482183721768323382672133763134474645233167275265452562444363478468483726645671676786544813522366152828422716263251886626638453446567852518556266122438882571444848834727451324533262135468237858471575583852741831422683151176756174873758185227885461354342472717321555365627163677445262375255576578134814124643445861826837313366471618628357182314632455571133558231162883315434715137154886451222135165815367577541438184887344352351331556522333134132831744553662867827221412885148364442213312486144484735121611386557731187536581816735264334342261343824318838665615747517124215285412534822337822518315851153712446781436286448661363131438575753827472811254563263147145873526558884623268631886321626288616761441227641232188511761321526623717554425455215352573141623772172553282671865482778648851646753265752563548551247435455633688785425443726664123242663635522518782277124325281534778675226484381226477365234464286437281468854764475484515745767142513113651165657335468738164335677337385548138634422116584563656516125337113766888426662652358822325274138563666113438822466387584687316113251665561274548144814652817521345775866681314432716714777846538817732323124862326838318554248766673264145418461112753783151125672617315126324855171685123412458273252253322611715832231237124838486227825763876363311111272644182446387525713344212568127541428387625525144216733384861327712318612617113463268818568415473685484211643265577565278443874471628333344518581372388235618226522178228643425322245128426775743861782888542887828551114326511824141216217233552324384437454531154157127233134316717533874332272468362673812762538418655282188238712828236388236145836381217642537445328261168531345323231855678271745282735817625183363167347247684562381866335534118423858461125222811743311812468516187564456225382725113186281548626134357748825254627375257782728125538615334226884771766521367264554258213483843364733356132751827811138143377565281125685837167277216657575411261354541365852216721822128164576627125768458814155868662238762726727586656642754721772326748213746473628368322543666761884778214286761343255823838736175717684116571578333234181724464573744114725158224581365365233684157726715481168177328685761776348378647136517114532574854276165466763414276168735878286461388685261266511718731776868211447646264433123185778268355513356118564856723123837645752586612851254663463641387834854736786671852686861278546884116855784318217413262254575832882757185351813735638736724447261263531857382714323647537637382523587264745874687265686867371257336326644352878185884876354567135337651132164882438681746868267271224113432337616488228378816764174438418481541738658283754812884316344467323733574643835784473677885474623348263182548426556687223178581777177756224585422477736382488865841427464686775411738124821475546247267255177152837832643284176312211378487864351367752312887524144856222631577621415371111818865716782678424313442453464745771264117176353428166472762225858346425358785665158622313485336154137242164662767362667384687842718173682357726851143727774165464228363416336611383316458431726748615346675235231837826434213683134231161734881568287466861721441255688426513646487683727315441166886238834168581121186873111782675524124774763263313351151581871453412261726774253763335228231715722778622353867811118731227445533156744238236833586455234375764612573778777712778535164752264375241217148226243416134876717634615736368857418771858775471885311133141251684731376871133345344276384315723341436521882432611368185744558152272623471436631421218616165466447868535137332756577728862271226134638341662285183558771888544451654523162413865851561342476546848878544866762118166863264733258288837667474357667285882282315443726518632582383416375248266468475118325518432381518558178345548623235623127638545467228632642618688662561823583776653117323156668231866635332311487775518435557626341364564481823115752428764352261728468657187262483238856587781243368643453361331633554483225262463533153568573378612344672386352144446526485463775312167873766355443343724251427113232138212185684487364856644117866416364627133445483787866687422646456232581467476645415778651113424543746481633171617544187373347617532423514733618313432838622244322124351573263632236446157545331726128244761268763528743114135255685612675276874832871175473713555871757676638318388845688617752676621468824875851824788361248841424285565626337872523255587524365571222783856778572373476383816415861164876487862517337182557764847244845343752266257242365416353844412888145843115548437517565813658227847417723518156351283844247486125846444654867143486442727352557185185687758645424455758267176743825245677821277163134253223234815625215475571158878547768324442283615246643771665744666222842737882578465521612323372518773345385561835428365881135716178348362482277377856655151644287834345283765441284438526236755312238742465413735685255646635337865828847571421212312461612375343424278217767117635646633477545243358542254321714276828427677711148542462668424736876114416347813672658413667373288363331374631222266716643315843881775214283444681838732851378145782677356142286628678357565254685277231535842437757466732476248826635715261351517168847141824146747181452356184533337574472653823422432433668882235411521533425376668422682218114154182333411631224443682123526115324268314758254844124676513583287747187756762751686854575331776813882525558126631535185482653456858324135562336776817565753342836552186156375656616411132522126515637687577286467646554411323476223841755881432126374811327437448758874443868675612762832756644151322862457867445616358841617374735835513137458556853711288553647331362725623138788258373353748351652246817322543586216113516758176472357671317314822136276124633216458354444514861451288821321424137422321567172226311615138283755316111832171552373828671633383556245878445484235767466641261432251677473327658775458831166325273683662888774816135356311471647282543571415516373811387533486214221854426858558364762676737115148448431463411762171238335464777322638357545842535157572566281638136222222174687683428163123664444664116654158735535658567616683635435122744511851228328663372117771478677181157168132162823181477451682453541386364533135175374534722852122383378216527832838331371647114681657266878522435215758516374857843157413854888683552616827778558487672288372352755327726187182883477283182573564178868223774161268137734728177457523364613762164826177226486843267257118357142886448168257375335641427218473718436516656342474441451325118842641567466148155576147843248518651664641874558418512268515655887235516284761218275588773652214116484443838786276383215381225851242144263528125364412356232572423277527271376622113866172473818238227541586551761351738683847213474216824183736641825233316858844747553565284571446582165577314447211152145337817371842748617555476862716516683567154766118625364115418351483175886354634177317732262616678831517552331757224888351428831848613117726388341832712878287353174145753364177852113213383564316548561815286512566244875658473132768277183478131628256468718554866442834413227221416651583755126262176311431238765578372573866244278778174437458765511566443255351483422717133853511374852268621628144867232581722824538117781285644113518265315473862362818264835881125331634881214884381886517173566687328725715352556325845176464766637571612468332784486473813834235112818312516561817846378452551578775784544677346326221716237253382754645826517722717188272433462128861217621343574231254754887533637636221126886828635466346161668715217734883557141825843466113264617388423272338536112163787637147413643444217314471855422527551535228212276711215241885857852467238864735117144346843386242815735844112764468473456374731677265133668157476751382664358883135818446734737118138381877445156334188347227284313254563543313388315388756365675436322515184575515676338267441276172566886518436715542485361614126526111641832422858333473153772518253746232522312583117886742342314156818577257557551487261136572663676676684375327155657211116481136376561185323656452118854472585868115562533363156243825447717522585643623561221546452727238887723125411224631167581516565688755815274571361231721753517852885143633448885586726785684786358112442363533687265516315488876182385255356414561358161316847364744376882275223134856733465344487723172621146727225283815655886462784647423353224441778533323778563283511658684123512637784252443251555575852374371126271326617827563543663117431783774584445374843712338264322624861222642548587286851638168415753287241352127451318562815776118387356528415688284213317417283855853563147477548747377182667163541486886672138157225824333472332765216287321285386286517681128627461583163685528216537764567275645843427475648653181488643171815584534731873683161774138714281113582472545474586163681834758744855647634674158424245387146615844474338226572271614253688755526837346157557522562545684314443758672478526256167362368418444254544426411356837678188334571637116475616382287231455745631183427418533557284125687286552644824518587532858341221267355178722457633454581415276318346543578168685624772765546466116286814313478178214787875287358667373535264118413163287385814757345156451455364366345338675113135273445284846363264236378788334257162775655518447384328855161665253166154141434463135832518234744345135317577673685626168355156638621517578837527166165373764144867715688144785116222762117638163485614635223817572368327554735322832232542276752351435487116883781248347445448214534747473528171611443376732147128264843627341714213448735475342375321362877282522282627146584848252163443684617813341252543283811141155544683377145458348413775632828824287871458658131147831138276445287353136481327457347363354167435315782852748152183371654728142334156121216835455356668764336145537315154745463778126358261358383738846536323446177276587427777532544638751717522864718855883883734633671375578433888268531511536327738112548434283723676567248488568717513386611781331683665877635455117883763488755274353125337441667667645284647478828331134144143346363513723125244865753111313552834586326578615825647671426436353235583556324884416633633556145256841316646541368584257571665243552366648183547771476328873365775713222622231237141556746747686535526636512563865777867288713117877223331638564542666218826168144451681568266412746113574686775465211664381615774587784854625367813155182678584236422251237426358121842111543525678188845434484674683417112245873764236846234113538854731762687747537365125728321678853333151567766617822831551454382658544175565585674177417132764858631367675453387531271864228331735258787441117746422114355684718627228223557752558465476544781121687187755884421868723773864871358766766262414527645156588314325283516661743565638172232342435267745141138441186457743645556533754167165723145811473776462373747474825536428733135744652534651483842316276722234111238252885375828161414314742744735365772723368263257672476647737755766181684783337715437217736724184633371837846756263634683288712543631723788678332145756886756884767142328171673526753518771688345756412563634235163174777375313577127283245782427717427613172378444477553543286553171725377726854835461326383386283273137783527381144133581522446878562154632813715217586173778722483856347816151766275853512151553311433142356872518344843848377358825751587574742322131617442413787113761357524453846687673515154268873722618232623114314883252137652213661583664711464311363217366274746662464883445325634655875166677123676268254354672543856115788882158648272684317178253236748262375346782385881153337586846613536845377165344854858711564482238345753133465852841743233587314263276874587443282771712121238368632411483541153835333675224277151235764565433514273664362162754171522763658444338418235336652775871485233883221465535266586262273561281344277631225582568851416822438724318288214238232345414121374113576813815466735465182465687452733261626152657575746171133768788837236717136858177847387385733251544712341747833261327266514778672324732757881655373325743531622213631361614671716332522488545831246468123667248673566167722662746626632147842712717873545317887531422586228482285327865443483231452714434178353613647477321188336265426522474145473763343811636138661567571214445187558325486163273827364741474448652885212864123743677572635344136876123537828671386482777826455458364147654536536618752872524682677813584383136767724734666638858324876158664483381268733731337524428688165522515358778572652642536228178268444748645553226112741864744516862367771612634545761462685362523137287687344653716318426644154688178248252664467548812757684868542314637186563341364812311682334375485884357284751473128577432556821586444262417163142854628356755584853335246256438143156842282854235767881286721364654711112868276372422153857774242374546641432744665238577853455167834242283364562421162557781763312342152836658224265337217452518826657867561366755176846741253575231261458215541732671488766866681272424341447284514877157224156883653281153742312676161547611875667238668567234131848781742688183421268381443512627833617164554173742347217567345242222446128877346827335552432887635563634127336768324715754856626352856871248585824412625366657451131336218564244655845277253633861684535254583625652656471558312165715873874232278478766327446523674126151852373322711334618146734485533716672761481253423488562253354152718281437473381431512438365816753122552727731113668328245467348156682335622215662576627745513226682363661481266614245218713788335774252154885322353278186181254133535187144614236783447613462347644777886324615141255633187671568341872338314253451817565882175516481251857647817255154854828565765516316163587548643121228554654487842434778524373414583454725686277532263246114766346688266858166557628735143288517342286436421338243478487527621678158386554584887311671273417614223621134338436733115514842812741346111312247752663353362243671632253588388188541378578663136681875234572776865222585287313775461276662376536167434265371388365443686351153121114666771781152824424124748418464143158716126722556778278252775176326727453866564842767583615748481453462372312384546387616827141177526431413821121336633128785686448381762375487218577275474274721447355311758813445755253614787345256878233361862536834175676871712622344125734245736358152236152632632874632658128717428465613736782343425683371682862844228166484163862586785858534872636785234434318813721653488244375324677542428722261366176618845812522645317253744588462532758774321152331335376577225884444856742248632667231116468812258462676762776226362373762123662782624346822835347646647618736363364162816241854838735325131781781877454732622371545342843267585721136261421435287345388265754878778552763236246413623548354651727457867772417136161131268855833626867563826533861253453377186643171536337381517311484778822762223582238633165566724768642263175282457335442336665471788855645644856776583431847321351843152155884667436675383717781436366113651545475458854757383185545158512774627438457646547664218823644482244518581637463632115834147473852656833253484775842821664628672261155557833148216331141816688878761285471662423248442251174475775445137325833431424253214734168685377861186427844231176826387447864634227625134557137436254817214114662748368772727675836474773466275767851873751244185742358351445136712651516551835632588163266448744743623631144526148572782466768858434415736561188672764243314273343685741244163666868758844554454316175316382655564233126523147534587123772238285436742278531283528732844532341542514166235446614231445578473214462332667817282575462626186112365216362366333847634758711511857355474715841186482424623378475152671164535441822721844477371227447782264535423555784786436463686817327374478425727377188775421217361264687228436548117234643646615412511156861837612825724737655572416275433523573412373888367663262718277236636653871267264388845136418531815243355844162865854813641728211587176215574618157426455188873382623252353167755255278566761265317223855164182725384355228873413231837358773146758571131735884574363134535153425354516122675163186256383184762447154436753567327553418773871172484852116817211134721381316235255765827482153132354733676215414563854556541774647743437777285633851632475645744712842853778364153411323777783143877364716337726571175426474633783611875342328881448611144828683636748877851588131468611177166335888658673341878271446316572112461446172266448866751178116547868781442418632881276551272314723661376717516453824474137135724112653751615551577457183765458723441181618224213377383165646544122267243711366567621568751683312544561133778315625547258752214534237547763313383642667783385681773636475656764662266256722282743617181174481538668444346245351711231334582876264272122644747662887447285356237777584627215527548382145713641234732756356748688522551256125745544787545828463756565331283622427873673671527785572527714211528378783876388742527771275237325287634481237426282657686465757138564271533546372882577465187475745814751524154243641683126545281735514268788247784674371562681181457377243175365836727744815438612888746857751742263853374882851846884125628272581515426731118126277465624225478712324643436242115354622818561651177666757685316443173756528447461362835242715685855565856148734516764374472732857378623566112867284127536536437333853765577838243133177734868338377754151665418351551346242188438564523742575584782724633515344517342758626743111728583467521615647844735874325734411142435135448428421633171421682165144731835267431831733778841421561264548746855235452875461346515366334741186644336232388644883863662374213212227177211138874837882233834731817327847578646588754123755423184338151337548266575316585886365538616311555623811568875353717678717581115855353772258481782664628475872141723117461115744635114353784521161428822125332435857372644773124134181883617418553784883111611468717348746441311722527448573816654547125487322771675737237156814715867743412841746582585186457416734777414331272845726832861368416782114764674376678147667232445268265643351112645266745552283148674535473666378416611817157717238456275166488744252282844486756326614453464615268411635467855411555773744558673126461257754433138256458374766564111228257663131255373122622838315523843753526367251238486876382763725783242134281368617525587446437871236838864687272521125675866423718518375842886183542768327757855823337722338614848663872481132415134216668822321847573163352162214735852133445156887288568188762436134566437363275735628586212775686564224838671215375172252417246522546822825528635163126468353235421416715245584723828855751117386723542547271313243521665523628667138436328381764474881175638417526333243351816725562374785184633173648741112348244572713485638384638447554351385458161741681165322336758678382733776766288835825343587735162325312374464146277361237267712648227762466743437826616315434331772655455411878528155684217513363121623417741466365726744514882426332738277873852353713552177215354413576316235167132845678873785655378363641564812643367556884413747242215351258174517673812413721265261264761468854387821145446348881651254541265138688216838787645211438875143278812882784724351853317384773525524541834711438643746567383274768775228473785572854525878647712668816386855458884546717475252535131874787357553185756116155586121183656357564474545565744657256643611657176436521254851738127388473328433587815377132276333776881778113747375776437162826715385812115214376517332786466334452816673664728421588381343778223645228836455135728486622133414281211554218737545122135235445882163367738818176845424342816112747473175543726741475486387421227624612582812447174758733687866522251583622335114254467233526766766877462531176253763614364464237484176113325134582618514176751413625562551663773254743853472252531162415176454381273232644863454412147718327787267873467461387455658414236182433756357513411168887123877884648836425246314816185557775181132636824478326678287552868281658428744243114112564527788743888372832368581462456587853751316565434552738218267812542728655631828848826322878431883687315331547228222238677885711533127382424525446553713253283151457347831125234368758182286688456387435516536446431715686737555125517161417868247632765428222224726738462263277688554455533886175421288541353224637177648168683142383885165587551685887828234283547472482264176112128512311823857374556353427362752868413518132635315158438611562836278632328276733276877821733533445458227788865568458744222878874365218347762654633451557217263243541657418285561254652538425845443881255685147585855213454866114461827585184337366888473181574546178826572121761273882183854458381224524332365144185241244414243282467842517357216575173356685825577518747868524464621311231754111131133815747123741845554322388528832716323824363418357817316462256315876623731616625372353368581648852321464623218528422611343654336852531845745571327843626814883434321483488222277385322764732842832654346854182761717547484316654324238513533788164363636523718676546186522777137874236361744845222836363627618881743756464565814185138625636346585276346217775352866685216516455516888667516622552841444112731688315544432442175266322374156831613375666868838141361321344387258883487265242181322882671837575355327673326124171535815478673762684757676726153262657761844341332133844664646263213773251474745618867381311214116324771148525842362725485641345516238224887455771136236253713836344514775453738623156378282112855382256244763257625167625651687265613684414622726865365743721474686255566163336513664727181425736676735786347623753714634636238156352878464141228566241333518523378645582313458253738736817545541372785883127324676825453781628251713388886531181832163724257445212164671165214581534215723264265365256646224154275331661848488587437424862373247342632316567161264433825358565685776154645527623667811744525242451221688265236248255654318187774414247878651386457532484374558568657363466561213368155478244456421485426466135123757728311854876322518463583386862558138631157322167142215237515378483668277737265153634745112221553778654182366172717846385888625526727727271642826271852484741577231314428437616116652388157542342864561273223516854522751374611323652436126748313788615376117215361585874375812434378731363375224774731534557184745276185362725158748567377716348868457765276122783223656361714246616457556252171711653848268226574653272142261534173338353441713417127862287347615415745414471343633141811342838541837514357213268321141414746148561632862754725326686675132762731234248864733734358721433755763486766333724143682877657551653474213556175145455686462115887685336417851482871618575666124572788266167133747646151545247417788657881112723114545535855233676836245137876346683168522518675442718753622174257284265114477847166662733188274632263745547776486467445314237341312614247427525624813453837278856585337664481262673624838616251247421525247237138316136125676471575633463413424231888178587454122641235325363186422586262746651422125754655186585455828482542758554245417565472751271511721772654558872165816615478327557527774464458464261662872813314215632474318143134623428783344165486372664423463627311815687168218828622274231444674753382757871463127247738225367846635167512436535834251848812361466818126551885743164673542874224642544813848267731247844782383247822557743723126747835318286823483684785871745287841841481874544247617366227436748376745743837534456378177224261613266534327657271163685238842374542875877354181251714138868333173663522178262186871425315441677641885622376382738244725438282782656687724284445871723211833574634216773718285536463674616562647831872544282836148887276456576141585278378414787327664571476471571867828823738253235255213638261272454238853663331454676325236721847448472274258352536358223633653876742412163754156861582781246685485668452411262583517223732123825566124425537822333337252532142133358375815533847187163776575261623163716147864434561848771845426363214125714278851624681865745436543643548387826341538778566887427221117765447857752425774418632857723185177254511418422665756857512385772238145824277685822786581222246584673264374822134485462281178536371645173484644111273636355332724146253623621537738647241876222324768274136356446112725321675536561734476686258872725554784653466131531743446474288752266585843144535775821531885251773228118817777648614388165328674627818558618211866277156246822136562157621655353278144645688838475676773748184152853388273212747128718648541356472645761833387454343364235576632256487688546231582122284248217171134618772538328558484323282588166535556535136853582344586388872835172562558163422235144821338727237227663414125245745272433787721648336143328514227267685112883317886374716535765126532142468251154235855733127161882525374284643176212665164326231846748725765453142835228521744666558653516121822451541718446233623353825555534636157223362382612477641521417318327426676136436184124724552677783875525228162532231365265113585511818575832327558763478435712748733747477374534211127355615852485718784186822878522763126537635616844863155426884813154232876872561287344853465175651356666743131132553518278664481654556237835236852365632767586815575137813816556377355363711627732637645341686563524466642516243828716825383778863573761271675753853735688424754416522214778248551558622445166414876871431576672578656668642645867715453755243454177633247734282365833567463337618852586257477553631731435784785524315528347845156854517482276828137422566726768264487552561315415633578586723181675345745348685843555434834357237126115371577236846322646412766782118276482841731754471533868846223386463842378656414436668184484185166342366388681212587788715467864334747444513556377265156113853783415773648854853515483853643187581354533215372182318868275864874112717536815537285535167556173745654861785436222661476235875816566537165875628873763633774311248322482586855251118482111321515334238175526314168712437541222838115864276418114755116277514575467252681325345153732865766383428377811548133655627128551368531677887453564786235648212336564671832524523622363534662265664753535766186258324381775414751321834442343123438138213522167266765625642526858886737456418853374533242713418187382422633774221585331221242735672124826486685681385517425242828848823658245467825512141383127173154825381331558174711713513618381853677362173825857322443387514651556422817578471888342331153326482625447753257715374422426645477556285236333834848854616865713258647654551227776674734822384677614887314463735741732145683844852113548214343535162546834374536426357356338553285668727841752386523556762257572117472584533284783314731161224728434867417124164553516428816515446853183424624142286518137821486588125858725515222467877137655715126228125585135356384842572254511656661543713145466835874768462483634337561271817476853886268574731418887587611748528844265431616557648127217376522656441683425431444622668725171247683856333155884438824122811188483417666314634867118248728655342753615684547672248831431624631664351716358128267477186267734237786331365784564576752715746362756343461672731355837255544674657244774766155865683376323854262834647533762882346485714727178136157227136745282153618484322685143367245727512414437815784262224518226486386715142612351475637137134477212875632273564558452868825445443761831645423563431112881743245528718236768337116588583276786221166282232536423537844315165376416713121561537161312472181864612323348254327252235258664554233258531584881183465523181713782862487756851176164416236474815753787476677888788475565354162177355662685863637873382533587462715421234781562485641673327817443421432818224241283816487824764758254468568437545186311456651274376713727745144487557777643162416756513813567218438747512122774758746651133868521433423386264156235851258771376173585723133757173762224366831675677887136663128816215225216576566182418152242183451761526716472468863687657165364643464381281857757436833852651311261276161262771864588722562281264634641744346448471412546724278414252574567747862374242514526733188522543842164161753426554558344343611872863212218254462374628733577347744344786431632684681513514341625688436418821126811861712614527811351665277637551285662831453562237457654885633438268521714354588522858142261642718454736831362138528723476248784727348715756365428277534658826528864675671742152532448827414272261288248818852158538653826482373872542447687338527525245722582355875877442635233527218226722637175886827733318278318275576672826566447861277854735551768273567547313427787882815678848537233117353845274511583281851411576613614774877158287847141212336853746265746285828643476727746363536483273166727142623313353428617653646632832127645413264468725833516458785121726678558143724232825614466248738436681435436138168552635111611654741336385345236311567277851273428111441444852423486828223574227575523547452322551272866112883257475522434726468187821443432483776715721732166727862251422172174577274642256416473748454543718341547475561126535173665264228832741114182285352555521315174641326434671756624185445337116616238382351611525723623467712441233626568577762635715516252376387462136134244853142565637664783382374121511384577335633162241252542551183546353342338772787463866344224487334157238538241832644526844527387448647355665163871421267521383788433845722378416364186378678615472255168474814147731464336783525164516173548464212233128838367526223624573188218381671485531777464353671823777173172743144736472168583436336164634483366375837647682468314144815232726644841683284451262154113147467653565558775424566377845873448386741177474144772312213311684877325265636462762641414886456753827374612148727448467845586211655557538728515834561328262782557648377657711115384748517513132486623356371316288634367221151726253354624887422218858314311515324435783382442473654138463722847171663141664343318578265112456642153615136224814758137474527542364136761287461523862221187723183483657365563247766715172581775865354513654577371713726532784882217553382156765527824483485426368745817122884631853481815616825487846746686378343231315755348464235274375276637456724575643713776827312481132872588555636428287331822645746127272844483165754272246532622458878157552757662872523148852418782112653262555747283561217171412114685141271452447311341113522684515514244132442644581188565848176718464256313865221118865761274337784633577723181643437471874211511724674316183117787878524112874464615623147527161757845216362781777588665352823228518672788767173877851572414254236518527614417727484537611768842814215178665418447758453876724118664818267577832785164757566184815267765838544831622824462746645451858426384256883584848578774222823232887461357656244124411535714656277675215621578671131321362225113388321241123524846366823456264377273414152273841372215751844184636162571378173885616582721377458628552473738137633131222125488441828521243552613548662766313352448171471625816672382381382741286683128752431826238861588817727437228777682774313717187476713558385521814721487737874715615522325124873468716118234777836113221431862217626762648267276677534585317582842613418354574826831582756888163234768666821771443442526447176771138612832427135663685452564374613354857441173646287861578412467235516627325751127283185361755434718386162678645451876266866427178674145786588873367647783368261365138154421815762167568127876231166744147131236721317812433363878872661713113825371634318672287653336765225247685255135771561287682246861373467883161475144658484747845281534575314128216641432367221871511456577576675568517226613383531625562647153888818566532482547846164742262624415255172141778468615741548322228252217418283312146168345285275242821116284814771253412726851616816115746141334344318212661278845778251743158165488314861435538424275276562184668841757316662117888512128288463513723658861468556313766257373673688648466357222546585777452153877186312414315628273553416574278255726373338774351751745725883154745174523774846587151112876671745614563228761627758151211116778373521883767512147314266545172368637421542182181478671765116285341681832631258836736114221776155614824578375562727683252436546357466757331112365188544252768468274247318658568453215583445685226511836342852645683175587468578271143275871685771658554167136421646155584485712468765546187841853682638271687242542384588575718866565514372171536247637526137148657442776647166684727137845244375366133115523862573537842742686417835834454268513676146686544547317388167616154226362163128675583226144117486815427666757262752782242354386731728844521387664714485516376264173158826545588453575561756185558272436731126653413848284774181383255133237431437757123374473456124381154672385378243388258241672662447718847385422842183285566448733168112374685661277432616347778731583255386443516412261471863474544713233211717686748517883387641135138578677252882148738734575578334374625744636718872617334521623712861167672316432121178738777742212585284421233136858848313726455757358383551672383181663778785635261286833761761434837153246576438143335447814575187661744263868877218868151857384461363352152574824377541176246848556878655152882122178353333483244187326138775454465783435518814826841267312348131631546157368454136577474556527622447736271761287133722283182565746864485644325457677286545127788145128173337758377778454711418854332277676628248675148555581243635273242164345166584548762612822612168652244355371773644173436626747217512836228844378327481355638638563777155652568114272322516431385374815753254568274285517112868116175615276811452487773714148323771866365423523813575845644322181661415351777848845247733836625563176753263483555767366828665255662558375361746124163475245364262711751748274111735138314474174816636462255673473545342578517334448426114284131368454741387468721714143347341765857741848452167128725441146471442533627674765542783768423115472837827211715645646652272737367322328412628162565811443877846884223828386436338815831415432282723718565514764164141353257327155452812882654313687561618886753824825514356533128617644526151354413823126814386554822618178718615383634321734165444816313365667642542586628276215446354132478484173351652138362216278127647472125827786578168368714113646224481176118888462364527534537722386628822812461368618822714271254864286235161667557374787876427433322837578581426128236758587185125822728775172434511877726187525447138235584715272641386537737212151586882511854218261222343654343388685873777414854815386768724122733737348663861727428858685341786763226728682844421722764687361754742484656581761215254383761586317223233568814436255246173851541645473437732135876668871135887384156147438481231447487662752262633211447215883566526124117838213244563344354753758654872747324812331814384425153853181884581737628871773771335337582657572477863341564568166845747786557844342585684284244256337437278878266315576343468375624632182262574477542254417184382664342366811535867365226517276112166256745738687863315487375531356555324353235756227574364826787847852774157411284222617344114772367146677423166531675345422714144112152322315616712512252257616667877631762651221154468314124467122187188861272288835776688827886187423148833815483355763688886834221633478314745863288476236168338212776362244748846118216851173616388445288675883516415538587655668763653434172857117873324684887477842437143418718834144743324745888628884825511465861676471822543242633746116128166613484235122715574336787151443543112554722526123662237434125141367234665634624767476634642266213655568672686385584188478613747744221215353828752482811514538322677871342883121531716826166482421831726143735847182625827355114746648686157743214881321144161121828145311716723532122473812612615421167438426651755176213187831533328126888217271257261154488526284588671166741671823444535177141232382631461536116311334642627812227475185374771283657424845638271362432763165165588771761542564267621856177654726488383376376873347565345712885815674364381458218433484224625588851511714181257435132287147754722321217122686745618513641141634586247565644786248713748821572351187614447616818827426344561215375816768657766282318562381721176756252345114731823572575363654368728213672318641733715415446528335456467485618431131358184122154774783575373471627558623162243425437176624877632751377483875274554748723223422362283185844844655671863275658657336845252415747728621344257742611213744484766722348886124751875786474662847418761255582256833533876632873385857351678886481673638676483312322611422887253578221123816167286484681517748686235114457635116631274131433833433581847574135243238652162653237318325122551413581112154537545687425313753828521422726846762444165584324585662181488765187362858128263623543676248258122426778167634117171521436758665111176251316654651841372752323141482634536741781127666782752838524174652818748421338532644632731413876441258711265517175448587477264841142552278114121734611238731438853311153548411731244168322842552824781844751487762242437866433121413374438764615627713162551433813172275275514448234143117538823863142353514512552657628537157845612186541245528431861535115324382222324538548456427463111453868226873647336838425381464341252633756711322381565172363521173874327723352578487673112337438525781844534118328588373737562215532254657615855247841663838146566312774874416156267217177658164735317166764557378463224211332242481541485421358686456174542373763417877425451331871132355626814363581564624172428568257577455441725688161226424728283344487863514473431426522222515354124138261167567355365673628888276871132682436673582123448744268534418363148135511788571618163785175186644888321521425461177542287288261114526531768721246352376553665214127456321621457724553635447411433868658271464233425517383322753678264231174627784662724522176566512645477132442536754774282461526276863325824163832687361568717425117685145516114664482321542551718513364783434855287323247865837643763644263878517121543633415214428814853386284358381147252276631247518835335882354268675736554335457457123872353745617611466265217166616286234637438614127333176652363536234644443334424333417275727555662161276715867614881377464883387176746717717121147121146844675688141814454688544365656353763137728225161886211522866552116653636857321561316446312321631784625231854761486552166764222478684115667356223483435445316777126286821741544826236622522252838532114233676444352524771727882842211356336564344222745383388376415564142623648264286736175523652138132685426534148175186316188543482182474857544263257156644846361715128586515115487761714526287313587527354432658754514342482481468113342337814347645735542758512781833472232537728644567242257346683728881746382743413733211476232526888774343746135438813633322631584346621754571457586387743167335572654857765221613868145618568416155327842557588147726668327333212322768663462211761874142556417724415676253816385442386161673588813826528513255662183757773771556277778463684683177383765724127426174122572882378471743678581257568613365861686211733227734171746255651666156114551133313751366578642164723285554154626445265281635474271442331564125538143245884123313643548455377585364564163113337633886877232173715438544536582323155255857843762114747253768172616432453555151587848156488115821818172788281657211661688357157247218283668336168748122825618832761883416665177122248416253567512773111288561668812148428454324147332544464546731647552442366882715856781534258266863435565411121363851718323345837565835844278235524127252761844586578822782842582713325433576854411332516684626468733626366457262428235828644388875825834121522628874144252783158342151252857262453716886556242274537833622125631421212277718438425845788264652883756222358745467474845728574121138251815681654584254558457238585561754722664655825378647244344237115853413787556417252226455472338362462473185633614474586778666856312841238147574855671247481636633647314742417834586553481473244161566446533367275616136884153471434363313436422645515247888375636287142775228334264728562816573637211161868628578248758544756243332168267772338757635163851116217581635721581235171834786162645164373164324577815171163641775252825342642424215285637813464871156646255755824831227868376757322268184437675244154228577383211388373826715132351744734666442126382546433882828317585844821164513151343351145436244657484481652684337767677625464636814446862224185412656838784376183657681723427612132654423226346515683144518225166222252486657733177132754473265828626856421148732381635383757131357417688623263652283334673885572842324243111252244632311784733472534185717514711873624284812236223643873736138226184868262713772145286166533814475357218467667616377124156652111385147726578213525436264556828871477258866867757543668175233771728787562113168676767244165582548547436872761755467481464874522143153785867361528436742162784868146353375811758511325254856124218737168566676267847124671838255415838177385711865683524234633481456623653768125386518375487348181858757773226456856118786571722275317715837577186344185373532135752118473881648727638487711356231718781631261325424563128747211254167878777413884371266587518184348328766263651223616411164866582687777111748152511486241714512533138617843566586612147817545265621535523517248352421523818268273427231121132465245672278385745328473873434776755515528375751671375765622815814354281636614355815175527543837647327546325475111315236614222324817685611648145417734832474564347211686742251833167574258615468618138761461382188688264861225111646378471271481368476883588385857721141846577314351821856381524337368455433614228383612682534843262247851786823544112177366267145264341143666466763277787526273735157521483724151385442858268814461571142488515132622878486213521473487241526323536374884464465181375245452452825585563663212322445226721267366752434815171418452554372447336761411328235742373144241238447715613215185122367677116338311834187786221646126667762478212545618812635284531652714756544574422756332224811736732462452745481755887163818583625187567258777634142735178818262383841356577418324424863432226177522213673635268764856554773354677562632772312824145442655643866355528614167785213588446147625874626371488881657767184366638141283325373268662114821651561226726148784641177651122461733863524235137516172451646838312484578642262122381381777385545652526638722365612455536865836868251287725133645861458414535176577654423268682171686384832477833355883872162122234837633551741164412631417476678662422832823218833236441781575181568233732668281642418263465488361388357626572877564552473265838411258645112528447134451256122373728735567843218721245284124417831328432342311316568782668521484487663742788815132153555628822627446372251126888572223245728848325215234336157343586342336411265622862334376367774415643115374224532582581382538845422135667121224772475773783886545178316736363283855281364726616172724317288672813655866566842183758755661614646135264618556347327236667628666783525541162432517762888524467412853563171733124832437424838837674247572174326214122682421156376548861285557143567873246746388384288334151118157463436813332674444137347741875778647446464838312543181325544621617328478884573337883858856366643687466341788162621686743156553861216511821357554765816628341574815877624166328434164337628534318615735517582178528133676743246768677163657233212245517527736425274761133144528682522562228883535324436615458528143237257888738264171744777553875762774781733332621865445146362222557547655253623526256642452581271111267424331375426723227528154526846467537335236384732154476614851478848413573512227616627383843662727512837125564282131842451528674328124314712845321886155347641173177754383388418423138426227182714857444441654868255718262658216645128451556721783634276253887522154115663667831156585362127278441864857484755856761322278146314466724682378127341416762122532823777457815731683632286657533155615351471154681342667271423662387562228811362438881274817241534178546611127575575145153566662788417116728321556845767675163434856161323385334174533776517323123178153144772133617477264125434222658334357284336847467645838434312845127665454142251485552666878743415487426264252661338275611412438111613675147341351242111572442313422213654232761827166262223458615634813216645673658777682351757257156773671841644183488866356846425746124646564466145648734731652168161622568634224121216187615774427677246751321581283411856874228446452363352838566468822155644415177838623524734765345513111752776118534267387534222261233485532133168334243317552341477134464733867841887345687251187675844317154237845675566133547177284212535785645517817612888383421857158261427533413815627177365637426225448764277611336166171244831473337645472114755818788488731644563588738828258484772526267456437513632226443825378556847536453857641551216734716243242665527274842828811816235723211685773855177451823165548458633683212167661827643552271767633372157185682567157448844667342171663386813222265667232643558372478274582746553252455541244144651445426666334626211758547232777277382438556265782455337825481423525222377662322871766684465534753424248328343627118271213387455325265283835877857583553616364153854785488735675183768835656346758427533134648464755683438235363272273577726468651211664213151712775724627236714581571252827373847436361182513173447115526666411877355584433627883287715327678858816387342675537473882545457542121351562121754546776528475881668623673142564755774645843138331415431427282362237648813824156224366281224312472754253834184726367387154122317551183553878466683351346184456285413311523371634821526854431554566734375437564425116613772632577244841832143412287424453115838356464345834813462848758633181158148658344844725636166146553853561485446778185254425777152663626565228665844522377382176327322635888437251441737622366338578626176525372187164423665548852775622123642568654216253866486836816354226161723747682417716342651821217313744765132378747621244444132616847667164877317665711452844245822346422335335776467384886836854871856824127862842188737558667547741241183725432776387182545287183576766734631848458275466473323324416532811152867767713218618627427217613658624222767455588383642571158323876613571886183462216336575511882758726755171324757834761451122558165778343735215568667437287723714251842547873162714227213158782363587241757865332388818286141645586562781221264887172131264413683388434147717312836776468157617473312735727163212181723227658618286675432421686477752475885884243232356466887164673214263446423121836728271615217731322623177847766113166645562231111784655466553756311725322367143321415375346455475222734814511827615513115263585654685875111835645757261858634163683824612283836284286584166416865733878548337242665776623465413647486141811712647764533533676173226852345648535745516363815165367633325738263514422445842743478735182121354838237545732116371665762828134726657366455422642342513142154464413224742488868317535256871115262128175161776672744161755625167435485454743121386224758658284655868852157726685748641711653115531462328447768256261147861452246566755332777188157613848565625383742156858548823456824766528832353775131671517723266727416826478347631165342548728728851782537565838278535645848158477856468762638442128666273478124271182432776631331478354547486533884325643314334651877236566728711461412626466271665516614157743335817766421555453661885837163843751247351477844267125182783675482116437487667861518281873525232274844841217821281528174766656171547471267287861123848452727517253156447173422822821647287264463624322154248187553356613166347624258821457464223125446185454426873348442674538135617148251734574856738116236615537753858745747865782751858285761256631124771412772745538311388382873214158474356763566888477755237136654885355834356818843452535534711537625574751465628742422638425113714145881471535611864526352178887585861418744455226364625251454335341622887427773386186228535775485787385682743352425827181618761665374681154212714533212824874527675845114673141667235761823483734431551675362843212742443287171215725578315366762346724824181274518255478273372144726574786763218173577461842363253216428465138225344185568731242586733163181235244533734884526355762551137187332626365748742532257283828511426585682117555583783413267458666461567185357831835562377577646265318462724721862622487711234323443435136737574654855654617873137281412545842387346713347767743117124116233674332748783148863714827635488254535134311551564644265315145152583771642851762128326683776743324131833617443728326154822415758217388713146713646653887784378753435575231122746533256233374461255368654514247121383282553545227758184782274682235718485677323442325623513117375117474526738216858211625242187854884887643346414126722267524845838213787845855386385864267111267745271664131835433634817717182417111562352326778882362853445735841644756687287237424548627826522534452674268654656851438324341483738724528757171573734857567261266423411624131145632336351757438575812438144374753861273658644821383835324757361672238241172152718338848145673148817457876615788688838147865114621562165833313257252634548238478476555743887478657484154842825228444783586467623864333412544735337855388837815837753382422168684888624753285362833685154132756365851358318154888311214627157546726843643871854248158636733461717827886153685688313335631615418487544241186756637781353787421358166622337754866161788741673242831654888662586563188822881564641716387354866364828441878622627262176174243676224534244632162373168117825677878883213746146827582183121682641816664254183418663875758247287337535528213372187874216857764814563867422818867545232554113342587454862138563832664681482185463718173145715628553145353525554438448388155227475657473112164235447726533265421326412585785535178231685283112725656576315788356353726256116665667255333536214332473284755354655466176312151657725571552862733681388577366671882585475668253451645146863236413652481586432525457458417117886573782671663362277343461858335277448126446536635373488322223824662484412714562137547316775815674281818718738213256754181781313383837856718141424353736862163677218361516846153513114827881783332511446667248565741853347283387115341116553811528561842826523526625451685275217338838462152582551413124556615561147721134854271434574554618415831135841345762443382863767347616237341671868471631287823284425275761555368185271461631411146456556637535158621445146517833335766177138643624362672565152751271332325868243687178123728556865853488567785346368524861567272328381281384668215252374645321356281821375242544758785363838821115715647546841738537668754758424237266465837448643843756418821683455328868212485382618348763774437314213762662686476711716255741161616712847863836735281754658867774251167738774384532723637745342347184335377147834127137874161818588311335341157617286113621163348533881336782755362113425326557746171835568673282422338835463663144851281573135672152843821126857525336511457687118711145886165872474774546713141773587211858441842663443567841556668466442881732141387554453871745315677165864463213768218227516338137618348144313546253416511432257682213614741386872375185653588436242442264488137883646116754762535421713653126573248118227316426511184356823874272764266875351155647137756872377464751371622462213455461376484772623556563363436212226738342283114132886577831481857223641111845172668848277256858623821725233132654766754231217515578351614133442167145641587443218426125574617737343882334838765214555278425453873822782187741581263512432584413872733273273112462128683613787722622337281666748127363558262136668831775156243368175782214486277453257265765367467122652277283153666148756682783145874853468663842682526126327631138722232121377624833638456252485422122318813432586255822513126316678252131562483227373875343785324771313276282743335562865642335131674865831857113645777671317871466476345521411587717836148642737568638853638548376754463747217848737887263722314521343744668677347635822533715722167877586281573317212261682224656627876643813255273555623624271768417873111717114671152726676818365831824322567865747821367466674751418163531771821658577853832523373218688142853758644252836631428773114345774463527471567578342544841182178615157328657348478542747513367617814754681641553435321726844763221788544473473467336517478746552838588434255764582854112872115517831753388318556864157861655262786165624826722135861241725187855461321174758535418751775336823621841677351121147266642815237164613261858161774362143234268146372312434271767545183843348867888146853527764814886423262841462767741225438656552475753587531523548442148733213682352527523475144616148373742841323324448876465245127188164164742367113422881715621881755131644176415568376261258588238153362147825277563824332225626784754723557828781725268685623737154664512528245813751841442685382647255486115686634142857887454546777283186447126578544282657883654764774378658533833687784124558357511727653257531161445442433128866284141544872713737215515348556518254216851646785521326666718863418382587474284188514588633442211726727421385486128825385213748688858351835244367531827533133413762136811453775228523438152783588771118153336551328353116265424435861653586126441526577732351867675734778376232348484862732874233565825575617275436387532636481517387284143384322677326243662348153783846164515351145276623185822783355664636268642148287416768345831872265845684736225877166634774814571515645472447214753155854631418633374533764316576476438528771786162172865152283746554835166186582881523585522715224744142118167368371557885273887764481347845858654482646453338137135251723432178137436617445117716564374821361773824742134664232542744523426268833216237731545443511482122838845131216722242183537232662542266855177616261854486536588334214627175486317284731261158546774587277877614826717762581638323615617816788832225651574832635511326413725861178634274222682517888318788587156132135242873156111311653645148525377263584524263322536336348838568351616486326584566282875852356237214315486334842525422233737671347283436526813578252316547272648843388784845515686236441268414335154251158431147363614417254215316831312727134383213525423827438623851524647521371333473331377433764618134465387742522452821381373264187437557552351161274831818477772557444352426582612256127521345741257341674652143264424645266224617446462366734654538436187321672825224217826812488835784728588663513245335283178654356561268783358654577627613585651326777337641416186878177584663558327818582388277788131355758822737855158157723361276424618674566582356323777228854556583238213745577288456587183463861148133857747721866848227285175765121881258251445373885256714367562135232176774371173518248775165264841763315845772447536428376563647354436285234531362426747774882884537162747562478283425237224121463345483632585543776852861826672855578533522664626188654425875124481828747644636578132328628417418586137776436356851774744715831714326345611164232785765763323286641512574837655657768431267417268625282412256675155824231141486771741433487458725825768334322542367167167212435428746482862847454423814487883622172563787831267114148125885722567267867622674147463367516476176774844272731821353188244743647455832322767366355576834882873361381734148823488615844432874642477831472812734613775433834768412625614467238258658185683242768885382634213231767435783348186827552778151551172837823455352255163673417824872576468842147876256586352745452463588317121121166274585312858158485683674345227811732257134668835468314836268816353265472172613528873352724636863452381535188476843161858814513226417448673732372787545267174421148138581641138672628457884115636628755553458644655878757331445813182236153314128663213537575228445768857523347658828625453347235877173153858742513528372445827168574643466165248273866255852482532776314637651652562145477335562237261454778877524581428327837575275754782145678158156818824158336778821155255568777537782265855587128448741753762283172868586662673474858424582462543812652111633758585617535412455362662758185748738236132558273426457388674127388728138212626438254142274446637814241673117358576166737317862281211516553313648362357586311134713763242277233742272438473267423246163771564122262145453681784443553668225777451557762463464421235423166573138711425154365363726454856282224781317154465755453785555424217372326565811116277267665688833266338325165726135752822748127836757483717346854655168138428862331534336124663528428484213563722261838265832626478646625221248714475111852581711528423463154112674726482275848618218261557254433562722672113864528884121667448184185534466185144136522727451844367838713776731667527327812352156262116633481351434547134382617488788172445653755517667254617561272871367821445315474844363156523172672221284783834675736882245235576545866472743733651571535777236661876764474711771822632577111488658264214553311186231577653276457823752364418712471827424777522482752251237183714468818516331816137663531462362783334341331351222326388326342634166345854472136142761176515145276385284243663833688616172536117174846288165756271535288423662421578674365766772541144525416664387663576585737156741286831821531658348114881576122658542678457852757114447745657868353585822253746521767544825671284233214451747528452126864531156887457118523355164424472525864336736386142438835737866121835513841624574248631853153184837786165151726581254483126744275178311434545438785463552425273384776644177742378155388672465257151386177138548243274485125355641235177452327283264275726663317274641374426335472228653684476488342118163134733147561251662677876164885437345577155766421271421672446133346354618528772282287616612145253143661825444751354281164515834234427584563135663357551786155271468837343167615174588818242484435866762144674223783514822738382768735842683162543715687517615636883857283654385341511468641876582715524235313541168117532655881444317121447867853624734835278573717524458577571881322735317673741568731567417512282423122364631858835631726442721182787871574546825645832641542846532456255712174348481873871436351828353565688283616853618683216841841523782118523313628858387455642165862154411833522548731215166425365558888465643625326723242257818772142762424325623415728261362651846638622543216367247747738823247345338587724821447621524836877757323842615874133118825368672432182527225166344258742134337421763625181531241835273276626174763331327322388178658832827842682378215548512516845212834364773828267776872422521473453532266683756421344188264648682111575718311213417874183162888326573357165417434542113143256461445644355662647327283176542744758337847252631114751542556441415573518115214887452187464784136161844535873228546632874463221485324672176787648281371433115735464812813716171477241237156373862212265274247237454752677156271683214474881818367253772537656145886412673253813868688168878613142164722522843516367578313151542345281233488424675482551865372351862144842562562452111684833862475367272627275445282834861453385444513311674214614627378526818511311757566534176134272812226161765282256582856654822775342154441278321435643477332828286481622655311735578542448527224722641287488648664243366433651444654854776368254887488146658387263587416635654753158322647282726523484155277726876564225572486611177363525814415517828181676753218128285621562843825746783666482717468862222335634662622282242583245772655285862355235427384383434653867622831385241225675332626875584587318565885637547261814172334717276833743441136231522811618538734546653718852457424817714656838263543346861363122618564277335123181115822563614336547514162728673476838365141443188464662128524577831631568776224628342882368546215734335843155727274374574233626343766184516373522132378274431823563554683867665187827422235471622117846551283783511131276858643113167884441866888681768122567286351828431836744837512458824612528737863416126153436853746728653688622845751424115358828552844311313186782654563246183183534243728114215418525686153862666182656381838848548725266828122785442353481615766161638826683444267182421725753548718725487856565517753825588225714871165568784611288235632754366344434156211312633231314182537837777238423137544337834456722543446781721221437328257856137525572386657655625876228677678714617543533136148275672361117813486243456553313763732538456517668727328126538735238268548434365163284316153318373411787545355374535784753268741425187523785188465742672515841375651857772587333766716317267775327611164134516661126517627541125267124318564428315215557763788375288454845152683236735455167736743186527756732862262464858764247712712687464767312282257727286655546566142724354833258742744262276551142782258277677512577843225446351657584866552718463531223585872386151875326374611365115882121188635151562428648682664674131282671522854885156148212112677785344633812356762171566146243116654525377533856565262843246461783727752867455854516628555462671566614666774135517433648155165585877327218447445646247455187818381554683226376651382121532488333616163337461123545232227212563468821885118465826624575132425313645382415147347487241853133315413326358585287418175565822585755636554741168726473625567658211451837821868572531154355417348778132477534461647185716465833136734378716672217382832542822557373452165648214788153458414413167222378827726852221278138611268716577325648588425288564464738518733216151468381717715785817828422243174838126141524472544572712623127746372583683221281321288623758725772288256418687168455267481142327388334855842174458828651776232542524663138554821183823787254277551811774684722274258837182618272231541367281175557712824178132633565728644222524661388224135414165632364771365236126247287844583542654486362384256238315527617316116842237113311463137624374564436444523551741111128161137157443212775133365883157213282315167365347352872126282878328364821418534256534822665723376434473848731443825466312821341533284238224518388546714454855522164277823276678861386176721464678527442588757144153436258236834417523382846346741117686114722168362153484627571775848734185855246144134826323225117884831652811728147512553458172556657176753432833178352114327571343463512476857282241133426646251267643575377786187158745756832171787274687718155277576243883376517515347636714861162117168657222158367727846218255743713647572672186514625212733538388246424273534421324726726361426641241128271556734358817266637675466823732467455256636421762842467183782871321147532845872113486162758852257652314288361571416645815563672232783123722553454526835684816777778447868714383565178251117353143474625337124531512863128517331162418323811781518253868148867666287341646612758568376237714124135713851775251845822427827136471887175635172753116152271457775465377135545431568284118763138256835748226633517886548122513741438881731461247842166112158421531355228413574816434342454376812757734572314777336483572852863847877867554331486834581224225446222246831474843413444828424558324821641741325243467445641838127431236123547512648743567388758226558137414346543748528338118428254452554617257115881834215255748487174355581127165676116635768641843811637612373124837268316246644454376382124167714877176627355648543563622746474524888224366127164783633841343228483532238644662826226472712547828466263327546474781866823687777377344774132358142666588671543263122525565827237757854368522227536412575166524414657346373863274166243586464344756542226324164146875141536862232151681674153386435883284253376818215783722452654651513561173284527426614531635751814315222573765723444785537664625138238375624717463326328273237368426516271776135472854447627513166873421272846145115534124351227522461756837872328835886227685883684615644333478357864148748175485282343448656647765868343355212541837465736541776622633475335442534855585544661225645443212416867132671475715711443722574648477224611222421583143473548166768785726466814687717273387438785756585513642278683343137461757342254243788215681838718232533771587264562851611516782142681217517847367486327661837336621646744343223727374446734641465256576717218567761676763478523111754568652167384121526122783718212521762643474748885725565746531156611258813777432474323885281151781633846826466275431151215632711211722253245415823342171336486234883643672112545444341364624822576578451725783862768856146835327316584261288527255215372212852387354531563241322556745587174863244137215544364271831432535687733122378476644275714116357561226437774551437315452731527575372825452261281112881828516764544822355442816113472288578345118224872654373814376475845165767426336867542284316518662481717785111524785561555836521758651633456243445156152561228468181563484212336812482611743845617482522675116677234215846251851854247256568655621435781351245478588233587641164845213821428222777825151343641312661556441683772524841828476452574771616463264384651844868844657881665822336326113161123678823385124425666533885721861837161644157422673718266243265727727281177835818616363352583656681783523657476182825663411463285175438318222831637468364887242854253181455862813183641335227173872665763572646264185222327551746461473261885634843342443667562151856855578188767163248141816722786336561875124154118168525214683812323514457485236457526353555321136463541136415735177683842282335655786648388561134225125484766672737334632242578776764863812632584845446155882371156265121283378752652863673664882561127138255588137447414175111428124577711325528251211274241437255677354735856636155557864484662434381328841644813835876174512485357138262851832231782214251367675838743778247461186622264732473486875855152146664727157161362583675574176757621153247334841711355221376565154782476345372766127867853247378576121175831233111815886854354616766741422445572135345242264782584872486348586427574638231865823364343636412372818641481341274737412372553456884143476282117648548841154684628675853617881158762288148663574515876518778541466111422666538578157643736181285128316676148627741551364186852777136352633183355716123781351766223345811725443683183845338728447828518171674823878233616763315143418553111887735274238385725116423743766717113786777832251377734552415363856766126333763758151764215111154187816647524833364253174412118664621812345618213775466624746324558882161237851253286141318786883662687277867874815233388232628364164116563171415213253318882843718676133542861746534752628628426538267715482258542228866115716637364223652243828461214525551441586742284662723748464128354681526873357417873656351221187151372846311321511188663676281362844625824365252388677148585733285817582518137276645466863136671256324117384417322546656622442751741658771351137643464658128282453454352632527833465421658867726515533833134615783677771576747651273471274725122683283667733886826157616236686764465677448724326835338613611784135512235382477282327861126631814252634875141257615887737127475773434267322585378427583235224184138237711145273354887238517135714435217512547154611166645283865766462872267272884253144523584274884445625528134157362365527872722327684426447315113373336742153747678128127873762858153753781465531446762832237263278161165116536716823641648213731646514786742184855368152488383827557747754546126131147374477121612553262782441822263274332446663347556224231227412752178832376847332686654738274427554555773417647814787846262634335125315345823286485136327527825657181477623221572388481113283486382576332426417833152563112254431255572671477264827234115814518677184841522565288745174276173367368537135857683731663557748281457685351561351417126626583366253121272336874862383145514452524622566427874828582386824814584734317543338816347768112572671725174586353538781538765218781636835768815247177623124641683838256274178681671788652477661843467441875475527745257348624126113812117627673716245846252753122325827152773245343226461335225577764142845517676177888232841787163268132248573315548683723643877162576536411811487188486328346617852628165844827235263275654423878436736464612633286161287212372387253727167164733427647552152122657573374583343387821372735782543684383381172881718877187547325873747615548536571383285832653818144324642475562364228548474125243153528881562187666537521643687238431122843386611623168447131283248341188571864366862168328112578323617383412134767588658535717645131233277366242588248313172651835333514827461284177542622842762563556387463818835282321376356632537853435645854112544385738612331313278561751126756285582536812833376164654715346425686616444278144387515433277868256445342147435468834445323865877181658175877275757444276448783371586714161215558342527428684472264723551758131681757533878637562858384476711537188516747124514556111661244572171882552715582341517447444864535818641154438415618177485533461761113362731437468565248424846337521257318488781755157211213453531384612688163117218261775433876224866718854771471124782736288555857142287482382715823121556337334664833656688626252513642385338557582851316853545284277126868342413523718783373212185357686585637222133746411248766128875723537783887773881175855786168875386487756621443484567253573543412348732645482352114687745576685374674238254417714136431828574623244115227535817313243651276275113366435355831887882251267315774518567565263625758826241774623127548183477846486622221614216856377687748132447848673538242287348577386813852626144637815268466381574538754865716238588283532764448584842784124223546733588231272421173331412328558386834176644343156456148612148254251246264821276675544644758628485241578345582287485658723615314776287525645162166734333854214378213636132323617351857568664448346364843513378637764178185673371225426584251561516672523823312813656663285754725311158561557383362523757833544832171518837454586473871215371746615887722578321745412344675533717554662547622558381666126524185261133838633827834561617437134771332575137763253865448372462447466373174613734248382655848266114262833341287163511617462282313583586733243553136425877755474512721485275843135852487648234862511837677753424822427564488576385174381342365151723355617884682723858883786251485887576657862838364536361275511443556371562413712343533428415255441413731457335352774765217454735256648572262857525881711678468676825125888841832468313866544876182858354577375147363142228833434738715322825248243327175183277583423581462128676275632774678314554714268254442862658682838378182545155275132482338377217517558212253185187631155657571263633348858767476265823143628637341812748564388854781816712213267114711413322448861762847111875111685882377332875743612342455156351521655826625558822463652872173411812487422522786635455131811327655351536113865855715787886762861225631482135257516282177424745817675274853634867828576837474116633236618264266514125483183151371876675371448673645173773711344415328553623676383844322584485245627618613543651628642324185543311734888412736222235135854141671883615635514567774382682738145753612888631232635378684413653511828657272746317676388241413134172483862478635378418461675842125732583686578317113474842621125753337557544314762156785416438772112873888835187848288178273733742371482211451684672135415175254588356644165285338442765735733574186463676175678438224211314482817388318331153378642233286666867511865617565381861652386325524848828154336817413758314873151738612667224857688373113775372526566125384856234637515875363867762247577546546532555127538366421835845425846383346675756164684684752815323262163378224225611772416312183128627748748316827282485718726725766344636376712628323727722278831464871353835362512647418337455682651658363344552647814451146514515813138276347718346371566647357752857451632342155676888188654266464452126312442635126871884643343277464585176544486881186672375316883761421336762866746524718742838646882117364334763178472352186151522113216635153647213128813747227424373346232228171882682326254724226744453574234845426331658551611138647453735633214732238454483472148252154623783234431873351584552328686346218671871761428656622344452645824855772137256157756562187183338388862221115558217856247724274548617184883778186461655768666464327335234528773737368175831857167827437151537126736122144268636563832375434258663781522612273547137844362484218574861622867528367717461654816675316861281343524828668244524187356727381844172367854718184644235426531672877314123758672282122344556411466456456115131862332317848562111474371544386782683487761425351854871825328863568513173884567633164488543524816467487176447723553324873355755833876426186421351351167532888248635657872554442558722372785754515652283226155771227453765522628321855831122572237171258162112566377566636215874266771183272534621584436736562355515818141334781836681637656631365133423527687156386338328757478467878644733726457324318816174537825665726683286688131811872854572317561888735617674846756511545462427235528651721723628446515436266721684416888611345576826254757786722375427422547326133243562256186655468215786178568446844733332374154666826748246437551542213518255576462487781541254786358535886824565282487124856726472845427146725563252235722763775114636554464783178425418528233532717586126113715718512837873656736665446227777724782658274583628544328813775134148524514452147266227351476242211857342428456866288112377577233521557438321687353168162485271271562866177246618813387716177118651627684678551636551145251366868863731447143286686762783211668353547378828676317548341155718816454138662716182766727616855344116762228584641161538441783337242338876845346171653366843786861534314853363513272477285864574632546115824878834337263315753578617341767673142236844115426421253211417326477176881557478748124326367885834421812871415136882154256257323462224237172734742636675615656412317438157188662421585311481331352288655126347153118852788188238433664873166454746645337142151828652551744188862528181614815222784125185437871146476163425846481546681582787274614347322225528266638348177451278324327315722558742261311243232127723326235618313712184854466884322532445338323746321826851381385746566316128432826462211433264364337874738375588247866272872626711628788363261247436352362512518765657526627768487822775817615486823765635877427637225352343438151487463256273178267465222363631582652234528643274687246866856715665878415515621387741275541342162751387868431433622346611514761745676242712163286523282311887181588315378237464112744853685155843824333621743437671816636215717785535457486837515684124847448563471866236575563866334485576751476662628212388144263334283376853463425873462458241884521151688111442748177147333113273771325565871312234523112282471431286727816646127716648326181442723556631535572846812435456212427821818461145444861773867861211315738728166437653148418748347236771447271245771366831627133453221823431267172368847163878271655857818271136825211571468616621168544614431823248128142135262865318761618165767875254182145112635478538122113131681421732211518148173364378676576875146267754441766462823763325275582151446574318567776323887743112551576161513356286318838525184164234426718276781735874652645278261857812568426435563275871362335117522565824712185637277442668587316478416165212234782541725864167575633184347261717326771316582854168536541414671442137444424233562556467835881216546441666352216243587341684574662828678851671111787833574344141548576423348272622551881147156223237232467322565658517828654766174181585228682464838875633323186222734577222464154467867323688883565113842275165185662337347726834523411276534237452464387547826188683718374761378382386658611426751885275541815251172168545454423524232651488388365427177111433441242136415588618241388247287714871767371777865365555532367851431176852841276761471816265622625175488421616541112884634717153135858652136528265418264534715235886828711647816441887842567458682285356781166725488672543521384122763636754252686373147148765268882222545253448527786533286545444511724347415324878365813484824761534582242467357186156215451888534874288264114815177568222668783488162761114135443874727431111563142466481376241648231873658478616226851883411582678142463248815673837471671171818517184628565121485343422887463231557282462646426718521347728576653271838657714342474265426347551156734878426321676311282371725643121132828673675862387371161861848654783514487284642837333738274421226381745475724267734366327813648413871586462414873848234563525773772517767521516675227533712781762864531384617236237145232284521485556177687416466225338565574357376638813342163611362661423274161511614155538175412426375214447138755338562868156188247775845468887227643547238512484822227483732417354662216145336561568263621274568456864783556578287474616845824634257137184688676585815626845357362142631186133437173862846762117254725185263675861482651157257587448813558642147383777756523471666365182147671866737681427278168738385758677481665628115625716481435262724882567423643821652654448353388881818117624357144828645172324172211811382334743738562638176715688217167656582181345188687284343843177832838754735488846283761675541848842258872488743125534844254411746333434175471586325878243885138548365282751382751183865747168674423382422584231541646356327878574223468184888246428427871831641757842457832824388551518462425835726824243244843312554253283345481335478828841867881621564865223751758563366178352886672465768884143755456341852322247334656866366662482658465742758766185111455544886517646665828181383728232451312885862883286467516811731474422222577514443776174777462146551832364472372873221873542653582643472443778181737753551851683278536214667374863874777532586174325812762285151722135534331146868532474381177744685385381215266848821311732868755244867241556112142663511738185282464853656711245838421446577834758165815835348686363638187578312655425622454248438237578422274283527258422134437143367782568667347872115148112538684372348214211238451837217268677365777734427635285134834637621763156656753758143146171536574538385256563644562864752816617388617225317275816788477677766772828281768628447585154438742428756524855445881288476661542741245418477647877366548574383188346415236244483281424677372878287676538686784767311561654631717527437431138863767487337781733378365411342786858861682415824657321337111735683413615855474652342158568542432871818447261548777257723754565254447841452678764573227464272151661462183255767834453443545654515572351236357127445874828778685128758327424417138645711784853352616543565472524368732582358767531774852865581828747487544173734512183114766573511845277588444648823157131523623766686584128772335768773524177551545571626837762781257181522313387484232778525283217775687767464435831441536886782557735122531524175532337153825516346475557561382178861363485643552746231748588255651142871182218827128458326317221351577756867821356177186382621112484231776358165822755735356138647415271387287172542626357534788757366812848131388161735658345173674564856852667418575735487163313623326485247846385722354372173133684436816766153372857463287382668311745632428238277652172261244774211583757375278757585651871166558422873122751872471622445746338323225476258273874573127438564611141681331525413633181651422777854876867162568881385436827441675737315327158441753448626758351478627878563448747547542282556377786712758631121217512777687372816628284336127131536211678432434813231168676165433272336354226546367286658814574734118583783451723874563322256744483786284176165388511268442374347655276857411563376842566786171658818845214666314543652382463762343488262873183531617441166375384277372273328377845266473375387873211633732131672586441548648132366115683742478525761632564868661421532138741851832853385471548415783176665632634825838663185614384546576852252463651724622355276612835416876222556117127283622346767865825571463637126172511411314184123144412165416187631334824733475326547341731533756523726477144221471566885735714357284531418555823477238522181362521115882674278856832137433628584558744826622111352781285326282731846773486843375874234732421545161561288564137828731614674164348313673765671446448253278373388368767458577244281543615875786622463626537384241622353157563181112553565822142327743762748534176784668347743452457363555783821876645555216853388746381161781476753421268467714656453627284378463585631351181683388255872564878254578187215442682682152851646232432185885232758538487613324318568274758686333741563288575288786522374322334778358178336527142457117276444385385857631844231713355137167355567813321385656568558778741238514146152887236855175144683174825757143733287324732511652767335246876881521553324782148147266748284244728437651151556381375578337438262353152732117774747784773343388883363873341777585317354241835371832588787843567716775612554588683228241685258452544777388661685711477465643628777657214235885245177282558584126783474331712877425542536687816413848756864323264633156218433313827817724813276852488425735824224348881666882655548517347737421738134823627387547571377824671752884251384373618685156271635112748365414611883642255822366215537458738245442485214343762872225254616512546445461261666566348177814552835361837136153871511731522565234453434726654121818812336318476855548211353673533574377622626418465536784621252375158583271254237757475551376624518284615228883218414657576836544123131244857625713411574624753345815413534137833228526428814332552436562173345543148787838218718184417334647412258882275125645742186651664386336666726618634765167833715581545877434621523321128785317383156558512288727625138783575846578841431281275123437313146511526152582324682345336263574827723821824165863884374535614381378568271867144711524741225766567338615376574651628554472153384773852435328253333325762743672343387348455478546586222612886254542211261355313177488554666774267168615617343611518444273451841733524257426285541358717875752447888154113287888425148257272443277175873558725526874171435376612766266313254476353287544472628756778258423864412744451543837833342534874378736814277433581511664356124616675842655123357212552871243536221424772264532522813352661514481777476742467482676234127383277246873812667125343245586237158856474618886584465382128628244215528143464168666857686166763774667825776345461183315422514382427447826856148814268755556726752436264187281646774232647217811722464742544874772256527812526361248171845858848435634812234754635281542711356884187122412647448485465814887186784487728624613354534885432614685747151651132621553575434381158412221528217576268423784215136574485614178651782364362753215324377351157382268526725413141651312578351634726634382187437644742466716817518128864287562772446676626664816425447252143851261676173136488445467271725127377431442643727477227582231846325163264884182277625432146736524138825483482845435773841845631684434354636383537733776387371781432425268155224573115141775242242638284165358333578727335181837715815435686338848465533436623461181721642871274188346342745575123762276327645261541461653553446363684635433757858874438667841264323486572667188585458345145767848634674447671478511638813335336475717282864563578668425344351764817225818281652182223122575871231827725235244266577585175485538144227775261652888431468243654387845116614576351581756482245733456844551712255315563277178765222257744626163334817277573254142747535858775726686177352563236624837382831246715824446367115453287718675786631212627212765588522383588154344712888577427326357435563468724358884812447264854531464824844113184544846122237256186662285331361558127167445764621185343178422241522441346577745826243565417467232271855188658147644156265758664251113557234824213675367221544618677458254688448511213663277161145312674252358253285366687348545625735148774745135115457873388136472737868436264514554415374818544616883411828571721582563882613825584522284461177364682365651343624576782662633816227514686886838586821626656242448732111685337177118214365687462453262281534226586885523623213517363248314212888771548827564125251876812562441115462676217586885581715646243767815564452372525427611447348674644438866316542213845856355681721765661352812388548456584634355287754713287556741726547174588374165473874751677533635842262771677381626735465574524254437344112376252422842438116334667355145132371711511382783376516853532233112678617412612662648881526574463353276482514828176352188183727126273532837828276244463777354546623811446867787432274555758345347887641831364135287576823265815358858638754513531434323627638213713886122544655715761861347547846412653848843748132111137814311628312228572373153747255464467842367736544212364851666315871563161583314328527358887834644277121336348275727137554574272244668732312431723761753717623578667827717542474257212386675265543817156282262445743861325434282831423673623877137428114347181683518115268278112467784831486616743263388185661178468871145626385531528786411278181178115462586645616523245675267247384382138545344884747335154217685865844223383246388153565334887638877486335537847753745858853376782258584684336252612614123522631136822843463677412481217343643381522115313348344534858812386886426724872242512864782338667428355274158885636244187871227116335843826315512881875736686632168166838816312887277233277183217512581417265251785515236632525633664575172318141471672658158221478516351785543142256846881184423267525618542658135881727445478183148237118885628712523214135486337516781312616515525386818232324228258185886462461282762322621327261872786463518161627281536432735876236424714367276112244527881554483558421416688428378348448315248526445444648358867717742245652726672144722448341353784152352374437187113665181641448537435237154352664287111377364856571636226136144461663728674251651723487488152524755257585716762781818824625887745654611345813637833176321716315424546588431413723732221877384226576153874867747383758453324624776883432143517138811124762847664165332566568382212877627762237884476181456854376768267756668352581634474771557852512721842547841433858853817645816272112138761758446342822856267515863814851171154357675346552325626484661628334317518547738535826713171672113581575826562763523485145815188718387565217752721412446646727258526788172533852761343572634617155517783714114615431446684661873537374574851286224827881757523251726886476835466652885418263238587582161735731552781458622368715358242275744462663266867656857531834783613537373187744553377834831562516268451324613635125642473178868471167575465745451223621462231215853538571861818755377124762727122746253812888162786857887782357556422528334246666558132663354334134747178388478314853688424851616537841513627552145137358514587236185483336178416662872433475861236456171263276172324557655251451632631221821212672852557326517617821225584443751554461664525324153364363683278815361812516545273167584743665125675631512131471753855766886436728224486375653264822581857567517177282638246126264628452281863881255262583745123518342347453143412542852446717732782214733888232377688742487565235512383653533836123557332641436148756768255281628647855877752115414147211855173734881247347188355718336141756125347686825455582372583138122868441523587878723886138361761367348428858138787681555237354343433476151681446353527216561228133278785365678341772484686713731236722352622315137466733762355651562788231546625158315724677347388122754676488273757518165643283641581432151855877231361647351774254464686247838847763124224216618574447775546474743322477772847611585648364811537171777836448832218181632513881646272126783184265567655743343255635641622338173115816284264338776886454341522184616888133822788535362712681732775183476477667477636675877276431156533787757243645887218175776263767848722873543425213288738388641341833882442178534338166342358553565637127331284866123844135265382852176888144316825261288785651827883174753252441677176686481515724625254723443132815236367174267236521668572287477133687232735337566134684673255555121458813113388831885778382363867633514817686563631284766171623477437416245167675752273675177238775532636146161484512131858572281352824755588162127572887853727636487522618531516357211257717328663882843546256114783766117865481313326528134622883723865736674466688555437534844433666878545226373662448572561743768786855345651577623387843434235717778612311181228438282157114476762372381522825741357163278837422312523782288176283872314327745546441576688326872243221214588216314144144643488237548188224162861181678325687787666581127444842341157552847234763785473872787686575376716462776724242672455533173364536834365733224124484542415686412427857735885476612281612154285878465616285718125618822142872833183621212181765563234713346187683375738228347788274131157188444142143658446283411383784887565875358472826672418136426324665252631353362215831248712412211714232564637327528785177323864881835322225231812485136415262787462161624212674874754331664414785375467567322574615786146877368132871133662154855423737788461534534733445261848355717451682138885646332131813467633116416818878512721248837155277774433118132332275457223231874428182328763274718664634853412857574615168565816127335638683243461357321333345372213727646172661365616217111761346562575256827254346634222687248772526514367216732254183462823484517152117133237714352846572278318146165828533857141841567255788773513853433446252275867536153577378138215174546845346414217827875488173243855378667466314368654132255516387653752527726615645823538861358137535761552811177488275411541745475417326481443827745418682535753855431185658681671411255655258161575476887337814381188381645818824152788524873133232833724147836434267875674511388161358214886125276686564513184824437867368533361314213246615674835615633744781788175187614535341772731487571151658687472618428178572384442535624353438176727771854614325135354321151434716364765665678544112185883473528654718664257417153888176838676236434533278752574512437848216174783238743611815554378132186768786537434872458381312723446122757665341631731255637552312633321866873888363817627327513268853748484432324721364842188216624811861423448364677677467886765413514163255584255257787836563286578512233175257281614361435861181417785668148563751457873626847251856482313284512578356487461224876166212557337282756466381284374521653134831217341365273731721174477144553728511253371624124344235224411171562634434342684787565332433877224488135431258337383183178128786351762787683674624363244154731332158787626185536853764668245851718135146733721211465168648217224615676684473526152484835576581523683574533416126576172613778422775317364363366477236242478521535275154554638384445525566712481534472781863586135561286354335283254845816141487138628378376355831561774665363735575536868628532584324547126555583835321523724262724228756865385165781514354224327762167857374221553648143438873473412127675281678758441487235548765847122137877475662715482415788186724283663368365753176622574212644827867615323244571171468336337223583338255381143283616821354237123681537362136866763617316661242551774877486817626268534322873843381776318471223656882547813374764358761127543162338485458267673523324738287233662865622616128218383462147854114286345588445454888168572627886276656755642585561317358567347827724478632311557822613315552822574714758763271441556853668272286373745828264762422534137155236162774418674312387278347465752264664416452362788442687886233488334471685675727867517371322331453586753245448513428883278674646812444275113182512367372184175562226577315223712114758658228374328572737571335213842252446231416124834831844135387218427453484476156765776454826878244658641185623146623541855222756166811734753528813763743383177155826763282256634864121387461674685281685575655862614118586438863326688664874311783771712783741726178355355688246154224813155337481353455744136356514373161155561223785743781575272765841586617413584181815166426344877222762812441856648871156112422255456871461465286168472244361746157534657114562786824316624435624223826324445272557685614337337654774214652363724423658277158883434884582631183755321312676626111726283666684138168267782123142758825637354526657134712526546226778466528253876775283241666888357283781857188416225528436277863562287568238415816863541338635536384363538618323167433743424173377273546868647325776547581684612182283618515741463858164536423723877383633271323312151388816356156844524831342856161445313778448137221248273631344274363117711375631645622457675717155517436531617417622721281827868822553245284662168186242866432545256874887724453212883751481466536662713716828554251541384622483355333251846832842244513757735254826335674348454111156176757286476571836162273484738188553745538476551446517888645688365275455112362861172141424223325318588168713342886348126835637587855682381367426383376464362454321168471185482188267637543558557456863123526866713516722251756825413177565735722528853655721527656587622237317414864472642227773527621228686345555764376166236373225886465253754214547553311878584463278616818312451333128188212515821476245567155133614676726471163436888367336351231857614651533773143224275475456348466215514517563716261555412473782178557426175587136241346876631161838731154658233178237142242342163533818425777488574485784643641163528382342281787782785853238788286218876261538172875184547322657275488347456133354171824883351741711286543424164322873428745235366876111147331221487431643466312158852285577737522537711345742221332742218278864428518436358278378863526552357517615251447618235257427858262715245831623586174383184426721565478385773623771738324357424411582223688356742827227668867646318725257176383841176147876738676573526138476568221115261853623825242885357755846312268323512338718116646885818374851585118263686123368442637775657878858845324865817786613638541663311271238847852451413658352537575635452355853183546532517563114461661346216372278144742887845221511462848471467756746366452863872558145466363784546581736628457567214857481333566338656632148644768865643828446424447737587318238274851428737827152336673236728363761756166731361852247667742354317513431472867243535853581635256482814318456772282633278323277784257165143763371633534171245141715554212761743134112132328163845413388131322167744825123761455723567682413362526541585876258713472736176153388177144864885481585185714678331175222866585677631558712517263316257686332167852642237234834462271273354652427738816472551278414533123686586165123712165733235786116188754643364567143854775585543441142282787257178468536517723513538274245722324751153456578733271531152512366568136817711744458761315475884567823231643765386214658451334238423436173387334424651317844846178546178264738717727351857634856188626683178863825446413485851716638511124438462442455234522665471612212664732876548114866535855421272748756881777281771217135854743481787868711834467387865777482842413576836871734718363471612833517587654866716585663687738562165887574717632153775588114375214258764523126778662676236181284345685238782663878412278857162651215112313855753537428137828267425452383762278713762715476454623758543353161417215858311884742287244723743413376657368724528434535732712354445552525886185661818263263368668873677137154781262125371242326267282224535647714174246377561251684426732338181742232667643877417486315638433363128483334286622332388345817728764131556821327278837185481744563666281164884278467731276761326625425342485748148785817813785137511448566438124531254771523311523445815571886273667814213633823645441558455287388556787125788574132254376223118116565488217148741867667166768861117136374827154543823337433164461536181674211268248453586874253884868824345821544354367565414348767178511843788218835475317546565116674787735111231835516633366126465453836863626584613163788411658851181381268454565184382736482675558447677278717783335656551352746817888176365587815553855265772672626468143566654163283533341762835544836486262245545566822828311377486344282335134143873622243332486177551457372512182146222247514285481751318872564553443711868673465673585846128533662752735722432228773116546528818167825743564383271453223813373625843825411872887263475483742224321684657242522872528444242887724785551736826845366383623417511855613343145216863715534612411616632317611411745375788541474646646241117138678144678378816387528271442884753446311628358765126278713535884617335281763434355155467282578731724777316514166462346473358767465512312585362772477762645435427636868656362175665634216751882641262867331166622131564751335165261563655524742553576346457237262513647634584485534864843825235858818614572666243174582325462485858567562714517176633821823423246411672343341684821573686717473566138785147424458412228756576138722567832156843455524476247511352136668573612551846552458387562573552533828418341223546463761116677483654561554677353153345371616612113345576315421111128584573717474715817642836331563156224286536334838236633664138628283643373226481547275627423111787317416333588434412122378811288736646611561178767764288524451276721787288452133562318888164478464637363255115617123631426776425573347346486751168654233216738745381645345635731827146758253338157665152487814437148475348146442425818386426545623616543655844414542276623747663114417586762538548418762837214613372477747771177434738468521246821711332856186164553318221782751523474183137317248651415767715424748628132718313428637875616763588176486112815624435335857664112753874266733447646627871825687682614186181323338571616614777313713424138121641365158843835485487533287228166157252283367463163414774623745121864638743646852758487814158773242826453244234146138735836848747237675475676228648663271475375313288853851823218221536555545411671668528246563536735658387437258666216364828374627566873376481868233263335422451516127368311761855323545733333156676224365684117576645661183737176736812535482721767541671234675717262335552184276856343312232316762281765648585146172773278511648532245822167255182113214268113134678363361173155682882373362415122727171553422887436513217562782883776444438875135553786437325365648452366814861346312146633534426856728134176287788848148142246681643215466181668167448111721422262714738681632163473583233482166636262384188867251883822721882133725224387578813661361725218574247226771241231618334632154388762137248322632117528544627787831832314361786453746448262743661561576783117534575446136563116836621851631237722618785712335275468265817564178621478214231284236562567428713671766265511286317583625325855612431778178675875761381165128286157363622144368668775478823328865572815784735423731187864411675144687328462267457764424411345775712418654152577566438321731361525446881523832322573343367827138265473321562455752257837382877782341731386145744687155167281473542155622344777124466517725265116864627682761262178758744627736856455535548125281832664838814658846427488154416327581622538745688531481532175674337751842511881257355725471263715588467526388175637634814776785484144665476245715866712733218613418161542838472686831381122415481471264228128574876715365588144164628548588177645178742514332448523677442713267474382358363624144584845736321235513638464312155546443352646442181862238745461673448585634233271318447683214118866831728358165848615416528225837681577813158436157522256445517643486722328117588461268331755562758572666715363724186848411831561447764584616153641858622516553311277446385528234661766443116128728454526367833751844334247635864887371825327281757155635147616474871361663485165227168848846544848552542656156148378474733531138221126265275878678831367141667365525583332717332723136731586244248871568858733381872466354337155144183455286278134563448422636763162134383766714645688116646832527534571266862713162324632234752652311484442121183884257343613867452864655271583725237656686684855511675488454377627824746833411862647443753573676273326544687681763123418231687133342682245534562688664546518124552378717732638854425241328566884151113326571128287552545645817587242121485441247212845611116723863587615621718651324877838183625785447557462254354417872686635271736734344443883747112777167763652651458411751137453545714348152218212258371787442563622183567121286832883422616716351772582875827676151382453117622142724827132471523322286156453827752145726117332524142576681878583688567251552346487273835761321377178336615342564754111124486672364543372334163471818727653485728523187586562871773155268326151553387167824168843745733517352753287576153786578632557135774223237462888185858357814847354464121657763538746565861227653787148224314166258487761467615428174265542234335645724488872722221315322612572533273741436141481575658884812112552245747587563788444441137813243457156575685685747837743575355157243783531443246181311172721683272232581883221346873838427516514332675324456661235254414488364214737514264215881122765458111638215455837782377778472651872215427367763126854536475163485142546882136114345447552748252145513222456825251165244477158684448648684465336464318413485663527523755281841362855141321275571131576348814434158533782264785853188277534725377764518461376156861145337141387316224213887237722434762723776381644575857846611444624642726247586838646337828143553385855412348122812635573776885126548743865374813823724674685257342121562722383746632386322732376476737414834683336637266153182127517427361425157634371518648375153415761457465518452255486283431515754137234854182181657835118338767548172784787731545511762536756624432345115235138215422356624565836273147872414124356426858847531115818411314421412586154121545847545215133515553266217213238354253761475778445326763523732855574227342264584385866651425826326187323327437738814127665643874173634177547454734171377336436263138775781265561554132881845137272242453582311716222168183774858641351827224686753323711757254687765888655425333217886226545371131322845836551647265123263617165246242387424727318816332776613623814557736682668336461418224847163315172434276433266155123335521574267381238617415168668421274745334653224326782648535777852737818225688184271872813111634534287758347823667265148683225763577477256324836187711545488344758841827241642715652274587145216536114855573177621512222686561632814228371421846187383636863775745276122871265678521331827271541331142881153664386625832151832316153457785163272244652383136483771746127745243624746332385226544617428764687872587587172874382571244886612251723548616353811276114628286525563722548185428244418677826577467731413258868377558478346644811814678162545587473857387735461211555172638613478272136448755232312281843577285132845776272881511183743741151327546614641354537711812583276265376318424814734714481212886674151355238878138355482747332657351432428537263816767435711175222481131338662152834226734634564658454858421611828128675838136723336838882547663762212865262722524461631457682882453567213787755383315123621147521273361655147225887712163533433861438331176527313384167478562424223658746573662624776646736172255644346747465655334168745685263473741782354567568172352581113648124771534788212814715632142633622424615565818433555621326734162127244176274588214512482622425556244631567547355762353185255182211483375758857358463656488158147176633486467762214816468734678266515538565826824517457821386866522762336477124422855276361361275267114613224226683145373747524561116357817826216813173314435448754557681653585632334882742647381663668743423624458147843842328555838826384458123285255168562547121544444463372268376172832212675411237818165363782784558156766333872424836523544246867383526444117837572648375755225655613642131352768161388883412414813252284614264742633316587865227177568757127532828452615687631523273357543535485155857866518858213367373766686127564533267463886243638877151534758628331758738865363851145133124156187821164266241564232523441224661371551547223657617624825735871533262167724683143631786744726873672127816347233652843162434251812658457572178653574857622445483782438533574624533485537787523724727366335254864751324382548135317667778313483217567818331443227586813226831221622326537155383661326686122843541858556235883831857218835883435133458566863661434856672157152112481335586545265432378378275466154248651742577574644362584252816427458742445276832653777236867376771338534458132127884824736743424338535151484157584856878287826273367634742213832115288453551845868381742486863621863621755174631521252152531561587272786883464487173223251336223713726726736878756447227646715346383678241177674612547655726723747137318575562273886337411858615246748427771317245661553338733767376718124726574874715142323184243415355736286348727141573781681845188356627121333871177135744324623872364528331257724121168225782325125855361754556461577832866371555343242227121366662255847686523335882865823442514772146166585755311653162841384416585471644261346566341618418738324487135163875732885375443515245345345856444836218338323315148141445328614516434847334665585377246164216465781481467448628772556483673676457521632563112322683411326465165487737547884836383783137853372683258121326356843156638332452345615745767674421516453367122832637725446484448662778484117875531824881883643127813324563764351744118681438565276463132843657675772688473488568681776272237322762162264846446643728571367187471262566177715233671678618134215748227127624521475215563846435861116244821243527123462848834815758438368886614561524365383822676212855883362181876883168776714752426222221411166355162217252524341535236436237675186422875436171873184323145527353276154783251856737224863731112332427466348826271563237516365557116147565448325153525388235462315743751786656385224132177313414263612627287812242547485218827218655134174267563432347611521364153785355765342847614864756156284766731177717588433343716433313538653571581514653218563667333514565132341822185722276712877752442315726331378168854877363278213636378486114557655285177172351882773742145253818111643564563628176616631672521132526552874565627682543773536217688571875141574426656856441462712432373352618748187753318825634876518165748573756346355638165464556274275455234378435446545756854165726855218831567663715368487434632328751122418658587846414357335266675415188278771421348237184133543563352364434436267613133564175582125182775848367533848748146478667812262336821678643665274224254185767771667144467147528416668623435684676717685771313136671278852853558622735332646217554637857544746447377525514474675122573564881836281544453386664742245188537351363345325358451717182465655117267166466641486621614331536455511672331148847474833253534316515313373125612772754585588325436475243857832728336157473341722275465166173223773732311372844824864782518833653577756357265588381678681882864642812475133833436735484174451264355747575826276731534746241188418768561286822186258877571116374337435814444328173325557533342884365235767368452154686436117473832344863122736726281221843364172867614333526317158654876513757482825873168238448687141463362823138383875123621761125458758783246253811653558167365822441213887667114381367785557521786844652682122647676112763136144423127374777411863174254532612218168445642613631867574178411652733872447527681366188255885525256582848837716312762585728687378246842218828425785125688868364282362554451671143478111486286338242585234633283257527827145436276123858584812815588633721466161141183583777872273876712623557365331484862681166766211331242166324828132411427365732721852461677277224267422431186757223816177534413438263628317231638734181281683554458858548382622267188282238644647277352216586135234376586216668267825818835447825347618226282238732137383116831276235521612488554754527141872675745732254823828132132253132528147653281725131533557637662671788554278655287554751865181212843621255364882142253612781667584443116258432137181876331768555833375412241317425126368443777421677141265873717383478485823334444222823655443122281251356533152153228621311566664777358555772867218855875667783868788115517153661644675252316717621263437836383751673387277443746758552224212552326144315448747656283538645744465131274551842276472225663743838426784546254125841337235327737483318536325276152778671168236786546361528157346348373116244388317752345255246215867816121877661463876584834121344224152533381811286364812547513113414737768467372874434233147112726184486174827778348746353121615772635813786267132123841236421551765477658177788655151672847425587378165635483244477573362117236663273387765585535624836627317688457867574228822324316671754546311164135733363745281684881261636767734587387276316268757218757532271487664871657652112168668364836157477575368675781118318418486215458723363738554478426681267156334656818374137757354717472518474351241664661663174888337535235756177853611543281542833364358463526754477218112632135226323551864152276327388887144263855836143631671127512418283558385746282363141773123655511473445785152228366862633517333451788732263315128737475287155547672238584322885865785748712633633713384144787484512271462244573168321765281768155257364273863637548754648885451361668546744343471812671643543376768787582435138716436213727311361882146273232171764233532562785447874373833573741867625623314766847715123153812712427824244827554758813118154474575464368147772127331757266344725513271262865863858831745345181135184122262522817858752848338151564441845614648571815353554546325825283261533676883554151164484415456512787371431453785685167777231381466362457636722617286462547216733541228116658477567347114123584477124146132288622465368567164874745831747574867872874836375266823488713234547628465167131767327737151868683158732252123521474432851588177124245184826814647784541688484777257251665343373762825472676877423332735752321634262633813148288257743837823522523311717468884238781188366154732112218511112864422737832377881811437787822718863263571728255752223574583527582186355247251322685471268824846145481556113828113337861786556451515672557532642533336536735227116662743685434134776815823722562273437418266365687727878551257112811182656383283734165346517387531744163441212383363768353884816416644675434735736468466276686654266175285773878657437745827737152643314515278116875668568561732627828264665222427373341556862387183662755283838223414112767647481248568168448366883827468522465184364876818433563258573772184142871148755453835218114146355227837252565732211262337314145856611457777132337648178276212758162676438221885642275726228751382857372872574783253423777737416576634116472371638872148475386682876422748874255671561855157342755357645327535363517321635588544672367523233763134137563636761476648157838431746647221635412612758137115352387842354563717517366271512224854577423188547241622826246784762568577445824137377638411268364823184131482462385654864153544813855615885275876625838211582422574411638263764861868435572768641271622416832715181857256422177657824856452277868443634457773251147134832648767324275118218848835254362182652585111588235163421588153532111184323333816358822878373351453244126311824352456471226636744186775831337267878111353516252338643836231284456224816617467261116578431836367473253471426734247478488722861275327422815511537441368673481316473733637438335862188754178165345362476752625631565172215257737348533336246561874784878445314562777285316248853255213867673744837747358683731153624182413131183541433426178636481452683233671818658412821862432343566812541255144274661883154272785382113468464171117182631858174243478734428487717572272673572822242784643177874386521664276717888811814343261766468851862267737356258442621158433415471486683474156516781441338268818815325252825727286663363682525384723554651673133874465763546284535211464548212258213435387738835516453122773143771637582754346132454125543343881422563746826625426814117375486641761152771256482667488678553667756158226163744144614463513226732884334764875111254721412735813152462218186353585218552853355582134825266521136541555187634323765362456863211251748525676157648422337877727237137211523744881724783447334215114432215688833743784564133324723244361423513873625512348277363871327572572332457355754316786137767687445475312486785772253636882881547228388581833631515128332311837423558446837286216711575217385357384248648353881115754312558612753127857711361588826573825481275625443258348345861761671425428383744178255552178253718847483156724716266713847486472576133457872476436577573783816265181871328622183814732864251325417736784364622615346587746224283182854183216627326523648541444236627573814435843886576611325414467786573436466585387865875682857248381516171321235265727785273633551424364633512875481558565486882718748353166476818846344287867836361687473472132535738258313675718482318215651131474742717315867174472133415357463618743534232236844647333824855483762823735263374626241172617362446346243247387421483656688241716254673788552166253476622826677865636175658226254271646433256578567875453176371818771135721123712313644814125548875773648377417256435455765616242771847168424874768837756741635568645266787816667243834847644533422157315211345854144225363642554538825288362344237283353528543372887352613771385766465722517156473181311513182468676314262233363524667684738781567682633223814255616181463645773182136535536213156722843375645571242672462268217747115483176333265413216731727382684784861522832811127277681881366312125517416317547367154742448228238666843833743456753354185478267241325587143512241768827218178568635211166554856353147778115727137334418527578625314784734648218542525455724815583271482148536614874363743586217656333353778673622376566481484216847357226252437615654423455882275442218411577427661785438255362358811473857666171614423238378111555636853635223524547372768661818633871413263811116787822432466351868857353717235435877153433147366131161462486376467341833132153652817137463251761252513314485551338168164276865532244164556388162338732268846812145281857285346612171283276378263184212784345268182645181714472122118142747863751554846238864372551242654142752511416768624186224477628182217277145757334557662886565215218668632613523342368515821213212581516237787177676652584241233715813484481325773568648255641445631781486757653425232583237244531622572786524836353114523474655226538821237438647617411888514662238243355836345751471424272287628546687383385387553125278166176254178844365187728185747836168864817611387832472357117228173241561263144631321388467825274231524888551167786283326628861448333343645581324732871817122657721275362462621885412833816573717663861242854618627744828471777246117787543613333755842638583851414228744464536112636176858828871656325211381441742841847481462427562338438148345585465513442117834255176168664146226663535133682221666765448671356683363547731884745847564618432451443547766117312282172445142821742871736815841144146858628238263781724832774844517632687572522131863645471762425237846525541734531738642555638447415747633866462444662454523388172312172677675725856115551471485356563387377467555218172885855212681345657133862633845234237128254258434116842425312426227742383384151743356851644211235182731435874457525577853367324152338133136172756658183141211888143167146424228888556463877633713856233128265278384342246458128216314521588182457634436571553645454247546443238738175624366786184511165274465516816414732285131518165413662177227723654846476432334161174554118362645815818572811122555717673551541865717477457148412761544248856245154416654482481757367575551577546835687718431222564782787212286546166115182636533422825387755871458612575522134388417686853415766875631546484278232256111461575625746378841642441457286523733748846113767685145674475718236115137765727825153715227171242345886113787117115614133777877724768131438337524131534723388823162417638414151836445321753465361827231771252373576125412573458282175435884468623536488725858136756483552163457457352513825238326126485765816113364563454773531655361253442524465286633562465242423262514551181522673454636454462723574251843368477257283356321285624224174675671826343272728346641542786887776326737273876248424336584754471182686172617324782722236487628662357788431645128443738615321254637532416671665313474356436755221358323252816556862415728885338673487734885853256548678451163351724378688855183737453173311156342163364461882384652274571616142588172832746125241646481818856386165657586888757723438436187666755322422826553415241848322651737431127281256841871845862241262362452667127611353367423377616675678236884518117722321762212827526376627621843628556134214164526176112218264211285283315845357883885476774441238613118678271417471157678283226243161234217678212621716362734468666577215221722418484283768428135877587774327222346634284747657531431424163887126313656855127485685343123113227434383545271645537536676744535247286335253644675761546585687818153626642271825311244568837582546557574433717218815571455882712517231852683513172755681776185583448158882136447773331354742686776281267676742711857818744235246172157484576623844584581168343878845241385425584244865418563428858123252565182648685622832435762877267841124815284385346243362857683362845324254263138835313748154253437821556635228828638722355817263312823248722652831426142621651323658754548161742821248865872612115611337851427411226373117351351688365645826152458681682274867213517836447536173466784528832541165146425332412366214732831736432181281314388225636865114331315733511528851871762382547768613686436827728831162537882357722625586317458134347133758242266271864482758744817182288677317736416253288355548777426363487858772737744541371826564715728418211612873871262611668773155534876312133817243238464772547382574636822264186676564851367421635665815836113327628176844441451748554583672162678557616814453785361481221633422758321156458788478834462753363575432885843777384435237381163443426533364373154684666331487524641736511334816832877283687453863772378435466873765582731785465214556853137811331767763347834628143738363644833118434552776755613727382516414765776217322827782374176728227755473444458241441247548646478335345848627713635748664674557218256426435284838646858653718341623656221486854321135788827578156878125544746153445436855588851433443746523641445173138441834217324886643723858465771664482436377675373172733414735816476234426277433134247556858826242426538622343374752543654617583763857281853643817374546656167868248617236564856818323844472575165712446571576718734657148826585284517867818663828541325111261724132222883572885554125781822843832416546175235662414247243311547837241561518854417448722454145362354565114132647165356126358726622418246845182562757122857672677785767277553387364213275687661412617647268182124256146684684317433611238442263621877371352238867176477612167684587721474133165344382758578683825225455841157415165312423483552115713833355653347481273258136362318282421468223861115721144836431742323467418221532321188881355647483151158353675227861523567181387426413715242277251682664671568356627544777632121538166843365417678463453148373277741182543862853585243233131277444422537166323531652882255651331245335432611326631378565712851452525384871825715427728561571772851872547184588572124818431485563162186466243472476468267651615758463513771121225114342888872266685562722532572312235385623647737386157856181765818135561566521578415736243387813645611327153245672881131512186618675143824617824828412883364316216884673567414522341865148626166848726647186826777257514213236865763351223364844742257474644184188338385555557788358138427217628276878258781468334355222445871121481147338447775873385522441811767166686621678377461217341842637178777571365535812383185218258733655275544337658423734184552164222271618751872182466212534656134844524883582364718358123584241323368713666735445362554223761365351667421267342237545121362523887544226415678815847155285411656572511771716848164428676687414724164458732451662486727144553643248817545728537138325781523857777518472338844661615866211727354511664636743731361868874773325733756224832333256155724365184136533424611346871188277622125384521434858476553386847765234547432276852385154737636664554778622647712887657624134134573775322415182585121422764728675714466326282672435221123244877865523133483768784341154563186676711347721163771714656742774436582255784111323257374888838641871858723316428532382361878771155845141111622275774351277556584222576622114621887876512432572246754646343428581836423257453458133812223171823644284854484644814883532528517245845767316717281644477125814462826742267634554616118484326451586757721776376327823641645632885674536721477157535233773176815353387388536168114325883674353237572417752755154285543565137866475248671824136142727633141842136164833476421272283384884471212325758524821173426547852565381534841528286282153788856222166487487634713176138163721742783884873512526365474536445264871552721425417813265528456481843613755537871224647227251632176651688815676386587463364238368384588624422531148223677111247846655284315468713544727871886158771238524643313381848115351168867781827754171857674437563653485255434765625884756713253374356264124867337177761572513214663155253581835178728528383577112456121328848358786312248181542218242147785276267138341283647847471371222764554472636483114633812433133235312732738222653138265655748681214855816587653283184147325743867423872758613581711713355452513816511415433724327885854633862121163215643763877413833774565453487466718324748111578788253642461531545871816218383783887342628318551714487645244121153855132211514714535754854654352788532884614818547556333276517438176572161275475783151245334136474683814285485525753462348522226624354417416242376223438856853114328353155721858332721342345252317865182427263623778165682712166555631874585237852688376428537518617546554333152342477254368776423514486787534313416745224225118311467612152166473356815574444744341461677424513621164565235628138777116415562278733582626852135172658582884651652825374322482127137836424464673551647512823841836517133252485438658424466812145766423544315217867564535853767231178813776212311768348346534472236763365254884263374433216184158467521657183418828234646185365274166522752517566548748517266232627584824485377212621427115581246883371824357565737774418112113165317761452772362678446565632468612752687773346525645588174328326534413352881574563445143528172777714532565734515378852131238826886564767388882413371636222362482871187742821346264186447831378438445734314554477457475323448663563733365252431685515862437537648452226483317853513638613823728828142657666143687887716112771737541646866153646252441262613136888747727216262334877473631518477348183223643328646717345527854382811886885312536223164557157748224148763173423557111136427887377618177218333354135377673631142154662612321686223557417822562774543355378211132536177662876158427787338726457167151127237451161125624153761221564367343452255143854586448388237467883416386722777726734855286658525428581776811585168751636882622473876176827634358643853651682254555143466367468774373635541818538288751731674264725213718781444872228668648438737614747154542684253778328426211572177136526846261338228472478352853882387156142754253457548467311782376638861886517516122348252328837868217743341848585648286637383345183341334123785212518728765783268366665234781235575873454875132324324326868111771523646334224235113873313664138143647384325621523256737145837864721288866381271318253668236541162115228327336561338552856782862151845272857542421217376881723683825117638635574836516681823552363313524622751452862567486223513154323213584388781321314518644413763618622811233164575578256822461118841323666687721632511827745134668546214161614585617862313234481184735124845744166245138753676422281324864561175834511227686271274224816747871833578287737846878171288157784254373572431154711541362523464188465463276673338414767115614441628422647357278657238751764841786176123584371735832376365232465873253251546642571623522218574157821163464273486462241322678653154441467476668165152531311158657383365174573885422117344545347588655775467761442275822476634315456435436145685666217571258365342267574246425623162468336215215146863651857412433188554234128886823152128464251647344246838881227588227456822735313827387178256518634687715787261785858664525317635218335661355368316332642724585555258814214342253542427275171876756876131836755611223885362567482877156545816271367213366156254867325588272223713243626515117271433247743831376416148721347757583277412287177643336611734577325836787431845488153831885248121487553651833667554314846447455776658128462517687574314725323437667341576581364148813683433225224631254234478377768183484647883745168572154717855775388536625566322311672718587184453533848314313767218852424733731882713641561533535575362664642546272856858125467715183364486423612458525726465832717651635142637771883435468361345182184411876778262182225762715656628866162236551452361453541128767611524214473561734714517837211247538724741471171644214826644253552716442324218431274422788813372733678131874452546774866334231836518115252543876884324472765215712774476816457575167514132821367187323711422343828546466661385235274855113174611762257244386613365111327763316726231118457754687434333434615235354113216845615166482674572176533444123316122646246463724124764134352737767683671732721712736117348241366151278547214271418448353535711677336246244264125751123437543771271455135573575843714872215172556184787532551455165372181433421456734272546822183771871787723855566234843314727137628755732624887867652156622417161674746836163535633663355817645385437355342453157737384278537777371731321831648772671213386238613445581858536813833718281231273274684777758265521446127215634461877616568748542434754881415628774667352676124588525372442512316457552486536318177861485313287827332563578448663825262217327876584361822123343574418318187221215825117173363567528418234663148337533541351743125336644148655822643434588164574877785883761166788867364744178158253863426175457473661417813738618677362411726635441866264634756571462823851151257315131683163763871342253558254381554466316517532767144413412327766858756881743572431577355282213126686517126711582646461385336163475325461868575887162136612567631322457773761772781618155561143233753527341251386855232283767678153375415133861757243282425586143255856363622482453265173286558623627585532635174278346143785158566336282778474646561768854484874557464461584418516387325851741687273658883532856328823264381372836277658337138474142176825868464321178274387626852855775852726846447888324552722473143447163368144238177561114143667835582322482544412685825242688168641182477581213225823885661553645774322211288272256484321448447386782433848247832623564166737627722477825627677427582563513546672262847885188235116111666775474388616223844381461367846388357733317112147131842786331453547446371732843435736261727321343142554832145781577734726621341732178474822764855837615342236465557362342553424637421214381322258247788176287226651727261578666663313571131773538128271774223712551222765536362774841241534816386383368663765331462372523244824812727233355831717685443482357452656166733562617774227376537384564266814871166223621214883436115451635331816225852545226175473344736645363668311548432323484453263861674737872763417517251226117217733164664757682871681756665441811431256828482256483342121235812524627217321282634362545623143354433263836536216618853613128768266142612441148528318468517671861286717218464388588586738736881718325717326444416723635536541522416556512823873744153487756737278528132633142364883271121557671563517188122588472322217545242486641216853557375824554527765667518761528786333827845344321875473635283635133882143284371532712575867552677455265747881548556211368152153572248338325767537828126117261817441432578462252684531187378132154425332534374661287435268262842717568528334863643571573767537645173128612123634743548643674327775435855165425772511343381132774546623476882326755738862846217828833144527158715167426681262627167628866451472784664843651822872835382223887241886714363335358547187117212568576368553773643844714154455588215817617346353641224835574537522545125386516112623723578417478374157645768387217174123451321582865122414332174318512467481711785381262475762187367543366855533464248211144125656231765128553347473226851118236716243521822762416524326372868382414718468542362147828641417866318312871731264857735332277471428244841325866581646318368685878175842522678464775815488366822241834386557623362423136437366543843411772532645886435464338725722177672788424545175357578868513647543387787657735631263534226388586516877378838253753888317452676378713683355753861885358647265468355214362855767782156732836746571543228656735216627874374785463887326852523318631116748484115413142145427224176626886821418177684427524666357827122448267756183816241666176813165513837335885671732782127544774486563128642812248232255217313417864354251424634224346826766734216484617244864261614663171126147828176318645537734866851361163766445658151688217631855723762722113668286237112864552358585752588316346488528746548448711864356713455414857462584655754165273137615337375318218111412851553557526547553671245647675853815271254527814638763861822771145863881582173362164456585361445567184526113532516762532432862215254136676281111424586265263423638326734283135611452678832744463118877546775371516144781727567486558424733442635561427877345354523115173143763423541878455641473555424738135173353337718786325417117333483461718185257317431484888441548128386521337365138661477827323263653438846412587567373468712764667367512172885344457834567331421353585182725737783123565314665668757738366675238122481358651835576844752536641887316772536666427624471167813376524678646616582237328883643851541268837177664538188277542453483347178838887557722334248328618712515477822823758857278711765226624127586637823753246318858747154215773475651875532271584854186413565581168255671741415572735483657541486236325618817288725684733778418248615768556265625173273271615836312313864774218286642651443764535554873176273757221821418861167383141287717316531486878845814585646365622871378575485828817682885732575885172275254586174768448665877163356676222385365775272466855443811347837618884377235381585837443444515388535653676364742436127483238383418567462682527572367445563667763785442536323683335854545515643263645368266376276516448458318147451235266685234811753353778258266636634786272687376831612217485724284355774115435874362761615141287177553764728552243285457783156321754247882365577635123432672244372712381442524663475647326381621424557831564436625143578618214768631488463744118371578286562342827637714484526658882252344667828244353252377635262715253566747161553742615716762854371564185226173114336144452144718211667283813348757461371146722573311686841226223185627662654367246572234852775851666322327637117525227855572748752755332681455276811767338226738438572211776612256131876363136277214285286631618565174865835623555236453657173784853222285871282773226351231884323111253554716764548676717833581172255113155172851673653748783326467627438517481227513273724815643613254423235122813774442533775833643487871624854216132343486765436375241867436454761717637856217835668258182537354678817543551431356132461652657716461871284237868814337283428771777125673747826681717654477615634111485751437463366612756264161583867831165616743785784363258227566126167567672175452747422152811238716467786862683628717861264356644224831811371748636285735545127628573227611183738788884178375764148383557816334765555251766215388622777227271844146772357874437115327627864532621528815456568226213527528486283267176636278131214432638442544212734322626413511173314145283511235116454214768166311242864533356618374685372132287474654581448531817625733733544754411314656222365373543422867643321874628124746477266831884111242642673644727222541754785244347327857412475444128327268218274826252215756142532383745657315264364241675733541765558755785565713464534538257217487141434356388716135655285634544456388762416315565854771726835561155622531177138212432415266583371521137864522214722584125653762657337368128522835888761635663546738321133481226643561312348428786778461842642327441642247337485216243251431825455248143551853566168674553814174876747846665856126826251488678138181287662357445883742426441384854732288488526756687812747327784883446522247136662622561416735467554843576824512726137177252741632536448253733181783162151723274412276835765646141315437775878413858116674845174777187123562363468656672832482515355886138328425713245368546777133557724533842255376561373513762286734443573872375817117636523262215665745735537787445553563542531667758842812414436342273625866644355346283666261573438335287711533217587232381574865565644835652465322528878371617313464374276347562445512447325372733751346681236584286628835853536527171752416142334767854853613672157487722268454828532285438484228381836634418634543227331835437488451317766476774375747153638451143147754248132876241128622738681754871747857627734616576778558221276476651488863454648858577447321244113465474237561128174486265234486115874566864286514236822761866176267371671813647353358733878715576821523865578115515277623528566443387267858787383475513351882226488848745722445474163527858883356522446885217268215383354738877834167623662368742317435671172888235366541381361112687522311545453462845482525327764621888154863676326833341751253733478148315373485462773138273456346724154744755448331372544534513462526284412471852185855333334148663246685217471355664347823417636425218477473664381555262835411345328348313356854822327826376158276264338654877117874126652166138425555667327235145224578324487443124428656475444673426481171652831242227642212427733365487332463634384314557745465266516767533763713414553565381317552165544146825848152341847526328774243224521342424585224583672585234318647516675424833827535675454532778124131674241572318473255853815614618267845232885577563326452726833474442331655332346827383217866784475241473353284237628483565711622474768415174711241423477528375564482261131887435814867764724356252655861555783541732412333523655117874233478272513814114388717176334835767635872744381432443423867188413471826722363772828844521841481417288788641761431145481624351686158425825447658881832261124364281835654772452521583171318263387137125554563231466867151663361473724467235875874558263711481376233823115428271831185625128613587313367547162764183876881856364183821572124286835228274834887331321531182824336618684866553453271124825777355783327862781453452518671747288342734768856858635212562761581288132748282834127682263382771265324316354844767172542241713275732351578521581466614834857532715241365458617518515247457214861672168214878282815134715585488665742123272262185767813575518733543862246528231682824814134463356545518386224425122381863166526326237631528724251762342265385666815451557168652571266158112276168455624853247626487788214453127231113111784467276446111585246222872636416868281176331523462436177684614814773113742512548654263185344335126212865735811745342217463662784448537118436375133332322871381248126465356646756861671134863313185756423886141844472725686475721278873728445356275583763514643868841815848815268212641323158245711482733651411163876864425856385588335255386726531481628375688174574532512486564358253564533831562237824216882831436634778226487358686218251415376633882284522563827233433282153331248177463461161854855355733737232136756344831481164751855574424531371441128445752812333321534416677553781664524582557286774565171868347151121111341127573861744865174634313624484656383562181318568371585822716321132721176132275333553634738261535182133555675664185265371455636587432246548335823271667723744148456136588536434328383876886612827573515541787111422844134483568525638844273257721132227666738767453846352872737835646187682622127662881843323882854861554724222518816165718814272244245376651487328547245256385174624886826173325477326545237327723125677628454578453418527676814428548648328228847832457251188753315453788824532888575545336211177326577718485635867866232453371746421865744831426828713214846254522787211234655828656755835538557766254474846857553757827155128345668145285743666687486276851175343812151885776655651464736413354543524343278266215862788663312886385868413556676251212888216448686784547236816188676371128733356467651686238553138317663215155618317546457361558325356542528444665443465737154858544586683717675531483424661834821857421653363574778278348174182162542133176151357772131718188525325222678228311748188436822462172732461225834622636464277878485512147454777217465877134441252781127145156185252386372833862186212847315513247711862614662675651744884714645876385752666342223672653377626517317872358724412616311457323785734252664616283472686668762813656286641415747713273278211728676466771724813181652474678112434113853564754454562378474376177133722127611825466644258374688651138871668884442641512247126877438345455147321155675277832576425872233571383125625846244115112788773738664212565674251876634266527484581775344521646876351578274778688575512872422617136434345346838345175656464124311813318578688556117674655727644765431364182426418111333627646848826461582183366385612358148726358815154225855535168534444881388655372652231174364256668232521542735123671248115783644288428125717874768274114537572646511716881546184622488571374835737313822613632463681613236745783267555517166148752456446546558822244576337437556475188826448244323363763245556338534466658243457483375464825361724762663468187357254211613211781841738282767175531182352247477723488537573276248756782725463577845581182317871755642587743283785178788386333547443487378518217114286818687766335456184452631772236543485162335416516621722166652828178341842541788663735442846712816678385722638315161572577353516727782751334227758615535841478453521224725155751625738744682315447657284383357381723186145718135315362443584183468554386725766667362836734222435436463516445437813144485338373524251775383332543137745152428138555257784672126676264571816888634836544738116155418721176722533885474158258842221162383575785336138614247657136377385152335217556284364432766482727725861848181513373626626536856331843134525576861115448525717672647573717147884238523584444443168218256423853458866668863388763721577578727818388258576573441667332734425428855143311136128113233713823543842453236116738246757635285867553573175167561442743445255124387412542525535138613368238714882127446574371727385162712653716352762228257748382411127726218144225145741775411483213242256114253247157863122824451163834823511561423116717455868351843862483114486282654814713325713642286623824715175578636414326151326587388785646166636735473322648637816883623777183612654627328738868632167726327344827378772214577384261834324177221158744363386266652521284185254375234472734643664857423475866345784547146454117414135188443352883146152324524417637287731835731528252614356164382463251588632474555382722661617757874267136687243877115366614333743675512315132641628317776182841387388257813761883328475863376325736253172285768563115311544848388122537317745531714462225736422532628353311485225632541342124215753163671755863112743354355257865387627832374287347884662178726153541824113256123538424786821327762886642566354414436388737251773484843185336534521877125147152884664121123166516721877337886654775736256441313552757335162744828438423662814547231442467523311234278663357324875376152845842324862572233475538562234362265232287313157888215421471375747785472673186861888517138346825541266286152352564573342325347387832312685126747737121171267668115685484431384514755241768672487311441313224146556843422834318435657164534761762217558518584433482282428576885683838821374311562257713632472656883354868315226454145527583343851218513616358656664315366132776447417737574424344181334374632272712746814522861573313665682655284642371572663341866826156785161538114873558823716181735248865722253572326681561513323525232116673785563225614414265354767857655355225375221785878176585447373267177378185524816634183147882287326581377646275838363487483338632546442725556153751147324751684547445347253312281645645363782327114717717736214833587148858188188265175413778714333386233585187833275458786743322766147272823377847555853784652476611317447278658457834437686741414522211453476334468533817237387878221772374167135834531431757312742273658556622277281481278261285723346645857558214877385376222183245274775786367835723835382615861665182244174453562781556875666211453148433681414474252378772286841268616455754466631127555451127854257338728263457348511264746654737777172745165133484135488312417857658853316531251167266675162651345524865448462834448647627214282738523826371754214635743416735327842371183325215787426378224264355316314252772757853616117621615113248813857636282288143523714472465556145541874384215434275284287318233428416837253858277424387511867814178672656416178628753236228653132377267561532158253831163521364233357246147676167283858232561721662778618568163726464675213688372666165524487144138364758221777482515683717717447847678265366651728146127484783815845826326664767666486335782518123225567138513386178385244214536771678533256416327557714263478214287748662467327217542725634434815773121446718556767236374185325687657123828278461141877686883384282365356123124361212174215728815157574863326353854215272361715673786736775865885675528173353574156674262685854864585121225564713841178777326615265422773838874753883763636566853572547324561665673575317118158278483825773788528437317122517413883875151863662811378223661273384441843318523856278368574452317145825417761575442544547644181745736576213382251234625616676624367561616157423138336655181543613424862658415631364356621576175645175435842114247444248413687262624743856658268312355634747654252333633777668255113676725626351178542422464212136728723533612533524186674215753586235416715615855763816575371242741623743255138761423645563783434382576775788821865583677515373761676851123485724835725251522687585456683114187216411117547668521731317442861322772252251568558135177126552224827537337585411523347626564251458187814626227821317355288331235538258872118576773312251856221774165753475516638818818674268616122425533563663655685857351453474662871753335357742567285487128372478618136486585754577257785462266388558557783674782635388687635827264717138874657745888623257611136185422155871171354448444534513637781681618287577488587347852871112814221353312114455538527867648884322483823666738237824886341683357168281176874338865238371167211262768475812353773248127264586444734516485723432643337657478123222676566268168256313344672151864582684563357522761531848211617515873471425438122755553737811888312442537736765248727663177877278163116313541862728535818176755217534132864425531574721216633311686443365778261328414424457711747726876187661233438213211772266432821451152862135721881884846367418673787225365474257388831657878523144545646574811673633526633286711658677787551763813871453672336151186845151616162477586421553571668747568736252645384181444563334524742275172423836365361641661575871141455824854718146188611511771883238261255511376514311581463268555132512681784858568254221347658531451228125543671782281782261813645423138157481757321138225671786347858564573853161115175357113414254671246411316418353145126666117757654287753131475111482762576835485255284254153511257415233663557237446682127843768542351374317283151121446252785612383731884172757343737755336553645782147325662652625115722471737217161645443538316646351213351835717466752688218157373764822151448324548453365362254743518744358837258861336865335854315884161688846862256675478568772173888113458184824765768147652783371222243728624148265313124754581624845175681245272233755517282688357582675113875662762721337866244525671753556872742631654557215364854182167216654241131343434525828546336257633752575558174464113734571867876557364158865843841763137441858726665526324575588741172136274552254436877574887284844157834235664118534477247822736382446521465324224364524545676363435163357182352376881576873246878216741554838483748717171683133551821222514581313582723112615215271554737661345631612554835414887361128145461541712238775155471657538444358535838368131385547446227672534686823458814628157883811448841688488543612641341312157675312217536447284426244275412876656254536741366563125758358616115433225584876487446163676151855652338583528837817134366673217725476283854152415861636166628742274342863451658117148575663582183457512428135286241112486776725863618767587588321742147468248112357265253581811461568888522725462183728866255234821551535517466428223877447375721127148748647584423124826661628677754483341632861667382845811138348567671836848275847453514218215668751385326488663768223124624748866817622341718262827645368513287855635862345338245565176272265714261736153427116547782437286664846313853642768425781777262755574684786523653782644242764571812234281435868761333342824185146443752711164645167688636541668874527112756773812564644255867846433847711231855345643742588724464875514316747322488712817835881773182681634757174534836724377631548136221882888234146465636614267362113714463782258754233751645348183837618332178814528827814563532621231648223256434825236657348412558313867763151645614317815674644446683422115682415577746542218577858563415581825461371762788485742782134627272466348475888716733535584327864668772674114758552838267574767258478748786137725343871372152164544126121885416687458163483732745155441335568323681566277551388141836234756456227844755763741324236516155236537346525872381753447741411533358825424676815623788245578444378847188411677354488245858836234888364674321351225571164743762275445754123283234763557573213668364581256618356845618661112285468373634778553218137825632145525364756732317872243177386234732718612314773762762427871877385383857217628653434427768766212646561127465156367256761478284117544854683361885688224882723887718421573654227315644286586435524656126217418438123725287767262215338134156318364458433565526581553377362642341635683335344611748855755844658138544757225223227635127128853588232174567141182874447274215351176834188845187583816564875135225876658285733753433368881131233742466463461626326863653721383481447781124124741173185481416752887862641817258371626236756845145345267685218382413633117486536352433435588553421278286625231845176214327114176164161436615775331722356671774758361215674782124555832847582563178182131348445663471564671585723744583748548542168548723421316426878351581245656478255138242842664423886263852847281272727562148581274566565322351438756224665175468117646421444835883188322672347448675314751667226847541721165433745535575187114472266662781644628548814533386822344726848181841184485845151843458841248465682442575618688618321585855863842384632762521575473531231232116761548445137675642654817271433584836436574215675224871762121127741854584686358457625768731416712811146313583833534822772558482817852487552834756755113288653137585515237315336261122441844457244528553877881461828644853174246715576645588876131222778678662781187256532615435732653743772268816588175251311236585883358737676176722761715253277673727341168416526718687618864322458666244667327238516858543372563616152748782554756261172642438868428144833777712553624385533632388222121834276138846454626644733166171176673515472556536464754361563828275112833286412664533182485216612868564418473567713516584762314363368841625821141418172586161156884171812732151734663271645725736673581348737387732578547223854886621661658458533667483627141246881822726566371587833228141864655364155658271634663858882821722667766765383175385248777864553487453617567213451144524276581644127534257421542667545637647363884576688364536677126154366845548812314247176848483283345874385845885552618561721337332715776161372633286246468455126173748133867576632441432666115134416611244867576457771261286586858282315415166126471415113221176434315834868214426587623314568658688376347333782832518342471461518777146384176557457156345152225818854841324114588588752134814865222673586327532374655772663842872762358631424337213184377168323716486773222155248454745753811774774127881834875314452773863241475265774422156354532515721153681727133531572267165853567573756475767383448173853284785253261846613766581757815417756321152133146262743382314333561435235384574771872416243753545761558184376367852767787631168611656511114278552738546178671661342642751125863756335451111253652115861385511487133176486168551258332175645422236628333662428258581622112737223536828333113885572228728155632124136685387143346836683144886622881733123387612821236646328542234187734145361458835181317386752466163513571463348751738377737116713251876721456633238324464355115253878687663444814651335887818437821738255347667833551125378477614721744367564517611855355258648811255278231158586178781868844884781444241658313233166237528826665684675731334535567242184864143448661618842216614275784511117268414377417625243671358634561541785781628227447734783471677661217672426851787875534258446412158158137411277147411364337425121252185221647411134174515474218566234516484248718286871713527864137557685142247116873216171672361737463764658638253487674231577364821224611268165137848233236715114653175872581411662376528342221682711731644852755162242732682263478424147237376481533323484116878464476121345468656584643375768442327838733118881718275386653151787426616835842574641378272777872783621567381865166141542715128457883342814263417587586515552751877112524653553111562825525111763738876325737735684643226527867451647177261241468557375667315641728481653331427256817438378612661572165471566333646573576626426438553136438243873661532574816532531551122636437834867621682774576742176835687375885561633288665584545228662252858845164354344413114333522162512244552561532315412617128687221763451776453265523735517624887175387272285877528385337778452337822175751318121317233372775751144726231248868426172143631453316833371668573365751267433836422443475546572715148661153463563232258316327751262253338336821315621686635331447416627152388767613476215441138171514513782361372811656342631687247273286716381561116365534142671482542835826381243361868165188123618814546674824878655733348674881677744253628167576158885126388332313711314526784173886221664744242666281785488366756868374826338576812776337771151667728153486834711766553524786725161887863334424718853534775153448442525377452651757485814734526282185241851471254643564235828317477216686512134582522868214147433478172886451327325172642283257641825411712772455511445528362628852146233546373564388822445432617153855743844361572743556673782214227823221846583567886515854171578427284341178287864462528134375173144746314687447682442477428573853486825754576436381374677261452422771733315281457647614135354657438877458428813526585425231866162233178526317485554655732381477845161273268553158621633345624667141356278525268526617765735276723831638233875445581728125241551181884222572475657211573845475345166863684115834514811348624411846881656512488385376565531148776776332127423778264317355853438456311636885871481667362246485541524112152745751357743114375766357185384573813542678122151278775125858637862348655817782266351614644375734723167318152346351434874834861836822765212433676685622238734767634873528224382521218674336522173654122342241261465732755315261157477467632561336528651687815254161821174426151277142767472128611348822385282776722267681316174747573532161215717753271783383777283433258785717866167677871668714788658338713186587434762731523415226155426557212375113544185551182231123351615171186513842481375272343374365187315541286885566742388158861426437225235651124458674422586773571426288443556364234337764321517673443574576672243855811522323182676465642383341616153177651481636176285216434418468347242346613161721558212887444737258445573364766814557481881882116847533184751858365866864516263183355473567248327363181736358477847738851154761652756144747533846373186765234154548662856766343611325411214812156816835216778726364583246551785717356333822213452112268622586474685362383277711173233548582466125488124217742824238726421664653363347867411221652225142545827236846787212751735387876567741524324812347641428778532422622485442126532258215375537614424444528112271337553415246467476687751354754253736715612533474565821723244288226785216577387586686531378281517773477313836312824618541876424444461481526844854118227766777552283176434227635754468513118623828253645252273877217738272212424564257616146244863183343427345332452715167785756415841742826357323548575373726528337842584128545424181554182112431557556676724411222877826721664442122165874325611848768556737714314854657638716324277834768747526472676652234778273617272774356762883366832417273265515882226153237167683122487143431834152243252766725234467465545873663274634666364654246812647315714387173155788272477117321612827466868435334531763333533552371613451632677765445227422541385452465856325712315386844785372188451538388475145755827238622745436868454327426448335658765582747532671677135412658482362256565436256224444115275441861542642548765682763241831317616265388765464527357551223865858587451328187683287441113512164585831662674442585858418322231651786867872363273528478585687274185684311175742888274387386777382228817388447742636663341538225377666546643174885445163782538355178882822523635835435665214722256214874643235442248132517175775418155483463137572376128151848261718181483754848711832665635543552668868684854351154736161678322815235334363385461133627472645841476278635677384524462216771133584584751352585667361176751528453785124243342775244784661854718473818478738214878358266368441482875871651436168284777883855587358861413236471588181571285618451751368568584523785742126863634427884635557327455128677245356724751521582317677635141272253415468182476751238424731355222287533232543851464716674343868133874367237564371454864875874788684463764175538832626227216516462845154615648545387813834866552475727878271183768677418458812331667474646734438224874584624778765323211166364612128735286717546265167727828715856887834355823776124666786436276486883573451711425332762185447326857255282847723528533715443813644374517375126258824111514873758561673344437751128763245883141312685272228477481411414138642484132746261637114535366426518383388745223717645642867834154457382767441735168335458746583481625351228375183314375837272165172346565121535855174461161537567713261674183275841473721627815111385622826711874183441254458785831364688386717784743131338752624824487168754143644837563155525756631356313412844215618376371676366135658553632335642527632517365714354825433636361683627838542841761475488288173541841534564622861551565721436551771856281885551463658242118717738756164357783173676778286843372218275586312736242138327178883467141224883813551618683737674616311228712233341453367677572774558182584673512185688253827447328176641321758443164714264873366112613888841553224168544851677611186286816675364515635348364616417478462356752514122787275518866234848158462528384734616437474614513525383583478186137178556856356464532223127216763448634575475853286447284841688736443471768773287276772426247641727764676317876141734137331431148767722143872388376125417717411166866726864838842142355364378546165323653568456421255663876285148866456858415332378213824322428444164536668161755241712136853414611524475812688573817346587572564732622345836882323487732271653868157642164468647662352624811534612661245254612447711651453481612575324282456258261272131674212632636232167664618315884416581625181671652517566785123114464838354887565418714133858274522645167642172115763234731363522825553158857443124843282136475376638118632278445185241524661476524241248788211464266672131454332557168564381151324277586858168387848612532147664242583622214186787183637274125126361215418867136186137132812422451524754574774358524834146764522758855536768185474581432616626144164725747585724458558752181646343851763782837241234688276278826746334847257314451543452477883466477512445555514747543643555725172377552613213851187174838453851383612866567832621132676485854363471364122738468232871676587658657625212485637521127882216414433311876612711746471166328542711453273114767336326448871782717345271144523672464118272441287234444687268154865162443566276844233127585138673156268663334158585775541463684758458437511528614632184445461824163585786683341475438177587831566188284722141477761268756883537531656686164221744887272653667571172437532274731154423322311118628365223875428168412327728324332884113784682443587843718438775754123668678222526178181151623263742755224154341613421328627635786148671832555216765655864577188544786218227684537243444264624313133568321147525427726265454247223887577787573582757245667285222142573147847723856444573662435521414514418856363474671674146551211438625583655427364414818273342255312285161387571873487543646824733764572771553413832247475164268653184348873865484532681621471876753642574427431668887728757383432446737631326684558455752477777568583714455845248346118637436315325416488183586583263461467748111252177474423847544535874873357277332327172545417721856126571341621551616115167564333415778372746271321263282442127441853487518578382662853776482262353764542182147834215662756873178735788881653533547757324128866238767784512574582745878541817282377173512352387785115775851338411548518675638287857466888647384652421382475251122857151834138171752751578226461766387444361124627737728446673886362182136537188147128788828648672811376751774656763118554611564245872557816855518322747284716117758531536571261277465377425612673782767316244182423516447881481824866217747835376378557127281453238175671675628272657776562565714513483375137114582685448686341881243324186242631531766137552822684455286852645128786366588823266263273885645885228234347211221376812865561616667357785114873783352751256371158622762757376252758653217235767554375143245322824172862163341317582377514277573817783151678762831276584448836184572172387887513872178422151858551165334625446247282774733326243335437375564523177485363821346517634442523372864186323361773384117367176814748235475673751542871885256425112337623558778413427735827538112216757861284578624345587868132547467458445857568844878861757571883284725465231176361735432566645653456523524357443814881878478647482722281516786322755167554641356323215246448551164437275534434641578143462486288278235277316474642422622458724676812477343635253413153762475235537723161331357358325232758115843152472715446655217368737786442317126132225645533755486248476611754711375166446488676117784274585552562622768382871354728618767734411188161562445268118362215366851571631543678252662743357624365657573847682565167586485715785527754278821412631745287457781844717143316147267554261255361533834461426562816313463867757386422387376682753256468463644287323512436287223472721477374446812113518771373484423477273575785262647144767338788837651353676882572161826846258565517834132316182752284827161536322217218331627422664876538387718623414315187448786638256476536668448821473134618252785553772266522463442333226256318885368562813324621428775641758378267618144622536538468538865731385723424816113284811564511285535871267867181741371685841785656838141535772514777668168714661161883772878255185452764842568617551842245686271361413123583714413581674243758326265448273655814671417346366512371264844467324486285281373648345736178513513566114342178544157867726742822476676651832538676457856533342231654677421324581825513387227254181284433884244547586457512665373875186381353437837513835346143232868345455624765414744574728867764554727537262233256877453231351242846211782733183866384586162371751216188112221226177875763843115778848272858512155247557216841376434561237846278638155412316656436542324464634252386212461861724766827826517673285336788734165181351411673666217711118653846381787352357814326521617343441161721688733552827436556455284863784572734721135183157271453551713151844465882538178112213588853422384374474387187883246323744643256731837481386146822858218713875868656865234232711716582552748735334834183834841132867221447844234868568631665686626136347681464126364747167811612845164647367481553227447652643863831756487767725665658332142854344324766845168421557115611665661286538548268237357365638478226586322433482332831348367412335738874118517734278842536757844516718762278556524827431365767227442723644838641326761582535843527421456184621261415621371785876424117568722487422868178131643747546622416364144834224622322743727528752486245152147646618215527417474671447245772172116648574557414324481448513172282411555324125324177188142487886612834112761577731824157817615356411212242378122627514553315752674167337254232736337188358361162113724212613634345582751684871684272428656181411685857586254153881413648455355756428318758688542543418676354866821472557386721273431488127723651464542478366884621526588236576583523827748573338338761635585275674585337814112734156423336636662746456282424457164417177457616745447734142883342254716177446561486823212436656546251181371431543881412844736443143167114168644786386151626767651325637616177833487573158874864422541633363244275747777435373168635486568131788463276675513388384525245738337471458456811346634558487827111848571377384745185216843583564662753647878518861255245163437335267115578553844634747647733257685755645521141216852885664466215563714527524632548667482667415216628615778873852136434817435251226552671445126385863285128128376144773826162363611536865581257473867383157626864344553422525817484458467153224325238136277531116865758132451113153141653661586143827256585583868566255885172518618246825363662374541488662638254266734843763353616818757877721176467885112672156625281633116163661145344355338262115474878586841848636362286781752415168343621416626812677284338777717521427372567835424841247718625118711333375261627317353546288455785135384228565814433731484755768462216444322725365337375466571255246646158763526851442613138853638865655327124873346788643758373584462361723516167417645863581834216837452844433211453256258715877854611881373147231172875767358767115131351487541262244317755243781877412466256276485821672313442268532756232378382476212681688285125654535371775626864574165174188516781467178651351182415346233542147227778586424215532448671683414142666253871764144687548446722123717741718842147453622746321243348754847771614257834313136343368273634136746615335633357448267377364663546648667233227872623181326864785352874433322871834165511268557111453238656516132164337331468165383253311212127463342166868378453617413831712674385841231117228875742454427328141221813152112737146364764587327418366311416267518331822642364373128876326611726752181463328862324817112541273861717883262374811872527662538442466841688676732726485264782257262627121164442454542216835718784663466337571368784118174378437128133535435844473355225434633457462685882456784865114156363744152635144371732663268583847135123152278387241435116728427746151523518553534443476226632427434657748357628841885355746623136138472388145245235241634288253421746532484522837222311416514421118241165351313216181357725277432361436211512161378377445473462156821383324561112583354436532844318481848624814188117567275317242648356325767162482537241782223854561828882431136656647486613181133528342546413578858276747865168355762716633158684212837126346814577388415471733414253275831776561325283848128676732184882886413128163671287222155818611255824835873523766432371843817823412184533881663613534581435312346555852122148831353352475138565328144218755581874474618274773571137834218244682835156812253836173668726261612674237567175363424388636545814432137336787117188177827314488355257538477848613752222327887546247612683861644848466374773143631126828371637625444424744316324255343683825674274174642433384262361134756341482738382383371683635565665324348834122671124731653723876225362836577526464174187843268822631715388843312227343424226857351458722836827785351884715158158228626885714447687271116743752113285346365378424157756387164124771485155521165731731671472253761673167451162687213733342188131678367854421838411723734333381125157432251817343615364887673145828516437643243236128131873384275638232548534722581583364431183778362467125177841418254746587685716881715533345873227664741826824164615328727826754377256678274487332585642748678253177216827124133654172138271138727763813586438683777266271346821877683212632758248524138214647645267227171322887877365143137584618517483513628716641188613888261413512674665175883553377452847157512641648286312572566764827358183688287667615315223818383764485843853428177254483663316282376418881714841741244645765281531422667435218861366277385184863153722487677226757177831783277724146581533488756352624261163235254773554516536511713455166156783465233768145275124655224724638148846611322615276442643254277886621553823345168278834116548385611121537254775286657386344836132856167661354554331318281627312255218633573527128114742243621521567177125565168471668581322148315567438451342833818145386543433121521111644347274266434553582722625351486771715725257738145253238851121278574834282551831836562513754687186523655576612367173218831664852822114322823732715266835855743747162465117633184682627782128773742243443125755556254663215483521176766871256577322362482634815345623538537683715826763587116167787418446611584131834213551444253247871682866278665476718114287673411223673423155511725111126761336322765544118188424628173627777234658574154643865673887267621848342448343828744665775131158663156588481614317342584422665125416235778528527851113778747823364145447386535275162371754767824164277313342823383178374182336746211151363625451132885876457452357172678665443238836375731112622674611552588477853181754856257771815882428874778847725175831683463856174675864841331731624163331573525366163162388586844778156157675647127315566626483364263535826761635216821431363655615631872711632626743813421476633686136647558418161877641251826453376142512414331378678688744141515815445426348423847872336652112682264452425286585522372536376544241451327877361863863635754715413776742342248765358217838322281752462477365787553428318667483735766352453482365287762448323121328375258565431563876662385355878818647647288424184376685763546126263155738743525844384123418616143472411287123825821363358684466233183322226845867417567511445288422442346835828322441364134762864284573838817715161212186416555442517127236483424581727213273472441421173146567332111483217476613524577261374148635287511514343737282247332764324834445658765655228272151116362762375281821463441551515628852831416422728275631281854481428242666431441868215831761646268787231834374765251837285314454557822366584774683152737638676156511543572188822133572215263783616526234536616218841744848554336614372257887483463312524354667855665761751728762141615462345532365266473752753232267231518422131151135575517248717146112855637867823882671611287712665647278264264664785516514122124885377185656825178468543244847166117644766313265248865645882337572815874487314183343884781671528212855376215177535787775465754571784417165862481212612741163716334264448315663361145813688116453887538175676441363663343745445378381347344744718388812118531848734433766825363466813443213222834144222571188222412283216453622552376255771858222282564438556125361672854226184583825524341185844661622683324382733158385226674228172257386377527218778821858756563142713312155468262216112646513656321322563661655461672228422262477336872838186132447654648551683383423888356264573441377165581213736657653347761447483458844516563473635814568878568461816188568644884358777828148285277263226128351611664434375752421746242337367525448112135642253437531382483886246432531483651572613248472415773361688628283711654362235433663833432423675331381457543446152348348376433816526488731773184353212537555423482224314134714833766227484267228133881638132456667573113634545248536837583385335568648412344416173275161134258716462678524135846541853873877221131837647864818432783118761486225255185182155617875671342272378165865236724326556264468477222737331363234716573544213611761445434313448281678327358633638567284617878661284621351622437145733218366618382322416485667834375172381828711884245327845231433181784745673361532457147175858765821424358145328631551376376687425576786816278326533535723263443761161257175156138417728453844656476513188462118541735116252174167761621454456445844253272662668778132854178728715582674746371611428435664711648334351666261881445622283461732171286168842616321834777244782557552188542155272715738122286238158528186255345448336442214757124433452383814286268237311628284573366718573388534163536552556557232617163574654528743848754515325473447736357233343767517678216475351752427436441482681846663877265467278843236221873215842723424858457658184624723446481123818563313137436581728873333184735388768732635141745453636248567581631233418881241742527463168742321626435527548668541536352186634721334877313176627216114862633647744123363431568334521536522755333757626331534663825442647742461232661736211844646512886553436355166521868378411353847736552353144174177366624563653317522452853645757367347748718427513712678343287634677426532837573375465244445467527626786416853336752824482158615582526475236865634748551781335445237873145857433152165411455747126218153345516527471232667563325427225151517844377544768718372774612638852523687885341162166383784814313118723861575313881867715126854464335544646237636276435728286783167645151856312116476735532133545778482365857237868463146427824717116776631478223834486461424255666212857366156536487444447375763463524833817815775878158422224182133548246588157243456621664827566325853623577331227138323851273173288662225437436476833117644214224833367487531821434685745187758874363416785438436711467758576616336552828724136864556477315255441758124864533168411268841467443187887348676113546647581761164246837484182855472463852548215837821316473318273677383368866245437647731327355861256562774215454612872518651858664852127313437658556374366422362755284265725233614744188534617322575572245764828171587765576716713452145751678318336884874313888384284568516528363415553188745857584568666655566465556314171417778843834181372818362235116862255213181681311313433613433682668178223632366768227665878785751853511424473832284337442887743388758582715437835386685345438531268474532761836287743881864446128263378815784456256576675381113484282431637662484588447444742527543364558186665747461131412242644335785587865664441675255225186377863648458624864281583177458743523548276487563623173285383227656243246162717664854713788662685831373427287373376211831367484215357217415766548721767365646246236823355645512365618671577641727341232556144547511428667814644715688251422231685241656351554336184547482221165651683576522358555448537265688431767136717285211653815577148762711874438352823678327826383775412647717223611488825415554345441828856844331832163647786311466378184752385276645283838157222352487427354778843251711151137784111126858268253115251871463416483163447142245126131658127234717828355872838284331554411563131684778738883783367733555351735887128643861454277763768486674874238576164136645537863477523654672263455358657626775117275867863853355518552282114543151376527667587245453774772712651843361614751823148386546757773737212623786223372432323141224238714338838225713714614324258825583821623442478322541832256388873113444626384757817341153334227838822343626426765463615547666867681538617746645882241372781237564724882856577876333435852731325455672517872572664124577463414741832667287122441242647241355476557182766335547388268486821558485886714846424572428665222172472563437448422163664741253725643734742714846751382287784644167512558443478536434344111326526472671224868742251784445721676816162671427163433524732378238767264767726714527277831761448868772475128614665664513372756351217786314744486776145525846846153278558366167281128882785342634523617162778134616238588558615361646312567287756236154663837886687555814178383582263756136565855356586448677374612225178584213641174425564861427842387158514333832828427124621727661784655543824811145521718573852733384317238571437234573132561283848673865153865467112373133858631174742475648646464374278512356862133788684771772462534412825181715444823266518174663764427115254335225152481373545731661568886643485247686552242425317272662433867353735655733676584668716266238748265511818118476868582366682844463276348782521265183258718231456418343548766454485687378253667324473884444746288711553113541766154872428482786433621545238575251713535716318228454858744255568152277142645464653334744668545331261556147563271317361332158464262344584458652151583524483262824841351143674283887552366175714326818818385113463788743335273611487124357476584867782422136114722882811717658823174551131421217843353828181814663877247627616582141831776816236862167443653751272815837426581643841262823685755172331727335474762783464321513827888184812613468132524776372523115271332878257464568556236788458751823475287325176215623232721711154486782783321287131444175311372517113285663275157543571743326152238621418526211335784531321238534835476467853421614334763812121116352265134887217323265625421884858734458386333862887248211113331623747336284631367347553528312657887288343612317674878437577457314625746437452324824156414533433546874678144125271675426152156561181777377425171738135171878442372365764238588365772373177417652518615417685476173335374588364445462318278338623676311562546167865614338281644732553817164728376828323521836835243228224862834473338685126134136235826182257225272711433632687115365732432785237465515826776558364425258348247562654844612731282457663343115884813674865633658886881854111217484151573717436251463735276642724822366837133646227373548442126284357436156214637485457585162266866873235174676746742477277858854345446674481434815881746562373136326747765146615581836335424571645153664634526611378354373273445818113385525332563211284438683488811846124347678322348574267538741361787667166441785544462331581546846741676231772213852327258473217814721118563641573122324845252635787116325466462856544483117444358158574821862787761155768117848541145342463676648778652885777428363811274357226683618472168485136222238711813265888523634255475154828843362438737834481483621268633118733446831552857464573517383146738682525346267128644843445235231115277678747488521445878346777582872582824734211473558672836726367573187118766454828243138285262546112555772252143843444562518557731633866348536316188128846442542454322554586631237173237824551548824238646324856876225835225718487142117867746154872526334728673347426613566734783445151421577812654321434674263466312535426545645335387821248827436266218851641222373543757778422448416685144733482227144454671422625474374565583715657285645586334878442845565185811166378653375164467547247235247522676443578813434461146171151252287673125381585854252774235861488383141465314228142358772887882643251721778838368683574868327785615414588818428881257477633846547311842227466816342757853131553462546516462522518164617143165484363448246433785187622834277713657812154681685225264225563733323716856582355548166663515611632171128616686862525347653235477668438315426122267155512252722785888658216885631223848438281653787752834387332435717761872388425637162372118463885426563865518427565328371577317243127423558181654681828113858714554344677317411586474161833553667428247447844422257575466588376727423654514712221524863131661117752171841161231555548432876673685844447717618774758457484788646747234133334816465535176481454417423767482686817515574585261543766188362736122626357157344418388415252658841417342513477864243532646737428165423465361342675432283775618633153111765255226326453526484413241362716666638762824771324848724388673426737781431258564184752217443763378858812533787275843414126632862716261772781835444123685366881468245123415636381843447542451116712371538258544288717553778375736133768235648814136458845217844422335846522234162314637563127688333417177173673757888841226313381425437782671818173856562783835455275563167551187315453453123753661143558316114863476564448725565714265582616818672526565342673418876763644736277748882121656376216484864748835524178336346523338358173615635734643337146645356444358764541832413884844456728378562354388678158721118245731714713781158132638663256222885782686471683468687866883678621561538743823838447828564463434383218371166418114681735437234256332782164426686745855742527886822443778666373112528457461561875677353331741183327564815217564444834556277543553825564655317745636113566861552812632215678214733218172665313764512678177883557613114264347571278677312318342225256432713724836417556352378413115878516484476621864118335583883134662536155518676143361772321226221538667857221522424726261147484816786517358544486652475127782617586752718637734381561384654648877414162642422332384571454338271152773116732453877626728558254343818832418657744131818555143713278247813716622668815643138855282354444878814548657725146124167241687754746777634663668736676488885568484331727614541114115246527784871246775512476236457474445118845442131888266877561756464625425658413324134355216775474874252572112717257758385863752761276221578173251822578785681726417553568626861778256524575854144157111486828734338864353731341171468414581367237134742415152616585833247353156613377488886332115777266558412254211375418122722385215648177516152247676717643435737843431767681187426172238828458153647861771168672653525536376536414245844518622352463784465884234465346141764752563261485815213763445317733257752126888255735683266784276355337455138562437482766537767881565176517866473388351148547114662632543656344216466753372525786865672562356842621728553233723628725662661478583883687752757836276681123274766471113748858487874428872667445115243185415448572226514736631518445885527128483187475143213866458877622741178443458647828764384752886282582385764483831451618246311385648732434315351661873545121618434666663548382618813862115318871336742664672445686445575571186815262282582762132782463412842643221517728817611634633251476541185213247674213257181881568532626724176886155455466387542333742811811354328328416414318358728464441816777225258647133725452188357132283256844385587177332241721481773135461712561836733447723871125651574377828816514211451364732647612153841364414353721245857214631712875545222324283638677287841234434862213143534866358255226563611315342581186823718316155341571413854343231454418728324288176546438286111746172272264654545786882213868154364856686453432581424138374311535448453112611883353888677844533331268776887751785331475445813655436375175686776174441562367332418377353374857278768272173332578671714832728563858252468344252584264287263886382871552127625514648871188456876358616283632331348611867557558183154482745678627571677385852373875818555471524857366446672641656121573243435762524517671543385138871842423561488715886776448645647353643766866354461646222825317574782133374843423173831188141663831778473816576276761653435284461728724268772822743711488271628631338753377536845426611824784833612836744687881775541113223718352627878475251643782727622456782461887422545751173538137311454881416382486125618533875647621421422731247517872524127578672623726112786821848526643428884156123464133246541188535536125767616287552265478655365568732114587881421336836348486884138877388363711655572311886437776758832272513852651734615736112664813473241258176243386516218812837324232157474544162662634312434237423161888783137616134814212833452626741417314753786613156442442438614214866858465443764623217755788353885618464722436716864453476683276766482155626648167523578313624731567162781523384588377511752721671612871241732724271834788533461136341141677525335225242154363726165781857882226111774513588762275772565782322656747577561337518477161736878421646448526473351363672236137578332867485743122217272836321666774485868474736765575638442216411155283284427571176271215278241655746472413238321838875168233764341367554342462167418172673368153638814571832456251566537738175842654341646654213134371477125375881845681462463234167324776124155143661487161281854323157116832645854754386426873524475663277821534647281553853234574667551562267485771847733513215548485871621647544714252427336487278243317777251256354816728886837813275712532577845117118684875326841461432848446211334565456656573581517168762778768312153514236347672645215681355611811653313463384558165541621253622851362418576224767573565337737868664875373673747251138642731843425488251181655463532558316651425483762446371724315221353681358688752211265121756577174533441687554784555166834775828767364613435254247757674411723261244168244571326278115456645478457353315173316167481524382724338474643212762262218655686363481444817462672524351212672775285272864813334811674138863532576558562311313246313337845745481122245842756671572638661788214214516467628412487447566748164828768782736525465636251521467421713137151562717814834886456338463533678545585731716527172346523665161752834158728662435252575461715838144524633143741325522623678153622316712188371228222523612873368437843872555354714748567624526126187771652216128716263762642474426661257286818452865556347661575512775222512372511755246443828262228461754275842558273763541785872735725323762225334368413717681482658652132764623728581556831312412283758278225355578538376326217664633281788511235751216435723888445511762883831221638154642538762228847287853222442237868631385215762885862426632128448414843183164658184467564668543845153823312478112122254351683682417243253438248632388864763256328852171724614215517577424355143212164382711862367852816442322817674547763355647216762843527852548868236243276851323153671378427753675757477766526625223774416178716153343864576611487554876435486347271277573124538274253341478787185371225785751484783388878814775557584365546154261775768776883185343738711477137742841558235227115888132247276178824756738673682854586358746237286547476716726313312287151248138855844115656832725574116623486687588575156225444452468846266341367843517615381172378164232321321524354781763231235355252512781323636465751582843858114325837382683757353362412231255547336688814627871632755614255213375633387752337427832642487457488476738274174315522526843747247736353467788377833611433562764136567167768326372533572635671846655242851815618384515638132826138534212454266474171837775823274136838536333686787788517573728436673687312555571883113528658465848147873741734135545472824658213123451427782872756227811275685827462837814145425234235268824374745168675435784232435174647661721275852522433371378617682631527518821761726464514886872516628652651786322438256775422824346275248325621851166515364351848848286181331384771633838381342612852581574231768722811164733811521165267541458511675645613265575113612563413512163832327225335575633718314283358433855627552235581241775843356475487711683132577828154246445522576858853662734237153578143742652433482717475587336718213321333672283872146161167681353631157214332726632648856657812637788826886642231543635217766752131675378113872866854351824324417385523518325623665357684756387336544718244358361635282145173278757226584646644866223512258683381761847576431358753487154623324415386487333265782452164141864882175733778613511782145116861735138446844356776835186261148457787855856584344481525644253363542287112536232714458633332673148822624114782728452431474553548761881764534317377125738363556643813678637216654326483477168311515652245562521874367774126476752152441243211637234857346547266352141554154153346843428258351211448445514238881623415857724843588822531173784655823171244366284116754714871875816813448744114253758883621788241253672162756828852648247483485418533521444543435118462558526784746276443445322356547284772447353485388124743537846254415152175651275461135354184241655577842878645573538162872532713358671118135312136886185677436337211312583628641517828522758527625181766851614312621512214851445367435651668828115618572447551371443812117284237155314344838244468788412188652354774157778458464131826312153331313368133741488182325872532465447812871612435816888161736323857531132438727112752547455154328223642751728664742588536421153365671166857416137817125647662633243128373715428715626127641617355818312361768238637756575431482661854431227666156156815587316121687742527226564771867242763342143377312531755225327782863712838774841283878462481443572834631473212776835433161727576321731175582458432638115733433614888642374513868354832723831165843654564823685145346564131817673252655622812223682757411862362286454842636841811634476528787746171757217537457626643621554358245747417456173668383625151642635455466622186874673413223863861645813356442231378432231773538663186377825184834727224523755843612474117852465544478481261761457712421231474828278451513768867347424672351732636648275248614776283378288563642712216767681114253286613487127664248712258761861165128727552558211263467725717331418754717533836676646553422884263637662141351514377375627787324764382738681277435488881322856325247216164263227367228556644331481416435276283422475274351628222725732574665817532417553556351843582336751174427456523741257221133323755587735425753384876466572838757283486637487111545732818171561125184545626262841542164557872477178314176585217548586237315214263655265448115484658845623751252683867375733674188453272441255778868584828643624216381825672532144872678261584472113888561162367137378676146614361753772768536328555167551865387186186527421131283843142873744251687762573883287242237457277441374461663643323815825137712274152211866235612672728766248686755523513574731456543123516588316673311387865162435831152461643568864547641667456484822554384511537676657336243442522673534381444643257514548847644882773118384832766287587225564368413176285314261534833727681167214112118362481311847238525458378312381222544478737162548577335486351472833128564164448247312225321227213783543574642153783335338758673627475114857267464855447585585622527825738386285487267884242172745784514365376285562647476444551518135614256587482357124745387614148622655221262677378284586634826365573764733726533615858366314764375382535341413565254357476452416528452737468617435135556155535116551868323566875211647446742435235154863216517717745733834162532326111147716665746487248344783417435671634715638168743654866468674884468316686845881568767526583215438142474464312482346222571261427228857354675574253128765787834821255728767118418357278735481115518636383282123117268857725412327245224111223535771722441512773723711455834186468328167887245785451114422767787254524351677114226787213256852833623552711611432882624414273171873432234724736675152274781365817843574543181165133157324621173874862631855372671146617586425187858615766584274567535846481611162242267513841617846124256474514463436855676258547277651182742832488142777127557448868483228766472173466232421618668587123545428426316327283511186585782731161661372531365485678333864541271871855454288637347162518778711826534816314828474246344788173772464533636281131636556216721472471825565447645813813814346576421686242842616766452366212258443147851212534813363623472271447814812818448163616855817386183181162664141532435753224661658616772545441815885777182562242155835231563622456228372666542168646112536142341568351176552561826348478366814524728723278254641822275248564354531816571255623282417741123737733142512456775744773858156312462147186822643612184787285741676746857225313433433884167275342723726278258165674412331544713568822576825362584822385754876143148357422155741468582856745237573226182653832722367354486316628151545141217674813166433623527238633528148426712263378588421777756728668772121715536672353244583755363428854357517174426671822717455618722428476755614572113153752721647357425146672413827168656883874624152884772746247541185368518738747843676115577844514836761122117467236425412517174171761243678123723782322463725581122433774777821117511244872777213426621631751844253142827288848156162726467246847652348743338551727278317576346775848841723271621524583547724156486715228163415221423524348486524763644166688512364638153315727183881515312844234337387755358625845717285333561351854644114551644146526154816454683851137863444843676758231266657758824471116737711846856866434576453887153521336473765875851486762784244461235313766871776751277776464315145487872333384114818878222554885525473871483571742441623412581716251315682768773823526422845537565583468857426426264357851444832524872548486128688474434621366173332747231337426456853763348161486244172628324324837714766557841448143352867422263438816623263277566883273663587441416732665812521351181538817415412345743784843388556235736567613565248316221223146678751777318814768317834142135812436675376162665853787453148144434261252568171582244674577187672886141651558737137571114588832181866161331132448547113336228724864367755333284537118754186712451745866321346132416461117446241744734513251366822327385532383518857536845841255565635535734445485225485648563885672766143583641833187373674185274264658852558228383147583313162684223871784137574226458846437128165871881147633667476388865218857187271513781634282532437538725623362237183448727648126712741713366611678712825757272444751687431817662478134264554366731617426743482867533782216713327455773866466147472865581585283646522571512883432577352638467164628532753753262511283873731487234766253481664173125336567676521276857746474155261188663111645123775228146874713735283113527624654166273475778634573116745414254864171488855314168635166485576144428758266186225643323853561553617834738848112183862276515677113771886434136438146683555685768327421144244218388343674753658832476661735764233867372564566417267853578855717731283774136822515653818373167222324646266572881843668164451257362441525241821572648253847651378217318378582252714258765275637336828632187241377464575357633823317548772236665313436612812758461562574127151317466727117132235441575318151637821537816317344246453445868532722578531486641433241212137167682478672548637642687546784771343165626232152136585732425757878224258382758328254382632637451243327455358422725216778643872843766332557447621534373886475877722226878658475481454644712321143641846465478456371424835848732688528447654385814611611522454615675527211462436618437462582111715452648372163553322475828146543247414473885664721643565516431858473237534632574154188483161855535415445223128722542412648245124377627347382674342565861152424811182146447436156757544888251786435663224868628243337171325334356312163253842225487155713876316567643353654786836678665778848615414253187641661725512614748533361737647786636377157323374362216743216861263583832667572154427688542166854436275468143181218624235136553371576862342351383136114634513785152844344874164614516761748113784138254366162232325814751147518783672286348154752352828223822128353643861447442657385817125353737645674234556226468176247732875145732843662647847846743338262552846175814148414176674242562836755276667355338164368368415127482327335331717887563183564142344483831874244787242788762441175643766634125436578656115542424286238448775331577127646627414461448634216228628864655886558736668762761185824762216223688725214857216388578761753725448614241487456263774111482187864477146288333115857472366377312423238181754323424278437842652471681258886241316822844445578568848444244647254671148774272845774576415265256568752818442535274634478175548482177267215327872278517614832363145561314182551656633584537442338327521567688751322746716462311368782524857655682835853448327864115573453233372447858365587617363841428156182525873636653226868843427467112538537821184468425642245827684371565572653771414165167164558485651883267385157443545124166532457857768252818873212416444576138443312687734251257333534182728653353812266632882228231823447814285732426532581662517346722468347421512856383483756582751681428758228442671736463375722427742665335353281248767854683253257564651423364376327478283752848883248785232522627621474882423441276645756238371883838522488256664813246431471757621321476212787877311752477224471362133877821268334224578541765885666563784335348554535363247512511114526453517665512566781447656681231434436515424712783517477145288718778472184428118121368317657553583624178145833312356284656787755351851547526787318821415423487521574524827626565873854265383755325156331217675775167571261754821636473217451273226871648147372635178732711147215551881385314811175418333863567388833487318417633474813465327866425374377711851225174226762673748254581576773811581653287411781542844846862721864611341348216861815344244711414288777687883641465762554721641664844187733641244724118117347112654476685738717262887741326857534457272145283732175485168335873372243433228573737846428628248868163534248137442762273783624343348111275668552345781843137883684653388767475117552787874842654686831251411742816772767388427776848137888368881163577316558623773877272115414326616678684616773212325237768254485188735243437546225558383855516833457674544414347856822432273326872488467173546475358675246373615616214632753555376355485727274216323177872447271778587761633821486158477818724336732512432827147533765776315621123546117566838613271386872553581565121388144315242547642447715156743878624361223756726366353814445122411482744434123528334821387115478627226474227866861527321554383736825231311371272312426444653162523483637466147667141348453411685147258254434235434228451721471144224786328213826774816233645415225562772643166722428731184547647468853527762433252451214764117732331168261444164722513248324144537635814233177711342463123548557871428664447468835224463576363878545861135874583484614212667257648766285845264784525377418315383382644513355336853518465167866586667457731633333423833513716654341173555872253714354245373815875615742143484242125425862436327564787562448871455186566152621536652476885342435637554264524467325227681366762777443864112454188122835283181436868127416647221713663756584724582566317455242685681633318283361443825843756268417131172621563272774683663562485454473312262538742331423617347756723147788713181756542553125743365417135656857346182714244633556488684734818657175111283213721671782543131214168211323774117184652255187317375618581362833843313828714443725811412684324771651358617148143287368474341557525224686464157566435461481485836488634633424137781565722314888518176882451546816774788586431842646813251242135433617542672143356283841722744718745364225837136388672377858144541253451447756767482578262381111126612821365257873124733315753656168475513467537342853427315533846325452331237324752823622818884215638688341727825184511363463571352731174732672446412413586132213178573141753383744136711176875113577676537824263321853524782571624488557312287623447351636522231536834612643883343726437535774426357162386565646765182341711567145361115586257142742852612112817765536282567234464476684444682536162656356662426467725462438631635474656816678632523416534583457617348621657815221724487723516365687651627425523326424766747768314713372232564374771626213165777233413878183388571828632652338518345153462514825384688666765185243463811362113188415778627657858441686167462224465883413861258552635654426257544528668842484486141347612426884855417686161232882458211115115661163545723648887228137654853447477872414511712765827444417586347173887466368715685152854163884657286865661787644485463863682173637582844543738238163755286572254264755182324371251446748768737357833154267416488367538571732365374447151871456661277518868473524525178461316855485424154515826487384131183576142766618417353882156434142683673377563465734417446831782512145422572284418272258268378665556125712863621623176274245656628788611872825655774347632516871587631188448556175576647562777277668834478676654346382813548136171371336651447168626114468334446437253656157623881821271486882368211314155216521271787277358644128255653516831715644764651224378232521324547551137214867842738337381243648234317312615816285418832515588438681665654451415166681568636874787181314327811838181856127453331767828743815263437483441251324347431848656161622271477871687533788334722351116546165452274233731238552682486884176533734378541334331444754676372455643135586284562258658143347676665635868462447187126731471252841822783682575415387264834227414774375144342745215767537854635447781677213162854663514377665864132536547578211553445126188664171363385717834486511167736515376741537417175142476744834233342232427381867662445776642383356144227125673324462148765152365186172673871816485582817644265387328846231311273337461277837772587431728738556784656673783747834426823237856264345582346248331652678316247448173388114564372684732732764614787828778436571235734676127224557218633862674352436424441112473735658635348837786638251147462632426186747161138386854865268732662822668712238872445585483353833458122455273466478887552271432832513838663716448151324884654871411414233112572328385855747258788231257458716183242478856336854273176525324442538516825862214642764753236772842353258635574413152148871857148684863274445417731686836154832278562655646658817843732782777123221813854623632381441285587832173463763323827474368252345457366716274586717485757775433586857633586371573118252644245578771288625227833564473476261888141515568544647121181862852348547262676683772245133784873434255121748742858158862247833413524777223516616363173336423467111335477424734334164636514778115761572788583777712866268846565235422638662352572183167346275713524842732544531244364735818172521651124616833288444861546156282172773743688861413713835847258177163181718433754615562631335774435187873761246185675141883412812754615127183433172534553332372282765768381881636446677143575674644861247262146285627286417168524532872455865658586345142328636235634161516345147756782263656184243318627622633768268428172758312233721844223628857167372187321127636883336448887527123718651583234273425388183628411637735863282741113585748553255771383451235731884455672331476658253252675521426612427323138162452124558381855373656327753332211574164525271473386451651881313351281112544735111567746375852781883485551851723731864373333763212388617462555864753166343328868432345678324351176888461685467722243834512734754283635321282258848214112812162374555224548425863863387853136374354755322242651328183557642831687561748428426487524811376244727644422883371388515864458744652426834367477736637281644268841451626863425768237482155716312158785734433213735142685335437333228858184235842668472465874745228113627271554272317247323514188676882853588134785463315266315447688788446641731638721135733518656868723424246756765748547412556876438722811487377552553568371258111137181618734156134161473448254258811552282483718384588281866878116621465482575528358331263577344575246114245412833488532364748562173634718372211513416171156564815447275126417254574463263524511333674155762214527313571366574317347613768333888674252871886842144814142264753667457264162266678477423563715845877412141445418266486615373355155581643751618123423412151842723751751236877536681842544514854123833873387581382458638624351538687361281643262775823746225252417711611767683483533615166113438347754841246632444854165546688855617784464534416341743122545182615548288761524166417767771156318612361212684848565573475375672454286273585417412478713236118454437145226233354256285247185546486312553747853344766534777148136114862414563372367328113262637447874221673164183155815827513572718251538857711624236718275737835736313488487255884753434145582162845253677366747468447886412162427245282462367261565317655522385611823347148131473167285757521237521874321238582571822374613118453468638252524784163128238131228746118832656816632176177411674715628463483352343318418151384672684741753445472413741154675654486835574477111863642677318183112224542631213854823544627155377628251458652113847187586332336213226285425688312748423872662414574854178766452126581586868348554283834214345145214751413813861556418617743743448717155167255655212435141571247658265255233142231322113217615472151618377627587135254272548752323665468646177845864427626163474653757422237843218887517438658214526533442655288338453826613534254625633227132865882843825423347125458315256343561817228727571318673534554115884647224625353148732575557362416834263117648442641847857785216852322574245435185788547512756578672763347665271528345535354127831733481784277247582342555183868761375686478288386664123665217376554112824786675643616576822566675452872113238723172114171716664186621255137281363834377725647416428266144861457731723538231717552128517842725266181337513227381613467367783338834667143132247741377245637316616662867572328633766526378323116277556831833355841536516827874626462685517434715326221231773714334356757535268348223853314324831176552184462881322761136133461241584227772713644216245241372453437785515568862558788228484747358645275527717242735382757674264113482825646357451321255154343275718287278514443551686334621883422171457511252211152233172771283822175286211788436656267814757157656345621548676245743368211677188275168164524766311363586532427168454663374417572315354658734184173355886575772532212244734815371167327817874858471722484631168453417623256112686288444438364382785118211623546612628157524644215627115282352748483668512374826885237167521762871384527224257541866627262641263464457681557224534146433155536345427725282563188665653786783628343624764734684862434188177668661728426274637125677244216278721458375361184217478673843881565552764365124358583545458315732717828866625685862657355128511863123278155134476487264737837388147452455342358788854271761475333727837715255847451712557662543137322516767286152134375131688372211447125431676345668177551317768847618447725238883487463274833552528552412567838316513561135547173511854752876625146846616885153168351564625248772624883364842555634213857338316844245357257281554657753586472111776167341436274172653572746218624562847332518111756462446417866227185273165235645873731455778312268241452722251284736272217188712842525867585834177336657785137846351345657556426374776636351536715575741161874316761574788627144842717472231338126828182473472222632546825352887662183242725767115173615853644422556561521375442474624655413173254117256457236843428184178541168125367761364824766642848728242525123247673774173546245525114317317724344753273218533778717134858555622721816184872453658428515632341627865222761232381344354813361336355446622831842613332173338272245115542171658345646773785737438772488477722446858742143156332346216447441288576773532335418775737583352872771371212281842834478536243574717384243116461672318174162758562812427182516163388554588324864887363476253253735132188175136628158673151151335666375427758458185252665447266274678418328357658738428645463277655331562226341584444573572763638132258378577367811165248241523671758342228534548575128266358757332428714141685318185224636353563146252846128575126326838172643471547258287125313356162648433471755517717665361843781276386521143342152222573212624223124151551645136244336738268143576373174767225788663874275526641871571557163286858183178126524464335366242315225325533755128644554288882817332878317875232838745285477462622423765582316351725362153731528348814462718225153351175147487883475262784568517372175852811844617117687687547773417525886432572676472685255688171783868268261742375454843855124464478331146385343253428411621625382414246271321481471885668585181348425451411444122536862135752575847348616325516778248738725855667748612366733687367372353524185611325685137888615711742716738545643778182223228764886866743485346648573482132268655654116867273187666282233288145175382251836435581842881687461321642528682243315865561853126145743283737443354388573758614353422351614416465155684544423132248245484761464481666757164562676485538727738333528616751578554361544526766256143624743768451254566532155737267745428285684328132131836428788445666748672462771143514783711787843213255525222844433377724312784611464167628313262251123286838771828886865415574567421151515823172532713812416513737513481583443664828587852545176564728851237448344157613512665846264327162838442817425811316838762388175382834235657462428824667463215781415232663145812761323268664576487538142115363451728144243445667786336886786783373532845545312627843336165137665281248256211836475732762132475422857827353152267818553866227657462386816213186611457755462155771772552186483286435735733817542224628578712147766647721445141271767378744254483771134416751877448425432772533447144513134723843347885117888584372164881133254147568437266581587845777372323635561232588238518788535873556457418213785285525421716126812128661551486715465322383167512478871488254288223532332142767145317832221578318162681787337676846414577428731431458426687376584881438266382228335677182484761711281445176416447615483554657844783288776824371283127826682661555545163768882481624686517737644357324777186846211237634761285727572282467874246213462781486142676413681477854744571441851173368587766861253126476327424557541317283483351371327342512158781588876684411111461248724167258427665422351173563627467366743614884415736184644332715646426782884223345117114557437716525438215753823846274134137842883114688322355211383113328738418268127738587733674735882822851536613654288281841254338825757615122428185317625633771322386763528841383241881418382775663381844427268633837526631255514645522182675683138755882651282837565362755857354146114272867168547683372462122565514855371757128315631818153644582663376486434754336315486113182237716121623465485812272566432342136373582243764784715456844464513141561648588178378786345316523713228846437275336235535744228773485613753322741223224526558862153886761688675513643732428747731663222847423238362374441263473276512133686183856472686237688237241214168365615444477424888525623116734125465415371447721644835334654543411455484578325351343262766882265447546675525451685432482735235271687885383426542486844336554865865512161525177224612884142148481338421225854834616585745847347321878717488411826212441172318376282451878572116418514475745656523736216854784153124816874445858537248744567428654168214682882781378872126377378435211634177635643841735212826536558445688337361831678184641343854287454245332213237225375124516863341662758273772652465558431656518132388584371311277576716282517378263462616627856132884587177852885566277181736188848424345223664855564255182756856472156846724632267433738223336641623113615553354151135477872135344567453344246136534281412388683411388625483236641457788537577142682346576784346412432326833676662831152812834335371521423886518753626321625614581136614134671135882538413556754432456534813145822613852124138772712324133582474337136828388433827668366532454623423643574842875321838323871812174763243673348576127523443353538236431544337323623155865128187182173684811766631886842451855474177243736687165327811185452211653347737183837355784285322527473263864566481324181231572168748674124832712347826486577854172135845573317447872461343278514116648827215386126383874344561247631472863817178553265614831315481135387242763827587636368136643516666464557847786812572234387686638885744384657215638267168842428122738133331212557165663637627186455624148447732233613784454514546815447878727312428761883163237274428246862522178555453284441567114446863766812815458222257873352644173873278845515611482567456334187564516746865217612483228251325161835125245288728336481732274177632374733143827676766457464548736225225876413113336556634643586377228324635224614211362131815131112875877777545812736533182742634181836132384878448473176226438387633342268561313753572728743587424876324867561374572282421338612386632212647816728244275781233881476228147657435263441858581764748285153613621874822244447674756627411287554287676667331465616375462125872356262461837567244646815713283784376732227562164224863362373117824448821256223841833363576652161416533337853646886235184638624532158726128384482732256337248123646854622378152516138133132327313268427873436275656442216854537714246848686481327435611427188754132528711365646164876485617733781562126485438185334245131478653433542428158172845215133832832628761257366214268642515551524166434485231676171464811565885412358626352137286846362152624567857471151147311817437388174417551341231842867535268314584513674544267436277783118216386884475527877165715188522355643858335848836454163837338363777523176346485174366613521775527842823783224611172676822214418657614527346262444416251546315768844383675587837824858434167826782861257787124216168382672468564713513268228187272378482675715843648533283556513152842681843314761473274858172836248733714717216622357728643615251111787456138885873243618132881518236414123821525271728116238878423378471386236574841462247816458652438748766625755222232323318465713662428673145463144332335245561651527848523181378224313818787243235673228214265652653112542521761576222684251838177632622644722146221653477562664766331685556563176137285472124652273527625874241735241733252871613828166455246447264537638685785412127164456823262224686426412132538631712646712542465227737326846472571482464654662655347764754255676235576122422632812238437862874451731727855883125742288146871822263651776785632745444615568782885888846248726871641721883273336777662287318688872423235251424546735342272842254286817382331536166444447117366651183161116843687732545866145142154432157648757248656146651123231511757732738254127584368815162852161117547283165472341844273731443577565533682827546165233111668275275234374882622435331542821774662814637783343648857331523274246862758781334672526436687112561723872372575628285858523217125348776478446764626524517126444164257414726443566513655811247828815612143373623347528265145624364334526732514314828115871111566418574273562568518431853788781751723653683137587167525274787858667842861742388315228314475314172381226118111881142424231828426617273766521646421787462776672234226188837641634676326118612115887627165253225686374584666254236468115142124218187528281261815337838768531317416516533522851816215511231555125876335641282722838246372468715435513331578256358372776168745643727827646542132326614837621114711451767874766612636748121867154416864143738836843254771812566756657678767377145734585713416672162421128273421725416466313528671331262755748387657876147465821547245721817531162742877232421616217663151567343253361887157332674117226668622453713537458451888287263421145571821157463117737677138482511841234713237445355216264541127474254311178211816866572536637582281247711573447537463177545513752477385686177717835243122835856278657741684531627224778733642133244322413426725485314435737111782812435783113285248433346264531185723872441771575783528616374135214213147648485717561221715882342623535223831578725673158167862782748816327171576213855358455486274612685271445765143153558266582381883755142716854215248825331678546424524118743144834661164337251715174121717278732133887726442153441732146138446671685525454476184724152167153416527868333638235537476358553238736441112762182813847822235276582416638171515375413726631756628481725736128412127856621617617644247785111281341728533434317341118215142388424265583413537584338126546562354533828183876554145585764487685814288722367161563327251256731452167855444781666251284263183875227334826645165618774182716337855182647881283138722322674368885367658745246851845656224842153257538316633885175264115144155425112674886155175212154338551543538147286637628623545883378251646127471838547862828836437543521632732542755276137626371253188878548562472528853278365267687182744746858731468445774188342576382184447783313414258445681812872477136858513483147336335363263453666343876383218535562461556175487615631537551787451486113664436137882271571365714267536327772456114527443235847433372248164122782543516558427267721662488443335741234275484241532681156282655172164561546437673837834227863512421538368163865625358151878136686624754125155225821816727114664237658372171288446858487515264638445753717853233347757872443645411651841627563181268825611656746715857771252432188677774382755221685233831236181756434826811368786758414265126857278535733238255224772147862124767123214376648248243742738684546543272274541727526218355465327824161728285551637854227174221287445165445561125723125587413646713314186665275272718532664531355773513815777812355435278787827721121634527363683742214582773173668253162471713651554215461547338741815574682182237437755461243623614881624264661426518733737785235177125516524845753741543311161611261155655222255852155631117275315764632575132547221212657811381178347767228254424638274726747661115228838271336116878658421118714364572274673114247727263481256165531342116477647588212386352621782865454868553784326555352412311462354182746226471572464465622238882248777627315611516431523562458415217617135112468131742264735265158328273784138573341625876368332258644772445884377516721524676646274365651842144474768387347686676834838887885623112367742575832513583752137331537447874566756561488763432322345585326182777624335758157557165118448486326877581268434745173727254134764511716177735188467324268374422254326368717182587663453534662718471356337168461755672376357563512554427486422365547746587843155677653621212524321323266315568616344722244173478671643288738865285588881488328561873812551377237672116568437455433421275315253787727344221418473521257172687122636534234173456515353687337483747245468245675584857162411452432463872852265167578365235127824132813661337461634471887815528375187168738427766143755261152746575424755555471841658145655215626776127687284448342284767644334835775353116227768881164813828378315658337326664156732631557464716484277635721312171746612223763354212226473624714146654113172157721477482163136575188341884885354766185754217666148421781124726452866341666737652512555647562165121582364116557237338865783468388172648773455714347742134657584436461144867547442355748837366231116181646816248184563415254114682152348813475654677284513722786168322287266875243428424664377423656863828882718283881851168812471185676833255376447365246416612482783622364821777781481746584863214238681164548614312331446861647662161144787412347485834623132672722626578562344561768574237641335782263213446348616626276872362213281266211428468355767562276548368271613738733548437757176565233726344437424317184826451264373587166278363128731245865841754375465115733715244827481476353638735347125738561488565243216518661646881382317323422864217841146688188488862386476614743652734838183153586226676814131473415116536648651416114417244532685473854862263244118476543681587463522476256242676571152632678538266565768585257511551185215131236546474823774467153373631174644648524263875725557121415573232511372376578285522626877556588456833231438642134163225685641677173451844185418674837636838757756685858268576551712722166528812634865456287148813227276725673671812628568166618136127338522355575586171314242867857128826475665731862314472324238743244453447172134532411474574664887117273176277523664411174838742226536824658765212673388367185737231786244671556782667731344775377854113121874444711668483855562314117154763641617572721171488283115747854588462515242534681372466685813376754211328171288534348414341877227445257223765661342227116415485716577856821465722262346614862767536862462663353267662683444514783288844275535837723413816671868433275653126444637446635687111672484657876316814544132773228723618663784871728864733357714562464358175814437668328116724768226627334358854113833675348164745724754275888215627678471573621161673573376712155223586141512826584867367766375162327668382256332427131437247852248352477267444266833115868245878735658467181248848552384417368282282527282438488784646621543338275513113324365878216846754844237564487282277458454357315854625364342221137622417863474732182347846633376848184317282277231378684651812377866745147476418336615628168666522885387644352672785778231431878835742345227626787268565774211761354217781631487613167225163876152161738117558572644841138115238481576877167464766515663345184746442646523385568815773673545131337335241255187382757544553348128316348348848622237487166855754186247362423185743223251413484157542512424184666851115767688452336682811216544167771725675612218632535863574217182454872375722728521767357536565458418524351352283447668771371832835617612686348752622651623543333512365338425344427145153751614776866812645811587664345862738885372137853837255365427415722212568664113435585624171413517767164144668821545346531451831751318457128812411317646164714345288174877652313784244846671652835476564242536458158452113516423365613238257323374824123346811262536288381654855223278833126822133678485277537421286334123233123376847288678387454678174814615265243527675662261615573764318272872664455254685223757875562218522116285577512611751672722755181244727268265584748348363457448533582442656858116346234315658655237443375355625667562722345282286481462144647342861245528816425774163722278584663212134413385572652485377342232171588288543823882522385342214114554113254317347236314874731277374588547478558867173145323636138148723724436127385731277653644782682233266454817478327648723572231416676123253624513322278421347454363576285517381235348387377475282324545464424723272286846834241845448435414832141286857323838414237586541572184586461365814183344667412237766257726436388226425125626625374627486676668625722811311644678741488143661446625635751263745745166513213358873238636627516574513765748864213335115862787138584483583666838851428164738731456216223747461774717271381841232322468472211678768335672358512553185431385376467687226536351451544432115264487183752162811615251726755468461182256543657313522333461842618863875547887825244342118411844512266183236782765181824811788825747238566161137712747341432647612636552722752318672384143343521831726685642442784817372852362733133765718175687745478486268838425565317327611527572481353138143357237172487841857456273672373221325217874311741436346688681414727481223147552741835657148568313777311251363368376536688268832157515167162734284462412231717454731482286182576888742276324854527217243831571537741236728445821375724644171666848854882818782717532561258357515153211667755112562537847384826735468358573478646153122826133817176871676734458436844534372757527132832321775113461841413441684752342223841282712211245717786447425564688887723548855765563561613125226125362758226462738387512637358417743673515727367214583276255583126388842146556172834586783134854183145467718774736738548534432434348142747715487318312434477266651737766838867475463755865858254122375832347387674153817261658873478178537343536131752771882286581424466285178754862447232717817313114248524683484868426744232852234774847251673457325645616753656347642746681311541244361552224545118221646217874577345258757552583457715548636583621781824774238428612772111743376363614332773151562234615613225771325583631783475618282476777245147253523442826637457212121452283525831835815626422723521218237774515765656556183738236685757414387834423554121275878125631146268281351534581445748445373516881551845778737841224537688473725371468115615223441768186224151717323878654258637236543732772114535838615731164766868284612522611853464464388327166611177686161655446111142618337278625862337513131112586622544323238547352238684143481253264877818771655654778578638445523153372384264865521182286765637443268382223552441227575841348231541173256186118816118588172114186533787551211714658672214323171184851812621442157656474354221525228635632552246643127565523885645727757878513415534262883452663574875242743182223665382474834221278732412253161754746638113188286237371468474761456653542374585813164814587438827144216113558214541575517883568268154777773436722353355222532271125245852818557362318287858534261883138456116516384673818171744158173114521177548583683836267343532727144235742461777223843417142212751418586217448327537385714334711315428852242657684783361251883312876235355487423568442251452871588166888227776517562666558882127674485158846627147831651821282775678737118455212656564571311128345333234426524243713366181845145237442471635713854122516445347451244223184252145365411677686637188225482144654434367224385363663668656224517623224463842833238125478211218887233416662645633717742614561851276152141218287175181386841181464648146777553155867582565871554463466267646378286346412711572276188344238343764272126878384271323478322443642142553258434343231877854561355683218255171524425611224163533713226663643658726684256335251262217872175726142488146323586485468874748535755844372534621346344331364547868515417421273115452862232575444474532346273586374841216843838464348162161765538866361275176817815447168371283682115823542133558843762776451511226837567561556674832625771316738243522278685543532356818553386382322127341434622513774111166553323545544176714454532166423245421854161328868562756342717168373827872383415578528254656835715435555675144351418683148835878384313331835687847174782414765688564448214621147487365814381544763256842456267313743313554511365742687144125323683872427552713632637814771221157352756556684744172817583757115123524373167682675686364312412176223154652775128816885365828763544777385218751747411488378672457522835723517571837742333116224176337631676176315486236652411676328247571752776533278728238136334778774723837176182215512365233225238672322463741227462153554542551463612586564812178167335223835724362283474188287867353262466512815827555835364354688378162578378551661231223173218367575631141536217133738728216148326423127145266647578465756523181411132768365473575765433736561385861878878127663343272256157428761328864716313752223182528184586567554121747167346512624383161254521658332377765123543281821287516562146725235341456683441718875638531534778517745348555432882152225852318415417354822751626266545461435862643224388462332836456625868118116812281876357363854777264774711212587854287127344553174714238365836572833236311278823627851736712158482614732786245354267347125786216834462183884347715514241786885234265167438753562534315635874151531433166113667751427334755138463465664574466333137848566565648261217875546552114466223576534725515253253123421285731841218258168465854663761535543721218483277582751868824672731323573681551434336873828624314468378188266157483746262577187237458257167556383487183148351126441175315865855886114584646127437574173767768525266677477881346237566141232857283577834285765574254762672383636213528425125185772537831168875851577177582828427547265467613487777252575437451464841464421782875273871237365764465411843812715164437758623656522156156343418174238121726636214577621872613443512116178841376246371223281464258855825871753188447164348662412818375454667133136825585514457255524775233654258382435764513458237515843582881858315388834647731162116282318484827565442152655231185326134458782247612355161865721833417653845526276724818157455461524214558842878448383424325256843612763364285677226676762223827148412284188781778647277835315727815612411466128545337712448355377742447161361721854136637782758824144285151672424861846447563513774583841166328165345214125616871744868866386745841226648212284556225566138278171412817315135445536757281754676627356422254128168682346664173353247345815143263177844487115374451343361728724425165427141517135574352644746684536383462562532663575214326416756266183781871186762482124668728633278453688457632774441783882331561757422351851655253113772481854244788562863435216838168274238277178772848363327286522855488228862165331251131341251631483125775778224683764462353775516235756771663585787365153833777834451271651237174141872637288316357263232373886485662114441842346632788622133783346444776782136836874283826144665831683717568713367841282465388466578464452485466674147718278365515518761164368745851466458724113722256562267248533251775435348188483331484258888263523824811243453641722478515767488713561347487684481126887424752181174254638882225714251232713226384477426584112857844217824526372382857635528577585265857528325453816551656463155114157682828615471187617238268343244258327371636852723867586451452115258554135455343735222385783782667462535642783836675351126623514434624158535664165853311335178538678446718171313777316587538316318441434232412822447754674268843823284642886547674782162211466754342251736236887588841351382427764737635268446255775554732682542644667351711574762485578165626763333783181714286187132583844156261523227751677526187736687312228678225874176773345842833143636464455475327223821355642285623482578517212778245235816485255186865846765433826133276243224818517657727716782853457482881357381444731782476353117871571447422758771437418787218444515316362866148644411157418434428285677771865183884585154472286874751764367617755332127266854128382325346735553423224347372436184677813773558368181486133856582225815585734532718368737551153654464176176785626884377367317851384837776346151243127716483177213584635682188533832521533768724553124513644645643857552326471116227166271268658633857425245644231211241272754521224284322184837523142173267615448714176225616783555763132462255731631334287656463865442156421674575882183333615534436216538656885343722744277111517447511335671644435541644324122866427326585724125122857487745717318374736618324574716412724841374672538457283165253266481437876125271158451131525465716466337244458225781642414418822818685321474713185252633183612181528187157483526187824433374832758452474642275711772685344825457345521323388682272325162737273324858283455826648511178712122722675462872311288358527638855334134522612746736358725747517178576745772753257687547317853366838835684385144123661642212674437336842626136811781685886742852147723676885851267687231588426717814362716235557885528788543628661822878652426686466611517215324524162736421512413745588154581425851831783881535832744618811645765317356536142814657572757238574786242365326781144248554125454111264713873651855138557563134673631377764341831653563343545423852676355223535443811662473451836771457818246355847487637272184721356141583183755223113662862276237273271368125533174442887278118537721347314855384718285543812748644514562566844134155768746411522386147734126367553458287283873451343871554571283383221768655867813652761177277656633644241214713126827587311457357524164671445461733756787121554137533747345887823582311331666721835376172267812454538651875284368726735564526456583155215566468735312662683127683124861521311415732718562783228488253122852476686356272731388527333466526846646774567448876138344348861542187623362887572776434141621782231114231134313572761656231212821332566815212871116242646357182582131561325856138342557317218762881387278858211527843872217161318543751177223365174364721867453481128848184583234265678274521248852126344122713848734373345352771757516423512424816476745251844121351841376186768451727655753836314372725332261644214661451656355188715821467426567571541345766677747472283278832324854855828822158113513761234843475134645484814244467578611363164685117834738266481545523231644548818652116316285378526555853426255564288445545225672311421863537782435414122513276231667858884233862264126811534181835488476475646271623621272312351273517336627886523467534761137455337456672377132284158812364358552458676637726774215227781213471227163544765184453323387876224313621632818813881822833313585162413767652455516553866837583238164334824626757282164752262822465672437665765817876365621813127332651224322576175317687873388161211573334532577388555883486876752582858487268353851226338722733235234826767873265241586248177726618114121311255578787735741682312223185877212377752774871148148486823657888763854257555631842577662586284844677677882442425335116285664245573563652158444655546283117736715147343243684444617364276231735322147867756651332828156878157272683427558841741571446544421153387687422323812471657865254136754452355158472652476332142214856176251644465438268714647442147426664642211461277731582482675885258456317332778355653674382851377568346338388545318336331675171227636168688684633313528123668125122385217424136642261756685338425721873484121357572268315574231856565773776814247121531461115387363886845686155721816877345347275841146111848676576418582828785843178878564381732248634842815533888443537861735573874837858777461647757185686714514847358618567266277562862652474572722328367148884653167245476846272727817841367313188552432456454686338145655638262437158281316157883521273616466726344421787183521447812543782656777466184617335743588827158347732687746725217847157747552426325634457686851833388116258767837768115753755675138388343355677185376433333427267151316161372318642585537853784464287585562524588558863528424258655154486237614178416453331215316385557226566343445122334221588688337833121811864227466734181431214226743557845322223866126868515854773378313458536481186477155615686281733828764554381521675238675678571532413681724755523718873746212366513626175623686646472325286487678458387658772666367644188451618853366317281847527626321842514368355146111611133116561526827434682431335542783283867755324431241737456163253515314628736371811376461628423541325356428512178381857223186283342378466575572718863341752164881556618688412132478218248363283235455527138388361115351356463523438635873722652576276217554214423883714744255816853856361168451673432868521658682741726212363721154642486754664563683521572582621614518176178184428628854136175175354222752732454324437587777676338138827424687857581578725216514728884385862425168417882155186232824554855576446737383415825331832775457671555553788184465878263317188678833251513181582347576241431817638134568171314845577743264182785655344545381844231878627273683141154127338627544672443814773243354364823353568125855833153778242245155846373441413137756442216587354317841242251186666522173577751286515475878626745882362835685343688557566482781423563184211222623623644688238654376883238823816623331436444841361528238543856157254556243888584845263222814732252441432243551474465217122358835831474327164614481134634538325568543765221843514625448543317427668411212532545365831286751686624841658837837181253317567176683587853382588432738534511448321271345574176824872317863128436124364534264587847816421358131884877334285317258475472778346531123128172171835233873424283715858443665828821176122455422877142371261576451533212866338173668215426844816711866466335671171346328763747117886525431535837476682237452545447155655812413524876155437846771744712515242111245631535283671668213773814236157643778445661113466887311474873382868418241834843121721668411582786777577623474232548862522368722686416223766385417238447521678227536237543178165511732647332234715771476134851377226817485223178518562361181276263668876184671372881341554328356323837642526148282535233446376236134864423427162181375877223663868427627223118673121647365546627458116641354816165245725858463667262671585434577358526865343777686655748686643232844521676838156627278564554135326618254363322882531425723872628376387424472518237112353726583717444786677318656281445423317226834825531777841727148881375851463282626332537836611867268383758632728447387755334116685277424568831886653383421426767485812551732665564618572862215132475414231713778573618386162135838856273874413822622687662627747648783783625126161557533524433484874172128122535813638815877477255541315541453581537284664622137822721555232146885765513773663256774284123567856626448581853843565251881368678223388682547417567134882841353845468544561748745336266643433252264715658352816742868774137251474518788288262777338176226765118412461682556332848616651757158184155487668218231853456324538213555648244677567848228867687323467745121311548522766474635427882263733355487133424217747678672317214643436276634614342678333381452857218378431328735462112523258471276617716844765766312148288574131581565666652251613341113811858748736726331733516757671365623744324344725131216647858443257813434282542256448381385731147242172418183735246753318443641462413546137455444283786752411743671483315547463647188232127258227814737745686214152571835435113125588375647861763333466288145867655145563856132321418756271427453217287842131153774825483737755213812463822651671557315741754217183751287128547713571164454516842223272725712362615766863438711857521687872834418751213624465363884726211836818376423164877644565578671466222141444435375448347147554151636583636237178722262343347744671617217851226666633512354656713787178278271612511657175773714651257536654683235333141438254144547232254435682152526417387365548175466788834574766366225864361517364864372233441876723338524376772511245111126148732144376415811853482767586173856273647682243583365676617741624743677354446782474733874666113728266628628266875586865326356278857417451774232635842773635434177133537185622366563727551244861272753224117561475111867326835183782833675513635215384464352214511446561841451185238667172712688336668468641484617282528685512423657755272776345623442348577151182273487621652875162352451468168274715643437841445251688545285441545186181516362568255588514883753243417316415836473718565137328625173756371836716877326744776284256537371763514562763243238712573325521817623141261211537677331847581788466545673374573524376445788467872584153612146363465786482722617533372326335366436347283763437672617674373557377754884314354525764751836171126675481857451542777164415644867265272888736472485483215455416511522363418878652163158563117616761563135115586584853521171234877837763542232673514144646757245331384443823251162728635732414468281755451331714768211872228776475554312284487675133535442672587738614873454858313874684645216461415322385541188358452367711588248825586836324462613855373146564186554883773455577437164815234528316373828826434161675568754465481248627571112741512324478223264132142353338567564211725612458814873628254471857116114785462583211337676225661722632414638641378744167213674387583362777153118437344448287838542364425136432683215258582851171674183442134878127435532414137635533642233758865288472543732545383756711273854144668745253586251131683411674658461685545274487668316421868212147217213142165247134662288344731457628385752334183368424287477851447623276424666328112487116811536354722825117726125688662332368123847677216152715211576834337773148528356124143586621774545344232657114273542671184142237333251651633735417688368635767511332347254184875185326462361561366234342288163735774522123525776241615548715736546427514852381816571333174446233535528843742564481568567868726762726438332423428172523581455582522247618851844342874841447466838536718242246757814351211775255373458433617434155838773614472211343857556552836525533187415355263816127846464458721687158848461188681583144778665681616878775563821678274856151631245767817823145747233358623461137561224342361378543648558446468377872326557778435481563843414663184167224367346248446477784668537817615771845753274773244336255171722715726858786223723613188556286811844362386821568124887377527872482467316712435282887441845586113466442774185835834174813368354464488253675151617467833385712312484382353155366576621767718238757278545562241648615238858821656458466723612652645427772522485266723454274773827847613437666666855144825183142544348176334512323875851241267723781885552146462587457664682815257486663312517148625171774478778358643535741823835222256346362354744268364861648555387212874413117821713417542426748378218537454155717657576273772712887322724355815151888283417867554816852284658522113737561728425531721522875852733673553463783212433864884637864547456634468835137737614458718318462471572137554843811468253658531281661482158143412385614558742653846564732348726717143128757162718446676251246527557168467556277511217451461415885574762861735465247623575318811125356254317812325536654417282354482534438445487513775258835488283442657632727784572252532714322572256573556727882858836562788143713743346235577287674876545125124176883764628731647117168665847264742386416721646674182548751114582815181135527566723543412262461581656465527573736263717262782124212484155818561644352543374226757732672825231646282858432858431773168537434743747537837214141282256866213154454735584451351481481582121786614418681375685258124633118168347618771481451613515327177844152285516332728374681626411135314678837755521551815181323461487162161373645453264656375771584285621413637151238232673225788413435552133113571665468452145867425534711463433824471245473472775831767786837112542885137775654644413435888844772618287455572242872456647361143683887271775338753842635266387276138664835687885638326321525466213573852171542275176657374675675672786662584325525455373623636675428367386562615568877275114683864386871236236816628421147786258158186717438547853345448256335486873876211517612262585251253512755148254723435485782653788525546745678371671818166437386755813442548511476686266628841126263312177532462232258653412355467851865731663328236527874186853542658718171148226156227828231184144515441843844862686688651427135813216134847883111374558138128323564371624413418467436174377852686572833384662434657413456842622562371726525822288367837465875252448184342772255843232182253821181361746484444436333885773844314747465637574586584518173286442176583132153265453677415754183761254732781514462851533345546416885622484137854517385877713383617876625473757475224576845371651731288785274463543115356364858348414212344647616274322414328773563164817856545618337435863751275771875642618362861783784261881533111317226555651386555357528757137237368754327858815557367873545632443271444181342111746645371485535123822762115854124358585126283367718774273113145732241151643674752323338657867858423188388538147433547487742167878418247651157584318227132173637166488782786636841346545155748321623211755322478562187323871627151785685778523876867784164176774565126576687671782763871482774322537818851375826216568545421733446328727212686365715574888176373224121136435624513263557657855745866566584818353557863177243473241172625817552621623686128812344845582438128658874164464763271811138813666813617426388828456578268181318271135353588134122742757728441575548684317768512717661686615117477366168173447157862232584237666755288861644673227515735855675475726731313246878773314813886888636288438365537586777338145533622616162554757565387375355153478341141767277225476586174652712541425583716155631444176873883154451151545335142662462861247322558757111785714877225238128232242868642346173552556581576263166734865771617172484181537561684633226321827834282443284722117133385165516572366665423155477717555642265874571815826743768286583316152545662853441581484234432655863142818365557485313728762187351716242472153824526628213636855842453525252173458431833476721721254684752338757723815872446634352218813365235811277717431282668748243448618183341853583666453415161116332853164767548344323826678648358532817163126338741552146617418235883224772277474787242622511385341847271428215124682644322426471273478222825864245847766738133656123336284285524647274568554254717412413676584183452727262342377228551436883833633257251112144152181348457715875536262848233881884335534643885462423546336415871541432746838114114464816446533281714452383117566356524858425314538521563234238257766722727625248444813224244528668614115744387283574565187284388824812472322576612475618324484244521543515253382534184577438346227761767413632148171671544762452423543544753547423618754231473537557718518848131227764128774217761732873234342658434775862243644758341238817266653384726543513232185531827772555176344635316473485826651116438113634872151315256126272455566664442458776653444234735787553743754428435337888861115727771142814322772178811252821223377313758838668174745381318434856512585251738155214116651681727744464347745483665376621618784257528671666873534167732644186144478851652526481267684763472635514575411516255327585474183741128133824581287685837423715685625153384665225311745674774684372812383432118836852187262563435664463747555232334285862347617353356361511826815142166564553613341483266283162411125621685753438371148572351284813543452634586437731876118723111228773738142616477215123878576254666117155843314588854155211877277578462588415318226712817164422445465388131767685333863571555851674238262234838581811567215214185384821714321717544136218862138718743343828825862583716117175828171233325326326284376721455851527766126488234813785568782325163511715761316147326165734638868838853162225517574571783112758337654237642555865726857481766114323348543574485457732863744185415222213664852772583658538133417346324257725271684245853631153458777336156671273744425882848557315556731221544855373421516174213777618144527265442272871271621348558551355263661216267344136844667153825431874231823774715864152858517621768622276735838827681665656132348138657655181821217246573521386584351415335832243684154543131864557547841276612165152557151632818478455361882611373453752341346412464662417761722353323766167176865823611143415531714885661477354134842872852722531675673233573263444847442312721742625523737866632678368627132375757767685472474254837558182257763733866266376787341215136536751278273811114535236885846718581448314286847614381557634423388726117815613363457266113463683544228446875827813862161672531617162812142162585174882456221354567618426873813531815411513732828253721544743457436166542737223113464673262482368611267638226261114714738875655151842476148182116455541571745438564848552353624224711652512457447455331316822264521233225883761543344327333342866441512545112232336511212441322854857131424771744457167257417243285774614735448276134822462683676237783352423355512831287786737378147717548647555587581574413388841658276563561182372451447844156516324885878211412127734713342333248785254251563875687315217531663856634345255851825752262386388668176561571586826884188288764883174271152128716511672411513748655367374123382178827827831548412424868874446415155637782845213258841774252524456363341818616234627823826625882252416827446873265862182326557854727151143263642133621776752574323363685774412514747871544334845515363672788336711113545518623124184341723848186524432278644171484421735242715142147161254756451111516387188563386145138522143626175288242186441622164778137832773715641775718675417575857315438577227668145817454551853563517858581836188623712526531688614438576348341723513375745212645767851317315884137344462767116453227614638442484681261847827116672463515118526334825862453263536246845278762863757662352778372274172188472524337246447166338524851862832826577141828634138446382541373232714786443118712462786744112826658566711154733613562548621815464173324322622574765843248747273337224573856437223757543333265455552385722442125155736754663485332465746786134488581663281172535514812123335757384745528652584534266784462388316814833387126532585816154756136481564616126221442834175416442377337516635828156235386151558516525572843221763123875675846181748478537873144374711515627555584687832161262126675367841114275384622754774352818151662511615728251533758463246353533257636556483128586236748254558132328726342432846545657882347634773664168832253764141275243356826863133313248532723164656121566426211317144148157142444641268653112165287438864181312222332365654831886822732844811515784726648433726556376136288256163787381236635524822322375474742471414288855858247475261457768738153552166871857684267574336867624344724356575211522577386753441153651138517241765683546763477655652236447851682488476482363315176288631833741134786248816228127758811783724483851663668366857354481542265561862173334761436341572353746844323285757274327742755777243562474887433587637773218565451875846782854334731627478183718626445512111414513514337451662231461256615564373366544378222551651267863555461454665836457352158477345624115852135417147145546715771765381283511818216676175346281271144758582242237614425227232558537373425545332516457726682514284381337174315275715264628625752233371765347728341753412711335837222487152476234178476654725625672831838136476425251663124777743124751322616253781461384881352616286147183556712146186587117151252384873232135428443252361542864735476311581265868448375687211684464253242763254388415487458627636664588417152366572652287188335476366811287156586887275212872178242714625237383135434574871411274158557736465868557342176237727876282241321625753886182322685664212812585838216156143547571524725358171326245324378733536161641315372813166143556375716858321657564544582668615552462776251842451574855168484633148315846685684654615216436258788224631384768151227743884756188442488112878583178724484764138686554787127812176753185132321133571433451345358662363477622171158625116314786576771878384641132613826462161822511781638577828674881212388814652562618667556443715374335672763664475858647767522474225845664514255757427655142215748351135271886871447313786153235337353246828185364844555857468818261521237818248554452364778383236858671153243587577584353781442655178677134648146844824311613376253185554876354381531415248261262837442542333414118232235885343477316385317615813761646624424528882652551656781755763276124814635477213657344631822414323127828574333887762785753611123371413515566327417128475361261568624327647476771462377254136243627588362165851657284318785555751128158445187886236264382615714484746518378766456772244176644326337116418831276524775845722336152718883138366454525123337778582758574457467615141828832328552136354852333381212446546885732822715751314576572113756553615883533836846285186815632553543758742313516854731834747355366277735523823864182877544663867785223845521544822682343674232714275688343134254185124853264341265674823248673231366143443323641612851737762684522865147734648763641747336381828463284466118423244314113671715567718842287874374328828548357455645827372434354347237384511213118188747264634551372356266235471157828624778636678531236281718756474547254514667538447141287462585753367456168774487522434516528618316332227368844524655772585671736136464144218427688215255275217753474123883184763122665873211423271612583822862318335212546145713314423154637834853668535435226812474164537462227733811284255488422836625555658677235461542132313448711434175846848432276342552387151318852834642768328411662426131114683311217658355551772648527252736364421666867583348583182722422138785474335236631642632616236846417845526523625677276877356643312564773183828863684488857573558244438881876628135788255857611532261672617868326546736657611883315344243146673642431642131582372633663682728424524851231462541162667318548217147443532858676131846474512687477631567531528647778526616371618552886846668846767455223145343148118171472783377736136275787855215116817774323142272774348235678713552848552674564513424764726563382646475346484411645255263731655782738664334573241536572166717477112755815463745523553583141788723253634332223653813686464422227786852118551352784553424874125265644686723424385367437223246718566587137758676764617686654521523178465881283267333874166877382386361544273537323876358843114411458762686186545563833167763325848672372327142333447771318157737632871316116713626341837664622784673766388766246231715817177737117682578211326534447861241214344287683883373248587556442475211772136728347177443565226318282756371882178537686264124544783336837178471685122638646636714287451551622683351818273678166171324583373511871412473751374413134645672283351213313378363551112111461823536525517463537561455222453846318526363732586675431756875832414531134745157183476347156724243176572266828457586221472723581786257743856716715747352474525483486271872383355867856761157538775834756647466874288557846874646454847367733237448156768586766841457164732655826114714255785434278464463168178132485654141425688637641282211185481514152184626465587261766133248283148315461241444586218428845711226538673426651528375434768517546388138875356165786581774435725454742387782846371422275528156211562272754787628126733855731465128222773251516753155333785643855866832245268744167138383647223142541683474638686232322785283878717282221711456526583218881775446442487756374632625448731516533414234782632132672844634845846748813418335755816455118388178124582267323311445431844342417485188418432658427783564363867483183344324864334274255372675712252276181166634528353328124136316133718124254484653834564318124348431385841566828887114374431446326264251826423572117211165414445688564261618717536536463852213485358782773416278275653453354416565257674138677517588181667574614285574758668171837687278212323758488644132475334667822517247687717166551314322377136772241347314532748257353141778231183277256623722243586611155535761648281184234818181641332712321664574683143716267188452667267233825652122674635276477264662876327856422723454747873248628278442546571842114812633462374265275684655842718255842675464764853522575351623764756512437788574422428521445772314855342454621448742536483648438735458721767623831642434622872148343378335512736416334485153315735738225878672483746728238244162814357312586617583156881267422547633873686475546345884361542531586543234235365224478582873365535371557337422732131845247611828358286582411422533847512245711448477285316723565613551724644884132866241721662313244228115311586384754225777621116485856212721141511667635132487861371426324338342152134848338821153777562185343552314654526861147615247168582444863288187862735816438578872372583355418423182666636731627767258143848127718382366751275836234438556441725433786721226122566841755857176542272651115266574515233856656487555865153768268885536217468631587335562382542114258216752851145126576882151877241531276874367782753512335531811855612568423651525858662553326567741181778351415247386361871184315442411245163181424411776156666724636634617628686125575672628411358571628868167714324786486574262528682728751325638458784436282765433571222417123782123477661683756676582777222736556651687458636673153526632564315462288651452726871138866246585118175153141556361572386184566484116553564617782722484646487528445655161747658768317251852714232758652315167688783812824628314587862782325452666147173871346687137181321568713622487274267312812328852427635473334831463544442257142277763471232442652546387683174578846364614655337612514637837322766316621446763675845767873363548613875783485721488446324682673247841713442718148111271814117755215864354178218836348318614823243464783688268265316558334526644858432115135744522813186118343818267211436163553875665241727128252474476772633716373875346456257743371352555778755616234154723585845324246436824452833371433662586531645456816324437545433222235778616253733725758174412837457813235216486351374644114738248868137825788417661118543437523882655876318126856753625154111633247652842757274654553534116666447513885457538742244778735534675576548335488535127871342736747475262132471376411427837131142732147613267227143462326536277853843286884656146186824818738371726857351133434473365642222144888277841447547145344575278458611515283712783231872323577837887437126371584655212358678335413754678142233537343288328173652468312462426342255865384382268157816367445632873628483882621488613282481114717364354582871855734455862661644716168663263225525277777711225723526414318424182124721236825565774446672133436233615526611172155277446632331813888288438125116834315632648513121117135877572345253274324721558774177665518726451563267743864444138321732143246884347568783562667462257245861325723457264635455821358881576675847764451835875738816434815644517673435847452217664486378122372613774276338787147331131382623866428188216361463866721546738846281413667758654622317671427513525471237452711117326145522668838372884331415767338868581651535832822161155471551784462545554783771465873263587556468335682133224118443475267436562726187755282611874567616544182745273761518588867761128448611342218718463563567151175446373247273436441861428171366885484248146574433454662112877453556251821265633767853288181335611433851131368781641166587244771263335454715162222528632132721455386427545245832121133772673633338444171165734117787264447188443368432212187346547144681768685656427232586454716756723552344453132458664262766268662362257547427314672671815381314238666113472366842481644818567768383326265486737281711431185185412458638678542278167581436113717574551153182375755215227583823365472258165754517146311741773764277657873512886174628132463583641418553632643583862556186434144255262266134345471727462433156487612747875237562637424284243751222784443886216218561353183523851431641252262157347485876167586674862137741436476312354877426786232658351777512134468614414738543188738222378185287216855864525825267228466447533624458113334612688774265376821357661412132283721134527468655355232623375733822811232411763132718166517858756274776561878472261781354755165784863462815513111837147354368853774757232573121427425257113346783435422625721285344623237644324643611274184813525634258612616135134441867766148586253368552346553554575341541524448753524878771628234362772387218754253263615471652816452141728357231331355776747352387336376551465412272768552843433854378651852116352551167876756216881325461623337121224758646837537672132384325251252215648425327731366218674663433752773544337361367571762768765741227542268362327617785554187316523187143834176171253734675563586168252364276277471756845627444488465766316384645184456522782753365425753771432725541435645674745312873246414858451123878241343887778532167274512748225186427517328317687765553745646114765821186457366281217565356381674464473325336818343743886155782377166661665636838116467358433867874578423521113386377844121557248482743573148727242268738742475165446243413512586466868157738617342452632587313554746276528726466882343671886457665374312817867572751814533122351184345331825625687566144581855874762264855166554383263726817438713256322424568683275874163887441747317887621627314884548417262466275114348436413377234682255132465717871511166323343353875311836741145848126687878546828341748211155687478677223165425487566355742237167856673657423141111367547871567375122743534522482287861815222246355138584445846242133211642435684863286612535126526671565367766116716175456628857851555874746538277372846517518626744486255312757358528352451422423648718883658212211383341131517638682883758684746634848353582221611414384845562116158537326115623254458655428681315677412765242332282275347584453867713711624463621853156457713333586412215118323114325555763575118158533643768848345438284457716312447841167655775124333547583118842183726411215521486713813733414516733833478463751834437865815656744773652767286625224516812256385281441111481562774288727476427231182337273821738582248446152183182418565728652758738244767773656885816821165158577632327524221731538164861474351321236662144428828626521518361613767648264751125426484337143113587482684835524426146125742752245213783641764756717626815331245188522832287317383445624745422512824311655632627278624288515255673255635563451274347321421871254825888874561234577172156762173545465465482823331137458685564464573352155358863523658615265478437454781513672512861434222885234135324758824587633843374425415587835527742781242843732674142717646434315182231458252473318528577162587388232457745855357468441736742847816284457353765454357265221235435367328666351858328442334553867177124782446833322635458888211438547332411673568827684363838367278312845354566233261573462671663884673521758186444235462867833172567334418284134164462381612132557124211512682123134223711264765157146533761337635847456863226876854188155526361813378366638426448615714128714521731862631283183457265131572545185874546872154754737688647138457444327163712433856864156286844635448128753766636816188823873747535333728715255873167152276443315667675617228771176811836644172446188565376786576583678278884317134725875644817164686478453846825584374373682858732716346553227764563422282453743426864738615664682522234417224416782441575352415213124787328568211371214831272728867475318574325578835775825385548641467277774722364365644757646414173132181782183532581778334452275847816242113787672384135814355883784762815477224144451354658487373314136554611652535186383621435611717254116344213118655588331567115472581216532676223752532274623436217758732558817765362686616771188723426847318217165361475456518815637187235863622358256554474468534764566125111823256268612251673827143761312771175227588477885445338141327213266757552625365351814322746461551532241358637837557577175848868647684142782723476811373255866286458346727471486872541318738573648511132256576825835673243266332181124843244471841378788422883844587736745836757633421818337464366157831561367312514334617521461636133138664362488664757741386645464326534166441222355141558123532166747681162885564532587323374747652182265466141874371341166182386717173817363542435813215451336445652427686888835274574162773353168331844714665288355873335411855381484533326711768216565556568374575763354382678373886248167143187556663455383448684686851463461863565741511818258131541431341583315624635883734127614364136326625757571338115584684664863471733456517651134136773577157172651362144373147783261217547736773875143236556436781564147682443251132131211452777884562655361413518421771548462212818743788446313838161682583857578558855772318675276515775646753711515264127511115131535432538621148134355284528356677232727582352551324234534154168261111724877436683414378566832118387821627646561762236378421168815748183467227475146647345386717746287585323112836275354212415547857126628852474844315412187265832443455657166325323214434372473313155857817426324568853625517557635731653475588663628772448656567223867162111272251833881222815861663123724752856483176716158836312351528328115846331488576632884868561787136842452733734715373538253851852135644757724765237766885387317541813666356345411882721782231657146537115774244353488287313481337248686835275583856175476832827172213843588347818535446711151831141238323777833654551757415634735282774544251818123755176373552831714654246477283654772785858446246754873154287728458417277548573164125683651273727885584241126168687831822766262167716866837266327385215472731638214158722257542785422454865235142584118725513526163643182472826865433124165218482742771172741482686612225467741446153656613855823664523117833363658812577245446247666348272474648223828633246117234354472452278837758671165444334224144786265436626615281246552624612548457863881518411446112478418116417247857357688144842612273224573383338881176165228384452665236835812685225711555313343613532641285536757616685131542656571584831415435653647762543671237111561488435631543126162441862772518375644586877715845647756468516434365235444724611223184214488731414837128888855357133531157523424131164451347734441877585841162634637562385285255828851875536845147454662462341414555772531318276656245716748783881557848311164415187515267864882362133884458434362256583376738575532384472747674483176155661588675858825337626545456266754852838161512141856317314734483314311553868861718242138231788876632336534782426244786255643434572347468414315434248565847678453655766554852587584388322758353421824883648346633627425326827318132834281314326865227227281521582231325471315486666381458577587637446387787342452151663756211781514127423548553645862254133437718137857313223447226145444317674646288634382757715172467767411878817321837421285552412675665432176158574258573552243654265137541347172817748116774871612237627784335823743757144625525471817512423483314832316636547126844748267533215123543766475547565168834216574824842641317827425562858657137151817518673153428343458561657628658165411176572773876471147335655233541167688456182245481771522842684312422553667413721373816488234848413818422886736141268862658732442142575244452214632281365855575727613213314347827185827751158652661363766777224372318315685758634462577167517447673475287383348451457126316125163718671825214313163456735437242873446365543165327346816231331275234846171843215817655882777556864624333663478784531873427755616154482733324581384657432441846387465485142825246361326827645843612428636312885325342131534862711575544116136424662635472887238685325828272123172647448126861172376225882444632565287718455846453586515887652656331147548672286576865521471443118141226467673175717122827358617655211218711578534857564485227287382115122524751752225316748185121358255771752832275728614876825774365842771811243781542581687137654428781574388412165161276852215482747455328533381626263376353643676414463188482282436323118266417468885712413446624811783252384638883182353877352515572278131541243417661166287853428642344624544774315356312865764736468564465682481881564386268314662864838368853133483612423185328677511562882735833851886678723738224318532771451841443358824284513342867745727271747225385686227421687626621332865781356776362716847268771763874153518375515175324323336342737757717487617758134678618172752374134767412368521852832441133672852237243155843866787275836677813267483357547381847546542844374763588184233336467284874856458525481564253578336748122541666853322117681175137383661231417816287726461556648577836412115675767453373153651856457632126778636157776461523573155755511321285476313315556256831323274715316536262226637623425287435515873528836112415454858756522686347217815156821341868815817343142275666712567815536435757273241471511253457875368878821711525888174523446235728732577182661747588632215381147588886418466133812355187468128688387244515422258652737634822513118867523224117646756255613122522217711445564625428321347376112442451722714121331874488463417288512451754685322721613764371156178732177544137262763286357877233824778131636377141576258717636284585478322314221478261551126324628371827784878473154154138372585345352861164324288648736651867577762153184151714432436322833815253634211315387536282122672367278685878442135127176272422318242271547172273144174767283161826628872113855788184445275871174146882776652335612518322265114575237272516656667375227578758185861646583416254525256327816848247417145816677858811851276647585458255572767677378654858675824885184187386626725323616734574888274562331755751124724888588561284148215182538344316271464265771163376572165841838373634213117751861427744654276711253785431764612245877118573456548144665141345236647468856178615485238436467712537866588473657128324361828536226851663325137124287845642418511366267488722244745668812424665754745118574841374757881613837751648371381842765137863274483153365583666743661324338814252355621716835133681447155338282634484453278418848765814687144562741172738885445418513317474412777141621741775548236774182331815524481526527144331188344783532185853584114364274288538327873162872578457774586758713151262754444272134241154485734532265453334757761381867628181312557233144773353773142738158751621255486818416527316234417354151462378658354766454573442351166647551172558656212138462764383545656281876585174632816586761831318512784312578824723247515768122317657736535783546838748711386832134264512822365514256421131113478151612488231318766118378563336271736516855888341784863837252812533878381651271265854724417883483817818143176741616443742334521386811282848258421312834865788664462532335131628584271577673418427154418333251521222263125171863625257712385561877774731884375228441114414132663681145712166513375418412867548437422376787824484357417426284254813188584123534366548526647664341565448486357333155363674257334573386764361823885334642867555788325168275143544216168767236627532318471551557661766335368784445875157656442818655432168423461686114882532263334648648158661414447631761274665615412716346176663425414824324162484744371783647545251678715374865864638171557631877721771277871356867567524714316213636565785221383578774278567666785221846385377872761131482577833778447533113524346546374887255137433512867444361447263478751848715515823427442572221838578857681525433556234488657835345626421281126832648645416638644615516274384654736532476774623657732757883828167752363162181612688872783482484736228123523234218845716672251646486635262761544226227481788212341615411262256687444613588848447836381576817762657182467341483513114741638547586624751553231253843731454166344182571878683635376511172126352723388162673161113213457845856828788142546247375772283525426471354675827681113557711467552644775187835157351844281566657152145172313318587454844378871671577511216677757857647538811722642346366585644158472888665775684258884837156525574211337554317214545237162877878662578746875447422125138315356865164185617846677346615475141551735688234587264288422572757587413131746383645561812762758358143716211444826762427544276526264425232588566328567654415532576516226735311886181165171613758526733653611764623542184633428441528231762131612718411568387181127724434186188736222856768622727116615434663356876164517833423166284874566283372167882864287364582441832883184815138132358615755721552121377182437452877123377374118457427886655214812721215256177355732244486222621671446676163857412722255787446682274314824375255761522112563818458845821645316578133142224575887635235833348217445337676756842676247475411868432223762858185482555631734751556123625375156276841153524156785681463761661776625535147667567356847484266346132743272775555563628854688274316135778865612456318586474326116158865237774842576335675425625355782762445412485183724184865528762113312163488743883526477778815414573674467125466216653466428786176668156486233138742534644418644346411555876215546858565265367711676874887381817551851356367757875235317743877663682472623745632617485421164654467435646467274467258147274565328617388176462552417578176767541123463538164637145326154772752378368324812674542277117855486741482556166645538775545682415254312881266174636155754264518426257871338446161826373161334636456117425177866244833532216572362811861465784748772837771257631546345557458773312164556124147352363365221313185562571818572141665236546656452813226356132481445851142422667432636236314221228631836533676238465738283726472476618722232544833465864232578761146747437253135324855213513477767854536882813738855836151466814572172167724851336235184552453376424132533278473428357215355817613841863252182232785863252437143464282574424162562215535437533242465588328262887756754133462471115771255412841236756747328131614225641561822782728574347841837234223541624242563418244855241134875465385762661813147644631354171545737127437236888362562717541374635876728317327374616714362838143824362124242373561377276228871643454144843271812357177321557652844687424538242462363566855787677325284466473445232853887485484518537421464731845644875278882376737713828747134883723344183826778462754618486211224366753414533353331266814186683337274684442148586382824233185537456846583118268362361153351647347628764853275665573484342871572331675644316858841266627513326585173555545442135234623486875788681782838133562855353271786452283632666141478286171434122151426675784177251857368652822632372622374824348635453724671336241558736333852182866472785277225574775281487536238425178223167167547346287865724757867552537844512464382242536588561124486215728284324736375188552244267447852414556554243755534623116856833832762775771551514543581785662536233861732777166467535136633426671742345555437566388117751238867467247714281167873132825613733433335633417152831662873168565358466268785257843235327825137272441385433541433183544175557758561524837573243557778178863274875136778587216544687625572454138811451663626783587227586565425252182288342417157377631213336442663566257827478522664154711433544418881521816752685742141512578683218248443418842232655452242762837761464447322383871322364144664675188736215427614674785273168462282483155476115487674515411453478118426767126756327418182366427628625424422612546714733221755376751222467542227177675584333115487111326278572812884546755131686432871662536482421354362684767441214334568772428781772577527711884766162682717751712413773425678823674271658888216284182733175652343732271188778736861586355767657465654124884372841228855342285272826357788184734342224386628281267614582383228185133421555786818738284527753525318854373778325317686715837725475787647426668876656871513762727667288251318177536256468832562432716438755857161124125623163243847643553183735711143531323227475474448124425331623226582446843141546834472568448586864112126277343616761114316872113566634741233413673783274745285142552843284342615377354611332848368848178731662261368672185271748885644458148755118487315312145721466348385336715451271564748868384256148288821842358784288636371611354154124331428186881131462353238746168123346563352757861766767845126165183113551443418332476888664725168228733522138822266648637344613482116525676773615433778174112547186472144557135253478472684663373341221151528864347878164732188564887416267231175667438682185737124161128227177342146448313586565675682525673178786863465332355327128227783318168771418661876535863246486323335558418682622486837243255885278345723621485722373764472777573827566662235228775148744533165864788824547437641573458134623371258664226423471312161824163367517148687331382237683268446227135162571515352448358546858238354581671254817777313883621746786687687722444667185516517786173222486624665455851854677785527566888724656716255176862475831461848856823215714764338354331232631524241813177533245744616111456227517154184621781241476857112677233245312131778647211654251273121225285557616656215127324313364282328211885576783266748531144587656273845576387388431443888742423125632647631228851576642681342388125271448525373837147115757381411241735564411728377572636126757434461473771738471521668245376618714265255715231453283671323575375846657263256827765281471888815842581564446576586857386676512353666275525157464731175255547653511673746423527774711268143488184867132382228562587661523383776321433181447552276163724722644433845257171275583528364618713585115273745574317784265866541886241411472832623237355158488487582785532653567477182833376627471318148617151313612264527457266666653824324786452756722888822855221851437117121412325224727187156638815541566476422773655333583423354551352457652646754583381524681718574272817757153173817836641656674773465216347647477573528355824521362243416687165131415273841348751385741844424711625246333411484323664473671631176336254354644783364754613712853442466733852562457337836453381316772825732652846253366284248762361355471358644288452461373177128586365483735487215221278683888581576155448628512382258451113258348768415421522828543811485415662415121144367115264832565463114433721665855284888747434263274765174566141568658862716456172885671267613686763316363573226655742253683745467466318514211532571537424748365783865246854737228546167775241448838311712164813588214652113375888365551658177345373548638425311183242635215224712351832255426172855185471584753144271827853375337662625223447515311677531366844471586447548425755336274478547635643464371753858131772853341655765774712875218412545164215612268843121483757632463354783457526461282435411842288647885766366585221514731156262653275587567432113473613742268863433453887381432115512288761171584786635357741715573841662426526458842367614536646817455334564128855715462175183742672645462847144556177527844565844874544215353712224376436135171611276148153282832227313525682477634884283745747867155645475615212545348273481611513433134818823378276266535267361774631828146215336635354463687782656442565326578713867561831844317727327266556244246427182278252522435165337844711358546148782255762825374486763677417255652734327358385728788865375883541186616311517166465663235565168544141341682367442837155358878248774268645137148855632882483781273837523362157722451383231574622871444757145488237837355457474543388151277854478366364875761812718775774475174431272123187276615154813115123277462388563253612244215487235118684172525856216255528547686641477783751733615461738267616675614755344238678675851245413361311311584362557213622723223224873176351121365555284557273212554176721281655441883614142455112617772751268746188335316614128726712566518281636367444336756185566827552314515212124431145163813572567536531715341644158727788444114236234124834271455688672717724362115275184443254674161171285812571452575248372838873244663166757841237782178884336753626558236366164745121144282634828386771766888533417776733412764715521424856715627334861688761511113141673873556263576225346312718722755387534733814888173848735677462876626842566628618414364241527452485131764368571656381575412645133255474371216485124464865775385364741141712758383318438373354622352718584244223657451366146877783677632165264376564174264215324556426382514752724116465217332812363128148786383128421754584428753545114817837543724752533857435864555714683618183814252724547831438841128327823851486868174358225148883877466213663525861724431116247378251311316612618124875888731423683416261252372672485488861818886285571247323454477813527355283125274664367581138127554786385417711364856124364211628846815414317641478566562371153436681327781814585163275478218713452424126833632118282255264245875783453465834343164371422373717162855485752764374145831378151281581172872278177423155757163788164848272762867273434477861352633121115488374876441152522161752251858587882757147615467838878157175313323724126252471151227426515313447316352252173732858842335124458834155266632655327452784125827166745313672476311837176647667618663231671587184355244734568478388188465817838383716453525588773237658356462848726378535865788437183178673176572643364616664626358214848461652788724825345778561618764745558551118824773358181478485733127646446864343581421457558347557463288164371757284576381378372771852387175134641638451654773521836458677851256565247181171222432877258117375151838182733456271462571474737448217276788253363214386333317618827431535316642835441144744737827723573113487744462417515517276337455618487864736723212368484412435315774225534577524722143327181155344732784431163871756177388522322328164828383446477557858858778272715736756168842131755575711647814276213425146128323586287271767114711276844885227727711258161248575228218572414861313522168711672228454718333583276443772133135766626667567358511238238324217116227215612742133342364435755343366777527412818622265446252458881524512462285638255713824233182165522874525133814334841826172345751154623414867286661567386271456548655518716123454448187884823824785355668143732867248267855717441837532624338317372156136476523441777751512332225346647511581874621418853112114123853385357632841427572323181774317563542866477537161434388555338286655871124835426366466711331611482183218834556524354331144886542436733742843571432232262685816328151214475876164715222538712127453667678687162338158557488554281338728111217731852352136758145583733282673738383846117286437757138821617821584748675263236667855567461644173146452585875838638837172133636772462761323683228337331132254524834777335187365337236854827773547348231262727824764435618727536734423477658131244231244832358676453523716231715433524478131285612727867152753833373175713356364768134686335386325753673488883311718764211753536173336241847182576274774264763757334716374558857714516688243412651827645735165314253733436684741278345251532263141715651511775587758671243615478848748473371446131514313838676657525388685734355732571316881748224323715151862443736625467626755875844761657321665722514722835582875572765372263838222682844788176127821143152223356723262461871823618741255134444651428463624875353461767238462673178234674144551777314248225717248173352178841841435512884667478131757782141648538767714375862763243814388764633535656567472427685584718551747177723166863351567132812187715863722872652631853516632721488877485467177221633143584167744766582117162214262663712564578863327566114612441585246687436875464465867467678185856573855713245745182237182154682124381637762526251621313138253557732434447367235357241453348374374137761518835678538347762576362215833423676837631344521173776138717526665727572525823535277616684418147568282456722368423712252336622638226227658348635635343718175344317586614266484664176342188784767581635887853471725728383376554477262186216683858183732778745527257422512313565888154311476184252763746372838583888421644165642856738723313627178857243256717346423574284633346281181472858321817217225431643616824623345714874757232336837822227441476843251422884774562437737577316886424452116615171433413621628617266453462488838428111766255638542838815242672333525627818132582624172616757364324378821735275486228851824453468461622882318445631324842418675827354212778572845675524677873184144871364831583756413387611246514288862685352758641826471231114841777168261287458751248664641867132344564236572821835555642463273686651741333868673818228587638822167413341781152347868664772812686552611334532775678651647221466862177365381615446221342312572231153248238561713167562581465118537623584432242224563686878588364815843351366851244721764551738675623252518325543122367422412367857548434538624454786562474588715626347725352811853738678365312378168666688256443378246377111687644327112727856377232476835131841226271641243568414146885626172221381557577265412868821148163361727742524817161814726121621283511475652135143743867663483432276388216723856251541673776635577825458237884117735223632584561786784412661771851635464587383774587515687472145231756611636337555722476468182378451224677126665122613226338115766224672722584562225868165435734477133861651844176671763454254561857717154358825867234788325782678328833344276825158561127754323512478543677475861781545312144653115284561541328345361151841846412132115275252714318428756566411821884348687833416873785814781836124263317662768255832278224462241452211326437158764415378664287286577468783484316326523451474211814844375523563785325866726557877487237755115848645638578255575668331622771772668723527661714474454418573413422757224543167813633242166614164375733182563222673217252387862173574472188724271551756555822233534551646886856838485482858751435256236611233463461633153276236381742212848632314725138484581782673675674818274325246358553316287585746556577227756434124288474532673184365413363183863836588371175531445788131161725834378161243467772542617247853123243535626678856137868137271451667251627627643827621456435386482125737234678786124773524642648866452284852742614234141417843627234167887875445736521784468873176823318686436662572253225448145616628175361738814482617631433876551677577173213366144888841238668427622367555282445661482623232633266272673732656722634626878246647178328228325437272772852645268541847437176157534534543381837626673518178648762314136557262586587164378174462131843433411632767268285726718471821536381342333685357252557562441147726242312746217742561781773354228753517277374515375584833446632666714667427752112236832428662753164681377188677222183534441128128841233214787548376571548751651144822387223174735334587272255721518183181441831374754118151415633826387481328218322865446728884668815414527382727655147858383741621247761784833148646522826423662551111347758465277558545224443432564183522686768488661553883133188157376147787586861765837852424173342554286348867553246274388342827866326157811357387261845365855822638472433636323147283833782263132341543731568854138671471588157235621515211547127614452762288438838726727558816258413634682232441487885137212554423632868775863778724138568852722242431448811881875253175274621112867756216758317814356733667464187238663417564716437648817678518615852267188225867588113483765882677622345364613182626254255672165272672277748327831435515541371183835148554284686826773483151623552817188546636548883373566388334662817186711134834287282724245376373883486136373354433186565372562824366487218455367828728225185615551242547325646136837321113685263187716713785673744472322762635463367227221743562362874448157285417545168771148852642141845728536465514353265113825451386281154443774626761671752331161163412232562175366741152854636174871166443785767547371433758231413557537144813872757817151786171815256623152754261274754832688351887231712376311785433743553684841655245365557836574575267161132146384651757671837723265185812741811218533828338787333364127741527683128138835648641733472851785576733334758743372835277336213553186283827734725543178676444588425558846424727238443341514457582425553352277144421423778543463588275213655682588253662288442231553455218342434588685427644563211563675836722573235315281746883857357136855621731525111513381354732181436788554525466865773374752128218856662368735572212326512431524775618812557733475126118361431665817867318332775774728622334774124533727283121232822662261236664638725354553884517422488878268171535567577814643262863656628838322644388364171267333314826365116318474658135728567837631271238424416611561256138118834318146482731212177564726686343723723516334113616335865516473434743274438616333563167376164327884567386264621324282131357412863517718273644613382154383138145831516851868728524756218164537115862434468334823873512624554581373368753172147236338845187425644438241331538662741773844641548244856126463614515186237555456263382126866183435676828787268655171826645412521553322231324175288753731216488382572647168635124141112141258437815232873883637641373426712255642364856317217287377741732113347468757753337842477473331851522185471511578268654487412816738613114834636827715178815378631426238755536414782316525128348837143876137885558687157188486486527753586524652158837547162387547537733448586512562818438241167181643182578215172277838554228877267674428844742722673865765666353365557443847344667747837545376348313428214431856731186754877451577318462213175214144272117425275511126745512443171735323435314555141171733661484534622826483143658536755382555138827155871734816552586446656177687141373628833756857854544725385411734844755525582435378438288575536616388413745221818356184376633523137367351245835142338785648538214614154281385237833385877563648136247642572485234655832823873223458322367688162462128771555628162238111664758423817183722273485225545351335367481263152284438861664648884231276225881782825162485527182341185511133738811423756282561331887757461281473832212855566461322757561173756626647475116748731716272361567484243274632736134768657864572425316114388287343567247442824363616556123142286735415473148644254718632476331341146777336677425848422743684557685157865222446676548313752771652665837141657788151244364412454432687257812287372763137126414265633124212866847423565173153661685368216618246646116427152756282471767186585235168114836746441131555374236718618363575768716522116726422357487276474532883844553127485316277768771545236112673834154827753728438555678468813635784127474827488311871574181452538524552176677231423474637733232264447146178714337152676175673882858263372567362335628466332682238787346225275187877533621181185543416451124865315772756526785338582272136238815844686277637463343741671735711653365171885713275267152357648123443734121173472728512845628772311244885738368665171561453815323745685736562162562832582441874346558188278444521561818562157424465247434328165587443158763445644634836871541775374833716116818547835587428738212374763832433166483734113641816143428335622445274241181444818235383161617157543834371311754131255251114256554721271312883818112138821361228725521353287216561841537456374483776487714345173357663277733244533455738373133287352646235174145655165873215377634282277881645223722836486514474578733466728166447281157136484226657785864565511865437318156657167188144652772337445453248186878645255638383753118736238583184274386566326825614645688353831437724342216661514726677155861882367716232232243382617553261732725872882867384853255776157814625415853231585726112611522733761838741783661617552685153281874563767628842781885658335476334362343782382574381121485867254687731271315785552444356743344828447286168275845254111333154557627246883476223464311642464521486438868755855612816334438744473647672414582681214341731575212187811637465462345618636421127546448446276643487544724375177518366466667423344135517756374686816188211735761764751581378347556167872431454664224481274387115217288287535124237311156115352585342468327632186466666836237482662763324411881117744253186564418571766827353328452424758674744152114311524144346467864718383684662853255656415675546741373811271786372631642485715457627175151487425512647263427676463237763243346537717788181466334442112481438866643443872165478332621827781511365362768718521385464112561821617486148188744561124158314141165781842255882546314154877372244483754513818253446213656532563744654741881474566816877672158854168568885868764682348615371365213153771224146113315438342416882826575567531855557557745138356738548111876674416447635276746872785471345375282661275143226737525226173671772414528441676582826765416486625578721877241617548138113576348726245844787876584784466663374176632837648647621878241854632535318384875221876867415717734452872727216735423218254216633357343867272538848166647272726325444538731282812145854157426127278214163278265333171642224165215281115244422315226611648588855637524475118887688653162276673851247525773122242447458572576578874361444784362168654576644623547313171176323776256853517145183423732624831323236251762621332548878577657748822828262765733761583838125442374575565855276833558416148672636184128578115267466844381133557267261735747278815833181737426751273464655641174661268832761326152326121524362125724885826636242172138736583824261112252777215722836354586137223237134278326731735827827267451271643482858566412268577715416773428114675781461737437245318118573634144756376823246181734526461535774444217554547652736861388165652823552165814517865136762862172161228266851863177522548484414387386842673768378627675212352562887746171412124133251828116326722345538816168681566524462167268461121875454333885868343421574281317684873811412421372782212565772451183468881286584186282257156731336475541843276615482714774242611457427551376652358665167315173484722463337362151727838155666511733421854672253635348274144426116236336363528646263541684838513367575886487325255221674451318678642812563766715241816631573825576721687256238475734425173255365172514143873145687873437572773166833837517811354838163254172636151438412373335278442481332163256634766721272535868225281311261653535521748462466213821763658662517853777471788535785356342664378325185138185883578727758545578647418547315871365762476558585838258412527642631836176224223157632637567868442837737871436587731132784232277736858724643321311521783865711253158181124282655144324177285341584643525413122256813634462252357738328251518168385334421344555636755818117141167723247268157343278224752416615423188635431726653861364862155883348352222637754463827662738118333284282388175867378575625868386316126845781747363441214177322884562623726847425261568386516168367357475257256123283513127782785786867544453414381856628567176172754286614262638221586656131821154214181146484618631411868185312183631563515536533621811443652145225183476311316333882881482862522643645775865127683875458757826786434778852184273622886782726375545124352465446426663867588823831774631343582756368337466172348227152315687217147861548445672582245456211544138752823718643866828618845748462337568348834674768346611338736756238347175464246784724834143538164348548584543818868325372266387238473238138747317881273453366862525762217876321363552724167448673818643143371854561535857442477753722716653462654243586175188523328544126673274637468836187464634621224336864888143536765547713827865233735464117282723825212628347543618864647258444363281213258514163473485834376322813583283513542346446737461767161165727462563681867441722777581823276167236548388483663861471617271466727721743238685652731851242514634568224184122481685562614715366737656746112256886117346677777361617658657771473145117748354352733213162526752735258342887812548433548186272765856135863441526824542138187218728718474346278517433412244386366555332188341331686133885427641336754153361815585486622131241315674133667458146863324146634214566668214823762873846657884182664553417273528153784828855563727271177636858261726726517337428368543266676832463857271288255636176523117212537883224261443636111834821782257517538788283864431662214148758817133146517544161533766455445333328425874452176423826345411425465542263351268246657212651326521171763458828124447483123233738454851641774463765638356435428418571283628132547774381878772867113227661284324418267514656664868465353557825433617476411484876764614452217111217157241714678814274443647153612611452786667158846577436367366322785856168138163687734336528477258776415866362324155644775344273835217132156217658682461551867141137756352544616173864828753265622152876267548238436132181758647166416538822211421715256546681518535488267726771746111117827251366772674625683328516585375476386223257287254856836811623334743116166452617667572162155714115545413147676311432783487135638437738383373817865556371125141684135434854246643416632756217327125248842751186244845751867643243612564378841782153121571222238757557611715463422884521811267347167241672127632314245113157345745211273371172735526337627328178524212716882228615268746435246174733442713732563523131741737124486831885216665833468411511426688152285843243587513223613421222428628142335181731168781853327768337864672147712382777325441614261383311727537587134834116875116478348151241815384663246457386612236232462884311612575185127713414236754523178138178424148711187847871367356255173513367248276628285632234655463284648537531883517742448266774282748673421285887222454884854152278672274424565614334435182342877838388815711273362151255741734785133728441841715184741728754314571817765173654675442463142843855635317245117364117152311253738121842534187266622583267143145212217352143126443732727733875568476684614241161555484655576515177867453116275852435687318566647455142863285455831155263315813182361624576178151737642132274786473345518457721126356411572417523344381712834267128465677212823547616816726672717822662122831717132254261476874533185831576547888678756787457465716652362232126128616241444237381285441773817768635785454374686627733866514177566568637123656846284224124574115386168646448446721468182346115658574756353751846174577511453835535715725474541723372653746141376688774315821511286645313483544478677551776284626188331761335173886686228183311264167277747848441825242135761428321811566333223837846674823325844375882737138537658124748841655718465878717152618247873817286271371277411764122436348531674216711232661313655383614817764834775837552566836487842385356852811715286445215188241754786826858664215457346584214456141436115166682343357321135156266456114157171274848613661815521222518735758182247143832482684727877312563545383241744262413837585444314325538416448862187525211328456365373216621288524786187588826622436153568324741277751144887446856645554484785322275827842355468436421178631725124818323668447587526827522871535271456462383354262337867334277572134812813231635138272631278782523637571147361118823821368833832251142124773276741862647828317732644678284135836353457251366357238164651725484876624158772368136315685887345134862666815466284274235158625671583127357357883365643127663712811481642446188188732547528186712787555644538768116435467232477355214414763234266552264667617286717348875152173285235756512517352575683654542825676778461876361667161422811867761417514844554782116754535734642684331241553252885267283845131734383223344434483112171852653371122624142727343774617714382635186567834512684128523776345388786587645466868564745284346832831461882412487318154275581221563873235736338158884311333328752685231215745712365487438315656633831438221557742416587786774262851267141561433573253714136757731353732666872247523123344357222756445265166165213212254685451668654781532516235283682442724321352172828782874564541331387247741621575562563252562633542814436612664562827828538878288483585618236863485861613812338342673868615816237754416618748652852531786211811478878725543642765665461882673826437713378338878834287527624824515715878526124487285446556245542535625816345571522163327311564122647581712667381321844127787462416535871814416641458662528635481837247572657416436783268434836378435131272186463317821446216442823123538651617688446385863662564468445441651417421746284673743618688324377416316168136614671143143388627167716365466236627353144246337775463475463113223646212288342563341837111532463712318375786334344645123448417367755371748163815514764541585513225725833843351464348358565677241738262138264146428783236338272717284763752236358626775771786425321728227647656328185762882436147715281434156536223411458736867646125882268437487224587187257452411627155525521838577274178167275512363341563786455588588841686784246466713866313116718381676611563642255644761383116687836282454346588787684733235136537652236342661586653653813363828661285283738481818735478518383112556217153722162866447638555854664171611116575153828576287823531226854188177355225267474671525516136726782335688567726212413332627135115261673274382657257868841758612127322834774673856515574813377127752668561618611554718271778677433634382742278866884377851367417468547628816248816374388428371122152743586562316574734487748136673485272854273423425183661152483845858337582877234716152815253718482865667756447472316266726813754465474523584117533382871723546733353753638758837283652414787277252827884772273147328324682475858845167636228848524764881562651855758382321712111433186812273348143788474238553383858833675665775524843376162127282632628585844281231746373825658436388482348114265521111317436415147812576462634611328473321335555174838415315757684226771273575264427872366551536261771826844386665441475875515176887134774688683721857482736648353522758522878775413462155681228651725157266845831457383816318672857232564382516742666554336754784721372112768332235153614533142171815721813373535736217634844665311774651232116346884784186272438145356644827541784545125246184348238224273478767575131178482867163873163227381236813128735733246375684557643614411127286464377546628138256363648884752131863668217626681443451311631322643616758441685434655621762611138364712565353585655824158563581688375578555716624815115868857688628814554412148453235482861275742166555442132563877334827713336754528787383543865515536823875254755334343416855643882825126758316352531348165272634533314422171646766415423634432353743341513685861867215416325885336384817325532448645865153422185488331481743236855422845462313347634152831312254845162332147418847526646882638228181541486274861244714848413433866646767644382571321268856885517135821263323165126513423557576572666155774476568556716848272246781262873363785851663748573665131548854827252613573453744125214636573381426411683737457327757566656184488546416568711625718422632275771688453583526145223674674574638564224756431687546267442514445336387366433324633875735354383235711474116545836584337343835125116676156843782435255467833347255766587542665326232628462363223317814175314648625785471813846247514631244452767832422246533588788616288353233557425647686357122724181612873825771841388553728264342513485682367115226376131556364754172531187835474252623428181543262242286353423858134214443772328334772462572157451886545132652312456343267552238858357567236575345687772743443622535755746173527875423664321777232166168324161157133512564324668242573782344752583158821484838348164517813175856465228587672366543515581213313223112415366225774717526112628351744445412217684618348252838662626885161153658533482425138518476666461665385464775658252478164163168646555264845833561785636241525245255138258577878875465622563448133461538751452184475842587117486863163212654822448531375222655344415656464482715736721442582411275732261373723724428482271366618214133381651743354275685875126463711785213863461136273777433871531538136144751838153816733848214351555643223538125812766432526331451565555233473716544732315658375862218153672427386518654654583423532155264178524547627561447237255866533251125846813473112636324761687218271382231377555672154418861632482463868375421412481765114788124166215547278641628124753114382413463558763143524133521411852357286528251114884135682432118254348541724627463524368618674814413135442212115873653517268327316257358421388633228352224836357348168873172257755116742613717348638624285347147881862415723258224218818375374452325251866272652756423114766258855384245186322231362631634668671874237536448816574322835884115273262853751446218114481713112531254111463687237556221785748464833854574761157767387587331356773883781256874551823674173468774461468523622688335448374186648654764112288437752455673824122563387625278333437514761174288715285662583542783818835767765535324238415344774328557157413423361644658437437813113477873826138827235443625377816526735642552323675287656553437433338665614164886567757241448475736281131371474711523674754522733434127162564247732532587847351768213287458777188345813154322538862742443365442451541374882572771651613846873318553268248411243421151644656653471777784768854376257433181882134787115445846248562375678457527518251372481857213383811216326688337263532564357736664754612138242884128876181323364218156334458156453777331473333481835585441877663323226468423158411114568727163768652878152214818432625646625652421668871173533728853787226238365315647266448873476384571127427412733351121612455863676615287574173845131761812463864115355642455253125163245581684333735858476733542272186716745713148128876654522585171533348448168337747226112753231762784711132372246422161122611473172538256852783168172862635531538463855537157475883853845227282661123783718178613415377888486255864857572481838574382436535858778378532141338548481652356436188558283588617726323832118634732486755183647346365535128128221663637372376676485626452612145588743348244866746474287277445147585187664636735412115832852858571761376351181645644621875724312525444231746846115871217756425328816251571885746756245874211846625453435425174727876537852188845275772122328618614226463265188271857683484853771521657472665263456328383656146334213452472435855728266884553255444482672816317817336674226446645682572425446635863561842864267152522311373834343286387776647313414586256467231414354156146636433153687815543336254316188357467114835163628574217337365651514244615541865462566678721878774424143733385841845174232436856637737378422742536386441424178534232766236424648886536632824372531838684821214532565161874732514275366767712445887261168253741518528183787337657143222443557144374851258387484567588384322631662627765588365144712216256855347465768812778871831731421843638376845677545874886151741754544814537326443533733577177314621313683342778512812452248138334211348878614124864868861277387363443462275113278782473126827654662613883318661885354874622878672245517142372166215363255652261238137424342775184373117571211176871767131266313872846234348341633851385564866625378855833672358223386752217523178186635858855651676675125235615661661325222343327532621566551882475856882356654354442563664447133224446344254386758447745184771132724444247866527783475838142764483267252477465633272668838448255465241553725274488164423144715285117414321122432721787853641355343776824844383348687358785435447858838776838144426444846115582142523283546618768627738255256452225784867156635113877234351588718755611836616256722667387856158572367822127826832383227828662265721112423624274114854483425738338866565171746431684645515817476623343578644756517535246252284686547536258737148354626146371155838228424251338765844576558852556546458175535236717656683745625625186552387486221531153265754347517776456244465363561362551884416264814423552238523546788817153358567674627582517255275577828626345666383154173833564721386848127463572687632752152114433532518612862326541253321836284474773273243778312178135644145123872874581465487784866826114441515535854561387157664358331836676565356624238125415728558527814268312128834268435738446513671554325888325245446386278812565173145232421332264675412674536553231261678155837546713613172721872436465723675428537735185188216477181282384125487557571454856651833834713173783526311426752668786187353226843327631573384743163811838436766786672664754148848821123542763121421377248161685138336426578861338625565738884832236678444256831543134283822648385432561114661247717743227643774141371523444284523727423284775676625586644361713466556745252364284824515338424267155881327155227563857587747787714548313857168767421652621767375476156611585714555651817318124386175731746416586636248232688852114876814122654584432154372641456462726718723268461456686233452327855353516587231422155553261575221821548573631676758584627817238534556322234631647416853821645438486577417628827637585743288561435562115353188414383362848558611663455856537825567437587441775551718485537568852476648611646834548831584332668687342287756585773887432825126335752611587745753663163115888467858755317446742758671715815611621326417351348125654218568116487542517155176874666676817418481286382755581742466243728377247486174582878561627731235576674512153672716553743876336771613484323755677387416134548817855476414473737312665117661821325141168348522747458212275633843885251262365353321452837175352232811373482766865577668684518584186571424281253818673732785343386181577543557671126245872714512826853686412461313381188536124452566286836464778884342715883787586216666615171856857462552312371172123726444463243557624687223714656788438862417885472758457115534413525452734153154228844476516586182553318664364462555816217532436568271673211722165856381276526581336811727188385587742421463582867786115374776631723462867553826334822636816653212215628183357688617231833864682516263242776146852747624372512435386155324158115255822884676518611535415772834787841164376768342147328732728862743415356518727785165886445841774264871474558361663227568315447177144671862423137211877181381356743671738125325582262165352225264267827387425856377753221672717267828888777886877785363136311122652563235142325844573382844774353238235335356558356558248823124458545881824418872121271732757336466152544265516642211655221727241376512575288275676527534826167541832584211652232866683424855122371266784787188175233356264246538518846267226616661647417655867723288871616833536344648665571277212878866638174774473285112858626728462864237253116721657457624186217858453154275254418784654683841318862761351228848272535156414215155184332535816264375714316371887621431815878684684582455778677345878328137118631415634547783667617336428812368661378224736444538274638785737765583267616244433878738257187445727776627514878226531813581314274338752377113621841332166525742458125412485251176348611314458336222476377765676632422782665532543858611285336885123261745274188674252523714445746216415761122654731333733511263333482724824753374732136856386253856613644673483538723414561312425772142524265537766337853538261121522251255811557775731572213428652836764111851826288162164527183863588677512856117458768144856775728718481173314172812852755777327744243367653735187418817214676751161141348732655838361732453625287681711151514348451284455146545453634464521365522524471351368365464722477252438456646125447632544785222153356668485261712315633755564412522445658486481876858377618882818237528311688672244635141234517861462242787112185556572741535476778147312147148863467116856361632548814213446634648614635776187713241885577615224826282437726272281362686467146428874443146147856516626443858861634751478651561641362681735244211268663817347726656127586565663335487486148134462821644731266671438182383848136413856557461545124521814861811481367414112531836622821146173428368878867355141785734311285361666281183677472682683754127725883814233422241275648567458313841123568384527227728375838685347814211784583768852512288217772363125257244851783587872775787286628115168344473127264358633166477862836412645213727365552542426413468431418831268777652462333677431327152741555265314527136514567153547834252628152873752876813345153552728533161646178628686865164127345782843551228261131146847566342473231376662454887323168851866413374765574473746235157671538837822288656274618287744646475314148846552815751578771558187268821384884521624877332323326182827245888242666854185621247434873254721324536786325657621886766278215124758815466152266661684221337753357631883762146426241286558437674527174731357571385324426762721664777823744113648676868755561668827675534837783617854135315835543726864845667266728743737257466254842462635733658164252217745883171365482322325273356851221655574158336213465716187262811246443583361442242331318722453167733536434312655752423232368852114618418387243632531182384582843816658751734142372516487238652634842458271773145531415576161841256865437352412223262348356823547461185147453374135542124716867827784581226721732456174215473184378454541431333766281241255434213536663175335147313354278854173717657131655483744528436327484335571267535434527562576186812756438365561852343433385744873562214315454878476432262721566725285552842214624333355538451615584268535815617757425348712214225658345318162126517116715368471686516745462463786367556557682168123663474138176483743787833231115116473131523573132126645145871864527225871145153116318747328376318276183155575167225866676845324125528458185337847683812878365524238661547752313861425182425457432582574654424462842566155528273483563584572483244714474141336558548213375871546541274516877372481187725866474725624617848762668341534246718855653372262358162878558722282232763334316263737151316584736851574188641462445882513558684415157626643484265716583784368516276717273844882882154573168181681646114112722765676688166236562372231687845153585481611873688377232585576467138673758868567488335125765154156672323355277475547854334266528256222332683465618125445627164817521635831218813886631277666845537237682681638184531144352745414726154312361433327858637153445462674748571213385476886842787666253316665723727162432841211833771823312627633675646858188621128742271116425852334165714488258326143826273584444521332354872227458564776173762422655846521512566236258434828553321556682537742716867157315253681528247475684813428662656674574533374118121616227436672125681117242147242461564336157728142581485817153213321886762424653524274847683347771144743652656667847327711538552885627585383223422686647646765447767288534513154512467737622464528685462782184472574471326213643312811683762147485561428155616488357881561256673736437112348765436568164856885347576487678675575212434622416584884322738634445157651711126446626388273661556244413666768136448476165167877251378714278677285562126642677873272333885128755173866817614614574617448186657122356566833683133734744218153475237272764741164572836225253636875364423645721142212248654731431122525828257162825411278376367222326422234716118552687615332644416882385641712753537756847687386847447323868313653876265856624686551273218442564111358712343768238274474864477851555451382787245777623888857378338543133428388282847475618754576118826525376483444813777344741441272228724382278534452626524238751211742565215546571311832145226478513845143326852276487852877326417875425137115314653416457723238768232423352721367765668115316337286163832557758816424616612666444717176887225181416458767361344437462853538833311743132633834537777626542188158272666611318321161726716261228681614563555562386877573186236766316451816248282317377167274837651883225841583448485713715666325226374748722636315647356112864657548681516423876456875835648176544251178328553753331874774485486757486266354635841388888521842461135462621465228156481511236534727863261744316651855122722347551214172656363488542841384831141232576663458275882236824673456378585232656617646733381345137524727664221317751125171583551824578622363586722674312666445572687444563845368517853418225556313113158151712222634485355236476511248132323152787841252576774177853817733215376756753451758833657725383362856187866621477871364877248382328147487875648156322181858661584111622243438785184386262861622577463125585687455525723158378571568655513688675786665721867632546352262666781425127845765228123721433324671531361351233723548528854784442271248286138256828212882258128437837521652452526612427866856565254325133886323368231576514564785541243866488281672771647412282446651128885153347426716837832178115755531633255417862374317866662567784117657752477868775311678583357882837742348544378124361554323148875351867348123112257718353364865617134128115345325644474786541351462586317785745126353372127386266188432863325577252253568847583777328183655831145434484437528812714437446461484833616262381287315727666288746173411248317281741328511565237835268768622116363848646445545267136765524133741153381546752118481427724765652322546328711663532327773651354124612351388448822378653522774245766662122367628711473683463814638211761681118568858821588186222277826265531418367633363374687411262134681177346184586716166673322676643532224882117831786868476478726355463565774381176162164747143341314711725272851741834184437123154732447121278231486317757828482831124787467172763663713336282421565522865751535633136826367235814513561646373748387272554615753788355116222285543371114887726344764335176323441445274378623117383744618181318656571512656531818233216483144522426723758612831133828148757477585187586364672667328445746851266872264566875683631861747854836272374351856675311554711743482224771578254881264185775516773527846516241887511812237873187312886155225733627613368848547658785664386881755147471282878147845782648431427754551458421478848836127252258211741712584188233454161886133351622726212166422148816673374653276376627144487361588537326672277413426253216173654352886722118441633126656728612421865261742284247245271866252536738324685335278621546565375738832157673438326568888857625248322352843375322135581648868146678286677177133282374844247241843541246856342648654437311422318338568554736187633274354618164354713232237827548481463182283776776885217645551642332335765425426386365325721426866632381114474728613551476743225713544254782665277213115544631436231153576831347832581556611452133478737165112422387364336735861548618343752635866365751434672714368531342177674445464258528114212634566562844353657562885724774487858335375647233282451325383775637136352765654536766321425464223187686524283331683144144868767671282244352823765862788286756547236463525165337576626753348332255752228112667555534821182211731275536176672358776585173178281183166637845815546325115755162714121824143155547128131362541427852724746825664747264864214852285242137743418477368622133226782185728384258545535628332817717723253766241678128417138115272745152172327776137462715886688148638783437154656571847467318137655273522132646457836221372281186628678615758651882885766838684442475317161243555162656453152533223638852531126152387184181838756574266831421464821142441651336224138428535521755117582676488332461262558342581668212231177633354451325748412126174738651241418446781246832216447671733157523515336762236385246283478327552178618436436441534617312147463417128148451483341282432627488656422263783456863554687633227577583471818384217744876128775877821543367212236435582585626282263522115225851338777145332286511181722544147352748731568371583348862356154634723184655287384322342515464543716167663848848565346564516453832221253518383562364342556748481636315361751288353786646646528364362882726876651868454311771225752278326861446581382866756188254181886243778488623817457125358461537813841237455267225117331741438138342134631541464132561227556833585633638117475574474643765851483871232712244483331167357221844171147871245448781617117835517326113831582126438686627486155735858144583517125542816271653444314142585438881166272826161581877178526644386333774254266417133184134374124638771686146354525432522173824551865635817765646843816323148155823758522367132546784737887511523172648765638688764353565136113475172232678236846854563815461183463773658836213834232765453713382548672761765286482157466178854112437568614237752754567168817737844816271132611557354377626272138438617661364746415586214124655311114734785762381422282512354171347547112673313328262175482636836542626684335567876788787157237313821841121825343757364585618148674378235778332338755356855267723877638434758442735846327184461817157875511512828862175158151614733528641532656476224733238776857547725388736476251846685131465374435758235728221744334873431787113167556638217761267773882561172421815868356574764611718166331454834663824667135484123376788676126715755373155383816237465241465526168654341844844328778285856236662316848147465734348141174274142862355562338163522857547187727845335354685355512671676233444672641788137148528831224364367386818426346216617881623862421821241587476878584737436816431353513737841312362562286785526857558127677271531387413145687458873831742563721428846574747176831372523667468553651635477448458123758445381343225134424447458342155826512652147775761361627818467483483211138744383421384851848646166488834714282326742877785618837177341174447345147331774686652424844426831764172647724151857631272141571475451844475565826351318236248728743541868451427237782535346344251724124475777127525185484318868554231227334571734386571452226677331842252534438523768647521844422614212754446644512828535274371842272846488543426626362653253868723266817868827652673752455346123343444765738258246314654756524628545222861854785422743131468364377317116465773654343865241332845812742386645442318167611855778614381842657412747622824584654182735453758135126411758171716111887488474451166383121383755652867188336217762186576285614134117153467524164755636121213275134471271736261255222122361177717265877683764831171821182253275651521336113511642637724574413372223544614183122461781528158242767285721684514287616181381485355344213734623522772663378782541477163388456288217227173784476666746822684885635812657318375233145123864545435437465761231854534575774747341235458586871737242652723365472515248251715755846344534777615588222368412138541778364774355178555211745516412548646216716226181524163165377447482651614611585756811225112558336557841863587813811825485147557148578132688774642732378325267378523542483527564346764886163132511172454163582527585558281211227317151426588158215347777132253357428726872623612151631563577676142468724353456736411242141784412334178272416842512363676474564574822465161673828176571264546573168618831434172747446555135128318248537417322431831486867362282147388428748731285446524781176442465684174625478432733887375865732622624283235535261138552525235648342747237164531821442333861552337433874817636727338178678354877173358347856357343852545414475577178551325364255726552778417744577234631172655786176211338253547112423764686677447182722758841564513757123651648746556241316177215581324355435558144252143683833818235758533714365541488548622788712348511222482288644537658574311881743538175123352142882765732465466315277457325478458875718261785215587661324665725838574243673154121714487268688662884457344728255231832617186535721756213768455466375286215554871246743863632862243171551128357331243673382831573526682665781182573284833626711212772787265666237478664755857644213347584541366728555548153622448463361241426746536167757621832231867565315113471525857788652358128514388765486256113825337378744677847432165811163486181743746634654338514562715687614885743637763763755682656424725734336626677364522238456372711462657222447533151268772453134665884263381761362132172382356621663364751722258431224634758143841782422748624616256276327557436667656573326847727481261684186656675445787614261146615756275223461657512684766373743178734176833575763264638777112642128677157523842147541355728133323575343582283278116585514335347258428637312427441727418473231882738365348437344362736675816578738822423378327146617735136652343314264513775365662524666821226343228745761163711126726863532485343755535355823551636223245472147546876612342138346572382223831585452717533546521413341747616773765424458641731428861647227586433755878133882716383512313478618848554653425151376421378483418638315772325345831824528511787176536248832766534418883783782377215383438211647414487861132814641855643655115347531774475411242851342521162634252126846236657142568536154341182576553831417185431533177246726548523371556558362228645167352825762541452533872658767862458273675687863532318154748778442344458241716332845844286762648582632338566187421211683131714317516718488658437765724671616316783158825258473738648576776888443282168156354452852838672355786644535126544531157528853285112473262561414467451772658346163312746877666126234831836711346434536162424126737351822815616468145731548588624174628361184255124227858641344381818233364754288356213418864621344721832833873421417747724334856811471315536321761317552588188687756442264858518843635737365115178411215461865241528234116576222235442785474614383864854415814427788665536236386574184256446174165738424441471547168872317546317757785732657245581733166416787451634714433555451777211576471755262186887142521714256288516213337671542323137833473267678484842637643867712146113125363187274317627284515374364858774876623376268722678451734748252815171558163226754146634771122827262428658464385232478147543662148124837266143352227833845813515128183688365831751141827585427773817732875213283287416433534252653642151664738211847152254214644516714116635166838858655452372473511344163744332884578348141421884628281777457357161536787653457387225388155335212873846572533746838657822867618638816786262447765267337518188715584656647448157565236668654717367622618662241153325262541884217214477865826353184275364837562551418233814363343325846235332614527476725125345234447666121513847627115576285736142553427863866624615344475434414351257657168643751255575521728158416173362714816862776617277278447412471525284276214812264643141671267365875184277848616186667737323578364787216245713461675218363628448774434848115124267288562485877151861551487558372725885361865175247575636357874765716186746387426741516828316573577783777573387732825457882174338616681646574573762854387311311671552563847545483333611388871686214625661256316578138561378523821658762886828162266825388282672237821817487254376523646166865346245684447134836414422715768177164753421871212562434771421813326325714121576233377328585254243453314822711476345414674463334457571131446637341151451336772563286825423812214671276733366441811214767465738113364481214354782742558457741338336542248466364153132156544561461588173744161235872312657167653233873553715468433152162848532775148133688317286473212728371887264167817572686238333844644817352638312683464786167366856582778184727614118733241642546223641113417716622826254421886143156884546438328827213457676426485385414257333287271241533838835147535876278125552867634132132776764228515613847321121332487562385362426164685661223151146867558584233538587784381436146132477876618672352352365687186438284642648381886745884344726653612734347562355858456144136612362342326623858382772315283253233848863637546571754468838728381147676632372271113247844643772574537858446784425148887643828683347583645637825733187747832485626125882367461421454124768632444174627865767532387134778454246311633451511553647346781171661152723785346843613282448658343261214271638181682714475356556552263814175641451484124723878166345537661357822447182475847262445271762183653625716443771636827242781674517154483248752541445815766285388423737673634318162353886558457414528557423626481344855127226431111781428821143431377588145754667251775856422765717313166488132441316778321446426181778367143353751741438615716473688146352413828782252168463742261141684617633275827321521612658183377112667362581833443316814586476347313163131834658123451451245446851477233446551161112433317334662141114356488438531732664753642414222623783841486814682618745621655527731414125317185681172622631454138437467257611463786281374423856374436457465626287461858663888227345868523755371413252237375342664565515211775728472671314275557835732768663367738663687483762386768252733512856662658181724534888711722466133381511332682782886567186752213757435586151872172736281841264666834575351882131181734111186865373676212145555263362322124447762277476152136257131646638456347231384735378241821152457486442677517877256822716486484865712736662547462147626283428226166568435883155541614535516486782751855623836284663148425465462511361887712636623655742816444856522388454854117882254158857216636381548872347435733237522316376345671651262655227784571587818357874625384434453688121731115322361825312563643572346588175183848872751216753623666564834747823137244668167113218142283638737721513517133367222543232883835533546627613355584421462865811775554267513321763281346731672885435683546386833316684631661567354735882445415277545257322717582672634777878577571566676274476278627852278141883657258632553215158163274164868722747724425253617255353848264452131263517164486722686513423872132233618558816185222874322713214137351238564247546517521478455844513256621418623481341631355888338121342471714146661738216532318846123564867765881538316481656242817551244381355416771152886883616142877237274258687447137342256547115748526813868427541751754847334252151536214561884756238863153475587818187434182711686163774833228853338673451174423682161351574253357418468763884156171128567153381676364762863136222775363828573886277183666421724883284478655452757837758312561522623343252844187378113351132286563586523688257778271825416433664664325225658161758722546188831571864552815147867886314812757122771311534251163582447378752325153814445468684887142232658823866734715846637474632437148624752618735124315325127244741364721874178515582428543214635116867175718552455317621144588875356588342341726837847163413735316881413313544576637175323738512437512385315664686756672827541447127536288636554634343513818246128147628518648217681261135653878484543743587271546471712124464725241725424765248548516734655416775726441474381128652142651885547716618437565152286172111444482128726176236768661345433658632686876126785136462572621548227426618765272368338337446768378177414336846588326516847243331376748625143857755446172423687654616366152278861438657877386532726154517568547163763226253832777576376674453421447646348624673465118415615248165647872833746462333243686616583781717662224731286578854462828424655513135475565785343854752644476213771352185387818655758761282588128871122628376364753218638831477348361627555831518611288585113715455165844381654382834857252548817143766418227643882766584176823653234328464573587755137182845645735253583368567351273742665662163868367381831623351263524765883844545472361733617321258144285623761745742424452443425758652836616648715272313475751518678164567784486823184611542173671542658848612612681655524847742683172363626363188164647842581774188815775523865825826373416245415575531312217853257863645666252532164661214641221846633178651888563476587128783377646464284526621175537113418688416366836628564384428422868772287721588821841833272461844384458221474362714385227121831751476628364636216784851163336243212866113684225553372716145885115346454523231765456464126512648746138234722284635382442666677127822626664668614768133621164142671167186374874787821742326647574168566123177626243114814375412144127318362545853677835363247738788557267516645525417437818221735441681386845335821247462718778242572756625412863377156754555146612725877218315852636423783247472158588754482822656416813347527512433266826478644672418265137877148751136363873813867726278732254815273716657673463887546712711824742322154346386667183526655348211564734715557563241428755752344888542244424532456612364271546487547238847315681446825616437342785256251787241738236421724426648131586855171446411648875575754234621812768254754717868736455865185416124251742622254621274547448418436162246456634188671784525132252527446224788862354686536131718435436184341212115331746114466135843552112434825564467127631872278887851265575627767575854617347333367486757318877347881236618788234536566587376461341257316113674221321126143266423323435825318717757258463123672555345784268781211775732737617481215322436376456217437167462418487872152764875251775473785534318171173817134831762438586154316734154482138623615148573121541333614377732235275362333176325552857815222556215326318556162356875412886475165111332734473164481848151624767237181152337238754216331237642662682841432868335635624382832375664661336364221118212258636871847761438638862663211558634661463323315613348766188271521314842211635482717566714143674251543176273825572155144656554427151512686428424622823857564623516641844151258465655623334178827745671232653512258268755221816173317741212162648768282534736331642381141815226411182623512225822233857115387728451152114143376365488388128268381154345474511824766273221574656517684477725252777382556718167666365612782446544155482146226813157686175728174685158378384368541757775185776271414164385453112146614131127211838552436283726112321465581547346542413617551871185378433457683317882528354135282147757237873435223665374647618646611373781652128465834451781485885752366673446336241666563457425562435213376128414486164412882837415437765251582474535335134145346486668753847456258516883618813635626756338273614724766564576564426731436133664461285424352481162384558676374477841148653881446421533267618616822757411846554746734361863311545533824836663861447354625463667518572364553111335646853457627712136428866616822574466857185852127672833572167256268364348814718621884272674861267475116325375255248667355775582757326873812887288816711538555556452557351388765633157772144751365764675152372178371643656264643476472846585417861217846622136773287883748437588746182275646578517764867466815474418235881841116652863346763223442574253236582823416388614431358851787261467247885316774648278238555324255836652472651784826313533148437854141168258857846276766155344847521645536458315611781453611221353231787647753471655876313578782715683241364668557786228261562328713173334254351438131247653534363824335451163313268744773215315178327235842552655352421366651472336348265461138735728313623654215826165637717474468286863717886576836236272586228568556463511237871445362227323182246737682381161227286532648682354734643576558317648143655784252631441661321675864472513585228145112723667634756736611781816247124845233333488342435874712153461555371758783826177356817515642756415377552685476745534515461742458442322264378528225631412473267335856857135741533161548146686346357283544353127153631755251663581333182173357118187512464855432757461247138466227715344218456615738587444537582568348652255651486517571166485713845287878681873245631337813675833377284713641642748343342311877584247814566866188266668247583848785788846486811476846528538576168782388128547456387567256718315628438712374431466211457385878218738416477455486461881611825361355144547865161138484353871114556352123255227132428548745527325673756847362475268228881873274656852335843353226371128418712726638283816844466872256352834727748578766484717667428822646266283635618346482262776318283834542246724333373378833857671458622214423518762756616112146367331341872416666317285613152216885821378273742763852268714282878831218666276852858243158517242667651524523851774287144764861773245465134736681621821515712553764816386225817527131545875166613732136788834117322826157467473126835382776276463767372486215263533257183641888326315752243786563648258155117856871566316682531247343676447144266324144724825128877783471342858438453184164678788421228332142478771165618547382137218533226627783177188617841114118822566128188765685242357623583135135588736613828483366825566686514758783718452232434136282245824335363774387434131214115728663424778757382531378661868734465124547435467617733514362812641525515234658624565315348372384276322547377226528238878766736373888237828582161213235365412332523232783416755531812421652374856516256634735465616532628783838444136112138217551225561445733387683876744164551534527748246282263187551565127635565536661768185146778653577284267844728723655618188878572826846613213481536134742632441258247176375214862564416361165173665641674371817512768576611238114353842768857365118872863547587617124337756673483228863135855271312566287333811587375181637516313173646181662564555644546415232818846671188645255783664413478155466843621873745873283148152132386277242318664875215422684535334155516834112511147216531421527781268788151251612566482454512784865677245684625538748125384616623155223367865148261541541868361212421126587134571568183414467714328552848165746586466633346151578728575622511288524733616848546483281613833525282762874821548842448821344522146677276255752556723446774156886122217744136542547352528851386623735462268762136336364553347145425272771614721224534716721383254646122785582764153187475466647527382472844368641861754581142645754728577166353743622132713628262854166676311538282583762544127848778688722312651541241113454432352768458545236634277212543156851855452416165824745676715881384167281316271711176557282718557285137153324748664677121134228474412557866156184832223637377827668613433232842745627614848188251144673551262156564773431621642723722844612556357461114457388385853155586456813335576116461565563868587361123371837141227251111342884822687874576448528845747143253815684171357462641547667534665861572323147438733468382554226662837683784243141151658222836351352572614723113853231326551768377848535571166573212151834683278173632256342341768373413256553147567755545144241871825232238586688113657178168662834614843684278414286313827467542146772878727285673645428584578563837385673611781244858783264655328418448551824826423141725344551432664458422713815143215433418582255586622217413451328737254564156475223258426338511572854241633357271627754771135256734571532266778145536188724754748177436488346415453523846743467725232775158785411755544337163867474136155286738732235355734233347661573337811685172741232256277732731451532865155551854345228316847772861753885655422826545678125465733182226838276811444652567341561764258575434244722624363342343845167774467626472852855212753585165761775444648735423257718642538217831626426486217462335184661418666442255135227372866721668746482565816111588514238664822636738482856471824516243771385343721271566554351573648275576515554422723264572648826146872161674423358414137764145314615457363228182242757223561276855374885376618221226688631538521433571557328782821456464681781871627616347782186521442336215117747757825134723333513238321563783563836156624764722337744246251325267224232882123388436876247177425725534857115667174683364676342556227545861627843158561325144337356383133787862376614173486314767166854857467335558163771844367415357135887165315618351825552228164742132282643662363644861758816714863844888126116457851372672116343636676324886288375155773777238651738323456456343732641451731734582117588232647667362763452552155217235246728528465737528215834238654841172451684474746311338331818256257558373883356525611762634688546662763877688222778311266867566385631653447673248377624221837463886311811133785328345834348262627877156175178146764284157276316346121354583326766513674484555764784274613277686285347751612755661887561113623583362846367855145815423354848516612164438153863253772372417357141324737522711338464581324171512571585356226214772261756563677243842674758115881616826612286343846414674246845814837875318777445278332455613623536153814271717434517432165434527247132445168353326756828524747461263853424523534421683322548782388543183116338161378426856255745655326323735268148261631756676146351633768178766282577166113332858648115323253344467648534352762457668413775118424736728743352613217285545584354484276478225341626452148846367162763121886743487237282825627764252564365673674361736352352837786328311651656621313773814778774346573637134618724874774553644535443354318376143738325118417213574764147621745458876828683112672866418483856168751716444512654322217316528724367487556648774225526752488357564768478554413542872242652476455613476725374785657832314421417135328157567763372268614468475753621547177715846382564853318626648632612711274382745447164676573271227617341787128141855618874137425677575763412531556231264114617245647773252821835178286124225288863458874315187763342461288178658387182447888176742143354521453143363131388863288434773514235852565111478616386424883662836711531457524531317743427312641474883235517354415238356815811255522568813653544611635114678515388388842817145428551887485125453384117782532555772637587382412168486848277316561375484434531151365565781717574825624452755365462533187743266842235441833583556834637264411141358664384674635146756511277377822847721224426261615728674177411314641575241718164863356242478685716735434773765654171324214127366657738285568432256443136717334744333744553141134252443174284331226588784812361713718785678437628184671655824338113224173823867461885335857287546413826768855166317145375768721563263155772287171147544344661562375133815412312162726131446268533826756318454783348284226666525865241273324338457688348423717468664378413374245741626258827345162482274513817431842135267414464717632888414848634856866718237714467563686553777585676411474247853228878751281258425658461861568262846563223118828831426484168513478114664384121436725175833264316128152652237877741865873465727257676725371541312422888478272848715773427332853454123773566186214861512515223616746775645721222764131836175551412511374772616731347718847653515447381814283743565173538225144336613476538185678823117735311822618326611474522256216854162557747427746347812525387357833577613157332761742188473682688382273753825737868474621148462255862647778564352715525382664675714714237768711757286143331183815636584163148757141684328467842615547323331786846686312884413274153874578672151536771125344824636741444734261584144313221342647472817272563115588711273512685735678717786485161188585737581377171633832165381837161228413662641316144535523482423246156144448547682475742218843254641471813373158372758666447787837435176646168468776353154763314786714582656423263127633823475811835862461888642621424647473454618151163157684677473365315311465661754154327551121313562727778441432383262146758726427378545638412874441834545235665762355835585776688442532648355543155524144673377643138725678681151271516521146226111446682721643653785545684386616634227181157545576321171517255742141135134344232642566127584657161315264653386838145323163841727842346413247383855227767225462862215856184754751573543223173588423728153733735578885176411726723274748876614884168126325425718721526428676854118775537844485637266667157141858523544725127115812333874624637458131725644427567627173424885721715546421363638275323274468585757853684742683427173485482523148656137614724213475355783848626556131777311318875832651234185287433655643744447154348464453463737738673584665581524823657185153161814471228852164177488632137137713854282723253123487466865575884645374475477551773428667764222242315542125312174542521674276116848446451877245385731475843751537425622366841324473755733173616212256174841267827315143172742332668313318218217611156317472286547148186148274778223131252824824831645176762652773466866125533685275654756426338438475246364684135436236132278827273235626476736336663447582843571747172615628385477381124621521472778811628345881558215815145757463278335478273512228371331641381527678651123244454421862282881656275688627156243544828778763382814153218884244554223673175244732586577232642238216835438647428244655372877832753483671654251516655765227151728365756445738366386873778267666453544624676261836866238881713867848186277521411525557428381737127765837667481884783658461651826734767887543771514811676424278265423543532586421226678881628146841133657361251331212654354777474442666555111465341268336863818425354844733454282521132422282876377167816433737372453147541352346387351517356237256658862427212747673187861422734516625663718357348872684865413842526642316472335382521845223175242564578716846422468816854371236374548853672341835454828867186217523643375856731423664656678811285582281281255157542677675348412655583873518874234624784332586171541843546176442712415753744812327752884418716845282384353288336711776843771131147743286254286571571552317644468427121343611888611436673634131815121664766251133566381732116626476541147556613667353561452655612273312227265143862233554763617826514887237212671115145458577834547224527321227572157786716324351274277476431383482343428837736281376875445253817346122136224764224457545543641813675312544437125323848231215518182686367116421536536726488215187262236524885244425578113246261831334236673186386618376257768712661254221182465134253412488248837777673851822246238468287311518665715461113282684334518561834271417144246812164684356841236283648186358236112761667136632733155827211882834753486185416467717635314256255735135415647343721237222188266333336834621463814726418876445733157858416815881658362266371583268665541378686481242264455673313367716511387476524371752452684163563512642253368225445774335253355421526324823411527211558161572242442737588358764224232634765522471718373446423275318478551135445281857422635254632236325241178855232666414828552517488534777368677443248178253521772248734242517875841772715763683364142813827618255146843447877362775131713425378532323758667248855186286561765585376283353244511383438456876272344147886545643585157244651861261376782666867353637838627223125121285675387451354422686514175584577571664421156278351755441634454467487722843752281838228177358651546421611538854442616454525845166634856154187343558283252786148284518224514634363825878376666116462227478453381563476876375136611438662575568767656336776267125475735654841882244876617688177476738276546241574574138212275256487646282665587762872877343837473114468342263643626235526434472762568387271672615615432121316226332484346633145325184246732127143386327366171678787451584382761263753462382166672727514621667816428763824368242241235122143485115126574338563118578652631574342487587726678225515832538123268635652764216764675544354514475173467382855638841724151148746877726538787323545227265135334117181384247315124856848388412783542267213112742277884113231583222626465674458862777864773241782786143782681468544816551524455588638453358377755763733576112143575667816755664683587564236345228256335228476254588636711227517113648245687181265686346545482558188842533742342565575137436452287321758485438478367233588363568133572247526357781766546787562353672448352743463521141345463557246165513582425226552418825887546768456458657162642175432525452132343161854658155627183417456655757524586537665515458453772873423213243158262331888532282646732776163114651588213875412333276744338755611513252515771264275447416154852867886235463234537143821628163462541345612486287112763143572677155316612146835654127363388622414375283485252165667834618536142852313127754878362535376233575214641852417218585823588657388886867712611282347144565218288522271665268714378524813822646423441523555534347713878858518413286778463626611544558351266767367682376612121415346421832253854514166424682847443127776754266637813366682851882342376724444712155748663152154122677378336247816785563217867381682874318346254424735473832573474674221425586231544163118545161553652418181886716867621584474472186353355587788568657285114425468574468364335843532373533342172111117672341587553241648563232583545262126626153184486525218555644827835351757141421657216462185462817835167144246435528345288544348612381424664171234552236184423618716574856632727231861624273758358432162444666618161788416334217764218188815536878385176843472145784846832517814668682371354251265181544417843864462855845153312466622434784452632555857188743836387555512758682284573268528467543721483425266241544785514623458682768445123747383523553545415354826412156584178786644382767511364682628286235416578336413221763547421335878683862186278311551237843486276523275564673536128756557646423723142674373552542548421834715884364828647377737463886566274538183136862337872276345728485743514282685843748467812716133733615332316515223166317735634532642817574825367267358167664816584111253324385282266177412113871373227445778652725572622586763852515525851117453185686273165888357431177412642451254468333148182444366328718367415684846666384737685371822665258177212512462726563812481242834711213464383825248146827861357354824423214145126248171372658627554257787353742648232655361836154162723142584621551361314388445711428658374733331216783522272154658323542237324586363452437474131423384522126455126135284587162636844612386728746521621888471774444545455326871358846428153676853665545574677838737412627453235124465352321214654578154424364878748753347647431837184448264732523118548448661443684438756117848861885538277787853183514276143468744157418472164631574631554742138352423886774686614867518528271276343413866782454844468286486343547528531348681347646874411515482686147136246868768848775611861764778184577183446448542344526512842166731531412772253471644223682132444858731181278541676668377821242272222684621482138631432254155581118844215328222146454574736467681575644142644764282315245537583886666613315888733253833382658211547672883673643766543718621714628783688733454537331711541524763417265822373842743833317614253876145632664151536657117877558242417683874553338824174174565162248446575537642431168842368511255658622715537454164682841721235568147486588213347831452145147178424272727454313475621186126681868487467313486663864716361486657887358772334612422378343655158455617424873678465865567481547365362423372133337886327164157847827326532751221231731458758253517213817474161212728812642831645225374425366175363145234483323332233646464532426488314151887438686431216841188144564483222518638568185483328343372218413874754478285167268884764586823373643464323217424234832375512521827535316387387557442732384377334537773472185578634241442524685146821376577355537124785725141183821678651412418687643545488362518433361336731812161888348581623432813766382863651522582654761132347881788718121815113671567271356388143846433424156431476386885357428135534841771625218712183616872437614671432317533841642114546438384318853737815654755832213715548163314488828446751357516726732224214856433677132433716853311518113526247332634561354516675774384867633416164765333124332382887147588517244234611337156617516853117677351746115278283111312574653442572784128711638267538414461121558643554665446356481476275366571513331242346571253354274626555684867533271452146631137171257428385163574364353618626271317834431372245648457574452537121478153723812841241622385413137184352775726776284168348274136671873653757724887245232251773641382764374622475538127686467463321653662568833865514731373163431314121543552211486643756631543683526688138277476766183261463743813756387412825558524577516185727754521586633341843242352612444574187246388523137375176351488531788426231471583426343412788438318318664611273334235631427556565315633324373645226464877256357517265523487687845767552423252187763677271866218272364221445813837855414734781536743812776661238884734264853252174415562488673878321163241385512773248612234253521445448165822275818721674682732678784462643754717525388552273174863373663776473348162283773174343765527737657523614288518428457672255124738683416132527612842422586517657438541547641774183518485134753222127627846147422754125874818213241661682721536826671163225647185243266611255356364726678232342146113582727356253615585575854856758885652185254327577846837783176218378537517731216736283358866583512244137135871364817585411146783367416654572616555144623863441247657387726414811438846226655571634564176264637548233784248773143867837686518152512564412857346437525823852878475723732123588288461763473774472432381413368864518725143134226682726217374868526671751312754555611712146658676338732638417853234822478338781681372711134746543228111165241774438274552534583231786562482335821281726364873482714127571554524774461143612843461813454365188624624651641528267687654144167631417484325776875412463831424277738512764413164434216673876677833471453477216358681355363288874174141327548867535771157352371112345776574121212411433438567415858251644367241153158824753846131358737764376837615521632377168243244516511776834658458362238464868836487321551511274573113477387462671751637655333838334833778774444772743778533314175371868547173547614434348712335233125611814424766468524161481618833374422524135583382128726433321365867144168153364611414856234783877535643386118617224345285748431242876762827751265487775746345336845763241684486137146866878444522244621118415378337386537457846726374318313573346823531644861574873725424151263527155638472185825544728661146672265117381437468188684165878732643666161825215618288182562522212278453345811647172547357251743515537516612167881787836221856545445677275483241118465571723717713873326626285482117234826561673151414763561867331383111573226815464825166444765485821313247218856757568841326135785513826831778145185717857347766416286445877611687212653778118758434347465435454885377828385661444663156128138654221522874277222236225427832152347735114518143387826516776556434175374751211415664436326157434713148213448587564563156787375758215516251614676824678177262713846336746546852142744873817125874573412463542358835516838566132212377425173213821526411883651774833741687176461777776132638723678774378481183418214266625644261818665562571175753384411822233862352425125378725515488863781548537716861386264118571435343131688344451855764344486158461363688763353143711436116243853587173225632262275761883271764318883626431233461486742885638881518747347778617843873437245863387714515522871256825223148621156771365611643568717266586833662817616645771622515884533383238682384623267856374763368243745622356178768114267351441283825444214882174656426468865116458782852422241324252232733822346133278182554775186615874686388346241258445862431111236231687262854364528233867628365345536682838618843833661216345616272568453548141448487127845667831827164518635571244854356685628388484182145844354234884336426825771817844187625824138351521557626511713187874551485666516465313262486734865157213884125853421534672872631765176873371551374662416236185758521575613471527836227874654387328838682235245315456442864312633688223226222845286188361658741562523253757284488182363536156373387588628736383366314667548276152762844854663326187658237216857446184784648187133748548127524887871827274717337733274373534587686162451166813755158533168668627464852171477713436377154547335145187124277448482117787226782554536528643563854478278638113156732663276328162518582521711788272724827187731341443887422348562876784213622354414181478158132348427823888323583415527445777177283135364642812713422486178871532845366145464521654666756613143567546336167168862213314153184117458866333162521644487582468721874348155225813271514531284668137781248811535661175112763353432166661338826252777845363313761858638317141433136224253371612767226847374647568235146888272355181764335423134227565626365632114416674714451878835644413386376271387112782436871444845688362841817582846848855754818848256667361254222664177572511456352388132826554178753486668516688578213338146268712185382367663541154421458328851262131422861555711367846865723172366518825423381461824488415565722763352558175623861671461764172224378418126137158433838157155181343774457283637342487262815811885173845418825244785546413536514612744625746114816664882553372824672121578726813234622627745266315824244247414246526221268688437655524177353355465872124382681762664517866214244116726765715372768475865644433518446312856161543245612688555182623265314244114535128268732345112881673616186325588378423828887442275218665748141271124536532122571645674418481214827871164331835764311238536218353814473852183743831523317727148662633523374526237182113816861887378855673261686648687455277822371158157673535515574634773215241717667755623425385625622628444516213882771763284615846453271654454736356263717647346463268882733371818226745588242334387663811131478178344328547572857164313246762145171441427431815717587876726327465735744256618821135132542578318348285621748448738457655557345875526475666413673751738361182882348672337218865672841522275143512752514775876416371444347828863356577278463136357311813863668822437675687536732531735326713422346335318683861365674223162118745351264662688138742576187864647586723726743357386455878354524715455162463455682334847584225238762774454122553482443558126274117516434285563454553455182614228125216768123162368374874657418178844838377151865324142148866774768274451712177844327443384277117348331738141441773234661414824877261625625856716627557246648782723385684565378728774516655175778478817841445674244286236843668615642834677422386471163851444127268854343566355277148746275115644543137224227652452247445275644363367763354765315614585362161534115167227616127722813153675458583523621451466583415271534118758661248244554886762316125418621457144536388183454758467355444126435616765857184277315234575625215116174245467676866461454144282682564632676626576362543634282715452526364517287637143267286835872363255668816344511884711486585224486473478488475168416288188828471442335338668121636223658836688478571734851671673887354355722154528588417387167351871622864355573372841213527266257258882522736423861521536784384451616831161314135232634545446826144338121825578145727347753276535275186818214487585736737666543374866213251743842338374731481776826833244787658715357445556832648322852177612212474665643326332667344883254581241873232462331222471614527883833511341615636548618348587741441745328145263655657432531488278646641262315142745841553551871323178211676126284822526477875315418337417146235753523655714513146212632716784158145154435474312165331636585688228236361416234453617741632578713627825351115334735855825187588224822543717373813841564266846344531316761536244283247182221644185462767414314652537137511634581426672435171468663138882622762242321241317547834725717373754338811773347847512615262481576825727156128683753442483552313182138181566726582667565141717413542545431173356832636356638261745644452634241344334671311286616477868222211457622771877857838353474483475841724486841525217348515726311658157371415814367254184777253485222643687783142567281253562763253676811321161581527627566546565623641611376215325346566114888731511882522816176851772872724763445172545615218163752314838722156123127515657583531741132244287236466884273121762846614541312315353364627468256262826481664542744561162614738156715478678381758785618641688235337634665837744467673324438684312167115674721717747256711377628587258431232461164526428341143331655185858365541153737844568378354471135477258531256178324246181114673614757456642488516714343436744257472532572378486441457434324511167371878787783251524588271716365212566457763434172123478533684824235737567236671626675157382237732671121512634467518226151475136823378374456631823284463731315452128764728514587651541143367572528371533861882824268347448332756866865225413888333118283838776683333648325514128472845517353533347288447665454527615744528263656234754862112321138778761127128526677453755145264862877433244281878516654825244457746634417172635624537633154783283322383327223143363287551217734331368728144365453133262732348436643718786165764437474428578547744688653417877452278671411712127356377564842256748857162174641653244458875246162564434121546344753831761688523353224284515136826161836788757645167272353862367216522413664383357724367637177312257824823761111156581445755774447544133474672742327715845324212727564832253526783387385268152323131663723153367433117627258252584815657541413664571646831114452656313644341736327284316625417515271365561335376422744648718261255834732255342184575776216457826644736742137223882224411187317848887722243418166273722688413612538732434241178121513326774348787867135333425675554566487464651355883232673674516646138571352763447386675616734664453264743675876338118288513224476243668766565814465275858858828784467318454466852642554523476124334322214556388848678551311648367832734183743634324213173235282633236868623681117753772817247872137766856884818685124285686341337144183225664525651864143482125264135456125446658643647754726565654532112767835778254324773137466478334463857551354488858658721488264785574734844312143171483646223685457286276822161627571772665147568435685665535867612827376316434153376742844547176666167545684157285162634382652526865623843831877522885834173182312376613825134258243372457643557722651841186737334482517817837788162548471135381524657444128277657545782327755285245443415636568447351163333887755457677663181366767543886454676432763835422827841785641313825152412145256377127424768782571376577778173665736328253622572125265355532578212613161246361878227866624368433616215872365237661854782646784815351655357767335871648213663475458252146417741358548512361134433715741787788261663142317251713373457465153818248178285865346343184453768741173422382275872421857661115274321731616336225128146717442571457317132511645553384463185518538183185376284588746338185424617131741187554121424523585561121161452513183244377345874554474528145446851634416843757767647736858347287862343123815574452571465844256163224212815754846887342372417772575865768225123847125127738834534453154325817178533637584313551521424383625486453413674888617126871787453236333541825876157171876551587835272832122123418855654144783716421835422861385351744453247423267287817763431613815687348465253834767438725545111873457654232434217387843681474575636788256631322178527537561127311675627776542243744472745326376315762441738484887676836572848654465226845542586788472823323382344232185715852761114861161334347212764213415667753161364525872587142554585334122458412731581343726248361541284675764815613471284382566843252265611377364631282274564873816521757847565378572163737536553883358811736415561773526856878867166885553512627887878624834312177687743366884457187561477374754753456434271532634324723826872768851837577651434326254117241732822468141535457158237736565582152428465366825123224883716251684847113214516724713817785256213253625733486633175372872772283367268683416517163151811827474888116112235684517883634542714257112564271877164761848145258584357426473473271147512533822172737113117242426417614876818356211114747176516736862636866431242174152134515871866876332652341373866511728458787443783785656323164523431488584367118432148356657343383122635184685134454236864722772472131753226613865628846342325176768813553582477277366714777461174558764725246571867356724517372657242232725375222568611533843384245326262417876643748774533275483566721244618345773832871432556318752677484181462323716776837464367722642126625256465474782658341855864278114488181844452413626344263221231128614112575371412378346336883427675511346625775111646613835831432763588511241722463664273738146462832686617857351167252633885423875674363478382131662822885281672634488624344267784477883524123136342315373576677581714231768188415786444763423828245688863155754615672373654853112666213375166735655831421466473876413637313577165748661688267585256847847548857174365486381784883251232133281846243468821428554126758226718541166631252245537831716445732738774753351146232764661227842856574382523824164524113121142625855414287442776224422843875534733535634738536253471171124468251866845751177384571781138857271215873752551112566734138734513163632148514225385714854545152286278843366632645688541228443551255686661181243582582164252483668872538251317821355812634246875226887126866746276888163611324125877377321833865821672736886721463351444787844814627554731176575623226255536264722224857452462334656758631446127371816221357835616218266233482216461743233164768522244471364734541354485266116487263342712664312467485145242718577427117274872717425476752387738786853773363718242428376133218314524825654664725415138582741452817286736743374727763576775651574445271251248816847578641252588175733488457366568463727578863872755335573127528126681323135351115387217525385326636564546342446611768164822652454268642287618161243844336881765644731584582217222635735246411861518574826684771177761548247648668815731337161846277123878481855551253231364283213547252663784837454411738117483211588215344428124472163181155672642553658586866776175414452435778644278456247127314341124674572386274773282872681876552483554184654462327318711411381242756716242235715236661531246185753312137136616441721136516321214326667375385842883628666333716326566424278111132873252267273766144282161731865818311775543414882763425245475681577756454465615146583268112351157725823236283552787244472377271567541325821517733758766863183181278482265115815312735262511185683734653411386253114357268578243227552547437551821467753467358668678652717745486133384413884134828728552716474678664534334634141767434464265443262517453643154818376621363184478381257771853546844771538535564218786852876643786438167172243255558377566584387528782275651441664113337316617335578138666577638665463442886415487271463473442716211671315325161588325467161386341462635168147526714253874754886236512183474133726733537476871386885514666724471238646366322442328275436161353274748553258343237423213716257483212466555162541726746168644171331148275662476715677435455228244145473841514155462724256772488627333121343441448176842145334225727418522775563567448341681585721471617313127181671141754718217615312755882522578265273663458838644348166515582648483582331238272281642743611458182272734818214537226481312365841384577712277421227658428832442128746488286888337314375467463841586437346351677223767236472732531252237572541668322338671875315787583642368717141714527161284645875481233664627763476763334861352158732773527717853568158535111865632538757855657676452748185774457576652338846156732581136712324685772616218514143261435783637253251774453358842844184514154135823477553166642214123327511435615362775261324277652341628667367847882663563771821686337445283611563485817756724214252156735652137767134255254431828772812358741833114118788558664634361353482417215336715717463868136676831551781213437763517551615672212457245335538881432575183144812346767528732174265821481577867486787253774377886821575348848253418253462837435336371541327841254426224753442746188285784141535227415556887482688681167816622183525665622837643218455842217141186563638431244533364533565357141838784534342435547882374342133384648685713247243537835472783525647715314321842235214122724337412652144313835327651733114455873165861432816756233422623267254564878124167434622743485663441352621565155675741131717386457346462386181674732663435732635183281826731418771752585365141475544838664368836738785773221372436816487817137635671888111616144254122545462762772422443723357351834562656173568676262364666817128335853868273312561524886237677454538667622328743385384275127487772756484777864226677674478145336432857511246576363447354184538812722264552844863482337563232576226186178684138458434145345734157315588412287456817561833516775516788145113544263722345865727746728188511481164374411234356134413857661873266755455212184465358438542322352232442555357273846351818746777387752882517254523865562468481714243861744842446878146518871872312185878432353415548734465447183175318212155223834337155567547115227772256282181747242726214825752734485521441554574562481812154874637284623111488323363435334777121211571638245344453272114345111741162133623626282458712221852764717778532647118847284262668118112246646475573384278864677157858743726668777684253311581373615654658266668315864184531575443612811788735542423782123714148256417722631637136687666433755218216445452346138712874763581766745773726148746185543644362783184738666876524821368616643616488868644336834111537246248172274726785315541125778758165242735117825685525227675325585538173134418583828228268555357423458823473445274316463588644831788275526471432156263435717144825377164532787871151182364613437536833375215852282678283771432382115675614172633683332628187186327242421272653122127865231544628562642377552226657512831577152162512721116838611713278281367362615728327814884117842848746167141445425813622268753814676182684141412312635815353227746546786768285523678778524846513724235383712257434158386881485666431213257436612347651248781116883268315571657222413725611548211681474312613711617746485478566718282732555223384721812511823371751778173525225655778113275186555556414813735383835145328647277512751266864217277847467227722857426464728773766284518363126386755534375385277714487885656673445564437228225512553432332864416881563236534364481657712675444452883482827372761155125356727586233286113778378284231552421867765237438174528178127137546358231461777451322151684345887358483178458288686145474286218126725218721148885818663226738322755885314232617418485432647365825773683338333553387837482416568246535577641254252811775466534631516783854757375368421585132335186838426457635475786427343125232714453284255645126887177141322855631743862237788328226343546124324625854254576777413525225833375735786857456528572151448747184184317764366452251361664772382752785833826738156542827438728241631484345851433768646281768867858257437147248438367323183123266428422763583173175764441741546765466517211118185523522416468212717237121474387361422265272846473826312243773284542467762777186681515256372475532541176718137777751223266872124855313228122554737353237245617184636532318523567823135362677111654863241278775667675232664532128414158253633763415528417668146652361154655765862455757823472772553751124644673772685156636353511786644387215765312634644733288887443157111734287376172128481672245842578275658227717886241236457853264334448458458668224528765182254522452388455536586662635837424527652783714767784652227262674854442361544746636544657736166874313445722572536165413868366233568567525477827651874432657368476627655316418826334347547675872534281738288462638722512513234755317813188257212755247226541527567336625434135677163182462145312853426583465867564867212612386435723532262115564275314726176141125687533453423143132574552156464251372726658872422433183446776442113645134837186737554342885523158824376482662381332886885578133135685421851613312287476537572516188244516747676613778772346357462183776512681131661347374643334678537574258138824351152364583718651126678833356882215336162155242826324632562653431438826337241281117118456164547622847445821448286384451885276314526617438124417584517653123877331548615544561371136183562735114482316274453127327845833234184858822183268135142235637765425785452518647483624247574556685184583562866456413843235172114458852826418414453328153438615877688416723388635762383874671472726858814848137276567115727482875651118288771628288654542667438182523788414127867763575488324765855442247536471452148425185216466147324513345751487251316661288115328784236676455314482562477531112631413622235172736854248485547512588332814825251728541426615211775563388274116467822532288755256436481816272347731548877868327142844373546176364531351127158325283843572522784152166352448448218848411618621251258473483837717557466556262163143423447572358522372116114777635377636757237514268868443512441437774543682271877351158854781164263457812788486627232752657874732235828124455228247616317813562242635752676827667831621675584888656554744861378725742381642821163514736167321224224841115523184481873326346838247785542628388731713723263776218824324532756785467524357778624668117812624422818215456811673435337627441886168576412244851555776213556464311618128145314368656584188568365648125555236742714325126535421576843347454726134188311382661871885343624227163537237878888744738355633352332721621581485531557381718135878451665465661473534388612726654712356564247644786625235271533614643146323251574681755326658636846357683516776664251281746331658136255377616858613224543414724412361511678284363747132576573353477225178612831855556884223672818773677852783545436321784136416754314212643533751162476251511774352346852448738137715371631764313251734213427611357133866767382644454141471345848371882856521332717438212142566321734358466875852261484332582325186453862118667877128136884443636666575176625613617763738587258584513121444845655611668138314312734488888557345768781351213124124138347338713171151368734717588768254575553636524763667614544766578243747486315215877623176881222567161885884472865837315862865144556632181455527465181147334673333483621543665186372332756241817283152784158618244657255878188311638461658115766681246161552168883351424888428424882177282875485784122716316731164548572641158576563113557513278445887851417734662834141754463317836173332815482573251242558177358574375266865744367336687832636733274528813141348225588826828636268314247428277346458711774141185678456645627113733244156218438742173845746736823824161378656512636674738227674276637673283237385847824777227362251754656315386372586151327873515428473151785132581382115481661184264787515131857367841854654521347155477432318453634834337518115532617231226887678155167157465186671226812147263758343685856871286241448317555145485575886585614251856518148318165157715111762265365767471861732583133488176232716737641113866378662814874142221586146276254376776387337445856322128743853727853318381837853573377287262757433134562112511857644548157363668681714675535266652454733841428571546366824231776735531361824332144421186177765344266218173557576648147211528362156762725352168268674386836375445277633225726745811337224622477282585466848352775153687863287762251156777116513862374567425385152422486563838177821766876234628417133341637345466124454863543645755527817864331478346722362158424766132713383361276847254335518184478831448546368528635121663814358165217255841113753326515666624212527645866473586548254374727242733138163256643562123416577546363518577558644551722874226147651547675251781334152763668821674757284733538256338168726838277674166218825386432824343614314353643874613568844225661536718425271745563255826464216112736618454186468885423346213382337585761442473311483478228845545823452618114383741374337182565511153627425783463657288431167675664548713364157648133263644515554738738551576318225828571817335545614763262173275486845837835884565644223851571167443457471184638377621371587686417362745232387135553166684557577422651647866237827812821481841486525546456423147457236777247444618322732665642162636616882527581324644681712365734331174775156726558316563772521158366144335652717787742587477553216375774852383412686866721438213722626833228237253661128878238382121177852438124162783738534671812312453671614555728456833517834465645835127658627726686825112145487711126576237852656368853263814465815684626686111268827512318371132671754161154665584773131441371482721284451458353227784282332665845282437823462215117412146246815381346574242216632677283356886641163272572563162355825766866224758173738316812555271345346265245753775887188431811324521714127677844638628374522722438786726881458348748676411147446274881456764161152412618356518888882773662473253647665623185567345452172734634811451232277743686847216718868242374716288855347313628473131166121125728657571632452574444785685845761664825862838627775214342166353312431356317646481625124327516763771318717184151141342215441465772373732224256312817762382744268727443351517831426477531437442172741558157756851254346552862268512867616788566822573511518366721325326846137143517762652336824758727534238836243723656345278367721648752687861545621481313653421713841326688184734687417713826817784117334316736836372277161842831576874618457175322333475784765312345477588766314245766247566526676217351174722576224256648718541411267144747541365447144787157781412242722587841223651351655684577114218162187673473463182251868421538613313828872614861645286381438688163247621733367242373233577417881457656344846837238786877417151584851314841243464346263772327838665747655164481711548142474538684242726542726531153827516561651617512514363634244782884353766761577266735736236237243431288366328235178274723468553323825618321136236738357375413112663744277385541425168238486333575368122511777437732373235456836213843835158676754868785171137264278436358513734524548154471226356577743553357138876826743672816477561336856552466134676156141172531811282513347642273511178768666356572222661148324216777144642146788615833658252214131175521752648574885214183528862578212278525485437476884357152743137644173188715168178178141288847265477476775158458588176425815287848377822114173368252865282134584582388426433611284723723281316527612755676624785576282152184337318344847274734757341773624761456576271248751227477681678125138132323886515281772356647627336188284888422633484855343117546844544728756345776812732871538855424587412163282757648721323133624483784412424533263667376632652662848288228736413572354383562612253335167723523425457865138466356326816583165112748287142555268846568716356782648447845131487472444225812516872174746623265641144772654543244752433235831686266666585552271152665361616878517167287267323154286643187253543754876758116371763251834761541237366842737555677686382278446263512767315272111355258312188476151716174467182675138731534221274166857653375785862725626364345668618384165446365421157853862312787678325516572851734171132178648325842831251264832237553335314487778735287775717421713514515821765412722377715812157678546654136663235643331688675136277573452441843372763465727273484255811321164153353671544633738658161745455528712812726453225227523616557616211643812126324618733717265324413543158513886221241288582635687673771625438454331775446127843215452138413731278271127452182811263863181167873487188218131241852136241165447512322735172484387827676431556685421414348285871377162223185154463433586578467354857718712771672887887262325757712853114656154633148472317748438458283422345662677246523428722163866861854132333522358882358316485222426787124823235324133575757223563441641711426637177628265311827341318838288373316115883823156613712844547264518881774222838668154417371572778176171481535354682121155362352282228584226525877517281115523677558448383847761717875215175773756125633631814114476187283168741347636477251383778536663182152253766733737675573648846842834615447721713331271362114474523424544642828645683157747787237184853881562871138313146263237517838268554485432412564246654261443313555273877387145888876453776111317778644872167132372481651824287255383747678842756637236264566548772853642325877716275351421843215731384646143752467488424358582772646757474743156726532556181431434768261745521711452372146688565744322355874572334111316534248821624656628323255632757258886756373833385542753861817625665452488128625727542313853485521637743688316324572254461144116161214648447335275632614136424373468248665446486134156124442472864672611881523558783455584264277468614167827764761316346358187263256741414845645114427736582252558554714733343663743235626711372177584842624552232265577568652276846457685586372137636541682523363366862386687554231366745253317885787462726475367527437854564524711881441418474626662354464667428828363371665214257167873214265222462346145447188346178325466264667437657374755247563267116525684411831816358543623138137661846746457657661757616458321764536157517711327322623534411863421164311831542154565648726561172844658661725634522314888755261487657354543277532411147773185668575386156272488733386523358562143735374783484146777888866646721188756664561571217751651766426575512222833371411133642365441143122334742434455115351722528823161675235326562787347274731523774363388738231411666865611676258875188438321264717428138882157563811548663283666122738747486234818261856148577367176337384775417276163251633423552467234218272516451378278473755268874475331678161168265142345256543322582743214847856578866851617774545564272845618315755785837332482373643887867758355636254884253846333478438271756525133627145734262357656748567286511532183321453334421151523648386114373452127184768883313772655367222763774332114117126847226375324481342313866446676875223531818275552857137772738164524844562527232337814374363275262431365431317663584322843521321655652422472847251383313172423134555475485484265181436772737411883486224562351277821245473857331371835383615483871568522822522753844477317167131253341725518764518647772871482716231883365455627657166276711542851663276374444358862741147258727523556315685464711474138264672758533756721115583788134151666472242627715377781534437662775156437383164351118323667414876644142134138435627727735774858834384815663582668813752476532164532451161372863742727318431828444181572522418238878783545623528718773232434314687157435287265736375572544658263767653532867717612634188343873747713738542326126775832248335156751745635686346868846311831445755451883813182872458333656377531362278836115763562642142741447538178154557154856662616645341431648477451512888548125828413545171711818276146164762517723244711851552884885181215634373587581734124152333367574582272681327236625364282618365237718566455221483312378355856714883356858257664426682172412352843838147538313842343643847273162246784435767818326482152357532376337351542424751437661656716583887641514453356868154846245828334818524484833361361522178773732646183623243386777637131676527862627745758464461338747346716616775535382444867434554472251837655665415555642886637347673344545587334346635442762713536461131666713814716314654271168361576624183562446848258184511255746455777342534211281515123611317628617777217237166355222638724187857833245146736612663787385462272124336343411561355645554621274764737852178215374317538852788565674772732471744845285228823187837137282482263224221862253164133743421387338146337351628775815163455243122412412537626346462822166686373778511242674354722631164747466785855632328384568412452488472244746382416682154872843245487712761413733654858643558431181747165455858271166347361612137665562677375858141225581333357677328453463265631452623287466544128663136266431574641373643613834761786733337385213227855283673527443658483174224643286638443861123512541151378631171328176317172715376527114418823672316767732757857312727232583228451347487538228366527185625631457355171674348671812735315372263515666841813386754418368526646268234832612413388146857373327485562472846754857584682674121842851718845741125144163143226147465514686613885527462732842542487113632428563526685247635154541361286653321346841281663342488727881333761558357847628432376863155465448447161872654621614155514467152786514451717655554876777745271446643473771581768856275546871681283566227238854233147577362343455571715261677428747267564881266845225382362555213487547272383761783586237868383484436642563176386645115517388572423784575283737727387477142654431853452178172683231626127512153665161337378417777268212543834843488175812633364175268441761165742323738847338371424737551726854685757554718587786253427284581624767723545421485646542687678712245618561158863822544751863634174655782482853555354627541453868783437886484335313663623713646668634828753343874216522863235344445545878762532282441542662337371261488626551487785183584224783851215234588577462445445176161646136364222772724616174836711821523757743882132718264817165582818465661465787174337447115281756633758733527314631878257681856118778744586612738246226186245855373184228532551633561284622384423411722331251466252738858825882715766237644877832843155561836585637145751682665454271714165411641771114657846162216557218511154327876732172681242765561538416123251328486677343336367357365516738844536834788377865155887665124447738734812857776836768872586715743726115678463372743576313613677681371131875234257332324388183175684234133661727244644518366474414547727515156477675547386711488247364265235513165374171374868428471744555131875611425631756341335572514446213746184563126188761478478142532523586186474738853461111653461735448384751236835262235748384283613257781343683287213313734745262154543576426654745837642861576185337234872826625178214338266864754641854765226376216728418588867226313745887148744213225576185882334213787282214174342143124641368474515253576567162136334163727711586872827715643184511412184244635438471752283245448278864342347272524383783657617137461475723135484675465121557583838635375142353883657785171382725438717867667248828377746841184732646737162773826268553625372688278268768374386584721224468535261823734411652261783226646223342127253121466261863528287761213412343181753273545433557136556735675728845856118443133728473385361287181132125268633548352486843832447331238527112428162234345222368747848328817786651375165578141858866172728611817446164472678867364771716418773644371625733574132282136615351283754575515754682423275862667772716822324837434512324627766745861125254582728133754657217117265751236648773128113568623682662465338355184753277762185765237536374624834842516647645556363324544572275656115385275318372351838688466467422248747738781231771854183462368576114358715668532446365453412427165552211841271758333455136357377885416313426175834837828465418616181136845114763584658417225843872738714265321277771733423726673212284584865248371366261687325121886781144663188665485513386322534187461172671445583741322253525886767473455511127241727166716818373632422545427743585762745555234346687682271542441371735367187143351787758372257552582684273282378547757651721645357382761532561615775884111577452452863242117668852811274452677437662448245658164541364178225653564763273462754865634878162454628154535883656655458638342731511848267442873611568621858631615585232426854266883326454665363358131377811322644212165165422427625716778672415146565765614515267334353323221614868567735145784884576133712428461128588127534584231321786167614767368817526613634216847271755816783821166217446567387428325385544415822667468771147278131583586863664326418224374774174311756163452253261853448872154336454138347252442845325574347683671355366453768512562758827576574482346163867516844411552334264776226442588477778728114576837643545356621336563172682626544185647745213735322742568641825426338846483533368255334318725777731148627414741585866438882817255627253241446443521276165574588538648548384582686312677487458478114182115788655347861153252422858266222717157724666522232188423571224772718337544838148312825487681588718332255375664653688158646538643537245148558858241426467462734536847633848815327624313616657542728183532686167348216118537817537428611127488385138327742282688822681816774453675653623323136141255111583584171212774373382311165453644141165624578121357742627748167867356461861487855248686175686266338674774851538771241528865567154637587143881316113341772376851677457757253631221454758565544458752358286866444411282743327735741267756462163474878668281456465275816514454681327887213511728181868318288767437453126872234254815552163882115245285837664157515452185722653366336721848283287677852553811855472628145145413645556611135323711518542135383381358485632518868441268151885221884684531372313111513318247124335487566612834634365664218252255154627217786646174331143581425613116657874485324241785132243127518284863467661255582513126138273448528688581364216737738448255732324158123883135467255157332136346151735166353568678144255734355355125857733343336832457587477316857517836774446752685327485851547288176531782172546367533561673713256185613781464653187144882426717284436141457231284711652781381371615746167476256284132145255772812781833717521172561788616882164227712682168686762615811554516623781827281882636713861548772483361364771276564126866853823123546278763636478228518634244333276237363743268486877214831883554624253625376834636667284326422671334487528156488737425176561827317685223522175783871287231166571476761645211242685136444177423784337844141761218423481552771536873424441154737381753775551278652772882544674821663813525258614453647638256168528284545441274252121314244431336787487254322231176686646211785168548476621537387556364561248543548142668562672681622356325571772386773325223123467244815455336676532665646316273226326548726411257865852816253255665462865564164775148171344744183233888567425755423463585383551323464766268752567865323465626535272637882422213365166536685484864732486457143314333876366678227864838321317587586852744356275721241156384124178756755766387874718163528117317223238817168364277161728823132518214124345451726228663546175568812447314618211313887735365445113581144635615367541624715753631124533254114788451444657288333777571838624233264562323238635541345438867168253651384813226748814814552478743448168574186114868842185412786441456761612154628424126647687132643362348556845164874178268772641324772648176861862757447175738451861787346511227166446427436671145362775646768436621647586258626521576721431818452538646568442143625655125577341586385566273755371571524472128146251681424524663842365715347288317253782234816447618552158286177685672265837647537287654564575874466127242155877575137715516441543532674618332425724287246336447552617344671336626114275381457878357731468662263542884631438845354664423375337285261764471118433386272784341433637338818573546212835136485465525643743562625522433751117843275657745368767482833618374613827246662854223212841572386527122145147255776326453248888581538411814723652623411325245881734172584566527786631476551281434483447882631772713187644148733374887167374552788786217772873751824822277584316828537215577845247643364724381742733673487182243732114637534182165811241757345577532332778347826458737472728847755487811633231125736374615285832133265376646334673853236466331183788881468588568318428283477178148426335727138422823811365461286287164847428241421735478526721266584241876557134446313451243456118838251788187241114441587788738216728588153757488547865376844228736741482133522884687273323173753637785837145283267886263387757868311241446268686217426678773831618721825314732741364541728745373818221252342468425367212841245476748883613152135688213513235437821358446214164815342345422746418576155562536857666644713644111856134546648747685218253167122685868368775518347368512515441885388436681858172671812155857628352171256271436226685468248154612631356641323623334132363311774372865763124322585625328362454656861258224824875387725567488662726543373571667442353283325652324814336583857752178874631413424746166181148551385152175686784711655135747771121778384563761457272675464686582466742555136558847287538676782385466517676554444571128384751551471723166342516712354574386285735168663361524622823512471226318833327656517452248772185323482781758473763338554618742641714168767757563388886617352276717521644661121577568177187625576227573412135641581616174843546135186336412513533641543618354814413656845487584112752654282268783683282462321525131482715733556566155878644443662224112636617613675667174126728337374251341254532145457112512216513485137268774345728125576351768123644557515654225423158746825346846485644772875265244823712385816678542158426252248436228354246233361315865767242132771566772848838661383828854854477474111111334471457486365326463243461434582477871166688143556584558377488333143774116688545532352224226523473382565378548627353433313572117145674754165461437721163118877321486737854811652866663525431543654682265617821257848816844714672835471456714868576772435722237188172611866732572171522386562378667318156572616744318866285123445148351164185521213615533535248452886423224385836852881437681522684236358811728768445318136417357476134516741333315483677448822525142265536371815522827238737572542443833776137731266847677761251136872154857217786825578243554463326656174816587841483211774248332167818387663241674151837327222811833426628335644321326857857813733176685154614156586632836423135882276264623687166556768843342116757784732434878551812754223235578336552733535821238633887214661134855576761373844447428543541436775286417674672543433551148158555526663133871563311214866613226655826544343215687613668231828278786414547286761381781457745666753546728864841884828845844717616415368148132375235364528883356145882646238662327811825255484876281514231336533273276346728528127644123817236583351317167733753245171774374417252455876144723871767313685331631151864118712157342283168423546857258636327758548657252847783286563664774844883565676131416846553786218341612174517848516464264651734441266652284384327835753257452736538634744843715616272183817288162843511636586185345762116481284548725731117343566828366361527653221524445123274214382772867472474814426886617558466723355568348221164875182435718836343544251433567416828775774548455171552442334546331853541323887312721784161187832126144831235761773871262856842377353332513615765822751161714547153436416474713355681256576448471434275668454518665468658334163262357478564728348383573566632811883627284755827745687757767175637637466621757462121138424565841145214321764754858376138742386743631425714535535771181615745215585187736876344141827742656552765128732743385747733812181784382235476838455513434461728682517518143545265474734744378626475411535884328168856551741157665515835817131841821871634417644825845418311277763215387453213652563183134751568177857283824745864184116131782678416666226871885385268673266787441241755876471751136541477636578678161675342154686362726733452124635652211127543814167341624473286417315425318211877751678683361872433286715884234317875785238166866155475582325651652283771245113888838878582523386815726552812167126457433355285112663437714626241657153621414644821521646173876684656357347286882823711528315646748547215357761684187421486882245658132286718875165342312817141732367553445733265675532478478217883667232772161844862773887765254851482316521354785446467828254172163852216631615312218438415362267626314846884173365626586355114568244773546871312137333885455655752175332581633672623488212127682425631624333778216128114453876476217885771644513812788158716453633335817612137815173441657567446244212832374444685773527266672684643554338646578262854288347573487488137875811883381383176788422712737772161687524115142687317328481666284775341715727425746736446458621322258724344335255633537318528242251728261688562625757244438336365262677843383727515483378454766728776428235378116341874645544244175617266752811351338466858432753786711355557286344373325453365477771857173323727558651822625676524266711385346612633818771173465557617253322643251486334377436281352351556367381552556126851732566512872378781661158741814288474467382344785274236633336237841164221416186414533245514152431527244626683743253246327871428741721524661811158782272382433873727118545417464431537523862836165735434588843666422428487437325838351818624861733476486265513653357216248262577466483683471641744674351258631861781318482375534673227442544215315256678461676447342465338778548414128464227374778154778577856734165615436432134762472222167834567113143781843157676876876242455533516728277866867155743775722857458728374876126516761237358147342836564442274563575461722467218552655166476377212577411641234642651548163641318686565373244536724746155327427113847215224546711672775716826631581642612384266715751876765714874434576575815428885732725426645567752813113461246682555448576722224336527615546338157822418265852525814125342675767884554837156848138852268157431723286664576842812553147815566324263563866845238343547713464337348243453564451334861873713687551835518572616782854482182763223777485832355125888526486628371363421367431532848534253256714873537147673272167682143761761518228613526716665413851346552782863784282668576623421751888582383222452151617575551421374772153813744186655378818178314421133182332588663146683227875181287187258124122265313561472178662313868286126752682477265165158242721541385687754411867856444246751656482861528378868247444566314466381246637175746374353461215427824335134362534141422816175327165477122571172475277628636814111161445865878661718686363153543231243257547231125566744172612384643351218145263572365772251261842376114463666735768726215155363587768338747573285258436578331314763385664353328777225537813376147234387548184451747544168456584311721547722311875848288381133221456482615324313875836176787322378513214572858445724787766166827561867883473332454784828344738152413651835341133174417226112276675523635414354881717748475875732365441686837737544635728512517717113172622828618263641241456182335154772884286725681416136282147635321527158627333544787182472578154654885543233462654666132635121226442252667211581672581718556432325516865883712537835815347365568317436838583553528865846228861711635288676865487563886634445773637723457543881618233842277867547215455161618743244876883632165135633883245281313152315857646572354376735586678746418282222574167163841155753825532661368874225772155576332775236267555481331824387877787825167171855765248125152284623813653217788856775256628268282736856832857871637332324723537636535637255378468572251563418365863585488471717135523377268268862856131556787318733563581157113713148735843665153611254834317611581152173654587786581237863618246654733543534336741112267848775836357326431137626844342321651226685352523838247252717127722771145328174187371178681751337374863417333373537576547528433623565774267425788114541417245747735464567563763824833331462116588256365127882543325212438418687831844585126433822371623256814416173688615675281311684217275453342584175764346377612713488422746162665376343214872546656778713885475454366565146155353772712316485467822758477317718571538756177228858421146628787814452813843334144732552234442372838853451461742786253181383722585345737425423372685536227188542262827831213582646741551561375157524752732743578661711461874511882275215317632358885785676332241431244538713687513371164665756224215356235514628282574177252783176182542413144352657225612327576681333732533634525451112558767731716378561574241167664732323451773185157742531368764686114258761141272726684681762153764211426726314117627153863478258734151412277264633483828212532441884843811382882514885415274376141538524363721444717641276446762874573647263321477357483858653246142482876553463874326241641133141636248288344476811636683758788352772458867453312555858722347114676684618885624146168624452428554683314565766146744122511728133876665564463661284876588488374234687748468347626712852237326336683346126323386314612715718223662648344154467155255522233183874425266748874582572348274471337775355658357548634277581718388273537648787137262536376578758611847658134513337836226578537653483846632841147325178667282111372678611786827386565874576661468334453264366221536362513422222775713557533717456463533866735611566632117272633848568517845274274772422732177582673616768846845636367771147535324188784671381621252237712625333866373217374812862245843552266726565844787255181527177545266141618166253183778837228172722475518487676784881762742523837343632785315361566255365337752822831324643524531222188545587561246484661284778656567145616826365376564627872618126758771887762747217265225441725756432462258625688558416475482415323542564235365482874414414237437244535476135376288885236727117218516685211215646743738851784331237363416457627758672844763556511323512715354456614483676665318168684228565241711373146811816332122315432516434277746348178876543183727164727157744658764873517635613142311623381162138344518411265572451651713668477476132317346456255362545388587613482661624817554373457651886177617873822564387162462648635312416477842728713513732317328153756425656727838718428723876333187141152186133615578774557633818226783244676231137442648265346447758816351435152386224562626352326442281583634822848721546643647174666744368544235872777171418354355365612413272411733728748835851881114465145325378271728566847113817316618156174215255626736713485383473851328132474365353856781576514642156685877653875415682384535534174562683132654372318772241117782868465558856121267532156411778383766241555467235268716546632685216876273642474685835482418672658346428585342275475643537562841337177663383586468848576142214528275472424143453148616623482833145184472246668547874211326772686757287372218748785533617628144287182877436136653323634486818153171313442415728318774334321337127562717866274414215243373447461731744475381623273435724771131742544171428362182471165872641132334651237647238213518766421237165226343873834182744376241616775427555238484855185758658186366853226244246585453324886316822271346356688462331254745268522253245752115747377144123537634656318833884212756428645668467661165375785342871861586827866878246232237865284825368842862525822753556258346453275428117337842241572552732288121451524465327541136732636655722464267355642811671414131614475278284416438218488435542871235781185841382614821131852163757325177373175465455585641511711316218311723568128323141745163561816345827432742546633558142744514653772652881214172588112354816255717615232617687642665161857223264555586814262162786727476237864757125581623447638882755443318233173515258834536312384211486837788627112586343378171816755153758732786718543481128583711186837457153771777335434276185355377784782535454161375387584844488518456474216577372157422583346376762721787448285614312373782435632822372315653644178881347812377586571714154636137334756712175822122431337472223167456684571421547113248831617228544375233617222286326883552345773216823428225214667376444728741518562447353322817454463318681784778353447444311336677868476425435615183346646731441363435532166226856314227346731768275441438351865133783121543117663514841854285712114552461123538585113637184721318584267276125445364436124837733485468425132411262126153763763525147275675742833865464228621588732817111843753263731366546585442552374758564335375217584243448145814128272126643573413184146445324644137613144153663161814253832488422143352771223266674172133163682241188745578347325444873367174514147388788815174417121723272838687256384767474785412382624616313672388112722332734188617276724777141818115128762728172462273263215288481475458381567162224167845531771733461462227227834263624373247525665384136864871133855187143872632525158564353311732836411668764181334751276531868344672113327156787623668873635674588616822783128376274526586811347512887226158713425465832427584482738855473513464212678646327335884816221444661678822346468871761673327162635161712238352511738625135232641873512854166253755877258881658835465522364745778431382573558236613775524248566266754126322621872368213667841633141522276676327355316166341113638431631177624581163245532377466237487413665533225661257543272757263365864164227525412153842147126711167281721353734841766664143564633766271567544876755561711835232818423235347714553661155751153641523721738434776282326387415384566315763736845128725761886767156645733888617733147728784343526841865257678784232187273168542387281832535327341265347122461454617371823445318711587571257682521621335282543564867342445877364786433533356123738346224535321883325127855584131587382772225631262852514742347552125238734134872761466312256252312323653181638386651645567435282334242624726435342562871228866847545573538427264137118156326413766325554737434444853473132858474711345277832111161532265174426633366363548858233671343887355176326342817626516445181212466265716316484264762353227263457565887627488618865637876626285715553775858164715567155281865832452275568642817771225473824173657664383821814588417545326137737718831885575821266672173718786642328776543826456838283362247544855568628623728836366618531834168878376341385683188856476362465463846261665131258617674738121375162872868523137718532111431134112135782817817461365384358587871274435257121164127818881274432685275112141833536247112551126617553357465687685162214773516557342816665836614856121732621377372456416647144432527122718237476557784566228712575678486434233482548628676388528668377384165268761587546181168458711541712252423811745853843238348222141256246261584423457454564322671388144738686288574841837664484416231224345638376334844788216668357222626612585237182311848713246815636257353361638527617288461737754534752651536763885663247132128258575187333143485741455223848153833354356712672782421223647684615171144257476486135768172418233357711336817748661173212573715732664237888713743673145355327216762665122138137117334388111712718617522331448645685887278663726142228871178264722262513787477164335517765314367674513842112128847121682176616443473525375782873863278312688115688376173637731578224567214864226447141717216353531685258677832341841725723651384336662481846417664187484866474547227885427818766377547187384481575332283233873138351727481558758331868457643268556426637424531843538341326337825213233411466563283221584442781828441413388376568855782183867312556453884262167884255143812242864215867246632542253262373523545728371771437743435113246516742113455115163326716412288774362341434374783115771544666284448438136688183852716341444771216688244165362465174771837443347852326722672438675387123553644467172218574572555624316675518181782648184616176332826544451842723276247778531561737783458475173784182633757463781278236851838831188477573618817815782616264885683541654141177777858422768224165383571122878346785327286165483383722874511162647185578176478475771241846676346273251463262877421843355343856221652257486111122376367158166813476884388756886421283188823786284553521647568666328665686337772184377682727874875811338182162215232317732735785811712174575311652118858246148451678548316276433868766816578686814166814723614167875428315223186847746317123181817633456857523868513675483761141745125825462348167644113312776281636247783888677521177678246374765342234883168583771764867326484712135526683832485153835568586783316473112884662557544387145842332836871261621142511134718537685677716721155343867783463615745855874435353277847132327143638874587688786742354485783546236672733646448816548584585364434428532587558184526871524251486146188321444547662556872864547121833681616514753575462774357356111812767582242351522772583736882367143143811462735584573267746755186463547554126156425714375772318352632854743244541272854746513656864247166463847844377576517554646877225424842211781763556846133371134776342634581781615423538364478637832441241427165612632514564457638464647856324662774633562176875271848832353618668535763137671513416514582225847841317635168572181425315415168381365842523652465843464645157835114184422138656763662654132345713115437718742668216467524646845857882771218115474266886156674542752216276267327516436861532678662174122245181511352421613562251455663252481126841768326284334465881756367555755534882363288255514168266643627285242464553277516782687253324825845833755738615618421862754178877156265642137145538178665382722634888417355487273157777676643574568456282171228231242523557842775754131286744258548883636124283136563443736488171263114732715828742448545148445162465628576751468135584637721585552743242886141274114477161174236217584526473124453813817615684212871461712817747512667346865244647587227833466284371424265461585173227744664816612746367787764651777568453382782552541841171137737367657231278847584552831541113886817573588556488131645677776517885223311734522816814611364233812153542478351556555578556313742538842153827875726884821274712654575412473514146635276557636553257663177711727837462517154657711123122854162173581127214387668218477146763522336738858481257214417287876474743244225646313715118534355586648857884712416127448863761336557666322237432381748271643637347128254324626656322644548776744641842511836866615445252135445863668868173221584376418368161274153826844246253776183376218167376336756123326481813481785416323245886418428476466448347681361554431775181734446817644413118177265553376213335484127142342267681773538286542138847586246435765848261816634365567821146421231147117411332261883848241311731346351156478122458164138722224384263241553178745651544133221121582837285771818716878763462265142634422775644274142485711223261565644465288424234818367245254423273556437771282321524267411757475322765151125475318281372511476171218616488822188782137351841418814224735323117584786822547846541386521772713833463478453854652618657753251571333657535454416176166623466475538454487246682653637682566147826627282863343484115658381833365382143357888561634556358151254161674273647742654265648375115768335542625822623121538844835828143274131622278666723621773326215375343671436885625275581376734137861622825264783624222432645721264228585138335763763465536423282233536845754521683823455687855741712831881812673483873253357736656325546182228861473824421557443522444888628515668356243387478181158376551123163347613286143667713574756126148268855155634433737422865612123861543227862216384814533178816528243271513463833424413115643686625357287878178247478153121282856875545775413424411255323821136328832187572854686285455577726328248446282514654772274125671458436271445151866141117152417888844574421173621667553872861222467616518637156723568455134728864486456135343832463855817313628215535244518254826684413573847137375746625727682724525767238134762311115352258431681288218211446668813277387311283154446288468876772732768111277417882221468781384773182846172536832622782454371361865525765534548537464632353117554671668383336784417313763268431234636182713348114554675343531128614338764734153434474277718388784373415465355864245424332277181254881627533667218784152677185215226536652221646453478548618534422737188648235645223474136627475152513613371715236334631577866331425117148583481716566836151131526137438824675188321364874771374536754258135457175172688714854782411874236132222372647237866687187282715288187345758884177473716861533174777618757338151686457411161334823656223262813545244427847218837455251185436553236617744183851461448666552674713134177257425868321357273374151677165311264872887632284636336142548454515773726226217241277548757816113242555188416135323628313735358344867416714888888752465461286741781442222442774432736513313436345474461413213788522377637886186441158775557256455767735746718748681767255237468231327164142311713753152312588638788161156874385618616117157425772467435844656388213873536374152635621735271632666461338474685556336265458866158138533185584765768661255861768351342756646881552747846715512586755235381142471548742684755884264621845835776135728664226746835153113427285876251576214374434128252227237183776628427345244726733354725621826376437442427652336276378846373433665813374862547876853366551438872774262221616564854161873167883637828722841386783142278134818358281855385857154488771644758251676816885327364337547137516461625871252874682761514427683811174636622525331343862357224368743355172225877738723115675157628526475333254648574374461345732544776483142773276137261753664132412755175518848474456617375338117535882666137286617626471775584166127618578656865131752723531142755638771871161342174326347673864378344822653436251718546855761256717486834246576332644228612271885887274437361533784848754177217816543356158351644822856556752215236543377344221833137261288575711631377152638846487486722645818367588682316775567863422771376843173251648148676842613667783117412667872662167664375751344465186583573138334183623754242544415357478246118562264251671612813778676178374347675624156238337356553562322455124184887574815831168532423684375588575766858211248786647875487121352817832532665311415414887784664686413244124747446573875512661335727683621244771842475166281858116314778741565415725271421222875172257633288385337313886878854577873827663635638245816642513775722124621164828673513622778542246251234152517455843711446735254537168442136661713676224512515776716167655223734112766125885862171832341321171166173166534143453214188373762353373454116845227854758344664376214573328263147472784384777427618288636111251731558376831524818388178361775664528128172734676355835335337265847714358441454454462153185733435877774267714154347763181434238776632258363646773348311141734821683225575388363421481347887324238585816665581783277882417745367374343466533673852357147817587531375638663721411226663364584563462564136778228141311465843374173266654768163833134272347136747174625142522154668853881712634511243122265581758487724585883861673433664248562425281131882227556311181556341861377436462781378415562838221837333353638152157784857184475685341321441775217561552362223152621578116842188482647888428326365864637416746273531865827138785237176348673554776165134386273466862871175275861633631341725255326525155768445741327264664458716735883682111258118543874865187863164864375467786485247361741463386874315542345853423621285253426431767266421757673362312517651461747552716572867771368258323252364741467612536522633425412452736282823165724473622252116884358857472831466533384615124735335388348323462172221536458256384834745148146276222832322284277134615456766112357415774253474168865817233523417761285276311335862783465864338422682376365318636127887845133756588235411232367273854176124321356746463482558543324244774864672171256756872565653865136445151313842776271741865163672535123734237233142144123116453771713851223862624141842814156566112835748553433376225162186633747443831744732727212241713618376812522123713175355451463484746133734416487375356615385744743151542722645573466722563774888548775416741263472413881675358146185332513188618818328854538137213265774661567826125223226872312525251386757477221154518725786842621485127572871226513253128153187148655868388868485724362626838741221462475671127838321861677727733322461155723236126271553418686682865657236436717725617716854223865131714267185235125141132745213173568638526738761157432586728112734787874613233134446542114723315173732523241556784136847136161516624314181224755854365285555318322416537575388642576633661661512411457153356211666846317377314185516778326212861581454345826266346575371164477567117461443655413233775661541266533852131783115227445445423862425256686117712722721124141371581783822643531777171338612364184356473683425457284214131813361334182662274411411334723834627174424327146362835357443821338144426761325557254186651143553571888488817815727334524525464313384414378341643555645866571775655881117416342328444876684746722237467346844278524771352464553243877442167473552365562632483145671733768456362814288837815284136787628777321383456766623212262452461275778823651542814624812771316632517548465525315143783586187456631111737345544475688617337232168436322753343363452755275718542636417145453231165317857642886117513836565227775524288772133462576485886881335538336243254322567787465765533662287646581551642657136544544848272385423734366172183861374447521343416758818128213845523727716227764235521423334311532745743581723677251554248151525252683314286511713522438312437261628174854588812777816838663153686747272172528522513143558581146841835458254425515533544767462561115573215875514582762411157615624534841412461866578321417581566456118723534664534662545728186757451384531376557466123534278341412813741752555153171355785861823568285575285471758156222255331321864331757583155584632613247184161164861851715561385167722711367388224656348732418671573875364751556588261634125674737544853631378737331177211728134658376122621626155136683537365352528188717475228271565771547135382231624465451373732846651588476818481772172661838715438871447361442577242177141875144852524448242661223183412433653744455781454846832132458321634773566668736426858462175756831814526848153124568163667731115364624471314623155743122632636577342268816123531711243638627521811365172841854652365221868557578787816146418277261327731613111453882855737813542343211372851442148748532757388541436222116276813114438553657263811661887243313844364848851347867122855417883368346637274688216582176866872816818123272787152771354671673244513243768243465238511847484738435353524757711546566615814575714636755625165163511837322578127525611847185844372556458182518535667433151183521317488871417147472457574118388266323617824246781445826451344745588448524484418725628578575651323175665317288364886268863185643221261817238572212756131471425255187766114843284388252723251541121677414716447345357872223765336183264741851685142527252226438663878642781521455358413122714654781315686457164268555684233236142725432314314476538658382468455671362161714545582512444416636182654736442261167846511517115382286466743388373136556358438428314886756846222526423331884778527642522374648145557478412323547248463148381715865465122431574176284422732466756826838442245326678535462646328172415764341127142678177468112153263662135862537251786355218334687364222848275741728632486134533362631113824834216721734628868632813545667864587142432577778646854158288731635552828152324427218522443816355631233745612828861142348287748335567541178128738614436882843115875238376684435645347144533754624527831353817847236873327518457266544644467858282127225862372655735882734661431867731528178454747325477653445816446345812717626567528466761287846167221378485611475742332751528125875345123828888224786655124685113338218665413341412785114546182573532634484138634657826363682278483144435237717114876342822433623855831411647462313832361483438434257336178743573651652818856256544185224381452784737638151188577112476724512263311574458547267831281266348831132738576867215251167217378216143674531788338585517771446186823245126734468113488873448354485523371884468141447267844472823876571566113552838732663188131856764767832711313765722472814561225471248125422555664182473727833411765457346127658116172831237675343668753374267837635425675833732632686343543374174741365326421787886332432265628212556382151272361232583464855318841824772544124466844636744335486513721866375128864214287116821256265385487456736164332362665177457851275472881487712116214511773372628678527124777178825538441131148821457418831366166766327156356441714467653812358554643888363865171553247854448154314745212843157166143221464137731787772444557567738682282782526276242721736574784588334556856838553754184585231644342628545361473526267231248158178162324165474685727755384217271687787114411786563464226167548153265876355853252852587225133177536671223533831472565123834656811147648314612753454657578488122783512823514136738814738418418652418436786575286243471514568121283461157468648622886744262741648364563636312658414563812212176671587431266822153182455328286588847144754476623678388423175831522366248318536552187738117113154355883662222634528826418445817774246678836248454548554884148151548781448568482124688613125424425476514141142748674827632616513183717567567655232518488157323128621845363587714847287213865123166843532656556338541814824271481326132437585235645558275714747717846633611484645341684311647831231155764421757314115167375177262556688548881368816411743344582546428841753868235113228114443257566633423422634554361217625187137621738733662445214453161575567214144771437323253236632535161763323736378552485216235424325442876681422268822376367415241418773612725251638434611831262553628687442486458847733335611726874117727674466656547863257448281826228837752253553223715183611217282831872512746463155647764285622817754684165225642412885483712335715214832675872772448526146558585453614252551244853545637651537822763528136137223714578437374337613418366741844226522521481417722384726358568244546636212273514347766458542821172851121463527822741444646536622332232174753174168433342811784381725312365781558816863214528856317861386518622318127328372744813224472817223356251872248118445675868353248484764778143874148144111625412536577377635133252573627764268282481156253738457742313227688587622255157885225568842313281333562564214241464675185152256283585155766553287875147842465886214326775812421424473278377734647615478683582515433358274853211381351278151666145441848576855814414431657845842166623714276317673821133622748643632671427586877365754873352476735284233766651168481838131745533833856344547843175881633742768583162133886651271817615136551724536357717513662352141712313731283132374788453741764834161762548225732214531345185331276551657758262638774675877712587167174813833543685268731718132511454873272341632334327552425521215555863411637418253423522578628631556142731277181555561721655142574115584357753284252411561477653128186667226477722686461414526655637366717246477755744113666436451127656857224174358778247224758844226644537756774325646567228276418667854337858172581447154575374231682252715713582778431537473337355235761543236581227767476882871155161743424322788845821577144345487346537461178322347711556173483325836538872312815325541171161428445561163467551414253434542448844834588868521475767752267316446222124823137577817112368654842858788422525448665225863134815555362485873385326168723571427812518534134526466388337834783523322565323686241534343117861488285651451457385563358385572877386156561654166528385557853815183865412267815284868435464243535716342857311324158668355243765253523672537382732821427461784323867513372846566825562452157348467767235155821753143614585522673216478666524635537528841631152668637624662783486858367373284517776784855243482883256578182421214828773132488676347437755444535463174221751534386225247148613828573463633343634726512374542152258518635156481344778645862785314314215111631543355616821711755512646116155532737443276137337124828766216342381528353362568582411373122375128536484521777586361245387473425622513652183512277728213713226286287411757287468743722517613845217617511556627287347842326524633813238653247124373144112527764422114818166422661641448152871878885755877716652615668811612517675185625356424366532781533281762116737115326844353174363664143316474177333481677346653131575456575367773633131558836267568442486253658727581775247773522413772131562387747286688783118213635158422551782712767661475276331562661777477246575126524227177588385226351674432325783265188557453515815734672573645521278627524368363764235274512555272117858623584618647146274568772542452154456725445818223846843421137778423844523338861726452313251444156274477675735575816234853744266522838868622264534184472231242473846277413245633277333551522336451784247835532211716834236152544342777886835441717833151788488616173381621531384145837816264654168541583561828712867146475383365224215657814616642465858387783453644281576376153628664761328546185535633681115588116472626441658267718273712874446688187625351741138748872513638711223734665866346766548214712344215141853513486364878553464342882616457873153758838275824388324688683386413741784246131813287274573823362581686633537775164581328325857171821387443381486445716214186167542252667753416275384111821137674583348152563762411751426527778126822358571263416162416225332137163236747527467743188114536456168511554544866613683121365513748183178152242724855147815845578426885548244521215684474173212117558433233277656386733462875371141787481275527244143584522372668284118516855651638131571338755873132271354174813745718623456651563433156141427342678421145334662271525828873137836752375451678271587843847842547246632165687723224126667437832327843716466874616565423877216653721856678668562582137631175162551383382327612577216421524345161852546553886251563358632383656425578446674164633236662324575253838313717652565135331763534774733364787761434135342252323343522435834421477435754214387832637516785166251186211365673155718854111554667556771525153554215748684573163678773872154375118564244112238674451442586287366167121556881423886614233713586264488711272867877332876515323788713813223668741145516676754623282128674778525251753321584527253264165287885482478368678225752536511465644388837361488113772832245811384544544655248317754831541472142242815262754771183712368476372754537271483348337441551832521631258838317748273754232167851818422641232278725576185565845651245247165233436272814768211534135371277746665781655662426614283824172674763335553767718414682256184456865338646867436286522821772778342385566521666158618146367248234365631537174343212338516876845678328586433417686626684188656217661465173117325886888816455663577311785168282383224331571831861737235125617783812146536768864466234165213374314224217573464515333783375747275646825418543286888882584516248841855466332233311664753287866327131882415755426746461728161663743365337463665686812861325258268842754778786378177681635152334131285148538646271376718413173736216477348614856418186854511854655687511311223236885566643346236522888656652143876125548432411237335875841821327435276863347832438316283623221667833463725363633871232644772247685363762115144666251767352324756684358787547851668761632236167882382118143722763827822272821868245628375135874353751134463683355376525646382242487177817532777717711673525781527623332188166386618574181682141276135675174248834173654481517474483158131146367426638187242481876386288477121432114638317623523357185621484672661212187261266888855163188542518628618432124632768547575325262174432182816371311566742141414381576454324764388555715652814147522623888614141485476667521534242343672763716483414124363854124875553138644463874374233374666445374488338627222778517466173322218228753844188152734617471153444646616727147187122165836661265843828767188668457615353133185451184782757313673256451548462535454584731848435547622127118711622442424841871551837252523476645167177872774182557726383628148583263427123374816882665233557714814831571614122372553231516481734156868778633168834822541835483745483437465843471462272488584643143521587252464833344741114371442585767283514454513564125481531572412414816734138656242727886344827111376381156423368171236831516514675323327158563661785182454683231567486837571166664317767618741582835223878742457743872367312873581842843143834424882732853117447626266365215282648151825128418174345747842211683136343463554732423385481445677522383828237887466843814826833432176765552272825656437164235318262152336346435141244347871146733256822234287263284244713781535586177632654188376241361164648336716417735188745728873815373156261446855515843731412523778887331556432768144758575624163666483384585585857428684857638262527355817172286215474774438166735328128642347851881374632388537152477181438214784526171566473154775873147363652153678212156517141153882552517312335762523854763148583736526345155574126646235543854788561881434147572824474235334838757577431626846884352431858728847312751116131227571275785648865125473273523272257121411727677128616327615372135871846187727272524726347418648532583184464453718548517812826642511512136587211533541264544111582721468655435337431252871334753723233464248773665463114275637268657476353444782358566844745711525424737323825275566435667778581772323313633811454614823715654124461746388376453228576531488752835862843772255625744448511766852418841523325554264245223172815127178472825285383482671231615856634363115442267848451482616474837825287383825815716174714783454257353411241271282817666756365232788427813183141764288364848524437288783532433764363233686268328536332823275343258537857377587558432336658743674473256185335385552242236242847448658671172873418252176721712481286561122743264158442281241485177673465746876686488852817222452531168535657241785825516883145624413745378214313612837626678147244676784337663521742451328652882428322671626845517825622568161825688335521581784525613176864681261462563657523865627627267652322825475144885214526154523521615312234156755882847471844312185435857741463816628152328653655132767837572716646111751441388756848764657283173227455427663488154168516822583216868568434465582862223657581877611352412874551576863314241452474348425617658322868614726665854234354727363856156272565185442357254257357645686681516831813833871416847858232816631441117232454183814587625226258852836138314136881411431654528278741532734647368567824463263446238277848361375881518781683344782283315688111115838318728711136153673311625765741554353847481741574725642212347626557623284141872783572856637482467643523214321421326165684127316556344665285887775543225635538283552276418635581763755832377276288443534635378163558816723682855463688564367888824362451842152688712263248867756314157423751262422777851414133118582724831481487315516425827654888182546852714134224778583187453314347512254464836658583332562431244717317521224252866538844363621722313553687317663837551886776675555426472166743186452485676336476877644855734824688714348735487433131856722423466616253454551526762738631166851878525786576426327134258423547611165232121142813354418834265466324817368788862826875757712476558316186336262181868366744313334313714631368122364166658613758348336741288813722687116585815885441272783823523858211565587426114721186372885845463778661175664152574313543784318728246837732813633511785747668383152862421754878443742184817624526583543231728613886387522444336431374787688237327576224811481131683333312414735881148168478255427387275176185284454714214762782582338455561653383886748318817143843771363377676353618185336541256213578526511525255152312877785133473638263576562764688656388541784315413474622641733284662671732818654658347865122631243753437134444521717718331376856442267432334815613814638143418545364673353715671674334155133141577485518415423127464341382244428374821686574683161556641351547857453531631513466282532274388872556826337336488223744272654657217354458356434446428423645573231533821232755411825512868143611345241115476638364835255331417517213562563382173386125623734632375268854686715288344584546842265338347173273411356364581767453123523126463621333212612135815784773157355814624188424278544568776854268627517532257311646624881164241628156434272214446762262763744128144166467878365566573245642112525222371334155843734771631561273551426632631373261631421765367132311873158768176646853642652778575314673315863313745334751523432647563214888447254813653674344315743653486651541411552177826188268364633837776268777187373112816753384172746578215327888616773642854276772533774855372353245838467183123731518643544161286155677326711433485786337146317455665231342564813426878114342457618382381488141312448843442531313544764836182167553272537187612228121781216716871388745844543483428384636664515234276631152311828571276765168288411552887363117887828513458782684264463467163375283828686626681436823245683378727161785751732683167117336752577571371476167631455148751683635188221165372437334288675356257666128117731184268483225531835573152288284423255334863814111612626632474643571836425432337885554452512688162455472665172241513527518723461622638771326872121313748324612152314284135134116331863446585627538164381334548835358775258362311862561172517747882586212645275782742331374286674373224631761282482728864376715687264366783636583373888245655715433573784886783363713134162628358832377434447321571723244613652546248261412115347857675254631664846352517276665365477526386622843217474335426785875154388434227461283217222488446583757825461634111733662216682788677766261275444172412645776826586433128531473462325458826617217482417442137574136786845255764845512815564117143562342354538573524148534121247458517133615833322452435822552544733643461154181632848612425311548668124263572585756714735885714523868731476262188463721145823585378272215673562848882376884264164573728478137253415715712255878653418851342336238646683223221547617423281341217778667521823386576814546115774366361854564887744868818314281315622173743154274571787347315747178258767642478181126832185838813836442332811836317362667761243381767571568648265534637754742274814252673531565254455666566253343132748755133448463641415651168311365248573287812567348263427451185675221287218676882827861674265682542536832246346215323764177234437852154571585523722265335555421748274534371671345876216525378788552536524437711646387211281164842734813637836557154751363581711535751548882144617453455665714441786674873883874354344768276738828761237547384574258246641465435743142421242167867635535214611638437177847854747848557642366588348867842412427522124226257278324582856272838352345525648152828372384511766388321628742747531284332336122121477658641878876832248152486511355125522122564217418462467371372127483466214276687784677647578472385677137443855415337863448617231348815235432663411216846387572132366388636728847428576232514617148716386581254826562585126573534143286855312436684386642453457528738318226685272858847866826676638736316431684268151658328225465116385383823588368133653655228413811385876884588415753664685511176856176853354458684344225647855632513337546851345325171285565668673456626315811775131623852377361867637277354471472552655736865625727878114631524843524863686421254585524141314261851744585728481171131286475431424418618785423271842246583611374236563787584456336721582818683472244826516214467213214716746338413777477432527114163123814177345855637851286777227222638281264686881352885353381325238188337858644778661835253388212584246765687221218261554573587518744585648837288758752355852428834274251526232321576127325253347784313751443842886618527772768863138333387173752427184212457534482763223115774474816168137477383581481245578227811484346355548413573374838154165248714712822631728343415442561168152787377162355113411748827838328337761324131128116558565241644122882265112735816316827618422384622385165226425133443741657287845387161566211623588156274142764156456473258833746252672725517242114561383742374751326242878811786616145384881482351766876167457263317555242131457681555751758521722514258746361214114742412261144153615425468246172722673818584422627461862237848732771725245431343336553282344155623651226164527755252722558178871177462655183843414248548427272664234531685152478726585226245623364877433335316586373612347186848568335426155435577773162526375371718264481134157174866412145887737584831132482665288876636172177373182213561168228251432716241588625757441727442121176356843778234428731473714882672536715252385328142714547865247381648887765581761261435143341825544573758367553643132371432355157571584318562668875331168734543385682261263284146523675788662417631267673474683265624524464156121817173533126242813852153854415234582353421571554685178267718658366333414286865117688423524785858622261743532858824318488236656735338535448658381726638276568778431848333525861347875757278772463727857238225177127771388462373372822718228422367766343626754576242834171643887776643547852115562411355581767421215257652877377582452174761775565656382778652242473481725385747535623874148567555366443138681886376458566545751655637358272832814376385472275585262315477546628672873756443276225536231654582776442676845355618563742535344762673845543616322617488682248524423237636284162834661362626356552888681818665247135434822782277313572434855453873487356457717187148883771166187827781382624144681234842155851272738851627158873537622762414748357156751663474368587155236486338251516715411717888783266227686387821338471326448544171138226757257483674458168167168527864461786538217684816647366675585215886555468552171575765254571336163387672587265515652573473388183782651246574776812555614771887217648875484548426845854455312363175368628471276132352684617368534666741812546444687557221228384225754557716478618285713441463238342152471132635227751424865647356278245813374485183537785861763147533212576164748456423237654844644285756452723564366651145425561146847143716732287673548745346785654817744522725717814587175678211141656658447571771683157412176458865431114543883825463833713557347865468824647151245661747253722436262525623867312353172786874427218145887657377234355354453346375884471161317483348425731666676344318268325624742528848482273833758727556246473527326188886838875276861178724746123863853828687774862672557831278584637474674773524727112122176878447856623556837521736743266172647213316282853854348762446627535174448775666378786866241371581436647246334171544835151451466426244135888324363555238731655764178272173486851331274352856833584151116552137537523583661732523752381552624365737778654457523472341886547485536737877774556151387661545378725172844323758146415287328768767256457543774863127467618417836614514772887554733472682356153348585461838214324135244535117778143766322838546246852825176436346231873361223463884377614128638423461753365246356857721853657463557436332745714287424733362263578246543324765627631468416857465828328162366353576644343372158757314825415384715726435228554425744462585715623822153144711773381648351315628528464275613612232846371454724464322325175166745474732884148741786453361884722775264673285444535848538568828132164517586622387165442572263374154842751736684323366231353347534763336858214517784431271626862552767161833711815217215535781152251234782167732458163156821166836827458448225576625163288628761863344226511746778152463447855218474125556517361833164221374278847257641252322571811877575464526375661165427713716356455838668726516512353356112152483522414576658475112387481578647745458174218787756516555528878363862287811714636626171584233535136161337458161767441556563413847864611547547212615731824354216721113225672353765447522841646655876646737635162247141138738352682155327754824626334656433738668788756131111261822765184716553232243561213376672684627845178126717417324735146232714355252334385488225514857547865711588861768343524642263422183235455864323785566723786751115536155556232577276632118855454486826453726333367821413851828742123744362326548478688478746438822133157551422751214484525875378614886622156185267133416416341555733438346772858188374217163152673531832346852863375778646774753473854677238265551572726181557644143281381671353623422188767447273137555626623825511614483341754531841261333545144686443833448336153147524782741253823142848577537526852777513716172252752674414248833451251323128356375112226284772862717146232527165246587572721125127543635527626238745786583227724257228311485452543328561546281773258615685877573423424438858515145188186278486748343677221655624662881686164214116673617273218868581576343372542742727131835185733238678668432171465347476664531682683372134311786475422384737132271681784672164332688476756576473161412187512743222674171143445428328364486854873224132718256262751137438716148874856785425258783685564356746146572771424882267754776666248142385312315588164486688678247146476688572857832642864813747445335152565654285211188615356367284786814536365763783688586553758212377655584765383225716813362573858427164315515878737364668377632876847888121432121166463651555272632673164546582788511515126441647585286636463127564541884586468622287588542465147532528262434367547873832161547364175881811346672214833824751637327423251215518713654446657713665162734725216267817225265448538848411877225873661344384782775616871822341122132531536432658525182678117672162283731631767662367515486657551557113115368435358255641127342346744623525564335622128363462862822834115215856656844173354121246153482418768848352255328832275762168442128144677313645143884375854778744834523516465641173265153317134333182131813534885352142684565625638552735277862888475122772558145724455281744317453123288572722778738188173474578378838835474445655417548437887732246172782245788765766647858866613554466685664765281726611673261133541466664612887411256172523641866254814746116878554148822526624776874637751474166223866453661374273316365433446541431212758635775651182462665255628215721276576612722521182523666486662683377243647454257688321828411524774786744471262813788573352114565737221321778332588384781448815212783727145812443412482545254412428844871433346458464163362766256471525522887873131686538268677372316188455657128661787317574684744268287617584721513625768483685133772524426464735521872667187722747787686723177574581318788251678478473287745216284437533754871765617311186784666875857835847732266384862366457744527457681222313755727818168417247314774177112428485678885253763152557861435282623416857148218541743743366557547328342845487634755432584266161154154651125343123578663673452142167236876211262882483366637377572767835213718865725532588187875788464523476371427727412364825343422564826571526687358137765472225474676685284122347873153674546435544868176348167587754534838123772517681358353141432146586871458176427511573273224386113234245263476217717136762788732552561353151257485336481748821283215754482655418537155261653852332526581881288148861763622622433457641853436435114623838273525586487122835528477871522262544588126664782537653564252448625276547833368834611311654418651163635137456664267451416454261178188477288665831356887781674745864262467375526464813772235413774417852717211611211367625352713821816438748431815176183788337271367778732315323465283171531686387288584624548222743362182363448767266543765148636786841481321454826836788284556745412775757387214536443777754837174432437627158538181727268412314527567785444568538616382752438676526287116318422418517271654227836577843375753226365255842627728338856772787512477816517216631177731326277517822746188628338682567622537265548828215644211787271152216542473485571748337211671758853853372226812721775316681641728131372378338435486315735623478764327823386217647313773182168888182316326234285241777231646884651425114616283167242127838411534577188167343758141387751652185581138356265451778115216383567622312776186366151515348873318832435473633825627441616724344178552652274734845875755436742513175744542335156241882877118828267327263287136464234752328151541275655283237117657718133484672141367342482758286346835355233227583466747884282586861122265641372251217284388888373132782716847745345133143451486666854657718468214451368781226522846312276141726713377566357476741563753764422666187387283247755328865866847772384317546587824138154331443872785234187487235582331413225277211646436857242811283375161188531456842817752485562448582388754344378423255718228314532552868247384854641183682741618465147346575283775463723374772442268187328337576371142561212633865181825643615421541422841656375787321411273872286672631164862136167725838854417825376613113668132846453514332113235235781658131523475477244843875744474864812415216472785111754438141314812422221112282111275853585333448747854573645472667155242661165754524575575787725787724622453466727672232466322143434131541715586883747664877388644338774431414635187347174224178187417562483817632547264338744542888256462773445134881261213223174555784864687527322684814488388838616318772811454222138382557585668628877134114342122888523161166154273342728481426842864514753381438716718463284312726753764174766321268768252635322841835734422624147573786364373773265547572384865171365385132218436532372128268267246771128115672125423513328536378567611258818315586422345828835124461586667524168521271511877254818384666552121524713216671411188417362124487532357235364165521745113358432635543887471646723476346274733185628335366725584446185111878188546441248877547652728334275582273454831674163228164747451366671684386371833448761535551557334855556241462461755161543582785284752788358668156257521456367835346471143647464877511885512757524833437444734772337711171537144356428742581863332732484223843867413252857228117342783316721823662781171421326233155363142342741771115411664655818751573216322314368181733833635621548772525831546758474218231333737365626734266773687676758566867435877447466135735825876861446114746526788683476618547661274443755788826274831345378551777866347446678726286232182725118322242324517425338228144668573634567312836844641213343277787141637576181123615343613622856813382785838547622364356688568628368571183211354632277118374462484246511484144235848286813686422166653683612787388486652722838561736128737838635848231574664334828852315611488783417287878855576216283623566842438661534888136523245252623586352787716837673467432362832336235816363347532588442433683156425822122815773631271565334275838884233258116148248251763411472252364556444634178627816725352633457825267414411425172528275612364331267251822747344224311145853474714662731257212141171214288423373825666153414865728553886112842586348674351415877747646486356826536322534821118746845558116535413741637774875367413587367813757612564748423742151742182355673757741427553838683128428282873863415671242657734424833533682617885646154535188846762215453822732886355161877166151684573718137522512444228784168324211668686175363622687742371737121137723214822435262267438462115545455483242414672224648882763278434616562154761435467581285478718432281884124373461722376883744888838264435511755718532251843686484634287726518167413161535717135275466481841438861112451663358628182821777838822418177562511258312763575372577651482862678814881421651514716884762646848571558723864744311672253135876245445474155782734438777163725584356871383214842334686657255836644645535321446753811557586565348771746454545822743368326325214658547533245267242652388721731563645147386214528748562646724131153677536377183832634782876515746344454845625782457616833273616755163577643461382812411267234481431546783164376153265126767636535551884234634776564357588853175573615355764122763151318713538776251667426585416265577134817576567417847183282341786525877832745656555271662157844365376762126186544841437881474277742644368465555777526738377264827572378311716475621344364478725675323843487313381375826138287381676846851285817787718243823458856163523186251651212554533373386153537457153543488673672132867414472133673753385321615425185324183253777173814472888182675463477426723275512618252342125877464528837611745352836473246476716547247168766466842647883777424156257857267146254661366163635587727624355172137687634167382115146233211472886161478468312621848825637564681322778755144845723842127721444244541855565384851513735387261582737163228636846672247357728266373718488656264871387251265827384181314152662242243767153823238238683363341441878188223884587845144538212673757276238332158225114547277186813528151722827816225573471873763788145455774116177612765564887424784445548256878323476678413862317438572534322352288534118882677514518248238523267533665741676361483765345836555412728513756676848161627134355276182282641218884755388871451413846542634332551132455348418558178682723228433421644133386472745563871366224725483652484157266667435545762144416727861183151846448772687437347884584726562427755437788247511641382813715374758237424616178262356428848788167167555163323438384416588143478233314643614646837865583711423647236272313754355432281846468757464162618255611133661658748788812615411337527742278417275254456448288618681876611814227567353767346811518446867428276841243266147166135484358655342338251843616277836423778386225712237834788151586513345621876587823862782275617186218128177174346568446387262265441528566673718731333486688485224158837784666358881823586626183873812114735121364128114277843488648112154145552273421773152882318368367168316623288713445787882558253551561664323756174514141861633867142584474758582175866458671433644344628761536533447472424713842476334125185814445486444561383327748218375548666382245278631341757511782618215282616615452825358752184872788468287734154326647863335721345651824524166162866112737776735241214671118452222715125527653556425224242616178321767183322487475186256662351115661636634144421465244127566748487464521734331647874377687135332543674486127352673655482744186212742115486312176473513375368756386711454521824546455741435811878823375385514283852547711722386468388348886661313182214473236386721815835666516842757522555331653548552567511118487643223724148888335325433831481384834428238367857777845282117153284581885386732384624245315113814162518732254472637256626271351378885474485161621448585378615783342868717628237386452186782172578623187664733125427751755532161166276281716284885768572635222227432646833576848436874423786237334587561412854831665388732773441445617734363148785856227642635262533634547188856724172244582468156785127274548788318681555235673517461418864435311733473137257732467128445857281448165348886677148216667852675827312756324477785353353723731344448566275774586187334623545453741212634747181163112752311554375181781756731722558711475255842783212888436112135862114625245423616212178623785443232728837263338444656521273265284842838447116853477278216777471453725127137828777358228171288871432818547685744848881236473412671874423451436555468137535835734551457627422761266644134624283524782424342244723426512517438746747488346412882787874765473552285455824537187367861277634652886224238141138616344246688733422273755616481382512543123371777538554776312845165312888847811263318711746112821175338127255712242511645627665123465837765453622175732815623453344711325755862878313563423375675478666161287635736847285311271673485755143415284883226542855477114744757822617251115423258772533676566266517422341366516686836262558384845234215371418884221683156334625314231635427337874512574821828443385852628686677674813581877463551633755237681743326236411461878745447685421338857545411158735763468345735226622445128757441164671888843445818421336158256852368524331838233327822722437223284444112484877536325818555855168216334843568233115683267281383888155448188657544462243312531282826186121485776857871165233183843861613655635361331474142731632563266513453761546613434124536285311712426242533461216813141858851355584246437877442871737578553582485814572367357838685151625214147768371751225773384444277655133362211485661865573185456636674165128453315251668323235328787137348787532324554386253667446481451728342533552423621716117273217285868148815426671682734882144867882178258532831612762584145165732788175337761331656244461137124762234863271177381157412687384632217332344512153215342283774471558418355822627618721278865282231773616134242123612671248626536411767736726436122622583414744724331631347263224556763832283555738441484343886443622388155168754185188413666215837227515488144116356484754383158765742281443326638553488781428346432874831644264614674132884747581525468275574128437687875171522543718156525487822222718474625445742655175443577238622823688124288113113554245162664614632657634682785648628766515336445325527827761583218554165768323865761354544512417626236853244251181182274318677738645545571876476485285875471436482888545233366161428357736181654471357664761248874114353377668536584533757182535612547237788336743556121513873346445215865581572837628325651748572885871736568141365827535643118166676864727423364348567887842665758717842271461166212725575178614554246735475251178513585741878767581885436476864453218287464255538253663662821818134244665742451872841224281787614586857473875517188481755625544771744423348817777562433244331534177583188145721187273153124233253888512672377685473371773841363432463653777613423535847636412741461682478861614862864362744274643511656326115828443554481243271425264727677578425542311311454751884638123426313523374141673743145411183516841372288223628521256513768787132616815323518774157443548686712584435144233288428128371728732242271882528266646175313834657773848786753747554458522747533483745213263232521787164882536436862433646638735584463526427577431773317248186225546834847725647238824344533118555766735471626343483161528734636326681234682544386618131553717457375581844585274684256125417743128326586586637568315343616856313423626736255634246548416228786444851256782857768218554417117256132325264311662183421172112437655814344586577247278484244857443374472735521113675544287333231447663615741621537825137255622845783768561453268774215265445647376867651383818852622627875687867386752544434757325257845865647781626238585375831734225751288688687425865842241482188732826765331134471744125482836687235242881783224763232284651126228452316713475726837512352634516774814473315531636523525643568537636863547834417782557278558523316177166168651872736252134541344666255533815714432663133612134676621238313312577315483352537243486528288416283771572723667257313477642384138756665363647276522233884142483837232113127488665285551164764886313553263565163468521138283685767476547443152467732878572311878682652385453623772451727445813547681261512217337453148621878528221865757873583356173144548124582682767852376833256851158722584352564541876751355247628141831874286243716883122763346517828364511741767813822311512662384133548337715765118484143526528318835861686377284363468775333361561271845236444247345763135617613348155355424843176248582587648488265577812181221213714515352432633432475651715867278323628165124571125545521775782774811452118526561726641572685413266832313712177337342422843173723738361557428637548786184461554521182717611475221586184732688273536875166571724571424431665562156531213353817788524311834811152247833146432372825787161868331323885536762568852468813576263455181228183481371775153775252384516874636877483828765632662665421124272784588845382623616871565623633164163642845777845523857442717613211412675575768275777348138184556668148631223513627422534465865815282326485684388312238452846432434637216182127261516582386535757351512635345847844281277482717723418114137535216353678216722152531647851436422687161613182535147458816827758738576116626723451726675235654473566466616725643772487348743611171835838412326816256254333521665256435262732628683886222561364245481642111278322513115633166615673615531168288746462666482531863148611463732718534143637136176732666177872485735324584621421657632826736414511247575685664731463466171113417473276265322827764534415567131565287136744488115532644747566527451828617432666448364341766688667342427574165132644142686227656488485848754752821454882312822418748151746775683455656661871524724685368761787468427674442832761276441653536825865115313386871158765652874635542672341645288676645323818332771128365232648716341618442467268763241576751723573486331723131383332216226166733885253435251778742813225584311843287184278363563313756817463861778583434354173566134131584834774443445833111314872118251862533132433244754178737435583357338648511467166355144457668363253446831237423724641814271438267364218383235236275775664351568457441148855121247636113855226784224314413151266188881682448262278572348715325174553673452867676576516871834532767567171161615634576727282131514648741455876147374624731371772685667561118377224445826343527631125861165773127774331677386347628684381384483237463853875116616248738368337271782334473347725587712632857212352332476273617713627123548221168641545125474815127457646257417865681862283853547333146763857247417277724234334415313736487223724375611113544755716421482148458343738537857118183646821465756781586334643631266345563124146382647345858186167867162446873838152423187134867687153828322536563141616687773573425324627516315446532536282815844243615226421621534276687461233186646878263168476126541552215172871548448464254577574833527747474578625641614513867532436645552837745516552162318581415523128125762113155725612785715652747676366177113127735475864771487741126311667114568533148771283184335524757613346451868288116613241441722637867351713458738621687784635383114377235465776577723664743658252552324571727551365877636227628441221345627334446244228667518727165332231657523173455743642241871546876885374116715476126722171324831274377218835468871472527164658153763431366214828228842266715661424774532548313287571431784351826776885174284377762134681652858542844653137733425715534658155242537157488248871233247154262558481334341141214878884516128861772718664355617267635881427777623758446626855834636481687583811718432544532817875373356137472711228745723427365221876284783352475515121668112616543872333856283231651688568765527367841378218362271658511851851778248786461471565588488115867444526785141336848714446617553734821146753568872264855231835843543145245788438855861731444726534468561723652631246441628468384784185417716588818787155482611416234838263288788176671218364833688371784174456838717348261885151653121563182557171854868521113348643428113717452643617635771423555457175657244254123387277365575614726428515346416631416326154532241525875626515665841588172387121522446455125413688311573588745655364867351175878847468882434485654421671833851333481482857546275651777575772457738584454676143617682188345643525687145244452537276741317557687436355631618381151876466728631536422838614417286551772123552241385257345356128322627768756473735186435126256328525371145475672532467427331213187584622541887566322251251245114375256524338616366212833542368632778658773375617531166176334642735647433848564743482684588713647827583765633247187752536313276537553114681487627455137787725844428673815742471847636747552148721812846724158178212857545323761621126645666724631385542672664281848627248545527883216434338253531365317381326228726511871468138385381253722474726151528627181182226654243823785766742742528145771288667573487667533717422754273346154847836366816731148725683855341682118883484562532581335686567583846463481515732442378386823671537627228463168425833264773464412728635665232324555861764225784356322868435661432542552156436311611465562782336135377585431835317747223228211786644862727322658571515873373126334376832874637424563387184444576641276168365252862766372366411228877584585287163264786683163871526466636137613822145317685311711271548714677231553886381216738561366557776731114337186131774843282213647431364784227384355518137645453512556154818126262648518652811343683353475853214165318414267375165862721162188455184821448126731561624742373137723854481763688561133442414846428726865274546123617658843623462514883655744412552672357373423258225872531733632417276411152311542174354254216386557564748758643738861524332613744764368667381363388573882522728776745146157335663851665542267125623636432268424231116715713837581218756715214475223775574342152687147551682528712442818328522381284846611874815517323221377268788616623717874588828761315818448328844633755474847632264314366112872485753264175862517847736324552365855655472684575548367416181473475674566618883437352618413377184271583647756412852888468375666176566365734718713828651734777177431423726383155841362382841188314114126616346137474264184362344868653638134815872173264112628383288811515457125861214384671356838174325858426621166562623373464814227846272113732837736217725141472275832873174617178585712161871383281685216481637382425387157111251117155211542476712243165528388238687167151842765215335338137747852617676255558335222138284368478834785387123527835127452438721842282423844882475224248144512432316214765187458683882875684678266613562586366441371823113861756432134347846561136432355485471363437184555115427274764656755362441336185676368166855566717133536688515633736735581147854282476452344368134181555886632334361816871523355866234365761241647726711635525587644626885863753543787667836837223151663834572145348713818754552157751376826553743842627541173623558225314286154341425132214863812317148284525552668662315748525348256861283815882787241123261418363321554638647684458633356311388442484766432283653782267686525422414356718186486275276364715554214134637552522573617572184123477742818563543541181864427378352615433435546217845275846483868278834453733682817727264557527211265236583683546112188328145745745878213286524268648625232281672265661488758341565617845772726783663588345845645488452725241145374254754552622858517687131766822521425233618188545144133354612668651147167512726681266473622218652428255617258678512471553211612546278483472245816836436763461828546663168412871817545213561126764685338556737337758615681233138833741451275682658354246628725654834364138523238241366175787787744852363178636736263461452123885677518835712446613246172614846674131843258758471386651138582414641238167313766254621747636672371884275226451518158565323845752287726716367427716458486235662773414486533331236422433656535117223671768814731172786441871315353886223546635381125436686483231125813655751731636528371386158223685746352421244743826851644833638268318554172415437438348723255113348815847232556655382367286185615353853532568723456736734676682736114556687733833346555315568843633365786226527531548861758646364448451252636282368248321678438777411536363475313278233148448536763526516814718336851284235166452785166586716878484216832728852224415672827451775136354744515175648867877374331171426148135364177712571541828855811528858216251845281824741557342788848723231467562221331446883555237335548241242287813281744351716577283732143141584232634868882567175732243533231563333282875158184343677774855845443466611844116183743584713538688526785614535261575124632433746716286648117312114782441386286262871341588847616843618484256424483887826572253777638367577386281241732778452584268853626476876847335832211348588458771642386662787445226762763312244763722714388585237622145616571554517445385185678138734848774411267137212325712168475266566758223431533375445832475347858657145687223173252622141734381758458887862561612453514668823813354323644258521511437357313555814447654542252577557688418355777266436842872331177764817355431854235681538142276578257685282555388268538837815761572246676374117674715441317248148561112127117137888184166184128412744123632258714728547754373723854163862821441611466474758314775752624866743534857313866281448287356452143544558327722383274442165441354363515734527864617687317436126772667354788436328456235638535772225523435646131363688831524387545322683457862811872237525386238784642317734665235776381133742282258383642114514164728216613515644787613371627482352826417631731762615564743737584367832261784522853756177212323216563241338283851162554422755528156733166458243835737164755716326821852263783133427813755238185861842853584441175852427152284113258886431462254266128776741712511725347837448455654742663215123355733544287857287458224711124132476386558868865474478723831721447683222537132867742373612812285362341713441135337564733857246615121745473752366676828262213644548722452881561372688516168546513628461748321573465375473414661635861432163127377246427654368573382813171327746775318433667222175787225645631482512613856351575382236355357667188513175451527346517345275378868281788142417636613417584228587768565657352324683423618427328624318234833578752126267651657214137686131343466861474631476461874627627381568776381171486636165233428743648732277611388326517873744283143336666243421483184581828835676558728548282183481273586847148437624416488321874145825525516681825123116365582687225487382614655535181628473652711776683146458218768385883744122836528712115287541483767317827613851854484752541117185188166756436618685628468156873326378374623878612142551686845554658288387251231318844461534287122766842426468777353576177871275652761748666184351135743275212328771721834247223422133448425185861754328522536115625838417772537328334227273351376773872665238765242562714747622313651886324418652241887263182458754565426867157211773513242678671574757255827815734151648878843852825815232538455734857461872252667676145831558315434723664278451831671646466746656471728742588388621374145356171737328123867811266282453268337643158137648722628348348238777462611648253145858485853223868612647231163222371177452872472485156384676377177535344312754712858678884747543868834368634432688553128732227856187213421255118686864267488433177513356328226385882588427865266426442821144211437222432632554146832665266724436165841365274413432531736188425868584381262733855584654342883358264477755141383672273375686767454531876786863487348621683524561444268575246648888113412448488868828361823558433863648133813285162161212431645488617163827883453118484653362365176343663415325847672758112575854611521227714817388677476316512324431576638235282675572434616841321124647141788476342855113781767773688341472114325372748586451254616143727221766242448786382355617417346554882486128668146324873512113621733585852152352811484121544762374151388718156852217681341332461645443765685288813257488775624337861561377717854636421771745662227644666467546788345864137686217614522615378236682478386515641274784731214631524586431466488623537282773136686338622177171764568432341824761761312821586772873276383464731648444768434167616626326583844686788563228131267473544747416684461222845768287583531326576583265634343375531683366883572657743346562477866813418532144122212734877178411817172768315615555816281715322115612234588321224567587887215186835634715383358164435433483654886455456572475321311714726853458147775671264821234331171541518316234375446585186784316513816846326212143741862174731176151277565323133152313562531846527283765381563766243528458373627153437635558365111544574175845553185477742712374447784375485327783845782176342286173873335541566153866232623738461814513233745514521764385534518648848242636542825578578465242545178868835585864433324344728582132611836528522848854337728568836855455378355621883224137435362644338576241317881363658164737653184152477143773668787766413737348286426468442452717868457388632663734726878778455563122411678134548757344724821774432383155311634343848621824247561585538645233632374486333248457344472444552713375211426733743363655185876225223424825233765676167332461884154437168787318266111474741115247781323818885878341246687663776243684482353718283171423168273725125265827631711173271184136363865276753343688363533414332527746584251483345436877237615687646358317732133275126556718255312247425763574243611714512156574458875168618328688335151238743426872566731236272271745888156685584638887856716477846574355183426366283866342242516376511874737246167575573563675686288821752616784727382258322358578481785524158361461887867187866481536583558866834276465746233845267728185166112633628752236686437554818328382441716332687761681565832855337677552462588852836615768476858817327145867753335578682756718411343586422888382447166882713272743418142557143814784825865622361328432264148162834816173385475174774628815771177241715482152342214222381337527777786747715735221878553711143661735871868173745143125138658784868656186142687276312834312688443581154212251626517221683244178687127311862816882376166324572232633388742855681854456647164754587242456385228366535722731214836814612275381168624124527775464772588746148731262485357553626512763633824722712684181883775662617438677586725378331236758334435754531218611756138772185357121241378254635868827711284424837845421353155564765736523534618757565852465576733855354821661154375373125414572647748775746435888736145585624876833521571425358458764372483878511316166824282851312287182584584147284427827786857334512136675844415453244681518245233834414287548628245761568657187725318623658771264748536638835438172866147357274423673341458818561781588331232384613462674555556225646572161343756837775131721252483115782317378641786375117748276181677567376831646726645444865127424478536346154815572782713571637553837623688285685714257665753413758531774738857235553243155713323217346862776541716834613526884411375664326788371527216667517247825628744778736287317133886271352674212128232154678535512358172555114261358638641625655645332117264612367882883224888824617252621271222686282336182687427527183821245223427616785217814781325378426521345166536884336715272124321526386116776286832238332475835773667612873833526265752133367785743454774413546427621677415478151782615846174824422232154168782745572655754485133426321341488524252382666882144785742561411627121886261318816422448684884258578325686244841185324252567644681465555155122552718136728444366457321841788383343685815535632146388885314278353744382272435124151641852744821364242122534328884182742724653727314648818737467452731164213661862831154676873561588238432437371347751862385284472317413537672173888351543581222563315442483716816153482575241184186851815146284374857554713258632225485371744651287858624723773312782137885388247534615658186613664885463661462473422111256135642726526753263868121226434425543646121133878327615243514327554488411253113228312633363322447883423221878274645718457253573577221588352426255882477888287361721251326744546563584244672465575851165216563534363371428856461121715247535128832821566873467616576818311557365842348637477374568728467875375625145264185447615114487424522121881585152224512427243834354575876345547454541256381777532346438745162787384788561576878387548421252526663583343524317734477836671555218252181663867737567411624684244853217737873418577877588831823273681128757114264812661421458778323222127142482688354356237583561648546634724613185174362847866385833873158878638165132317341827188334523365752641822715873322142857617218313465511788156254422853572774135347884215552337215173238517385353158683238847867778667686374542322688133228674771258866356123776882658432151672154253623743545284114645328862174376448267575563777382563347333614387536437411234821223734738347886246767341262878114678268477521623475268388453774455812873624837637632825834346433487213567137823256366811365427742623871687286888555683737121427178447334227461558382627686254238352557474241842162437622646622435667443688114184771747781456681163782283444311663587647615747422735288451576844821843585585867755613676474141138361434467561381435254768683441277241863753216176888617415246142665828632831767233648671761427113885751658443541358424842763888185337524247251847663412621128221445348737634633356766545741826727674588564114347653782732776746383872461678181372235263814235384131333187714241327714273513755461628868113433564426166347712883783262544458515112418828356554542641678418362623224733668157734843787861156538438641451442668347785716833366715225272753777286782355577183386837877852827215833455132513634414733335642262448212167186627422671613654752378263135716848637618817568872837145453616521556825247764488842518251264653633738724442585735747148361453352754535487731825112627577133887154343732568254123158544785645631825156354787753617811777673664632132474544527288223358713123828842568362658264126364285352416817643681142121414278158676427267127852515278158331234662721254868775426326627732462486453631475667736548866726441352373654376556327244777288444316356735421514767863786174454726485527337142764638555714138411761133574781567137544881123677583221461761623116586225686376757452681656811474541173721276331777665513852816163583774281521544575771564555618837155512338273141634544784111541536737542873777732765674425382611142831752278776442487678123476871553244482524182336668747815637831864727176564661448465855645652673811166818486142742774341757273871831176668621576454711328647524312538486486284316845573268836328886644773574415142881438821686247872383337227364528862448581526242786132467384651135275651434137887765737158624177187377766441454867148622483682143838166455726363511863675368376715854423244641714457834182775162275188324434488228537527436557137715421242436786868231232138418385611243287436645584373311611712473561455557354525437851257852583788461861445511664684735474814464542243455226582184613116471477562713378813168255868185647784417672838412653727835473665515785253551212845188363156285361813882762716815577723851132665816375713572213875378325732477744423861643544248658845858662831722381362852662223483386712735148143385658588185462284225173771151114528731525456786785651548636731531567243317224548618815841856747743774314574681427426871517424372564528762633146738266161685335525532324784717725152255787478331848568227688841852118224441125334882817885278538756618154625118464432516852285332333551275425672565624848412113783173123681864263714185385683435767255481887358166267771861264168354118284275611738341778832217833358457255842685812773672376455762627388343866523752854751145146315713635461517441335526867235463137347137275784484361144831787858114652648161723372238382488344285652686368164682672362512175321116674125546778358457583752364131316567316543876567414613546673825755481782427461616834852756467457566438255447621245227653253385523835126482784771678775485451574823624838531788183685738551823121884247113883355542728623375454755666818627565741846718826351173326461581421655748354314277677265766264186124475638486743622685813841853432281656214514242478411864747865878158165831585745742511285425338738788435351152361121165687158513568321462161167758667576655765325183651525473326314357161863618431676722182428253348142886326252783821731386667348765444315387421465816217788621164477481746225717861826127766357642144648746186778356181475161278712545366436313575423717811855144828366826171758437613111372685247862755328488628548341334165241676613868187154134418315631213423632778322163516478117171856347537784534863368314678611154742432573124283464474222856722165373211855646834223128725213246612223181643655767436753655853535222854226561157364572747873336128385286462258842581337536717467535311656415348636162254577315766374525782372334777447822358757668338573368127375225222642313676427732216273476755263311247547771148517215246343826282624115387835176266567533735877871231317162478466741775876847553211654882644576632557257782568514866333635728865268168573681787334115112442611434466484838371428163116335368637174631323862855784646128271381576561151878763135464363415888711524277826544786653581315561665551667753633564746653164265534487221262345831351321278126518423268138772465523354463152452816832275572714217686352481822773885313675171821437854853771144213133617665668837845173552376345343841483536684827552481785326761255624264488887472874634155465526718225626451316828865126355164671638484722415673846244167352316532643574816366861318542226362628562782881324511366817858287751117278186336164612754422121734234726478726832837824842687854453322422536486263827356123368865263436581473172554865383423748744512111632872156871414718181475137635346442226124142621371156415542756763451157883284362837347374458381681178671434441863532583177736347335161148381535611322618757376615232364251657873157524473665588356187523278122453311575332448325488336167444784382763847711616411685612347475215712557118353715541831643226158248225244151752471512826168433626844772848611127865741377475248868171361364511821331714283655533252378587263853621713638265426812648377615455531282688285342266354163752167128143737581133475662468581636661564837263665354435648616142314147853377221334157348271578121311286273833227271517235113138552543875232513834426358848635383667577456246454683783666627618246171644322654768636132355153725141728886611212516573188683826821185753761855361281367248786454853418552456172332572846832228648436468616156768323733853718268116155875375336878831763765417733435357841411126636545254843681721486415127678526342166632567674578871845772577271188226647548625777653777463668155118653521478128233734137387433684483336688241438658751277678265288388564413233717677185433137314771643633573565664548647883417268713835374868755282523675453852631412645686354615252774411814476842844372783261761737157654453157226451423751551577122273186331481454161622188362263823485476471321437486428182763321177512666278514888813713632727457661473413372345552168468516723531478666417818413156462271431377686435858524175454166827271712758261648256413156276247453628783518361464356175771252628487783531115335322172548734563274216558778651666613765626866756851511528157268877237462458713273753832366134422743863116228543513511352764241454753456216882877172268675166176117731156428811864444645377643475343167647438164183382626686732114675271536172651737516478445882635466151771553158384344783162634812415373653141645548825355324324318333785316144287613623283624161124453534742462462538673181848741156882883477558274178761786485526526174685868263576584583544122414154578486181585588856617242657131613148378425276115233468437436141122338425672237724372373671716854125576124157344425135538635237418128733454666766432844242238784178228413784657662421121855242363754322264667764458153174661547287114548644524382576528616424668775142112541756258138764737388771874413731425871786671525885282151124818886757668468184832582884522231352812623284117436337477716425231513411872518816232261258726838732481561812217651137362338186464124876457657547286434488122238423682633558715834735534348765761116166648887773336875634825582852326475762661556764247433546444242185113812386551515146753617635745685215737315784514788722846414341618153212836441567388478851325715622148262876352647488645386145575247432674453174647867121382686446822382765134585167622758145632576762422813284317458655172781536458868788122334277244234234773717648118175626348777252157322164568461265547283137632657683186641346371751662345411742266321382674245265754225581331182651133533611654284764287137137745318666826413435658332228336588158563532373438861884733557885231543388486187633617788358815757836748778344155344414873652844557761858312487362214514348133373676727112567614467415434417143711281385465734164116186535256245656422511584235182176674752315683443584461864466717677658632358175347666513475452624534377323248285813386437587581486224373214844587462274666477123354684832535564588153285288325184711821348834764433246873564756346224622511118152732444684526824215337328871376833354248265567327832564136313664682343868265782634584258623285724583341838813588541553772414332242561756283276386811318575364784771573576378615651434514443224885555582568436852361486322186671553712726382372238725844885137254828877635128286234644866778155355811387335216187465131746748263857857348644755824476671165574755776437485462456337414337723837144646641517225721864464548561877446131325156686454175326127733576674232716448574768544585474633122774548886362427747316227561115828116654623124757431144621564647312172631141371858255863642352418324773682656612115841173531356475127545451728814622773284287831877275184255754667335256526782184145663612287678657273714668732834835181248882815758512528414453473434278175216735766448287363177267117138866433784125731776638566766816211442651744232524423115728737686438337522766648386767472673888562783763215657724254741283624267324467368565852472125188883386844416126755237856182185173588336528847177821818785581184813476171578762632244662188318223116181524187684637167163524344174786218684248877211842142115652516153366825644858658484577486566141847825214138148378376543435384485546265688553675473264681543413655285415883138121216737265241834851756845243888141417368438812386421852465824644634573443656273373487165527853327128748537165646217211488124477372547523454828578741864381868177665767366173156815242778522631463733621682111487521215457674414873575563313235264615373462782625226341257644814353341644112263354537254448486878166722841112861154631241283651248236827662387737466777228526755725111771851557183343657178812381778868257217864585674424785574426184767228581334417313358624678213234878285687676247723222647551645647877173516586744215431726276526125814557225857823557144617485711231887681217845758146625741656857433635676857714683877357246474487746322472217681826786728713848643176547476743545653832768723778413256316788771717467287518877376726751142156454354653724845532227544248681541183853368737224352176345554181665521778337354747371134864176616383762742812284576854567513652438423856847635678346284213341853657148113775388343682578763415855228446365174256274743878812568327583642745353411762125847575184557174368632746314327272457228715222282811348334245613667874324227444138874821365127462352448686456637457777565611352122727326354281126858488337667725734881815818245188343436375686432544752767363886468242616653411181764888512355888242732245645181466661343771628853743763448115125584612381277854312815238242165325684766461576152547156168164436477284537663853327673837758746323232281382818437266166143285755777211227828714273366476827166825865572657545157555643143333318145637217754638627854547257674843488483753266287474327778662412575731713636438714386843276842312573813664686577425674227665628345236468863134567744583266458321387162788541414532838464151725726543846668888323831226385564311864323222377582125273182656143671262682547312368828245135764734873237666312652866842772673755346888446561266748547772713221652585217777341728244267154827426817651436256474884637661277368456728241826673451615257457757676375762486343787263121288665241817335868248424284576387125586354431857616435572128252843284125337734512656284187454177868157583421787718686451453648165157747647626432561372265862428615111516852287884167523253582845512144185671426271657364248272651626812341383551558375545387374453885311578567548642317162475814815723818862387263334755465274244883116343352135154416671128741477148447281852747377472733316753278284153872225716533116348646734766825553623246665885421325816378262688885261518275132448874723114347346841487852346234642561334356865252474623682412835715762466454363673484623135148728417764711215751648624548775832583763841453647268437735835365226671336428725161555534381257444143768725457644515467285856746516163536455267443486773483574267213848582668345281421687438432226131166667676775482135722686423758182758877677168112521516348416754573466875745434368767123766465862121621755618616532513266624861547453327626628836658266521783312622832277524111212753257364183656821663716326143868537168537761643525746452281168288362817327424134185656352881246762666824286285657617427535628235618682166337376248283613584682821822621178332831861123267113256686627645667487342643881537536341144756138664458243546662721533234127638188825112434644144448268436243528536544763777233322664375424443686767161586818237178663648661864245374677517252288888355372221554752555248724337618142258158651887651328431368421258221556767515531337637461856314872445152641652555318364752183678548863737588713312117724646318252167755522463163167873844626687177518646533822645827334778728441377516763868242631434577823616287224355612536743673613126464141416765356178433283488232826216815356288852861385836288712215721145568346445125658773726778316462158126872877816237615875846455143555512285413863712612415487541734434531536721724757314352316163834341422348642538674475166475883175853674566255455544558686867546486225363732216528286534382633223667866254447328527823276255425655144326352161766124273814822261867282455158656865454316464562545177347432417575385215217716641545265115567511156143277128564636647468273682435187115777513461271473633252438128736346328218657676225847326555835581532343832225627238456542351885242858737447248761833545612231221323432373358137814135785223652686556463786536185282275716423577562631138474321343258382146518368136545317552638643367686525265322751512378761772544351377623855366222426681735717381481544464362786558113546551382755337323357484615548567835767388171165262818556383861875553465545242213617227314664568335513788317382753318115731683374124253335347168756647141263421338524817526366833437728657768876685786236184175887137355534645687134755764168487778262817554136743688533513134716425273857165865758328484135312566535144678626717166747513436123751452342634638445276353513265741171481184263825624163588132158751711462214674544731158635241865168446177523418286816855438758847822552877361535153856535363437657744336288651788537658257488223524116181883254836851652351785216342477727467117383271411767437288555632654645748346667163214685227453515173185736227531226484536137256485656341226525325328868334155564578536417787875378555465158674486862114785717314877456218212671817746454743211858114132884324145864436672352512776361561237581652341188834522261564862754743166377846228152125433854635277341154628344564757436676623872444172321438168241548121266848651761317475227744153162855158851186155623844251153165651877411518717458364227326426718144773461528256383547418342646447287318716527637618631163257326273561754443418412683616441763472162324354638838241437582488133854478613274654888334775785861488124545643683357241415784758377277172762781722278743274765417112682511253184325127517311534381584255722887257344663513572135862317276333681255816388767148387773668452856634618715211486362336522684488777138567863184868517624551264621153652812518287323747347866342715686517472452742126171451543457224226831856151166146545236355822867321473653564488241484315162827488131735341767778331343688728185521548526312754562446125521238235141333561687654423333874631166524167747567254531287846245572434231485862156241363417137767461166833658342656832356765873228468468738637424818218763663818536316265471182176346852536464111527341866353866564388152188112556136756114385728235775854222163163635417622817571133715745133345671187163434346336556527816372724738665814633753722461752683535721511865182518377438545113824654667387331182568726725844526862822586215437737334167153356115216848131738518775552525562551121166661141651127555363175132827613157618366565621345574553478332366461886827463836238322555166447463577255243421486555435872813663823755868336362784561252117578655283328314465674271626534642181842411734876211171685675582671854638266283513682882126667444668433326375125515287516712681485165325357155682457538662837162151476463734857413778526143272477661428833688144873315236516823228263872121548658883832474378324223247847444344126755672338613147615714731657377517388343812231212584432787676678114176254633326877131451311352155488484276243314562487838153736361857832815535253337154482376862473886661876272435354614322781717822635483571277352482531123673271312715611886384286672118338214348751123321726565616876576762275112425278836668853783423528764437442164114444584476412543745611573367323655212487381187786563175161734336378866585483716561353624356627217867853781215171724377384738368182468123114841352685581687682743641662152313472167156346857645722577382527883544345116473154352437486332258731162551638213186831111183548521458121165126233256324364888478664832328877847133171755266332444552845746473475121477376222851237627511382835284863327136575653538225666732771865666283726835858221855753651336583384652757213154478544844171832254131865322258486534556836281642278522237321615611128312652156514672855211367377442134782474453628433781135878338657821314887282558842318388671138447372267555254528245268454812785161855824651678445783121823364815736634252476664362243168786486822873386721242746444635464744541552445683554123247761173288372168285225684634726672846533334584538214842765867424552818425875677588242528322652558834385678384147826757623636626213412678812532413867328577134662765788278425226263243672665764562265586482471132312663218472463525737437718487331353212167736278887386875354846281562873714352263472756437568142148531873182155137735168846384583271727437178356137412584412168765215422528244574675376786642865348558224454484442674283225838721637847454751714266223245857583785155217228421585255885368817624183741842662768855483218724514382716683261268623213551627623417462212132414161315511554165157567218283846733882351773727553828828416862743136111356585113767615573673213464116626243311214481247767587428657852766124128523353781548854185423847327247431331224141462413211535636652216445627842181264358445766363236123723545626412452225457256377416671113114253575868642341356446283122137542675883676867438768881788353657817685583813822844355363753263316722885553847438666217246821432165623774472354137367534268823511234622337578833173341855756543888835522484741112675855351832728525313636553584464755138341814482615168617824573682224145773231865576453564417878485878543366388161366732122578666355285184135213341246582136662678225842632317242682622771762322624788815834764448863117147336785745223542487763121756288827388227124355523684821343275245818857633766436725422734843536442837771335812682871453145887322476455236832466226377871441855747723178452838136831863144465126323483513726552523713773235651166714258515646214842372332273152676322474661277686357587368341668471683362388862247755142468143437121482354568448411674885372464664616364687484434828226518777463115755776872143465248231848867312884364663381481871375141826172878666557326685342783837654678348227773248454875364663367573424821545673342238158383285477225126452422216644174328871623634133467587543447138678166326234362412133865532571865334527584325752366152743251652537455311413628848557455167484513243352382832215122778154838288628216774112445133723718157577377168561154374631318811778456475278478448426667384352241131854268372686754138766761585784851318615686854822241555132324481677224645565218852333536123125665427617142713865354681843673136636416532371317212181485416871571664788322433573547647125325624278431626621526718777715672177486178886358151731525833242245628145514322878142637444173657341747361172186385136665612422855787114126853585715332352858822446518178217581547531575481356445685575328252835878164453843321675734868848223521647183212868617281451481655715286772125767461376773846856778245562617264474521841166763447756246657723484163317386564277856767756773248364423474381823453845825162168716323122662525113732875463643622881161824166731343112665416655264113315625531523636631154568836362462114838478472781388417714688621241455278267875121421167388773171126122312636678164664284582658828378642568116445286133852736663414822765657885774113621684173378667653514464418746744616674178665855811855761875378367275843837563373814418383411442353758176727257458436736887256374137563321728834624667762281845383476328436713667585223256761726815776663486578381872713264115374567178474373383164676818182886836763664248247868548188487185847658564241376747485867314218513654814282572145854778822385667332261336287274466286156126226173826384223222426136645575528823438584458722588226127131562738138152215765771443767427226315213815732138442865777155142634357414884714722247441586452837437581265266738382533835363574548567676682483665523432477123671415611754187574173282324366217271581518887655162884354731652645525161536231182482554661218721375716677782548625442743118344346168878655485548815662254767234632154546845534446138367412252557335638378587628325627211636631675423674858778716547536224128688634845373641672637757732135453124338183484262447486112175376325516313684571757458771367353684348541381263723673766576165343875538587278224424585836384566758311638547121358412475733375561572772473217224462447651315152352637864882685667535381837584664254613244438663276841816365368747513517338567236488146573136828853522248441844645434635317612561471315151765522331155612617348374846237182471413783428251756646257745353243523237881487248817873631316357647676533155782548585788524831678666748564635665568135334288386112824444336718441132112712525756166256172631466282637474315627371485338723715136372365814763261114756274448658211253647814234757841854758182335433837237418417887687878458638335184375475687883362221537332247442383182731142141461856673147678374323851745362521443783453417378717257531633544664214586882264153431842688367635345375755868416824784842486238867641667833848361523781376128125231721278328638224575518568872511666818155466528265343813378161431311614781335118427214726534546833867486425633655538773272725877633751512667825125766133576114727534783125464683233368158361716788646227381365656581664716147547145126286636716565467333815132121211254737467224131385874347886711856563143456127558262464571517814588138488173715244511548133437348566817324483736173582455125166788532454266851535376743421861427367218737633655817147425137552832242464825616625541782882874476352225553324252521188255558625477363426142677315757555614226618876767418371667424858784561762843345433521121833413427488116751773674862842116554664232127388762474666711688566313148578467518553761254255445255414453655854217734311565535821423665876753554841545626588651321283871866516166427127611668228756312116744128136331343415785117862644781622713843168638754666722174683847866563437685661752531838227455754464267373582483832581221718673814145752845814387446358865255711465818513115344712462451833333787236671771166617663556168141645411372675464341417862544757481255215274823745453538851453755816553318414724747262378717636358867138682533366748785358665631585414265388476317374135877835575186441668621324834772561544775643267171184386712488661581643514452244466333215312622211444656323884151448226358347521546564633123437355481165621212813575556478177767886216868735772254548158167388683527135741856615288178381568866754861658172185523324227354466184658821887872366874172722722421266815326766882748647767456183465565444367785222628127735338625812541563251658565464353154574248554582828458233311751142314612143511882782262328273464278285635513663254478867478732863656243474863576783476688728658611761487878767543341812571124765461153516886125566852717735766222728721436224861277161562665343653136258684458276714284182443838417131148873617826578278877572818342415185386563755181642667613188883817678263714273848565248747482878452652532117442272563153245345188352473564724655146718657711448732633281515566247312312511223847626133575237468716663424118717671245411774274676656378587826615733855552211776718118853235881817652286768186541852576442412631278635352473746343674785113416461821247135187111123158871585424758447143474875777547124348353834685832124412888465826558384372145874518832761248681262375738775711815572138624358856176724743686311635727627345833566551371631211224838853645314731355156716873752324623124272875685653266751821633156445244172146432718833374165431538385584473423681316647136715313547338677755266853277327523253275184267221685523276468313531633217763436467457277833433836747353254665115672167766167423676682738566382651711818611582725614212845653452377166747136872664783854464342371762682215645146311147172871824473452613473411522567566753765472313127558517265357737436465258476286756358162228313482131216754585557632472183713132187737212574142543443456322778763661251386432576442835275731666754616454814212311856538352378215626874752561816521477673332156718764546564315212658236167178581224788535443127417517833415338178411187644651666141675485185371846631526262218182587142628766874482677647281226142455455245664543271372741833362833835565614341864356378811753835867472147213647767275563446726341537235651484625837634268171862378356134265247882654744878335115868534244167862152387431712617875127143851517587752255722331586377831157482782122813882277757348412212128462565343118211655882266713217836115161761756786564137548565461452482141822732517118736565484763314631542446823637576713724511587877243746426875882473454462251384738262613354367381461352311274784354758471556288553175142141144255814828256387313853732332416162223383344578267312258567641364713347864132113861832623674727265716486156154133617347552443141513353314646486318362182325784333361613187381582848582886534643163743567372132882185548745635152887331426721216651251278785453867456536227265813326543625788715655253448573268273566764582861441146143531754488352878422685645473181822357757246114115881361116833167721861474687132815781467315148714644541475174447828337552655264675484846312188651621167554176257881434668325671152542136547785321748116263236845451381182516865811448643488474786876161248725632772864123366223232666746358485664854434533428363347175136345125685582256418177335688471173338688352572536541857227334631446858864151523686842548288312715733814748552276452178165856125243538842442274238148566228465664811266112257463453585645375157188117231364531823226371286661856452424678222853771768378145158762753348884355173881578772536436886152186358515357113871628838224817274782612617622713165876285231262254734543554232684656822436427763481724481327633888534744677512531386671541521161755733684541868834412642787165247452463867463353433648472776364216641184466442652177561557578561527584756133133466824732882671733115267131233522714134372151747733347881563521567353858543627364475271362767673744284122655888548678227634426657734778288833234657247243864746258822147524735312435772348564682174482213482881684182223858335463472115115432552872438141582281436855736661212662368417761533187178454484777584861444462716746845568781728536683415132384435712578384324884556244386831654553861827444666135861567635766274883386214855641348865346816273674641327116413314162141316476181745211521282751155851324646425183554325367462478768861476373527241636742314281581655161411857181178737166674134734622382617128634747223171556226715887826851417122852141775577153417423488235453575733375214317475275488587867685646688331823862448746764828644218323834652665582231878661537267244314448571574686332837327162488261133111837624618628822371535513832684113452126232777734754535864254357614748851262516766331523316254337224375666423466143853233778148647758727282881183176366746571128664126784613415365633468167145284161154242148232187746257763268766845415321336335234641781384644571374588837534683271755343513588386631433587385434365488815175272642258428885551385487886464123333542154744814151883664243831532872325331177656362241856474676178237111786766878373687254823345733711472454584257741214666145114137817635472437311551721882853253234126244873372375341574847333278251568756335284753365714827124654417747616517732436811756815728828128741311676283555266352263562421427741386168128867565568563631816566864876654847316758653762325188435853266125234711132757682661137527577864321282742188651286523813144654777725117887265217421244178736638863355515388315577123528887118528876856642286376214136856156641384338135375473837225476813835285636848573823617481364752161762284587343256163551481557516182135282277368881466134528685885446645424176583835754161627754725654516454351384716254346887773847631481683828663135533624178846181378116576774424663676152637363776841464781146228415553435656636623182643675564471416327441177857816625638237271436138315353413238133631761324318375341772247447124874158856722528665623887377248626257245534524144238641658336723244141562324367514486235345872635267111344116434418726422546643421686224282225515365176816852637286515685738114451814586141547534744517147638825445528132175371217258645821313631367413834268672176234558868411856181855562835743721541157411312757823727573332878547521712778718186741623271166717188745522683781547233581345468271148384327363654836571258514754731166755722642663267363763572456117753888644363455417336578375841174835464118745638428815812612248857851132438285516674258337856272311781464364743781578743511813564774766532421142345721632553363321227728868565835756246314375581371316852823588182537731234356511857317738378144346714675577522236547173253662345681817421543164872436237112816281214751165112282437175622624756324756842516575585137635412634766484461756641683224271263637574416377782216248228233812388443257478878442518654326772644313633287858526534667555867557875713632521267565646577612245165643555268628271354614657512576141257478611375365432644574363441465516348743665352575418731553366772153872836542381784556448454814767862123463816568441656278856635748437873778171633531315286715686845283238161548856571548573254232481536321131747275873636177662528865822581521271154435146582386212313518578132223338383664763447676841841146446651455715732567848783157828184845868882313425572752824155347837462284518116767528818445421655275264173416211141786261112864488118166123675586542717334687185856615763267522341444867742662856245517854547184483283128263526726563675671563715377226344216782317832557381177381223673357664851445672871411681423227336233865166334565783566352718832154881776774343266875726527645445744546647775714152685732321681115211742247314767452877846826231364652831662646682123687322132145343272126545756377621566876613253175324343774452565513777817613374411144784243231614641484362471741566277436637767167846232343762168514268453336225455856575561113434337138524675666754143365673331633843558458484246721344432741861311127548613322614264848823323344688686177155264122868113712721651488821118264755337235158378768724888825372863267537176658342331221577646451243451363624786311448538513588218886551774324386676745683521342161857231881671151483621683277658665841253261528882187462435828388658386222828665582563337514684623144161481275377633471121723874641573312478277474418175477277523153566327252424424827775716456722456156674165386857228662531224177486136543784856571313662475113867541212133733245868356517582555174372744248124251136545243378178363148558255548423213285414646434148753443412874537668427848645117744488717342537113743847341433382528331354124235815848371425412362263312642621683813636676472358444821752368183248263636345348572375754411687681281824277458121127462687351464575251344716563725282236278886534354716588345618734621233382254825377138714446351478337624338236165348351338311686276127881324241547774455261432347332455131731123157474478771123354173287777786362351575252573675428614117341734882864314112616814411442716486861421151884267325853485281777565175274111366212278788156677866514424477347756545542866382237854587565866238711348176666742256242415141833773475781417284554283351125124264537746432811874516523167423123413517685724536831116735443738265672215726253126724228283676164284323481474321433622272328854481525441772275364548316326276548615872471158255525557755212516246387824687577118634764742331176887568537381252761715175826437273545573282526486718576171286415653474541366754264778673482213113635442778531652844511225424485657683465468472764767181116357474472555171571282716787427143736621613263265311865886744735838861145241741272552481523787642416521424638536265672736551828684231822812724716513614626525815453253454886426441857253153171866631637681876887314333323277457446386824341314513436165215836444874142686152485344651154267646811841113288237374785146177547633181323511111734454882143462775354423447761515754514678313268587545327457812453575848113338762854634121178818174548867543426363724758551856377426318823688745833768771872846771712456141147751733468668151148273788585757331288665214371875348568661554222216653713331564215183143426238144672647124178724411312284634586712754865566626726728824467421873244767446745226777587288848572516467418741251361811268744414848162766645837661688587668711583882165356671447147583876352825884557827817476112418732166548715826188418775386322485565617618172147564231524226848521447347354561775312353224714341774614487637417815588476563578113853246843675342756487256872817862814348345286571457544843377864175361483183633478217556756453653547167743786864735141488722146446553256681186643358673562513281517765642277453722465186248845235542282277123553578276432738355344216187517147383224667381618188351121145685716843251187348233538835615168655568127517164723522465733745867251328733488122555782244375583843774642485468547848756536522485514634233313326783867618442616672436624285266732274185367488316523466317267318753452115537628377667835133583257841573366245384166753415412672554563262722443254823573644578511876471276747328616258464617167788273267257842886786352654573143366722742486326366755423756528372118226381455228571845252168136141482722362623514187813371416242178733324221138424228767648816523247451226363412811857176225461872776644617586136743626473274386883615467355671736214735388834223375421264588186775366247846117533348536358444573141582764626277617347225542362474731427636488374331177855224163386812447544221774786586232384145611537622112825413642665157683185867535733413725474252657147441263743885746626624322626338328434734726156252511317716887784843853656456617145727445143383361118575118581714517364822826657346636511167658244132115733722761233864856712341226288414541748712161544572423466774424618385312357844648571748182418812538438177262228787761662835121471645238642433857361583815434464462633377453266232155485682524611277648425221531351454851184322465467541781276817465711128468823312348466442324376782338156575518416632283827186344662737771184357786865338323423675365828787263227825878623477774581641365473487576437182655616761483563225335248832132275658464413857514512122221661525778555745541438437236277537715231323572126738876878836157565228341488761345787864618661288474574137558368653685454737168231775488728582685718257381188864734231685538723584775118382728354467656361466345837338124265851613547187155756114473128342532777782264458142321158112741257676585431263586381765364348657551733846184737331165745682746621523511375138531865354731564356418335713552881815248666763636135672625132242787435541316524343647885431565726882172744836265547245473286752843328812113423582266658588887173188478358311851527214727267353436662678778338823525365341566222227715671821235734353463463525615521353133735821561317221824767177758587461858818367661887124651616285374372118453182234447813832272266142872515372842873667788543236777416873233615568155556258437658873285145541784632314253741263728324668714772123225338526838723371888234683837743822255736462226426462243114242176271263441385381533867627148633727187853357717354126672212736311568842563631766855312583155542376247154734647723115727165174882871665815588212548581554167422353635624477222482428584825364616424115686721331163633278126788678413351554663784326521643152671681582452463835128787348588161524418164188518154254515272612461114415844731768785375285147283735412157376426153731273547235243376238833264861217373532715812632768767435613776116545326758562565517323377548314534482218123773813716873288134482343614851725658272782134284636625317773676277172287278364732787323625323873711373331844875871816132831547253556223184541381518633352885128842362163644437283684184765181185215516672785443421652751412755325232512757155114214841716553567843347332718667623715858828231368177574888746761552636427137685882464531181577535832465543666433283111875664884323157717188623614337425843781841475743824828165282585176674118554471481672335514468446114247276882625741173758212854211844733781113387352845167816475273746446287852523112431882184568426313555638515676883466762857658671777412312865536125681445843726461883541355255834182614765577323266122536627685827428573438852365723874314772633351755487378888464347418672886157287624765161414641553523854788657843456387117685857327117728667731442164483618737618174731235563741858822438161714261557524785523821482524118163884322475286542465658365365758652168357822664478837581326474131677854772486864383341588326763286822276455684355245517271836646155336256124422677672456748323365251635165513247877333758416471256858714226533818178867621355863718623554858667377761521527737185324472427132315577678361854843154176282672512572267878664452737133816656716133268525118435137218286315841674545213577753888267717116448738612884512412342436232636287477686786453616714581114616668325441548878643848588382247417235468668231345871565533161173781487725387851147433725883665578741311211647216117754385171162745256348282881436524351448482554424514758833422124525243433112746523463841251527568132345346758138367771426782557312566878672573418728411488282473343676211333487184512748785822754852366872378268488283334822417345325133548131763833768877261153536635136241434266736725754411264245548872674246512456844373316343684682375235687164644388548114255782288633854147147853845772471882884461723151525382347774135675684874671751172213226532335467431363418112668528425167441446521281482236725621628186333616684162236781863833746348325787322222241158846154758618878453277815676743141568562336734544111658282614381322824645161384222775615358426153533883433471428717138546747166661278272671838862472842528411174365643885755346535785318686238473465417381851135321313263733635644376636871145151544464785342311845241664821416655737312536486117536516643141637723711782734765687742844827342818381227882447157337325881435475482683513657311848745582461721417564522584651458785674125811438621748212837678436235358756431352635488223261568216311352482311263315565381582585144113832642537182168326713175445556171261875345676117221885364671884617887488184315733161447184464788621327636334813661617635876613661213711236344641447212634458735738778267113364323843218156156853244732826437528355352422148362838674285236528223854618431555814645154557116312236718785662682514521282116313737262735362634656865684851145412528871618773866231337623646167528264641487641487533752417387838738317347365858564661242265751881837114881571584584514656534225885424573124161456827755452478325433584581525715176353348851664115277636473824526285557175823447331116511545154576782584352652573728181762821273133514864126585727351567467623766134485787111657755713522182481658142386117835582787746883568183783633147532334247355618644157333121828885787144448833625464381113668643681228372558724744363533177431748627162274363257422847124344127476276516182265713741653518663153221373823123123634222614876116181173726727223186472374212625112443363155824742874243567267245226486558334261451454235387418341778188461277184243743265515325662614161561715631158461836787184134621734416118238123473523545452287374231145788618415583224262226448556262775653317682667661421785671182341542137522776467216343854241718621435453558466251266346467554858815188548748842624224421586357145765257848344755573811457456476712873526885785482387253873341624213647774822687821385781248626612673536216146664472347382143161688454878633661148767654661746554572538284888887277744133748875838382127313814214815453764288653214757651762181723385131854732561837634515882641517778118285244126684857341815374143335774725343226183731383166813248173521537564434163882718755171272841478485865678828325263876685876433712752845341218125477387142731563133543128625472642534734862544517755575366211121574211171316431357367372431876341445111372343718127688763588854578655538228173584117156746632655141856871414156264772335433863755758137668551528723831676777421342341486754474417458387718384338652343485468321551314875466357653727352284434634227248578218151138476526765531176683412654376743526351534124133416743242334852853233812156213224323534632743584633876617345441573146265212418186537788276436365624272135113844453273766856557287126815762711321341138142212214845471711342753368783768553626145311626526724256445678848114687456421443852882832763545557445722245725386274446481213462454575463557171714457856638631336488513118424875332415635322524225155383372252453788351342667614867322231164442528823766315137141123183136237575768243433775845744244427264487472117314233377458117726625252611831312174373171151783478558532363366183214253821635618586114735251127588853243744751881551518177158622682642568376611431355534135843366167456467668642428678253711611214513262752237842133525353684854517312524827766276546347864688764836655357774152115213672222186751183335311128662143813545146238732464214775251618122641788514584867887621142758645472111384175736432654371535268683651746816226465727241148681716161653781487547783236536561824831677431336745143688227871665445772167145563335387564622438468788425454778541714722281785152555277641752832318478876746223428471417645352756277438511658225385467144766833663383834368626615574178548363586465156824628876686283563783466646142868148332237457721256777264864116828363812411861835385685723214854781636362678673366411587244747727761361555658851654578481335143117262648467744544877117828744182686718277285143518587638247455855882845288217764535881674755312271216841486175817416512767867461332236636326168488845766868816422425855138874364713812154364874446845683676613225683125476884868816518715161774617854813387478266332532385727658453523518832681686718718831718386725431867583717311335415448457566332856433865332537643767878621487833142668728831478567445362221774836218715767654117546333611153278827175283784146221555287455727843651575161256263681112222888681433221788867837134311738731886487177344442555136333558645876633653445561646566773375731447422453838174575487841215614161537451165855221524536338882878338184722173226525434861316423522243717852337628854258883441521616284562324832783627115813185515261176314183854738556457746814564324147386735124126151774822166175538123833824873645674787655447241654362612787122882738311167677864142678325371771272515546245158652212811725778584762264752685556126524131787473558413671564845718781627814287337543255436755566433737458625283365156743413261822255351148775814441851165543363313482614485175466235645352886688182174457532324177742713511141523867462667847414545512365165854174846535876535318857265442657435438778746446142614735255353146453567776176276264873236581141516332256284467845734112434676152715535132575258376252137827442447441752666115313813534755631477321867328611142136241384532255876778418713884181337642738854185166665722841633614721417457785378276861336163524868141727551781433377251223563738886144648411375111237566518841173786515253865733325458816362188663643563526578411411571162722565262378857248822351746187543867546733835142851641415326532426663237147446324522121257678457421321154546565368213716574214871585177147668724851818757542811318348563225652151611351527645483481172544625573781731678578285682822685332536671776732252353242146725558785117535844122583371857848643641636617523123767713762788848388675636538626116737342227623472426357673131332324183683861847311454661332737742262273234378565157217231563463745555817167244148235414588475864248325874511327886774436255345125772781362255782724718866488243146345742652523617525352645658652614153844681266571812325486243745717545185515737646461736518838781387252218637366755782823762684672425562327466262555835837443121151548683258454655281118513538187412848411671726866835521615681388381177575246662816567766144732518778876377778642288515618155667677215565688576641841357586833538881352361385368764133825837188463257846682624723267334771686771115647564334237373458335318428311114314513885774448521463212712554673681588348851215276844143465585656337835778677768434161861512743124375165317522741227878161141546131662674274422453212513514246244854464432844753863551656435215523685515738421172373856774653446346347518485686842443888285151127334648165761448533861616881272778545425267826346746226144661685246388243762142654676211341836351558762728657726533231613876772724133885615838343518877848115172723634477235555718115426756854878536748454216887663428853584886537168635158658352561831281555515274354412774258157416658726253164468654288526652833457347633735128533135423185313141375187413366322458145381811541712715341414547254426735616217524425887413278478536715773138165628132341575375144857378882632355281766325827488684824562548346355223682715155416277846142681762717268248163432642731322671633473663853654483616877368288352277416841542647646213358546427857488274618573767635834288755435682634238855646221412235551837725712618426545182853776876626613832148768438363777366813741287366731318777762181111674136688656151137231822784177682138234257884414522764553617115845656777131374838116421614817862234882674475245847774356217614145251831257284512825256266588647853185288673377315227146451267174251511415216113648766532756743123148254538483417343758873835515126311114824347652562656223172348555863174826631833871645451522615525136461517731482768271717761327211284756414267238461811457676436278687648218121344678327833722852447661732858563168771246242757775768417636752821256512286265575358858451358688828562421755652164387442854575666677672121847544246637648845515134836228487736211273257264461252734374567227116846676673183838683585864441141468383162581332437451711652243541324862313877242326878836871213165516613374231788551721557415368532124718232783321121667288341524684483284672775153264427547738557834268445266456331445534736884741522722472241371884518662112542653777832587278513671738248876764131363876338631133368712683844387714327333765412181543148234641877837526383454735426288115655585815715877381522667582561225112873772218873466611521562342711182581822147281371651483378126855141657185358358118235133532174564715545465223253178264563558831414668667325886166367611417373786118177615281336224615864874577353875163135162826426131667773532178336478531785635577147366684351683267853483221836126123647547457283286161522756833338756831576625261734582574844571625264258354711235658254214355351561674843767657186488761672518642837183275514562142488473124365524882861768632761874485184381426327222814485351672213621664354477183272245564351214244363165643653468635826167374757187813843585563851411337282142411378653267336343264668576526131744254676624122865645614147465251258718313516836171453576268176873437717252528575173645752258711273135241476521312818814622425111682633261548681513841152484827758475148224124821825165287261434466827574832451566338744831254488684455643414753436884832857424211834356345653231754157676557713587781578171422672783326653551426155275834213233543474828557625746282652546615534527413346423844565674445821612625422311288735173877123632722883141428332316683866148122815861131386321158665138471557163544243588375734251767177371768246454172848811141382445462516567345468411881672833474767241423551768714313314871734588621153423357828458248846875525773261754111843271874517585168462562647388618677785855467667144178783375274175325145732528226886816444621611521234531132763256845827183365721378827546685876756346413877744332634131725556773585715112276385356483172562512426876328383233582673361857268726314472652141521364875434111131556451488154344267262874625135884838215473432281233668853228876277355285447563216833148136677251635444757472281816156777333414631413881382325158546447676411657271841677774565688218244137646635131575813213655731211725144717747248264154245127611718731438675715241837547838371172263337116746742854643318822742334166748116518846624678723867635863124478757861854156841762878562123846768423767572258788776728525641537332624816642158337828432728538377274546482764882255486768875855723535112335448664343873876446418471381128146373687871878367374815565755454438362827811573671262267183551346426833427223417567264535431283818361815822317488358564382614131772381252433884316687815216425475277666372448816821133614123537257282858865486324465161163165331783856744754832756622143765586763525614746642675477165618258135775886751827347841722417187166245683852817382666337745564861184486647226111121423367182518657675788435587853148248487663278611674351575441647828632476485522686257555824775565321471111533628416361637272886522242314778414754636686657434183877167227528627625267248285348116216726123363243371228775612833754746442724884441313711468887444543226457134461141325517662523625342476218237221325544775178868758223728687528657514673627722724636486816841567582618552622375418465358388717641423257548283815624383327512317516428333416225273525411644248222448232381166758178758455453583634773337257263134341165155245333876758663633878467123435711648411623812815786832836212774628283178284885528161162737521134637422877813768517213652235383355631145182738116711714758534436761727877666721745724282886666334241655411571634811786843856162128824236786874172387366768235412214357331423232825324221816516753482144564762377743852243374674272518863717376743271448755885581432624254218112747752332776148423673676358677788333575451337327643575255235726278547322826634823732274432268267535145353337355324613465576217888342568565878864324744773768414311288683165533657236478353388712166275464631273544653417324262856818834777247353483524156627428227235864381511526624771545463723452253576814773715543585683731573885757828123664771565775773472711555655582546717216115382717312581166681748275416272737614223187531243147685817557838151354783278351236868753213662246481314266583636714534261338741235235138371683816184784263543674771142341232551317433147831228382243864411348243828281848372337767388451232414232248581352837621146255835861134187863482882752453457684121858586124427328564665554184515851654826282114362532257768464758475182568588814265486448135566217423786221516473187832415318274457443171252134214533887136181838674334648273586663116451265512663631834326456237741137582156466633761515231751177734128741142247668162438852357474728366758618524783827424267676634164743435364666535581216214765444533188288684331273827626188437515217785867834627657623648827848148238445785477131145281155474453456814662376775588187548878685384154485487621486334712872742384754778876842877863861173623135661663254552227816471776456857275257735456861884821747812875456878487574148512246444355873887588276262861546286713655365552185888124412862525435317217282741665784171434633785263463121781771885212161323857423315314454522313825864113831422453547324363465676731484428857683177822346615368324335352211575876673357233668578375817638461371758533467554763361226736668714225551117132528464554867845454528577635676522813824758735262354481622362367746121656623827163283362822643276341286636781838343768426463488618213548655845627782673862163124821148635461148623182832841716613171526732831215687334413886686416588133675841178681826588438617284728487437181436532326747528687826643658478773477115637285277884151775137137466143423684738236467468852645871375614225314751244562386618327743724283118278144872518617514218767867172166883414643772117173511377386637657548168325546471464214685586617748315668135588483364175236712125711536828844857642268536522675768866455175514274831866133326555284141265636558515522327157684342573586276877478651657848477446551733312654178711675821816242558325168352414688842764454342637145287413443673614771185486754622227237526332361458748456335474672231563147267887411288536187734236566256612248531141353218663621555162213815167741221284311142151732462444117265382427514377112674618655861465231641558156213244651543368517563243872334631715677117545541125612486721516141422611776212338554533471585168374272543554875188685568152754586885533251222236827227825326424256113123626485571413526442452335876834284213862616424636431576127481434887264632187713566685356734656783322524731223214633366637211221524381427223751716227612875182664421581636243557442268214155453151758511272513674254812284855211712825334636684828284316488121152538321432475361541635867631421675152324434745646826475814342634676181622258353743578224357354576512435726684363862375645676441686327183777847582718888661358663332783567688621618274324753813448272825821177325615827347376632275226588232723148132343772718425743134784136584488276824623768348535788635458455563545855331165142871853465447278475425846768782834724462462175211477816228841487655157138816645754255478745462365587252711743122168536356461683883233627735273743178281261338773571611133431125267851836714148176868287246881647773587722614217528181245276887318187766667133425261737736131453885647381345767165284271573828855837468442457346134485322555418787316744621143275456241231726151855527768321648631363821811717855222288315744181317438668833437117823113218477184417156343578637238383162657683573285586347357558637658325762366358782676217263341748764244821258254246845437473536241371557787883772128666658844463348588318358178813163481425515164735634767543676713347344387356273514821165671423477185731823458667717378764476453721682475682686278661142174874662451345272388127643726484744626584425764684555835372871814643541137881142622528835252422762766116163333335566136716285875486854656836567246112133888223657787267725116225553651163388227677545744464487456155247875127628415756555357143313678161763876836511433853322115436281512762338742888857476537658768244878312434712622382661368142576136781362827181146571444513223148332881547143137445287845128815323787148381665322884273456673625733863277434358377557574626742286454465272582742236518237448264585722331421826675323586315716183567381635555376258116622447473644877585132377442414521517147646652551183511534882618111834733582143762714311282477124657766855488783162387212636254331164625543812325218854638163732515414442332556488425578665435482712712351553188273768363787288542586453572244184868458213887781822655643381711261546562127732341764454577125587741557572434528552214368833562777181835152666616427657636581174286318168147656557733623727777488853552137855334362888354488772487665654378218358824532424121286367614281835231236711678881757681422862632262422672661318386375823623545174575867422255783672248684528845412332474776262184237364535587554154185681427423418663452314587255735313811551754673131165166314746772183661452131815358275538533732863321343715644253826457682714728585411727628714742611254287858861162662257878183536382687751284325638343167312627386864868731566634888744265265412571754716741587528561662651378384143252314223842657338587283275671843386234267621471533315657882425885837418754437466673454164365241142816146162366482288317726881455777825624433862173246571322585657664736557816382421171167626773137746645567685532757635452215341431263833212543483662534571831152134842782645115755547358371872441733831367613756586386161355778234787186626136564178826767328876828725563854845716127861425625257157888542332258414261772411678211711813178518516888431716843433526467872633674365431861762725183521645281658536471367577571133238371674377273211582185663632411648787741873421541655271611552343231265244576182526777356566831428247317323657674876161561665128486176337572265423822787731633718877372572313532632432138566318662472676325334111854375216754358747853253561737823112714252461672863263383531248126388884482132275274828154881216634631772186131733587636118587128123838175643768285841481556743468578744333417652363815638466154286315376475324332111738128255832146554281372264565312171274523882883776177245478738744251134673352222522127247455282371487742343813486716555774273348856511368484638713758436368662437438683152188268785715614282242451337425378681627614375711838263216436282244678723544281322173875645342313631545817756671554878177546126124312258814541143832662841152211874762736245387435761276686812424763143852744388538375344326526375844818485362682263155878487285773367824661157682135343515552276778771743175547238558148456224343418246478538465551124383423366752186184312271138667352341223721386758555572318343512373156638717816684664342545166668271157414888148268657765528687124842764225617156216223512172332255235253181226441341511143838217463373648215315426238884261175631371416471681586686728435444721465665574778557515327424644731424838227848471714666525585874848112655251417376255126761881421186424575123385632168677664663178314881742335735526882726541751281335777714285665155476755876111132713155451417728732448478187464881335275688348552321133156877718314755448654736285565116584235745737785815237747783482731547887342145121238833721632364226166815245661274164588555584512633864436383286367554677363746537414668488251654754685412136421631437468832333721244145246552151413327676316866537517452842583871576567222658886446426216515472525732328462831556186284877358755714384624847116886258256138631668165734728532831235326245177568154416647664375374788126838186615646875521127626363426864415161123761127112781563878376586543561846144443812567813353651232653718182182184646777557381424112882813771651171442716721425162183487381834515723615642587866644167857176831446814327748773886185114347116338634568648737623858635328287875154667581461683775416413352614374467681338141171382488537238648345264881371732181871362166567187172376422271541476488677811742353356834688247776627181444465587418377685523712446324872747472363475648171812267762513782623522744823716531454288867182642347753612377885464857852882674525657611356865515624656757866735562832151358217732577327148381242766243241854451116272545773472227486288425135856435816537542627564754781362157513618154143818243651831837324428357481388876352735687741242851264248827188456431732227245254446743738317177736435161143752351663288775122323125366433553245547228853688254412173234213214723463444875357836143128845352824283481748246114873873724641437635278211766332812786664681738786242837425122824616667885366885234688513171685165756834376412465573565847563636442383175413876113447133146174118428582363333836672872128831328285853757654534654717614533477881663148345268655734323674857145871144734832645183366858881571821484373775857211825521617154274726587125535361855278865755421114477512355183614565217623266731617663826787265331437611445332172624225233554436786248375465352172583181215445127354367142726671461211883882417832812256155546761262425661523746358732575633553166314483344188177458576365762231311626172171545876638282511517668571427347311313353148442428324858634636783245573761142264281478236383584243618575437413728415557661213246147123768762277654556848768883548573434486644748814337238147231327786545477382872251347512572375615877825316582527257757422872684422831338574228182876217852288566671158511456717652238324552644112817614376773838321654662182258543873578552254674235353745372718687145765181577288121686324244447163813852633771752477548835822164471143777185541174584817776235532465212111212473813132771874623473744268452358754311222781174788424824241582782542712138515545461457518587578514775126827144737856325872857276226131313577455114824822842783537781215321557857233713351353621572658873758334762565318337233743158767211287234512858324688761557657565581633344812621172585715486533518482665645438734488275747452524614741313411441133675423163215133128231735515162856315555157517187617426558457871164816471223367636314671611576867817851852462555536843387224785873412247655474346526328212532667273486552445138454782366383158228378174235338264314176755647263171865685118341356226441683848875185654362147688781121352276176765887873683775751141345386276812441726115311327137521783114422726433688421212366742352655563661547744566645142522756736831641284753235251447275671516476455148277584413227644842412534357248681637737835173717461741541657128831336832167332244174375318545722271278185544636534667521358217355133868871784464375784577368424247163114741253183247646353665748714478345417188235551547558567476733347721811531385127837164633818861545456731153273711647535821868283364721833634141488268231843751864336481485363318413752856124721563736344114868556252424347546632262652335242247362276374165183637527465851436661318634186681842167158614855436115716252728754683646242187756852165484638633553638584624225666182338588251721225741146722816755347772721445613368188268322278463683828466746427768255367871883681663447331423552188877866858834262187226225164568211626825618481342744515485588255683485455285368341371324458848625663766813774777444553252166474881622167247145624166135511175778725717628564117231325224157518621213514847585187121728332618723567355512584487127518756252688542633615473128814243335148128331282415287872167188836825566754865884437585847356444441171357717551316786857552881578337888543314148552627827312674164161146441543117248158381822682678585811133617575463221268135238434744511348475552885154315162342844672657744881487872661214773237413117674883638323884753251122514423141446177326218181262231841647452515658541275375837884775875511742442535468657467534443227677217834686268834261128787813678382485875187868412148323481721132211841614314874476631471786546844728478227726386176246375457647864575876242166366364516514667576183575184222274581413314327388274334378681651522731265534515856386718411728142661857787335457341375766788366258188875323828264427874631335153682332385543445376547386564111685623122187653251413861413711668721862157318578353645338455233843525667326334877146738731358826116183545315686784775847675227218356248838462317765156718732283118312152447865213846848628575346386112641421357351545315423751786478781412521326421452185553213633743283558377121167718552324481254668184533516648624875686611722385736573745284467848485745486644237258562442621437688658613168881665827664572141113136325765775878346354146331551421622572732233366873675475124131427882613352315388323783164374778481581356275256152735423546165875752781237187368643788272118752176378245267577563167848253548765145321144633311242826877722783434817543786331125251884637776814574821387688548274382184158646168272576246328148725686427275644176178657517842635513118855257286822627183644367424176146463656753628388456242553673266144688827612164335481148281714215144321621277558318423664213242116583588755458566282323753135356646371425321165565435513417841312884166364374655156616831531666175238454156571461133531647663136425843246133872148633545568734518614524357321886434513874485652152563241665184638381176417774526262773271728723285882754484664687276755462285382444135685788226845534761674827444754671743371615113663457518568785322552264341786428678826818833875171275642132837282412882124684544512874262475822642847472441757784725686754176423315512644637147741544223436737466875417633581548588771446864815778642338136363538366174124266386524326226577642134571233272635248362433532743851715473115153176876777278637331335384325331457823425453631673857832385672416541647688557723641667368751148742234363147223345762384771318374548318218648873832714454867777282364843841281416184512861713477238456618522241776655324553157374722567585345264336282511228413347285655123132381773751721541281327656233427251333282516713751131115576564183275775111261247576763835175217262666227326786164387115143716447255685181841431216624278365345151246578542445145378758663122235612345117287131363768583515561781343172443446535516144453816788267136437613354622538314427665174558314444285482257745671154382456424474368815186661421637327846615755442316766855328231261125756616665335588112826186476578373255688681536635856577543884482785364415681531824176636525732873551253437653318857362632764271343367746833457527273358513261435327264814183476675866583462511556276826473546334843483751851857473614178171642552876864428437221542313332651754851535887687276647745161727865575174317264656623672363424143488657156353263686675468663518353663758853832364752546226443655741134454888163143553858244633221677125615476662155813167363615221222373166313431454142528214785261816161276345248468385358145223341445541563228314181461113632323373421841423146844154854374226236176725237813844463812677531131556836844414412564858465154617478875263582862133552773213652148547473727865755331542586338821863235561734187532825668143355413781218458822158578167228382441253425184167487282335617342214483721356476872546417266241522776157356864348128685415572262384436668838122445686822131838155413848573831344525747331528473574548632157342763884751772114722238722576877445861671126535247157724588351177464627884881763485448432145824358812638553637444188185415775383885633358526538533118467233854677545116884516216358877554478834717654141714855872863864417476343752643613481333814231435751562631888863657868551884137817662181777831332574542326454575611367758833771733758637451431526561184245485216375267885371851582673421471832281813788671552228311553611421265657482632874718121264543214153827645214232547575415634875613446836768315132456675321337217134718247438435574247657862815646672115861286557555783451525684467575432255473412777263537215241144478534842747361645617743474521563562141836885344784745345458753238525288738677816574245564648461486575647842134422882617677157526414863513323785486351885477761516566662756153542726161335674112543333837544873166488555885857622724558135652215773185485642318487386673234346884871385386264861845754414856717872218416228322878512188484271377751172723861377813774232872546744177828642311134476152463158718865252432367226317675483511511322532277172434888143151321288645421187652486782524255844617662777828428451422585888327532563822125185635278253222786185846876852684838873534728318161523435173842142827453511327543336533563343571242312316835875265727212134166574713433863412322234166548274173343632557584613347733488317755716878218273844361157387715642388872588362783431548435115146786388613666547413441324516187711267884421347178126286564556247628428185227428825115263874821837217683233826721337631344746452331672752654525624443634784684837266456716767865448135223661528284227162632518866266384534465678525185562661224388825714448488347274513245332621354682378584715755838527418314226831511767561748737581852278854613543424727173215553656271636774452623752555765781348141246434458618268373133664716186283571823146324555711335582311628833154347151371548864512221351658153675775414381848873443523513315565223331341328317445536628678272214128851483644422133124861444847351216113865577311875365818167352643343422613438243188386656157475171242152854125348223378225183158511537124467814362864486613631314385757538274728112545632631471458735265588846232686318863216262886167614412276412321885117613215266237175544254552153525731416237721725532826718654827786488516467532657525635485512474354556336887854254437266641232426636355225187822771243252815347786752264843812264773652344642864372814688547644754845157457671425131136511656573354687381643356773373855481386344221165845636565161253371137668884266626523588223252741385636661134388224663875846873161132516655612745481448146528175213457758666813144327167147778465388177323231248623268383185542487666732641454184611127537831511256726173151263248551716851234124582732522533226117158322312371248384862278257638763633111112726441824463875257133442125681275414283876255251442167333848613277123186126171134632688185684154736854842116432655775652784438744716283333445185813723882356182265221782286434253222451284267757438617828885428878285511143265118241412162172335523243844374545311541571272331343167175338743322724683626738127625384186552821882387128282363882361458363812176425374453282611685313453232318556782717452827358176251833631673472476845623818663355341184238584611252228117433118124685161875644562253827251131862815486261343577488252546273752577827281255386153342268847717665213672645542582134838433647333561327518278111381433775652811256858371672772166575754112613545413658522167218221281645766271257684588141558686622387627267275866566427547217723267482137464736283683225436667618847782142867613432558238387361757176841165715783332341817244645737441147251582245813653652336841577267154811681773286857617763483786471365171145325748542761654667634142761687358782864613886852612665117187317768682114476462644331231857782683555133561185648567231238376457525866128512546634636413878348547367866718526868612785468841168557843182174132622545758328827571853518137356387367244472612635318573827143236475376373825235872647458746872656868673712573363266443528781858848763545671353376511321648824386817468682672712241134323376164882283788167641744384184815417386582837548128843163444673237335746438357844736778854746233482631825484265566872231785817771777562245854224777363824888658414274646867754117381248214755462472672551771528378326432841763122113784878643513677523128875241448562226315776214153711118188657167826784243134424534647457712641171763534281664727622258583464253587856651586223134853361541372421646627673626673846878427181736823577268511437277741654642283634163366113833164584317267486153466752352318378264342136831342311617348815682874668617214412556884265136464876837273154411668862388341685811211868731117826755241247747632633133511515818714534122617267742537633352282317157227786223538678111187312274455331567442382368335864552343757646125737787777127785351647522643752412171482262434161348767176346157363688574187718587754718853111331412516847313768711333453442763843157233414365218824326113681857445581522726234714366314212186161654664478685351373327565777288622712261346383416622851835587718885444516545231624138658515613424765468488785448667621181668632647332582888376674743576672858822823154437265186325823834163752482664684751183255184323815185581783455486232356231276385454672286326426186886625618235837766531173231566682318666353323114877755184355576263413645644818231157524287643522617284686571872624832388565877812433686434533613316335544832252624635331535685733786123446723863521444465264854637753121678737663554433437242514271132321382121856844873648566441178664163646271334454837878666874226464562325814674766454157786511134245437464816331716175441873733476175324235147336183134328386222443221243515732636322364461575453317261282447612687635287431141352556856126752768748328711754737135558717576766383183888456886177526766214688248758518247883612488414242855656263378725232555875243655712227838567785723734763838164158611648764878625173371825577648472448453437522662572423654163538444128881458431155484375175658136582278474177235181563512838442474861258464446548671434864427273525571851856877586454244557582671767438252456778212771631342532232348156252154755711588785477683244422836152466437716657446662228427378825784655216123233725187733453855618354283658811357161783483624822773778566551516442878343452837654412844385262367553122387424654137356852556466353378658288475714212123124616123753434242782177671176356466334775452433585422543217142768284276777111485424626684247368761144163478136726584136673732883633313746312222667166433158438817752142834446818387328513781457826773561422866286783575652546852772315358424377574667324762488266357152613515171688471418241467471814523561845333375744726538234224324336688822354115215334253766684226822181141541823334116312244436821235261153242683147582548441246765135832877471877567627516868545753317768138825255581266315351854826534568583241355623367768175657533428365521861563756566164111325221265156376875772864676465544113234762238417558814321263748113274374487588744438686756127628327566441513228624578674456163588416173747358355131374585568537112885536473313627256231387882583733537483516522468173225435862161135167581764723576713173148221362761246332164583544445148614512888213214241374223215671722263116151382837553161118321715523738286716333835562458784454842357674666412614322516774733276587754588311663252736836628887748161353563114716472825435714155163738113875334862142218544268585583647626767371151484484314634117621712383354647773226383575458425351575725662816381362222221746876834281631236644446641166541587355356585676166836354351227445118512283286633721177714786771811571681321628231814774516824535413863645331351753745347228521223833782165278328383313716471146816572668785224352157585163748578431574138548886835526168277785584876722883723527553277261871828834772831825735641788682237741612681377347281774575233646137621648261772264868432672571183571428864481682573753356414272184737184365166563424744414513251188426415674661481555761478432485186516646418745584185122685156558872355162847612182755887736522141164844438387862763832153812258512421442635281253644123562325724232775272713766221138661724738182382275415865517613517386838472134742168241837366418252333168588447475535652845714465821655773144472111521453378173718427486175554768627165166835671547661186253641154183514831758863546341773177322626166788315175523317572248883514288318486131177263883418327128782873531741457533641778521132133835643165485618152865125662448756584731327682771834781316282564687185548664428344132272214166515837551262621763114312387655783725738662442787781744374587655115664432553514834227171338535113748522686216281448672325817228245381177812856441135182653154738623628182648358811253316348812148843818865171735666873287257153525563258451764647666375716124683327844864738138342351128183125165618178463784525515787757845446773463262217162372533827546458265177227171882724334621288612176213435742312547548875336376362211268868286354663461616687152177348835571418258434661132646173884232723385361121637876371474136434442173144718554225275515352282122767112152418858578524672388647351171443468433862428157358441127644684734563747316772651336681574767513826643588831358184467347371181383818774451563341883472272843132545635433133883153887563656754363225151845755156763382674412761725668865184367155424853616141265261116418324228583334731537725182537462325223125831178867423423141568185772575575514872611365726636766766843753271556572111164811363765611853236564521188544725858681155625333631562438254477175225856436235612215464527272388877231254112246311675815165656887558152745713612317217535178528851436334488855867267856847863581124423635336872655163154888761823852553564145613581613168473647443768822752231348567334653444877231726211467272252838156558864627846474233532244417785333237785632835116586841235126377842524432515555758523743711262713266178275635436631174317837745844453748437123382643226248612226425485872868516381684157532872413521274513185628157761183873565284156882842133174172838558535631474775487473771826671635414868866721381572258243334723327652162873212853862865176811286274615831636855282165377645672756458434274756486531814886431718155845347318736831617741387142811135824725454745861636818347587448556476346741584242453871466158444743382265722716142536887555268373461575575225625456843144437586724785262561673623684184442545444264113568376781883345716371164756163822872314557456311834274185335572841256872865526448245185875328583412212673551787224576334545814152763183465435781686856247727655464661162868143134781782147878752873586673735352641184131632873858147573451564514553643663453386751131352734452848463632642363787883342571627756555184473843288551616652531661541414344631358325182347443451353175776736856261683551566386215175788375271661653737641448677156881447851162227621176381634856146352238175723683275547353228322325422767523514354871168837812483474454482145347474735281716114433767321471282648436273417142134487354753423753213628772825222826271465848482521634436846178133412525432838111411555446833771454583484137756328288242878714586581311478311382764452873531364813274573473633541674353157828527481521833716547281423341561212168354553566687643361455373151547454637781263582613583837388465363234461772765874277775325446387517175228647188558838837346336713755784338882685315115363277381125484342837236765672484885687175133866117813316836658776354551178837634887552743531253374416676676452846474788283311341441433463635137231252448657531113135528345863265786158256476714264363532355835563248844166336335561452568413166465413685842575716652435523666481835477714763288733657757132226222312371415567467476865355266365125638657778672887131178772233316385645426662188261681444516815682664127461135746867754652116643816157745877848546253678131551826785842364222512374263581218421115435256781888454344846746834171122458737642368462341135388547317626877475373651257283216788533331515677666178228315514543826585441755655856741774171327648586313676754533875312718642283317352587874411177464221143556847186272282235577525584654765447811216871877558844218687237738648713587667662624145276451565883143252835166617435656381722323424352677451411384411864577436455565337541671657231458114737764623737474748255364287331357446525346514838423162767222341112382528853758281614143147427447353657727233682632576724766477377557661816847833377154372177367241846333718378467562636346832887125436317237886783321457568867568847671423281716735267535187716883457564125636342351631747773753135771272832457824277174276131723784444775535432865531717253777268548354613263833862832731377835273811441335815224468785621546328137152175861737787224838563478161517662758535121515533114331423568725183448438483773588257515875747423221316174424137871137613575244538466876735151542688737226182326231143148832521376522136615836647114643113632173662747466624648834453256346558751666771236762682543546725438561157888821586482726843171782532367482623753467823858811533375868466135368453771653448548587115644822383457531334658528417432335873142632768745874432827717121212383686324114835411538353336752242771512357645654335142736643621627541715227636584443384182353366527758714852338832214655352665862622735612813442776312255825688514168224387243182882142382323454141213741135768138154667354651824656874527332616261526575757461711337687888372367171368581778473873857332515447123417478332613272665147786723247327578816553733257435316222136313616146717163325224885458312464681236672486735661677226627466266321478427127178735453178875314225862284822853278654434832314527144341783536136474773211883362654265224741454737633438116361386615675712144451875583254861632738273647414744486528852128641237436775726353441368761235378286713864827778264554583641476545365366187528725246826778135843831367677247346666388583248761586644833812687337313375244286881655225153587785726526425362281782684447486455532261127418647445168623677716126345457614626853625231372876873446537163184266441546881782482526644675488127576848685423146371865633413648123116823343754858843572847514731285774325568215864442624171631428546283567555848533352462564381431568422828542357678812867213646547111128682763724221538577742423745466414327446652385778534551678342422833645624211625577817633123421528366582242653372174525188266578675613667551768467412535752312614582155417326714887668666812724243414472845148771572241568836532811537423126761615476118756672386685672341318487817426881834212683814435126278336171645541737423472175673452422224461288773468273355524328876355636341273367683247157548566263528568712485858244126253666574511313362185642446558452772536338616845352545836256526564715583121657158738742322784787663274465236741261518523733227113346181467344855337166727614812534234885622533541527182814374733814315124383658167531225527277311136683282454673481566823356222156625766277455132266823636614812666142452187137883357742521548853223532781861812541335351871446142367834476134623476447778863246151412556331876715683418723383142534518175658821755164812518576478172551548548285657655163161635875486431212285546544878424347785243734145834547256862775322632461147663466882668581665576287351432885173422864364213382434784875276216781583865545848873116712734176142236211343384367331155148428127413461113122477526633533622436716322535883881885413785786631366818752345727768652225852873137754612766623765361674342653713883654436863511531211146667717811528244241247484184641431587161267225567782782527751763267274538665648427675836157484814534623723123845463876168271411775264314138211213366331287856864483817623754872185772754742747214473553117588134457552536147873452568782333618625368341756768717126223441257342457363581522361526326328746326581287174284656137367823434256833716828628442281664841638625867858585348726367852344343188137216534882443753246775424287222613661766188458125226453172537445884625327587743211523313353765772258844448567422486326672311164688122584626767627762263623737621236627826243468228353476466476187363633641628162418548387353251317817818774547326223715453428432675857211362614214352873453882657548787785527632362464136235483546517274578677724171361611312688558336268675638265338612534533771866431715363373815173114847788227622235822386331655667247686422631752824573354423366654717888556456448567765834318473213518431521558846674366753837177814363661136515454754588547573831855451585127746274384576465476642188236444822445185816374636321158341474738526568332534847758428216646286722611555578331482163311418166888787612854716624232484422511744757754451373258334314242532147341686853778611864278442311768263874478646342276251345571374362548172141146627483687727276758364747734662757678518737512441857423583514451367126515165518356325881632664487447436236311445261485727824667688584344157365611886727642433142733436857412441636668687588445544543161753163826555642331265231475345871237722382854367422785312835287328445323415425141662354466142314455784732144623326678172825754626261861123652163623663338476347587115118573554747158411864824246233784751526711645354418227218444773712274477822645354235557847864364636868173273744784257273771887754212173612646872284365481172346436466154125111568618376128257247376555724162754335235734123738883676632627182772366366538712672643888451364185318152433558441628658548136417282115871762155746181574264551888733826232523531677552552785667612653172238551641827253843552288734132318373587731467585711317358845743631345351534253545161226751631862563831847624471544367535673275534187738711724848521168172111347213813162352557658274821531323547336762154145638545565417746477434377772856338516324756457447128428537783641534113237777831438773647163377265711754264746337836118753423288814486111448286836367488778515881314686111771663358886586733418782714463165721124614461722664488667511781165478687814424186328812765512723147236613767175164538244741371357241126537516155515774571837654587234411816182242133773831656465441222672437113665676215687516833125445611337783156255472587522145342375477633133836426677833856817736364756567646622662567222827436171811744815386684443462453517112313345828762642721226447476628874472853562377775846272155275483821457136412347327563567486885225512561257455447875458284637565653312836224278736736715277855725277142115283787838763887425277712752373252876344812374262826576864657571385642715335463728825774651874757458147515241542436416831265452817355142687882477846743715626811814573772431753658367277448154386128887468577517422638533748828518468841256282725815154267311181262774656242254787123246434362421153546228185616511776667576853164431737565284474613628352427156858555658561487345167643744727328573786235661128672841275365364373338537655778382431331777348683383777541516654183515513462421884385645237425755847827246335153445173427586267431117285834675216156478447358743257344111424351354484284216331714216821651447318352674318317337788414215612645487468552354528754613465153663347411866443362323886448838636623742132122271772111388748378822338347318173278475786465887541237554231843381513375482665753165858863655386163115556238115688753537176787175811158553537722584817826646284758721417231174611157446351143537845211614288221253324358573726447731241341818836174185537848831116114687173487464413117225274485738166545471254873227716757372371568147158677434128417465825851864574167347774143312728457268328613684167821147646743766781476672324452682656433511126452667455522831486745354736663784166118171577172384562751664887442522828444867563266144534646152684116354678554115557737445586731264612577544331382564583747665641112282576631312553731226228383155238437535263672512384868763827637257832421342813686175255874464378712368388646872725211256758664237185183758428861835427683277578558233377223386148486638724811324151342166688223218475731633521622147358521334451568872885681887624361345664373632757356285862127756865642248386712153751722524172465225468228255286351631264683532354214167152455847238288557511173867235425472713132435216655236286671384363283817644748811756384175263332433518167255623747851846331736487411123482445727134856383846384475543513854581617416811653223367586783827337767662888358253435877351623253123744641462773612372677126482277624667434378266163154343317726554554118785281556842175133631216234177414663657267445148824263327382778738523537135521772153544135763162351671328456788737856553783636415648126433675568844137472422153512581745176738124137212652612647614688543878211454463488816512545412651386882168387876452114388751432788128827847243518533173847735255245418347114386437465673832747687752284737855728545258786477126688163868554588845467174752525351318747873575531857561161555861211836563575644745455657446572566436116571764365212548517381273884733284335878153771322763337768817781137473757764371628267153858121152143765173327864663344528166736647284215883813437782236452288364551357284866221334142812115542187375451221352354458821633677388181768454243428161127474731755437267414754863874212276246125828124471747587336878665222515836223351142544672335267667668774625311762537636143644642374841761133251345826185141767514136255625516637732547438534722525311624151764543812732326448634544121477183277872678734674613874556584142361824337563575134111688871238778846488364252463148161855577751811326368244783266782875528682816584287442431141125645277887438883728323685814624565878537513165654345527382182678125427286556318288488263228784318836873153315472282222386778857115331273824245254465537132532831514573478311252343687581822866884563874355165364464317156867375551255171614178682476327654282222247267384622632776885544555338861754212885413532246371776481686831423838851655875516858878282342835474724822641761121285123118238573745563534273627528684135181326353151584386115628362786323282767332768778217335334454582277888655684587442228788743652183477626546334515572172632435416574182855612546525384258454438812556851475858552134548661144618275851843373668884731815745461788265721217612738821838544583812245243323651441852412444142432824678425173572165751733566858255775187478685244646213112317541111311338157471237418455543223885288327163238243634183578173164622563158766237316166253723533685816488523214646232185284226113436543368525318457455713278436268148834343214834882222773853227647328428326543468541827617175474843166543242385135337881643636365237186765461865227771378742363617448452228363636276188817437564645658141851386256363465852763462177753528666852165164555168886675166225528414441127316883155444324421752663223741568316133756668688381413613213443872588834872652421813228826718375753553276733261241715358154786737626847576767261532626577618443413321338446646462632137732514747456188673813112141163247711485258423627254856413455162382248874557711362362537138363445147754537386231563782821128553822562447632576251676256516872656136844146227268653657437214746862555661633365136647271814257366767357863476237537146346362381563528784641412285662413335185233786455823134582537387368175455413727858831273246768254537816282517133888865311818321637242574452121646711652145815342157232642653652566462241542753316618484885874374248623732473426323165671612644338253585656857761546455276236678117445252424512216882652362482556543181877744142478786513864575324843745585686573634665612133681554782444564214854264661351237577283118548763225184635833868625581386311573221671422152375153784836682777372651536347451122215537786541823661727178463858886255267277272716428262718524847415772313144284376161166523881575423428645612732235168545227513746113236524361267483137886153761172153615858743758124343787313633752247747315345571847452761853627251587485673777163488684577652761227832236563617142466164575562521717116538482682265746532721422615341733383534417134171278622873476154157454144713436331418113428385418375143572132683211414147461485616328627547253266866751327627312342488647337343587214337557634867663337241436828776575516534742135561751454556864621158876853364178514828716185756661245727882661671337476461515452474177886578811127231145455358552336768362451378763466831685225186754427187536221742572842651144778471666627331882746322637455477764864674453142373413126142474275256248134538372788565853376644812626736248386162512474215252472371383161361256764715756334634134242318881785874541226412353253631864225862627466514221257546551865854558284825427585542454175654727512715117217726545588721658166154783275575277744644584642616628728133142156324743181431346234287833441654863726644234636273118156871682188286222742314446747533827578714631272477382253678466351675124365358342518488123614668181265518857431646735428742246425448138482677312478447823832478225577437231267478353182868234836847858717452878418414818745442476173662274367483767457438375344563781772242616132665343276572711636852388423745428758773541812517141388683331736635221782621868714253154416776418856223763827382447254382827826566877242844458717232118335746342167737182855364636746165626478318725442828361488872764565761415852783784147873276645714764715718678288237382532352552136382612724542388536633314546763252367218474484722742583525363582236336538767424121637541568615827812466854856684524112625835172237321238255661244255378223333372525321421333583758155338471871637765752616231637161478644345618487718454263632141257142788516246818657454365436435483878263415387785668874272211177654478577524257744186328577231851772545114184226657568575123857722381458242776858227865812222465846732643748221344854622811785363716451734846441112736363553327241462536236215377386472418762223247682741363564461127253216755365617344766862588727255547846534661315317434464742887522665858431445357758215318852517732281188177776486143881653286746278185586182118662771562468221365621576216553532781446456888384756767737481841528533882732127471287186485413564726457618333874543433642355766322564876885462315821222842482171711346187725383285584843232825881665355565351368535823445863888728351725625581634222351448213387272372276634141252457452724337877216483361433285142272676851128833178863747165357651265321424682511542358557331271618825253742846431762126651643262318467487257654531428352285217446665586535161218224515417184462336233538255555346361572233623826124776415214173183274266761364361841247245526777838755252281625322313652651135855118185758323275587634784357127487337474773745342111273556158524857187841868228785227631265376356168448631554268848131542328768725612873448534651756513566667431311325535182786644816545562378352368523656327675868155751378138165563773553637116277326376453416865635244666425162438287168253837788635737612716757538537356884247544165222147782485515586224451664148768714315766725786566686426458677154537552434541776332477342823658335674633376188525862574775536317314357847855243155283478451568545174822768281374225667267682644875525613154156335785867231816753457453486858435554348343572371261153715772368463226464127667821182764828417317544715338688462233864638423786564144366681844841851663423663886812125877887154678643347474445135563772651561138537834157736488548535154838536431875813545332153721823188682758648741127175368155372855351675561737456548617854362226614762358758165665371658756288737636337743112483224825868552511184821113215153342381755263141687124375412228381158642764181147551162775145754672526813253451537328657663834283778115481336556271285513685316778874535647862356482123365646718325245236223635346622656647535357661862583243817754147513218344423431234381382135221672667656256425268588867374564188533745332427134181873824226337742215853312212427356721248264866856813855174252428288488236582454678255121413831271731548253813315581747117135136183818536773621738258573224433875146515564228175784718883423311533264826254477532577153744224266454775562852363338348488546168657132586476545512277766747348223846776148873144637357417321456838448521135482143435351625468343745364263573563385532856687278417523865235567622575721174725845332847833147311612247284348674171241645535164288165154468531834246241422865181378214865881258587255152224678771376557151262281255851353563848425722545116566615437131454668358747684624836343375612718174768538862685747314188875876117485288442654316165576481272173765226564416834254314446226687251712476838563331558844388241228111884834176663146348671182487286553427536156845476722488314316246316643517163581282674771862677342377863313657845645767527157463627563434616727313558372555446746572447747661558656833763238542628346475337628823464857147271781361572271367452821536184843226851433672457275124144378157842622245182264863867151426123514756371371344772128756322735645584528688254454437618316454235634311128817432455287182367683371165885832767862211662822325364235378443151653764167131215615371613124721818646123233482543272522352586645542332585315848811834655231817137828624877568511761644162364748157537874766778887884755653541621773556626858636378733825335874627154212347815624856416733278174434214328182242412838164878247647582544685684375451863114566512743767137277451444875577776431624167565138135672184387475121227747587466511338685214334233862641562358512587713761735857231337571737622243668316756778871366631288162152252165765661824181522421834517615267164724688636876571653646434643812818577574368338526513112612761612627718645887225622812646346417443464484714125467242784142525745677478623742425145267331885225438421641617534265545583443436118728632122182544623746287335773477443447864316326846815135143416256884364188211268118617126145278113516652776375512856628314535622374576548856334382685217143545885228581422616427184547368313621385287234762487847273487157563654282775346588265288646756717421525324488274142722612882488188521585386538264823738725424476873385275252457225823558758774426352335272182267226371758868277333182783182755766728265664478612778547355517682735675473134277878828156788485372331173538452745115832818514115766136147748771582878471412123368537462657462858286434767277463635364832731667271426233133534286176536466328321276454132644687258335164587851217266785581437242328256144662487384366814354361381685526351116116547413363853452363115672778512734281114414448524234868282235742275755235474523225512728661128832574755224347264681878214434324837767157217321667278622514221721745772746422564164737484545437183415474755611265351736652642288327411141822853525555213151746413264346717566241854453371166162383823516115257236234677124412336265685777626357155162523763874621361342448531425656376647833823741215113845773356331622412525425511835463533423387727874638663442244873341572385382418326445268445273874486473556651638714212675213837884338457223784163641863786786154722551684748141477314643367835251645161735484642122331288383675262236245731882183816714855317774643536718237771731727431447364721685834363361646344833663758376476824683141448152327266448416832844512621541131474676535655587754245663778458734483867411774741447723122133116848773252656364627626414148864567538273746121487274484678455862116555575387285158345613282627825576483776577111153847485175131324866233563713162886343672211517262533546248874222188583143115153244357833824424736541384637228471716631416643433185782651124566421536151362248147581374745275423641367612874615238622211877231834836573655632477667151725817758653545136545773717137265327848822175533821567655278244834854263687458171228846318534818156168254878467466863783432313157553484642352743752766374567245756437137768273124811328725885556364282873318226457461272728444831657542722465326224588781575527576628725231488524187821126532625557472835612171714121146851412714524473113411135226845155142441324426445811885658481767184642563138652211188657612743377846335777231816434374718742115117246743161831177878785241128744646156231475271617578452163627817775886653528232285186727887671738778515724142542365185276144177274845376117688428142151786654184477584538767241186648182675778327851647575661848152677658385448316228244627466454518584263842568835848485787742228232328874613576562441244115357146562776752156215786711313213622251133883212411235248463668234562643772734141522738413722157518441846361625713781738856165827213774586285524737381376331312221254884418285212435526135486627663133524481714716258166723823813827412866831287524318262388615888177274372287776827743137171874767135583855218147214877378747156155223251248734687161182347778361132214318622176267626482672766775345853175828426134183545748268315827568881632347686668217714434425264471767711386128324271356636854525643746133548574411736462878615784124672355166273257511272831853617554347183861626786454518762668664271786741457865888733676477833682613651381544218157621675681278762311667441471312367213178124333638788726617131138253716343186722876533367652252476852551357715612876822468613734678831614751446584847478452815345753141282166414323672218715114565775766755685172266133835316255626471538888185665324825478461647422626244152551721417784686157415483222282522174182833121461683452852752428211162848147712534127268516168161157461413343443182126612788457782517431581654883148614355384242752765621846688417573166621178885121282884635137236588614685563137662573736736886484663572225465857774521538771863124143156282735534165742782557263733387743517517457258831547451745237748465871511128766717456145632287616277581512111167783735218837675121473142665451723686374215421821814786717651162853416818326312588367361142217761556148245783755627276832524365463574667573311123651885442527684682742473186585684532155834456852265118363428526456831755874685782711432758716857716585541671364216461555844857124687655461878418536826382716872425423845885757188665655143721715362476375261371486574427766471666847271378452443753661331155238625735378427426864178358344542685136761466865445473173881676161542263621631286755832261441174868154276667572627527822423543867317288445213876647144855163762641731588265455884535755617561855582724367311266534138482847741813832551332374314377571233744734561243811546723853782433882582416726624477188473854228421832855664487331681123746856612774326163477787315832553864435164122614718634745447132332117176867485178833876411351385786772528821487387345755783343746257446367188726173345216237128611676723164321211787387777422125852844212331368588483137264557573583835516723831816637787856352612868337617614348371532465764381433354478145751876617442638688772188681518573844613633521525748243775411762468485568786551528821221783533334832441873261387754544657834355188148268412673123481316315461573684541365774745565276224477362717612871337222831825657468644856443254576772865451277881451281733377583777784547114188543322776766282486751485555812436352732421643451665845487626128226121686522443553717736441734366267472175128362288443783274813556386385637771556525681142723225164313853748157532545682742855171128681161756152768114524877737141483237718663654235238135758456443221816614153517778488452477338366255631767532634835557673668286652556625583753617461241634752453642627117517482741117351383144741748166364622556734735453425785173344484261142841313684547413874687217141433473417658577418484521671287254411464714425336276747655427837684231154728378272117156456466522727373673223284126281625658114438778468842238283864363388158314154322827237185655147641641413532573271554528128826543136875616188867538248255143565331286176445261513544138231268143865548226181787186153836343217341654448163133656676425425866282762154463541324784841733516521383622162781276474721258277865781683687141136462244811761188884623645275345377223866288228124613686188227142712548642862351616675573747878764274333228375785814261282367585871851258227287751724345118777261875254471382355847152726413865377372121515868825118542182612223436543433886858737774148548153867687241227337373486638617274288586853417867632267286828444217227646873617547424846565817612152543837615863172232335688144362552461738515416454734377321358766688711358873841561474384812314474876627522626332114472158835665261241178382132445633443547537586548727473248123318143844251538531818845817376288717737713353375826575724778633415645681668457477865578443425856842842442563374372788782663155763434683756246321822625744775422544171843826643423668115358673652265172761121662567457386878633154873755313565553243532357562275743648267878478527741574112842226173441147723671466774231665316753454227141441121523223156167125122522576166678776317626512211544683141244671221871888612722888357766888278861874231488338154833557636888868342216334783147458632884762361683382127763622447488461182168511736163884452886758835164155385876556687636534341728571178733246848874778424371434187188341447433247458886288848255114658616764718225432426337461161281666134842351227155743367871514435431125547225261236622374341251413672346656346247674766346422662136555686726863855841884786137477442212153538287524828115145383226778713428831215317168261664824218317261437358471826258273551147466486861577432148813211441611218281453117167235321224738126126154211674384266517551762131878315333281268882172712572611544885262845886711667416718234445351771412323826314615361163113346426278122274751853747712836574248456382713624327631651655887717615425642676218561776547264883833763768733475653457128858156743643814582184334842246255888515117141812574351322871477547223212171226867456185136411416345862475656447862487137488215723511876144476168188274263445612153758167686577662823185623817211767562523451147318235725753636543687282136723186417337154154465283354564674856184311313581841221547747835753734716275586231622434254371766248776327513774838752745547487232234223622831858448446556718632756586573368452524157477286213442577426112137444847667223488861247518757864746628474187612555822568335338766328733858573516788864816736386764833123226114228872535782211238161672864846815177486862351144576351166312741314338334335818475741352432386521626532373183251225514135811121545375456874253137538285214227268467624441655843245856621814887651873628581282636235436762482581224267781676341171715214367586651111762513166546518413727523231414826345367417811276667827528385241746528187484213385326446327314138764412587112655171754485874772648411425522781141217346112387314388533111535484117312441683228425528247818447514877622424378664331214133744387646156277131625514338131722752755144482341431175388238631423535145125526576285371578456121865412455284318615351153243822223245385484564274631114538682268736473368384253814643412526337567113223815651723635211738743277233525784876731123374385257818445341183285883737375622155322546576158552478416638381465663127748744161562672171776581647353171667645573784632242113322424815414854213586864561745423737634178774254513318711323556268143635815646241724285682575774554417256881612264247282833444878635144734314265222225153541241382611675673553656736288882768711326824366735821234487442685344183631481355117885716181637851751866448883215214254611775422872882611145265317687212463523765536652141274563216214577245536354474114338686582714642334255173833227536782642311746277846627245221765665126454771324425367547742824615262768633258241638326873615687174251176851455161146644823215425517185133647834348552873232478658376437636442638785171215436334152144288148533862843583811472522766312475188353358823542686757365543354574571238723537456176114662652171666162862346374386141273331766523635362346444433344243334172757275556621612767158676148813774648833871767467177171211471211468446756881418144546885443656563537631377282251618862115228665521166536368573215613164463123216317846252318547614865521667642224786841156673562234834354453167771262868217415448262366225222528385321142336764443525247717278828422113563365643442227453833883764155641426236482642867361755236521381326854265341481751863161885434821824748575442632571566448463617151285865151154877617145262873135875273544326587545143424824814681133423378143476457355427585127818334722325377286445672422573466837288817463827434137332114762325268887743437461354388136333226315843466217545714575863877431673355726548577652216138681456185684161553278425575881477266683273332123227686634622117618741425564177244156762538163854423861616735888138265285132556621837577737715562777784636846831773837657241274261741225728823784717436785812575686133658616862117332277341717462556516661561145511333137513665786421647232855541546264452652816354742714423315641255381432458841233136435484553775853645641631133376338868772321737154385445365823231552558578437621147472537681726164324535551515878481564881158218181727882816572116616883571572472182836683361687481228256188327618834166651771222484162535675127731112885616688121484284543241473325444645467316475524423668827158567815342582668634355654111213638517183233458375658358442782355241272527618445865788227828425827133254335768544113325166846264687336263664572624282358286443888758258341215226288741442527831583421512528572624537168865562422745378336221256314212122777184384258457882646528837562223587454674748457285741211382518156816545842545584572385855617547226646558253786472443442371158534137875564172522264554723383624624731856336144745867786668563128412381475748556712474816366336473147424178345865534814732441615664465333672756161368841534714343633134364226455152478883756362871427752283342647285628165736372111618686285782487585447562433321682677723387576351638511162175816357215812351718347861626451643731643245778151711636417752528253426424242152856378134648711566462557558248312278683767573222681844376752441542285773832113883738267151323517447346664421263825464338828283175858448211645131513433511454362446574844816526843377676776254646368144468622241854126568387843761836576817234276121326544232263465156831445182251662222524866577331771327544732658286268564211487323816353837571313574176886232636522833346738855728423242431112522446323117847334725341857175147118736242848122362236438737361382261848682627137721452861665338144753572184676676163771241566521113851477265782135254362645568288714772588668677575436681752337717287875621131686767672441655825485474368727617554674814648745221431537858673615284367421627848681463533758117585113252548561242187371685666762678471246718382554158381773857118656835242346334814566236537681253865183754873481818587577732264568561187865717222753177158375771863441853735321357521184738816487276384877113562317187816312613254245631287472112541678787774138843712665875181843483287662636512236164111648665826877771117481525114862417145125331386178435665866121478175452656215355235172483524215238182682734272311211324652456722783857453284738734347767555155283757516713757656228158143542816366143558151755275438376473275463254751113152366142223248176856116481454177348324745643472116867422518331675742586154686181387614613821886882648612251116463784712714813684768835883858577211418465773143518218563815243373684554336142283836126825348432622478517868235441121773662671452643411436664667632777875262737351575214837241513854428582688144615711424885151326228784862135214734872415263235363748844644651813752454524528255855636632123224452267212673667524348151714184525543724473367614113282357423731442412384477156132151851223676771163383118341877862216461266677624782125456188126352845316527147565445744227563322248117367324624527454817558871638185836251875672587776341427351788182623838413565774183244248634322261775222136736352687648565547733546775626327723128241454426556438663555286141677852135884461476258746263714888816577671843666381412833253732686621148216515612267261487846411776511224617338635242351375161724516468383124845786422621223813817773855456525266387223656124555368658368682512877251336458614584145351765776544232686821716863848324778333558838721621222348376335517411644126314174766786624228328232188332364417815751815682337326682816424182634654883613883576265728775645524732658384112586451125284471344512561223737287355678432187212452841244178313284323423113165687826685214844876637427888151321535556288226274463722511268885722232457288483252152343361573435863423364112656228623343763677744156431153742245325825813825388454221356671212247724757737838865451783167363632838552813647266161727243172886728136558665668421837587556616146461352646185563473272366676286667835255411624325177628885244674128535631717331248324374248388376742475721743262141226824211563765488612855571435678732467463883842883341511181574634368133326744441373477418757786474464648383125431813255446216173284788845733378838588563666436874663417881626216867431565538612165118213575547658166283415748158776241663284341643376285343186157355175821785281336767432467686771636572332122455175277364252747611331445286825225622288835353244366154585281432372578887382641717447775538757627747817333326218654451463622225575476552536235262566424525812711112674243313754267232275281545268464675373352363847321544766148514788484135735122276166273838436627275128371255642821318424515286743281243147128453218861553476411731777543833884184231384262271827148574444416548682557182626582166451284515567217836342762538875221541156636678311565853621272784418648574847558567613222781463144667246823781273414167621225328237774578157316836322866575331556153514711546813426672714236623875622288113624388812748172415341785466111275755751451535666627884171167283215568457676751634348561613233853341745337765173231231781531447721336174772641254342226583343572843368474676458384343128451276654541422514855526668787434154874262642526613382756114124381116136751473413512421115724423134222136542327618271662622234586156348132166456736587776823517572571567736718416441834888663568464257461246465644661456487347316521681616225686342241212161876157744276772467513215812834118568742284464523633528385664688221556444151778386235247347653455131117527761185342673875342222612334855321331683342433175523414771344647338678418873456872511876758443171542378456755661335471772842125357856455178176128883834218571582614275334138156271773656374262254487642776113361661712448314733376454721147558187884887316445635887388282584847725262674564375136322264438253785568475364538576415512167347162432426655272748428288118162357232116857738551774518231655484586336832121676618276435522717676333721571856825671574488446673421716633868132222656672326435583724782745827465532524555412441446514454266663346262117585472327772773824385562657824553378254814235252223776623228717666844655347534242483283436271182712133874553252652838358778575835536163641538547854887356751837688356563467584275331346484647556834382353632722735777264686512116642131517127757246272367145815712528273738474363611825131734471155266664118773555844336278832877153276788588163873426755374738825454575421213515621217545467765284758816686236731425647557746458431383314154314272823622376488138241562243662812243124727542538341847263673871541223175511835538784666833513461844562854133115233716348215268544315545667343754375644251166137726325772448418321434122874244531158383564643458348134628487586331811581486583448447256361661465538535614854467781852544257771526636265652286658445223773821763273226358884372514417376223663385786261765253721871644236655488527756221236425686542162538664868368163542261617237476824177163426518212173137447651323787476212444441326168476671648773176657114528442458223464223353357764673848868368548718568241278628421887375586675477412411837254327763871825452871835767667346318484582754664733233244165328111528677677132186186274272176136586242227674555883836425711583238766135718861834622163365755118827587267551713247578347614511225581657783437352155686674372877237142518425478731627142272131587823635872417578653323888182861416455865627812212648871721312644136833884341477173128367764681576174733127357271632121817232276586182866754324216864777524758858842432323564668871646732142634464231218367282716152177313226231778477661131666455622311117846554665537563117253223671433214153753464554752227348145118276155131152635856546858751118356457572618586341636838246122838362842865841664168657338785483372426657766234654136474861418117126477645335336761732268523456485357455163638151653676333257382635144224458427434787351821213548382375457321163716657628281347266573664554226423425131421544644132247424888683175352568711152621281751617766727441617556251674354854547431213862247586582846558688521577266857486417116531155314623284477682562611478614522465667553327771881576138485656253837421568585488234568247665288323537751316715177232667274168264783476311653425487287288517825375658382785356458481584778564687626384421286662734781242711824327766313314783545474865338843256433143346518772365667287114614126264662716655166141577433358177664215554536618858371638437512473514778442671251827836754821164374876678615182818735252322748448412178212815281747666561715474712672878611238484527275172531564471734228228216472872644636243221542481875533566131663476242588214574642231254461854544268733484426745381356171482517345748567381162366155377538587457478657827518582857612566311247714127727455383113883828732141584743567635668884777552371366548853558343568188434525355347115376255747514656287424226384251137141458814715356118645263521788875858614187444552263646252514543353416228874277733861862285357754857873856827433524258271816187616653746811542127145332128248745276758451146731416672357618234837344315516753628432127424432871712157255783153667623467248241812745182554782733721447265747867632181735774618423632532164284651382253441855687312425867331631812352445337348845263557625511371873326263657487425322572838285114265856821175555837834132674586664615671853578318355623775776462653184627247218626224877112343234434351367375746548556546178731372814125458423873467133477677431171241162336743327487831488637148276354882545351343115515646442653151451525837716428517621283266837767433241318336174437283261548224157582173887131467136466538877843787534355752311227465332562333744612553686545142471213832825535452277581847822746822357184856773234423256235131173751174745267382168582116252421878548848876433464141267222675248458382137878458553863858642671112677452716641318354336348177171824171115623523267788823628534457358416447566872872374245486278265225344526742686546568514383243414837387245287571715737348575672612664234116241311456323363517574385758124381443747538612736586448213838353247573616722382411721527183388481456731488174578766157886888381478651146215621658333132572526345482384784765557438874786574841548428252284447835864676238643334125447353378553888378158377533824221686848886247532853628336851541327563658513583181548883112146271575467268436438718542481586367334617178278861536856883133356316154184875442411867566377813537874213581666223377548661617887416732428316548886625865631888228815646417163873548663648284418786226272621761742436762245342446321623731681178256778788832137461468275821831216826418166642541834186638757582472873375355282133721878742168577648145638674228188675452325541133425874548621385638326646814821854637181731457156285531453535255544384483881552274756574731121642354477265332654213264125857855351782316852831127256565763157883563537262561166656672553335362143324732847553546554661763121516577255715528627336813885773666718825854756682534516451468632364136524815864325254574584171178865737826716633622773434618583352774481264465366353734883222238246624844127145621375473167758156742818187187382132567541817813133838378567181414243537368621636772183615168461535131148278817833325114466672485657418533472833871153411165538115285618428265235266254516852752173388384621525825514131245566155611477211348542714345745546184158311358413457624433828637673476162373416718684716312878232844252757615553681852714616314111464565566375351586214451465178333357661771386436243626725651527512713323258682436871781237285568658534885677853463685248615672723283812813846682152523746453213562818213752425447587853638388211157156475468417385376687547584242372664658374486438437564188216834553288682124853826183487637744373142137626626864767117162557411616167128478638367352817546588677742511677387743845327236377453423471843353771478341271378741618185883113353411576172861136211633485338813367827553621134253265577461718355686732824223388354636631448512815731356721528438211268575253365114576871187111458861658724747745467131417735872118584418426634435678415566684664428817321413875544538717453156771658644632137682182275163381376183481443135462534165114322576822136147413868723751856535884362424422644881378836461167547625354217136531265732481182273164265111843568238742727642668753511556471377568723774647513716224622134554613764847726235565633634362122267383422831141328865778314818572236411118451726688482772568586238217252331326547667542312175155783516141334421671456415874432184261255746177373438823348387652145552784254538738227821877415812635124325844138727332732731124621286836137877226223372816667481273635582621366688317751562433681757822144862774532572657653674671226522772831536661487566827831458748534686638426825261263276311387222321213776248336384562524854221223188134325862558225131263166782521315624832273738753437853247713132762827433355628656423351316748658318571136457776713178714664763455214115877178361486427375686388536385483767544637472178487378872637223145213437446686773476358225337157221678775862815733172122616822246566278766438132552735556236242717684178731117171146711527266768183658318243225678657478213674666747514181635317718216585778538325233732186881428537586442528366314287731143457744635274715675783425448411821786151573286573484785427475133676178147546816415534353217268447632217885444734734673365174787465528385884342557645828541128721155178317533883185568641578616552627861656248267221358612417251878554613211747585354187517753368236218416773511211472666428152371646132618581617743621432342681463723124342717675451838433488678881468535277648148864232628414627677412254386565524757535875315235484421487332136823525275234751446161483737428413233244488764652451271881641647423671134228817156218817551316441764155683762612585882381533621478252775638243322256267847547235578287817252686856237371546645125282458137518414426853826472554861156866341428578874545467772831864471265785442826578836547647743786585338336877841245583575117276532575311614454424331288662841415448727137372155153485565182542168516467855213266667188634183825874742841885145886334422117267274213854861288253852137486888583518352443675318275331334137621368114537752285234381527835887711181533365513283531162654244358616535861264415265777323518676757347783762323484848627328742335658255756172754363875326364815173872841433843226773262436623481537838461645153511452766231858227833556646362686421482874167683458318722658456847362258771666347748145715156454724472147531558546314186333745337643165764764385287717861621728651522837465548351661865828815235855227152247441421181673683715578852738877644813478458586544826464533381371352517234321781374366174451177165643748213617738247421346642325427445234262688332162377315454435114821228388451312167222421835372326625422668551776162618544865365883342146271754863172847312611585467745872778776148267177625816383236156178167888322256515748326355113264137258611786342742226825178883187885871561321352428731561113116536451485253772635845242633225363363488385683516164863265845662828758523562372143154863348425254222337376713472834365268135782523165472726488433887848455156862364412684143351542511584311473636144172542153168313127271343832135254238274386238515246475213713334733313774337646181344653877425224528213813732641874375575523511612748318184777725574443524265826122561275213457412573416746521432644246452662246174464623667346545384361873216728252242178268124888357847285886635132453352831786543565612687833586545776276135856513267773376414161868781775846635583278185823882777881313557588227378551581577233612764246186745665823563237772288545565832382137455772884565871834638611481338577477218668482272851757651218812582514453738852567143675621352321767743711735182487751652648417633158457724475364283765636473544362852345313624267477748828845371627475624782834252372241214633454836325855437768528618266728555785335226646261886544258751244818287476446365781323286284174185861377764363568517747447158317143263456111642327857657633232866415125748376556577684312674172686252824122566751558242311414867717414334874587258257683343225423671671672124354287464828628474544238144878836221725637878312671141481258857225672678676226741474633675164761767748442727318213531882447436474558323227673663555768348828733613817341488234886158444328746424778314728127346137754338347684126256144672382586581856832427688853826342132317674357833481868275527781515511728378234553522551636734178248725764688421478762565863527454524635883171211211662745853128581584856836743452278117322571346688354683148362688163532654721726135288733527246368634523815351884768431618588145132264174486737323727875452671744211481385816411386726284578841156366287555534586446558787573314458131822361533141286632135375752284457688575233476588286254533472358771731538587425135283724458271685746434661652482738662558524825327763146376516525621454773355622372614547788775245814283278375752757547821456781581568188241583367788211552555687775377822658555871284487417537622831728685866626734748584245824625438126521116337585856175354124553626627581857487382361325582734264573886741273887281382126264382541422744466378142416731173585761667373178622812115165533136483623575863111347137632422772337422724384732674232461637715641222621454536817844435536682257774515577624634644212354231665731387114251543653637264548562822247813171544657554537855554242173723265658111162772676656888332663383251657261357528227481278367574837173468546551681384288623315343361246635284284842135637222618382658326264786466252212487144751118525817115284234631541126747264822758486182182615572544335627226721138645288841216674481841855344661851441365227274518443678387137767316675273278123521562621166334813514345471343826174887881724456537555176672546175612728713678214453154748443631565231726722212847838346757368822452355765458664727437336515715357772366618767644747117718226325771114886582642145533111862315776532764578237523644187124718274247775224827522512371837144688185163318161376635314623627833343413313512223263883263426341663458544721361427611765151452763852842436638336886161725361171748462881657562715352884236624215786743657667725411445254166643876635765857371567412868318215316583481148815761226585426784578527571144477456578683535858222537465217675448256712842332144517475284521268645311568874571185233551644244725258643367363861424388357378661218355138416245742486318531531848377861651517265812544831267442751783114345454387854635524252733847766441777423781553886724652571513861771385482432744851253556412351774523272832642757266633172746413744263354722286536844764883421181631347331475612516626778761648854373455771557664212714216724461333463546185287722822876166121452531436618254447513542811645158342344275845631356633575517861552714688373431676151745888182424844358667621446742237835148227383827687358426831625437156875176156368838572836543853415114686418765827155242353135411681175326558814443171214478678536247348352785737175244585775718813227353176737415687315674175122824231223646318588356317264427211827878715745468256458326415428465324562557121743484818738714363518283535656882836168536186832168418415237821185233136288583874556421658621544118335225487312151664253655588884656436253267232422578187721427624243256234157282613626518466386225432163672477477388232473453385877248214476215248368777573238426158741331188253686724321825272251663442587421343374217636251815312418352732766261747633313273223881786588328278426823782155485125168452128343647738282677768724225214734535322666837564213441882646486821115757183112134178741831628883265733571654174345421131432564614456443556626473272831765427447583378472526311147515425564414155735181152148874521874647841361618445358732285466328744632214853246721767876482813714331157354648128137161714772412371563738622122652742472374547526771562716832144748818183672537725376561458864126732538138686881688786131421647225228435163675783131515423452812334884246754825518653723518621448425625624521116848338624753672726272754452828348614533854445133116742146146273785268185113117575665341761342728122261617652822565828566548227753421544412783214356434773328282864816226553117355785424485272247226412874886486642433664336514446548547763682548874881466583872635874166356547531583226472827265234841552777268765642255724866111773635258144155178281816767532181282856215628438257467836664827174688622223356346626222822425832457726552858623552354273843834346538676228313852412256753326268755845873185658856375472618141723347172768337434411362315228116185387345466537188524574248177146568382635433468613631226185642773351231811158225636143365475141627286734768383651414431884646621285245778316315687762246283428823685462157343358431557272743745742336263437661845163735221323782744318235635546838676651878274222354716221178465512837835111312768586431131678844418668886817681225672863518284318367448375124588246125287378634161261534368537467286536886228457514241153588285528443113131867826545632461831835342437281142154185256861538626661826563818388485487252668281227854423534816157661616388266834442671824217257535487187254878565655177538255882257148711655687846112882356327543663444341562113126332313141825378377772384231375443378344567225434467817212214373282578561375255723866576556258762286776787146175435331361482756723611178134862434565533137637325384565176687273281265387352382685484343651632843161533183734117875453553745357847532687414251875237851884657426725158413756518577725873337667163172677753276111641345166611265176275411252671243185644283152155577637883752884548451526832367354551677367431865277567328622624648587642477127126874647673122822577272866555465661427243548332587427442622765511427822582776775125778432254463516575848665527184635312235858723861518753263746113651158821211886351515624286486826646741312826715228548851561482121126777853446338123567621715661462431166545253775338565652628432464617837277528674558545166285554626715666146667741355174336481551655858773272184474456462474551878183815546832263766513821215324883336161633374611235452322272125634688218851184658266245751324253136453824151473474872418531333154133263585852874181755658225857556365547411687264736255676582114518378218685725311543554173487781324775344616471857164658331367343787166722173828325428225573734521656482147881534584144131672223788277268522212781386112687165773256485884252885644647385187332161514683817177157858178284222431748381261415244725445727126231277463725836832212813212886237587257722882564186871684552674811423273883348558421744588286517762325425246631385548211838237872542775518117746847222742588371826182722315413672811755577128241781326335657286442225246613882241354141656323647713652361262472878445835426544863623842562383155276173161168422371133114631376243745644364445235517411111281611371574432127751333658831572132823151673653473528721262828783283648214185342565348226657233764344738487314438254663128213415332842382245183885467144548555221642778232766788613861767214646785274425887571441534362582368344175233828463467411176861147221683621534846275717758487341858552461441348263232251178848316528117281475125534581725566571767534328331783521143275713434635124768572822411334266462512676435753777861871587457568321717872746877181552775762438833765175153476367148611621171686572221583677278462182557437136475726721865146252127335383882464242735344213247267263614266412411282715567343588172666376754668237324674552566364217628424671837828713211475328458721134861627588522576523142883615714166458155636722327831237225534545268356848167777784478687143835651782511173531434746253371245315128631285173311624183238117815182538681488676662873416466127585683762377141241357138517752518458224278271364718871756351727531161522714577754653771355454315682841187631382568357482266335178865481225137414388817314612478421661121584215313552284135748164343424543768127577345723147773364835728528638478778675543314868345812242254462222468314748434134448284245583248216417413252434674456418381274312361235475126487435673887582265581374143465437485283381184282544525546172571158818342152557484871743555811271656761166357686418438116376123731248372683162466444543763821241677148771766273556485435636227464745248882243661271647836338413432284835322386446628262264727125478284662633275464747818668236877773773447741323581426665886715432631225255658272377578543685222275364125751665244146573463738632741662435864643447565422263241641468751415368622321516816741533864358832842533768182157837224526546515135611732845274266145316357518143152225737657234447855376646251382383756247174633263282732373684265162717761354728544476275131668734212728461451155341243512275224617568378723288358862276858836846156443334783578641487481754852823434486566477658683433552125418374657365417766226334753354425348555855446612256454432124168671326714757157114437225746484772246112224215831434735481667687857264668146877172733874387857565855136422786833431374617573422542437882156818387182325337715872645628516115167821426812175178473674863276618373366216467443432237273744467346414652565767172185677616767634785231117545686521673841215261227837182125217626434747488857255657465311566112588137774324743238852811517816338468264662754311512156327112117222532454158233421713364862348836436721125454443413646248225765784517257838627688561468353273165842612885272552153722128523873545315632413225567455871748632441372155443642718314325356877331223784766442757141163575612264377745514373154527315275753728254522612811128818285167645448223554428161134722885783451182248726543738143764758451657674263368675422843165186624817177851115247855615558365217586516334562434451561525612284681815634842123368124826117438456174825226751166772342158462518518542472565686556214357813512454785882335876411648452138214282227778251513436413126615564416837725248418284764525747716164632643846518448688446578816658223363261131611236788233851244256665338857218618371616441574226737182662432657277272811778358186163633525836566817835236574761828256634114632851754383182228316374683648872428542531814558628131836413352271738726657635726462641852223275517464614732618856348433424436675621518568555781887671632481418167227863365618751241541181685252146838123235144574852364575263535553211364635411364157351776838422823356557866483885611342251254847666727373346322425787767648638126325848454461558823711562651212833787526528636736648825611271382555881374474141751114281245777113255282512112742414372556773547358566361555578644846624343813288416448138358761745124853571382628518322317822142513676758387437782474611866222647324734868758551521466647271571613625836755741767576211532473348417113552213765651547824763453727661278678532473785761211758312331118158868543546167667414224455721353452422647825848724863485864275746382318658233643436364123728186414813412747374123725534568841434762821176485488411546846286758536178811587622881486635745158765187785414661114226665385781576437361812851283166761486277415513641868527771363526331833557161237813517662233458117254436831838453387284478285181716748238782336167633151434185531118877352742383857251164237437667171137867778322513777345524153638567661263337637581517642151111541878166475248333642531744121186646218123456182137754666247463245588821612378512532861413187868836626872778678748152333882326283641641165631714152132533188828437186761335428617465347526286284265382677154822585422288661157166373642236522438284612145255514415867422846627237484641283546815268733574178736563512211871513728463113215111886636762813628446258243652523886771485857332858175825181372766454668631366712563241173844173225466566224427517416587713511376434646581282824534543526325278334654216588677265155338331346157836777715767476512734712747251226832836677338868261576162366867644656774487243268353386136117841355122353824772823278611266318142526348751412576158877371274757734342673225853784275832352241841382377111452733548872385171357144352175125471546111666452838657664628722672728842531445235842748844456255281341573623655278727223276844264473151133733367421537476781281278737628581537537814655314467628322372632781611651165367168236416482137316465147867421848553681524883838275577477545461261311473744771216125532627824418222632743324466633475562242312274127521788323768473326866547382744275545557734176478147878462626343351253153458232864851363275278256571814776232215723884811132834863825763324264178331525631122544312555726714772648272341158145186771848415225652887451742761733673685371358576837316635577482814576853515613514171266265833662531212723368748623831455144525246225664278748285823868248145847343175433388163477681125726717251745863535387815387652187816368357688152471776231246416838382562741786816717886524776618434674418754755277452573486241261138121176276737162458462527531223258271527732453432264613352255777641428455176761778882328417871632681322485733155486837236438771625765364118114871884863283466178526281658448272352632756544238784367364646126332861612872123723872537271671647334276475521521226575733745833433878213727357825436843833811728817188771875473258737476155485365713832858326538181443246424755623642285484741252431535288815621876665375216436872384311228433866116231684471312832483411885718643668621683281125783236173834121347675886585357176451312332773662425882483131726518353335148274612841775426228427625635563874638188352823213763566325378534356458541125443857386123313132785617511267562855825368128333761646547153464256866164442781443875154332778682564453421474354688344453238658771816581758772757574442764487833715867141612155583425274286844722647235517581316817575338786375628583844767115371885167471245145561116612445721718825527155823415174474448645358186411544384156181774855334617611133627314374685652484248463375212573184887817551572112134535313846126881631172182617754338762248667188547714711247827362885558571422874823827158231215563373346648336566886262525136423853385575828513168535452842771268683424135237187833732121853576865856372221337464112487661288757235377838877738811758557861688753864877566214434845672535735434123487326454823521146877455766853746742382544177141364318285746232441152275358173132436512762751133664353558318878822512673157745185675652636257588262417746231275481834778464866222216142168563776877481324478486735382422873485773868138526261446378152684663815745387548657162385882835327644485848427841242235467335882312724211733314123285583868341766443431564561486121482542512462648212766755446447586284852415783455822874856587236153147762875256451621667343338542143782136361323236173518575686644483463648435133786377641781856733712254265842515615166725238233128136566632857547253111585615573833625237578335448321715188374545864738712153717466158877225783217454123446755337175546625476225583816661265241852611338386338278345616174371347713325751377632538654483724624474663731746137342483826558482661142628333412871635116174622823135835867332435531364258777554745127214852758431358524876482348625118376777534248224275644885763851743813423651517233556178846827238588837862514858875766578628383645363612755114435563715624137123435334284152554414137314573353527747652174547352566485722628575258817116784686768251258888418324683138665448761828583545773751473631422288334347387153228252482433271751832775834235814621286762756327746783145547142682544428626586828383781825451552751324823383772175175582122531851876311556575712636333488587674762658231436286373418127485643888547818167122132671147114133224488617628471118751116858823773328757436123424551563515216558266255588224636528721734118124874225227866354551318113276553515361138658557157878867628612256314821352575162821774247458176752748536348678285768374741166332366182642665141254831831513718766753714486736451737737113444153285536236763838443225844852456276186135436516286423241855433117348884127362222351358541416718836156355145677743826827381457536128886312326353786844136535118286572727463176763882414131341724838624786353784184616758421257325836865783171134748426211257533375575443147621567854164387721128738888351878482881782737337423714822114516846721354151752545883566441652853384427657357335741864636761756784382242113144828173883183311533786422332866668675118656175653818616523863255248488281543368174137583148731517386126672248576883731137753725265661253848562346375158753638677622475775465465325551275383664218358454258463833466757561646846847528153232621633782242256117724163121831286277487483168272824857187267257663446363767126283237277222788314648713538353625126474183374556826516583633445526478144511465145158131382763477183463715666473577528574516323421556768881886542664644521263124426351268718846433432774645851765444868811866723753168837614213367628667465247187428386468821173643347631784723521861515221132166351536472131288137472274243733462322281718826823262547242267444535742348454263316585516111386474537356332147322384544834721482521546237832344318733515845523286863462186718717614286566223444526458248557721372561577565621871833383888622211155582178562477242745486171848837781864616557686664643273352345287737373681758318571678274371515371267361221442686365638323754342586637815226122735471378443624842185748616228675283677174616548166753168612813435248286682445241873567273818441723678547181846442354265316728773141237586722821223445564114664564561151318623323178485621114743715443867826834877614253518548718253288635685131738845676331644885435248164674871764477235533248733557558338764261864213513511675328882486356578725544425587223727857545156522832261557712274537655226283218558311225722371712581621125663775666362158742667711832725346215844367365623555158181413347818366816376566313651334235276871563863383287574784678786447337264573243188161745378256657266832866881318118728545723175618887356176748467565115454624272355286517217236284465154362667216844168886113455768262547577867223754274225473261332435622561866554682157861785684468447333323741546668267482464375515422135182555764624877815412547863585358868245652824871248567264728454271467255632522357227637751146365544647831784254185282335327175861261137157185128378736567366654462277777247826582745836285443288137751341485245144521472662273514762422118573424284568662881123775772335215574383216873531681624852712715628661772466188133877161771186516276846785516365511452513668688637314471432866867627832116683535473788286763175483411557188164541386627161827667276168553441167622285846411615384417833372423388768453461716533668437868615343148533635132724772858645746325461158248788343372633157535786173417676731422368441154264212532114173264771768815574787481243263678858344218128714151368821542562573234622242371727347426366756156564123174381571886624215853114813313522886551263471531188527881882384336648731664547466453371421518286525517441888625281816148152227841251854378711464761634258464815466815827872746143473222255282666383481774512783243273157225587422613112432321277233262356183137121848544668843225324453383237463218268513813857465663161284328264622114332643643378747383755882478662728726267116287883632612474363523625125187656575266277684878227758176154868237656358774276372253523434381514874632562731782674652223636315826522345286432746872468668567156658784155156213877412755413421627513878684314336223466115147617456762427121632865232823118871815883153782374641127448536851558438243336217434376718166362157177855354574868375156841248474485634718662365755638663344855767514766626282123881442633342833768534634258734624582418845211516881114427481771473331132737713255658713122345231122824714312867278166461277166483261814427235566315355728468124354562124278218184611454448617738678612113157387281664376531484187483472367714472712457713668316271334532218234312671723688471638782716558578182711368252115714686166211685446144318232481281421352628653187616181657678752541821451126354785381221131316814217322115181481733643786765768751462677544417664628237633252755821514465743185677763238877431125515761615133562863188385251841642344267182767817358746526452782618578125684264355632758713623351175225658247121856372774426685873164784161652122347825417258641675756331843472617173267713165828541685365414146714421374444242335625564678358812165464416663522162435873416845746628286788516711117878335743441415485764233482726225518811471562232372324673225656585178286547661741815852286824648388756333231862227345772224641544678673236888835651138422751651856623373477268345234112765342374524643875478261886837183747613783823866586114267518852755418152511721685454544235242326514883883654271771114334412421364155886182413882472877148717673717778653655555323678514311768528412767614718162656226251754884216165411128846347171531358586521365282654182645347152358868287116478164418878425674586822853567811667254886725435213841227636367542526863731471487652688822225452534485277865332865454445117243474153248783658134848247615345822424673571861562154518885348742882641148151775682226687834881627611141354438747274311115631424664813762416482318736584786162268518834115826781424632488156738374716711718185171846285651214853434228874632315572824626464267185213477285766532718386577143424742654263475511567348784263216763112823717256431211328286736758623873711618618486547835144872846428373337382744212263817454757242677343663278136484138715864624148738482345635257737725177675215166752275337127817628645313846172362371452322845214855561776874164662253385655743573766388133421636113626614232741615116141555381754124263752144471387553385628681561882477758454688872276435472385124848222274837324173546622161453365615682636212745684568647835565782874746168458246342571371846886765858156268453573621426311861334371738628467621172547251852636758614826511572575874488135586421473837777565234716663651821476718667376814272781687383857586774816656281156257164814352627248825674236438216526544483533888818181176243571448286451723241722118113823347437385626381767156882171676565821813451886872843438431778328387547354888462837616755418488422588724887431255348442544117463334341754715863258782438851385483652827513827511838657471686744233824225842315416463563278785742234681848882464284278718316417578424578328243885515184624258357268242432448433125542532833454813354788288418678816215648652237517585633661783528866724657688841437554563418523222473346568663666624826584657427587661851114555448865176466658281813837282324513128858628832864675168117314744222225775144437761747774621465518323644723728732218735426535826434724437781817377535518516832785362146673748638747775325861743258127622851517221355343311468685324743811777446853853812152668488213117328687552448672415561121426635117381852824648536567112458384214465778347581658158353486863636381875783126554256224542484382375784222742835272584221344371433677825686673478721151481125386843723482142112384518372172686773657777344276352851348346376217631566567537581431461715365745383852565636445628647528166173886172253172758167884776777667728282817686284475851544387424287565248554458812884766615427412454184776478773665485743831883464152362444832814246773728782876765386867847673115616546317175274374311388637674873377817333783654113427868588616824158246573213371117356834136158554746523421585685424328718184472615487772577237545652544478414526787645732274642721516614621832557678344534435456545155723512363571274458748287786851287583274244171386457117848533526165435654725243687325823587675317748528655818287474875441737345121831147665735118452775884446488231571315236237666865841287723357687735241775515455716268377627812571815223133874842327785252832177756877674644358314415368867825577351225315241755323371538255163464755575613821788613634856435527462317485882556511428711822188271284583263172213515777568678213561771863826211124842317763581658227557353561386474152713872871725426263575347887573668128481313881617356583451736745648568526674185757354871633136233264852478463857223543721731336844368167661533728574632873826683117456324282382776521722612447742115837573752787575856518711665584228731227518724716224457463383232254762582738745731274385646111416813315254136331816514227778548768671625688813854368274416757373153271584417534486267583514786278785634487475475422825563777867127586311212175127776873728166282843361271315362116784324348132311686761654332723363542265463672866588145747341185837834517238745633222567444837862841761653885112684423743476552768574115633768425667861716588188452146663145436523824637623434882628731835316174411663753842773722733283778452664733753878732116337321316725864415486481323661156837424785257616325648686614215321387418518328533854715484157831766656326348258386631856143845465768522524636517246223552766128354168762225561171272836223467678658255714636371261725114113141841231444121654161876313348247334753265473417315337565237264771442214715668857357143572845314185558234772385221813625211158826742788568321374336285845587448266221113527812853262827318467734868433758742347324215451615612885641378287316146741643483136737656714464482532783733883687674585772442815436158757866224636265373842416223531575631811125535658221423277437627485341767846683477434524573635557838218766455552168533887463811617814767534212684677146564536272843784635856313511816833882558725648782545781872154426826821528516462324321858852327585384876133243185682747586863337415632885752887865223743223347783581783365271424571172764443853858576318442317133551371673555678133213856565685587787412385141461528872368551751446831748257571437332873247325116527673352468768815215533247821481472667482842447284376511515563813755783374382623531527321177747477847733433888833638733417775853173542418353718325887878435677167756125545886832282416852584525447773886616857114774656436287776572142358852451772825585841267834743317128774255425366878164138487568643232646331562184333138278177248132768524884257358242243488816668826555485173477374217381348236273875475713778246717528842513843736186851562716351127483654146118836422558223662155374587382454424852143437628722252546165125464454612616665663481778145528353618371361538715117315225652344534347266541218188123363184768555482113536735335743776226264184655367846212523751585832712542377574755513766245182846152288832184146575768365441231312448576257134115746247533458154135341378332285264288143325524365621733455431487878382187181844173346474122588822751256457421866516643863366667266186347651678337155815458774346215233211287853173831565585122887276251387835758465788414312812751234373131465115261525823246823453362635748277238218241658638843745356143813785682718671447115247412257665673386153765746516285544721533847738524353282533333257627436723433873484554785465862226128862545422112613553131774885546667742671686156173436115184442734518417335242574262855413587178757524478881541132878884251482572724432771758735587255268741714353766127662663132544763532875444726287567782584238644127444515438378333425348743787368142774335815116643561246166758426551233572125528712435362214247722645325228133526615144817774767424674826762341273832772468738126671253432455862371588564746188865844653821286282442155281434641686668576861667637746678257763454611833154225143824274478268561488142687555567267524362641872816467742326472178117224647425448747722565278125263612481718458588484356348122347546352815427113568841871224126474484854658148871867844877286246133545348854326146857471516511326215535754343811584122215282175762684237842151365744856141786517823643627532153243773511573822685267254131416513125783516347266343821874376447424667168175181288642875627724466766266648164254472521438512616761731364884454672717251273774314426437274772275822318463251632648841822776254321467365241388254834828454357738418456316844343546363835377337763873717814324252681552245731151417752422426382841653583335787273351818377158154356863388484655334366234611817216428712741883463427455751237622763276452615414616535534463636846354337578588744386678412643234865726671885854583451457678486346744476714785116388133353364757172828645635786684253443517648172258182816521822231225758712318277252352442665775851754855381442277752616528884314682436543878451166145763515817564822457334568445517122553155632771787652222577446261633348172775732541427475358587757266861773525632366248373828312467158244463671154532877186757866312126272127655885223835881543447128885774273263574355634687243588848124472648545314648248441131845448461222372561866622853313615581271674457646211853431784222415224413465777458262435654174672322718551886581476441562657586642511135572348242136753672215446186774582546884485112136632771611453126742523582532853666873485456257351487747451351154578733881364727378684362645145544153748185446168834118285717215825638826138255845222844611773646823656513436245767826626338162275146868868385868216266562424487321116853371771182143656874624532622815342265868855236232135173632483142128887715488275641252518768125624411154626762175868855817156462437678155644523725254276114473486746444388663165422138458563556817217656613528123885484565846343552877547132875567417265471745883741654738747516775336358422627716773816267354655745242544373441123762524228424381163346673551451323717115113827833765168535322331126786174126126626488815265744633532764825148281763521881837271262735328378282762444637773545466238114468677874322745557583453478876418313641352875768232658153588586387545135314343236276382137138861225446557157618613475478464126538488437481321111378143116283122285723731537472554644678423677365442123648516663158715631615833143285273588878346442771213363482757271375545742722446687323124317237617537176235786678277175424742572123866752655438171562822624457438613254342828314236736238771374281143471816835181152682781124677848314866167432633881856611784688711456263855315287864112781811781154625866456165232456752672473843821385453448847473351542176858658442233832463881535653348876388774863355378477537458588533767822585846843362526126141235226311368228434636774124812173436433815221153133483445348588123868864267248722425128647823386674283552741588856362441878712271163358438263155128818757366866321681668388163128872772332771832175125814172652517855152366325256336645751723181414716726581582214785163517855431422568468811844232675256185426581358817274454781831482371188856287125232141354863375167813126165155253868182323242282581858864624612827623226213272618727864635181616272815364327358762364247143672761122445278815544835584214166884283783484483152485264454446483588677177422456527266721447224483413537841523523744371871136651816414485374352371543526642871113773648565716362261361444616637286742516517234874881525247552575857167627818188246258877456546113458136378331763217163154245465884314137237322218773842265761538748677473837584533246247768834321435171388111247628476641653325665683822128776277622378844761814568543767682677566683525816344747715578525127218425478414338588538176458162721121387617584463428228562675158638148511711543576753465523256264846616283343175185477385358267131716721135815758265627635234851458151887183875652177527214124466467272585267881725338527613435726346171555177837141146154314466846618735373745748512862248278817575232517268864768354666528854182632385875821617357315527814586223687153582422757444626632668676568575318347836135373731877445533778348315625162684513246136351256424731788684711675754657454512236214622312158535385718618187553771247627271227462538128881627868578877823575564225283342466665581326633543341347471783884783148536884248516165378415136275521451373585145872361854833361784166628724334758612364561712632761723245576552514516326312218212126728525573265176178212255844437515544616645253241533643636832788153618125165452731675847436651256756315121314717538557668864367282244863756532648225818575675171772826382461262646284522818638812552625837451235183423474531434125428524467177327822147338882323776887424875652355123836535338361235573326414361487567682552816286478558777521154141472118551737348812473471883557183361417561253476868254555823725831381228684415235878787238861383617613673484288581387876815552373543434334761516814463535272165612281332787853656783417724846867137312367223526223151374667337623556515627882315466251583157246773473881227546764882737575181656432836415814321518558772313616473517742544646862478388477631242242166185744477755464747433224777728476115856483648115371717778364488322181816325138816462721267831842655676557433432556356416223381731158162842643387768864543415221846168881338227885353627126817327751834764776674776366758772764311565337877572436458872181757762637678487228735434252132887383886413418338824421785343381663423585535656371273312848661238441352653828521768881443168252612887856518278831747532524416771766864815157246252547234431328152363671742672365216685722874771336872327353375661346846732555551214588131133888318857783823638676335148176865636312847661716234774374162451676757522736751772387755326361461614845121318585722813528247555881621275728878537276364875226185315163572112577173286638828435462561147837661178654813133265281346228837238657366744666885554375348444336668785452263736624485725617437687868553456515776233878434342357177786123111812284382821571144767623723815228257413571632788374223125237822881762838723143277455464415766883268722432212145882163141441446434882375481882241628611816783256877876665811274448423411575528472347637854738727876865753767164627767242426724555331733645368343657332241244845424156864124278577358854766122816121542858784656162857181256188221428728331836212121817655632347133461876833757382283477882741311571884441421436584462834113837848875658753584728266724181364263246652526313533622158312487124122117142325646373275287851773238648818353222252318124851364152627874621616242126748747543316644147853754675673225746157861468773681328711336621548554237377884615345347334452618483557174516821388856463321318134676331164168188785127212488371552777744331181323322754572232318744281823287632747186646348534128575746151685658161273356386832434613573213333453722137276461726613656162171117613465625752568272543466342226872487725265143672167322541834628234845171521171332377143528465722783181461658285338571418415672557887735138534334462522758675361535773781382151745468453464142178278754881732438553786674663143686541322555163876537525277266156458235388613581375357615528111774882754115417454754173264814438277454186825357538554311856586816714112556552581615754768873378143811883816458188241527885248731332328337241478364342678756745113881613582148861252766865645131848244378673685333613142132466156748356156337447817881751876145353417727314875711516586874726184281785723844425356243534381767277718546143251353543211514347163647656656785441121858834735286547186642574171538881768386762364345332787525745124378482161747832387436118155543781321867687865374348724583813127234461227576653416317312556375523126333218668738883638176273275132688537484844323247213648421882166248118614234483646776774678867654135141632555842552577878365632865785122331752572816143614358611814177856681485637514578736268472518564823132845125783564874612248761662125573372827564663812843745216531348312173413652737317211744771445537285112533716241243442352244111715626344343426847875653324338772244881354312583373831831781287863517627876836746243632441547313321587876261855368537646682458517181351467337212114651686482172246156766844735261524848355765815236835745334161265761726137784227753173643633664772362424785215352751545546383844455255667124815344727818635861355612863543352832548458161414871386283783763558315617746653637355755368686285325843245471265555838353215237242627242287568653851657815143542243277621678573742215536481434388734734121276752816787584414872355487658471221378774756627154824157881867242836633683657531766225742126448278676153232445711714683363372235833382553811432836168213542371236815373621368667636173166612425517748774868176262685343228738433817763184712236568825478133747643587611275431623384854582676735233247382872336628656226161282183834621478541142863455884454548881685726278862766567556425855613173585673478277244786323115578226133155528225747147587632714415568536682722863737458282647624225341371552361627744186743123872783474657522646644164523627884426878862334883344716856757278675173713223314535867532454485134288832786746468124442751131825123673721841755622265773152237121147586582283743285727375713352138422524462314161248348318441353872184274534844761567657764548268782446586411856231466235418552227561668117347535288137637433831771558267632822566348641213874616746852816855756558626141185864388633266886648743117837717127837417261783553556882461542248131553374813534557441363565143731611555612237857437815752727658415866174135841818151664263448772227628124418566488711561124222554568714614652861684722443617461575346571145627868243166244356242238263244452725576856143373376547742146523637244236582771588834348845826311837553213126766261117262836666841381682677821231427588256373545266571347125265462267784665282538767752832416668883572837818571884162255284362778635622875682384158168635413386355363843635386183231674337434241733772735468686473257765475816846121822836185157414638581645364237238773836332713233121513888163561568445248313428561614453137784481372212482736313442743631177113756316456224576757171555174365316174176227212818278688225532452846621681862428664325452568748877244532128837514814665366627137168285542515413846224833553332518468328422445137577352548263356743484541111561767572864765718361622734847381885537455384765514465178886456883652754551123628611721414242233253185881687133428863481268356375878556823813674263833764643624543211684711854821882676375435585574568631235268667135167222517568254131775657357225288536557215276565876222373174148644726422277735276212286863455557643761662363732258864652537542145475533118785844632786168183124513331281882125158214762455671551336146767264711634368883673363512318576146515337731432242754754563484662155145175637162615554124737821785574261755871362413468766311618387311546582331782371422423421635338184257774885744857846436411635283823422817877827858532387882862188762615381728751845473226572754883474561333541718248833517417112865434241643228734287452353668761111473312214874316434663121588522855777375225377113457422213327422182788644285184363582783788635265523575176152514476182352574278582627152458316235861743831844267215654783857736237717383243574244115822236883567428272276688676463187252571763838411761478767386765735261384765682211152618536238252428853577558463122683235123387181166468858183748515851182636861233684426377756578788588453248658177866136385416633112712388478524514136583525375756354523558531835465325175631144616613462163722781447428878452215114628484714677567463664528638725581454663637845465817366284575672148574813335663386566321486447688656438284464244477375873182382748514287378271523366732367283637617561667313618522476677423543175134314728672435358535816352564828143184567722826332783232777842571651437633716335341712451417155542127617431341121323281638454133881313221677448251237614557235676824133625265415858762587134727361761533881771448648854815851857146783311752228665856776315587125172633162576863321678526422372348344622712733546524277388164725512784145331236865861651237121657332357861161887546433645671438547755855434411422827872571784685365177235135382742457223247511534565787332715311525123665681368177117444587613154758845678232316437653862146584513342384234361733873344246513178448461785461782647387177273518576348561886266831788638254464134858517166385111244384624424552345226654716122126647328765481148665358554212727487568817772817712171358547434817878687118344673878657774828424135768368717347183634716128335175876548667165856636877385621658875747176321537755881143752142587645231267786626762361812843456852387826638784122788571626512151123138557535374281378282674254523837622787137627154764546237585433531614172158583118847422872447237434133766573687245284345357327123544455525258861856618182632633686688736771371547812621253712423262672822245356477141742463775612516844267323381817422326676438774174863156384333631284833342866223323883458177287641315568213272788371854817445636662811648842784677312767613266254253424857481487858178137851375114485664381245312547715233115234458155718862736678142136338236454415584552873885567871257885741322543762231181165654882171487418676671667688611171363748271545438233374331644615361816742112682484535868742538848688243458215443543675654143487671785118437882188354753175465651166747877351112318355166333661264654538368636265846131637884116588511813812684545651843827364826755584476772787177833356565513527468178881763655878155538552657726726264681435666541632835333417628355448364862622455455668228283113774863442823351341438736222433324861775514573725121821462222475142854817513188725645534437118686734656735858461285336627527357224322287731165465288181678257435643832714532238133736258438254118728872634754837422243216846572425228725284442428877247855517368268453663836234175118556133431452168637155346124116166323176114117453757885414746466462411171386781446783788163875282714428847534463116283587651262787135358846173352817634343551554672825787317247773165141664623464733587674655123125853627724777626454354276368686563621756656342167518826412628673311666221315647513351652615636555247425535763464572372625136476345844855348648438252358588186145726662431745823254624858585675627145171766338218234232464116723433416848215736867174735661387851474244584122287565761387225678321568434555244762475113521366685736125518465524583875625735525338284183412235464637611166774836545615546773531533453716166121133455763154211111285845737174747158176428363315631562242865363348382366336641386282836433732264815472756274231117873174163335884344121223788112887366466115611787677642885244512767217872884521335623188881644784646373632551156171236314267764255733473464867511686542332167387453816453456357318271467582533381576651524878144371484753481464424258183864265456236165436558444145422766237476631144175867625385484187628372146133724777477711774347384685212468217113328561861645533182217827515234741831373172486514157677154247486281327183134286378756167635881764861128156244353358576641127538742667334476466278718256876826141861813233385716166147773137134241381216413651588438354854875332872281661572522833674631634147746237451218646387436468527584878141587732428264532442341461387358368487472376754756762286486632714753753132888538518232182215365555454116716685282465635367356583874372586662163648283746275668733764818682332633354224515161273683117618553235457333331566762243656841175766456611837371767368125354827217675416712346757172623355521842768563433122323167622817656485851461727732785116485322458221672551821132142681131346783633611731556828823733624151227271715534228874365132175627828837764444388751355537864373253656484523668148613463121466335344268567281341762877888481481422466816432154661816681674481117214222627147386816321634735832334821666362623841888672518838227218821337252243875788136613617252185742472267712412316183346321543887621372483226321175285446277878318323143617864537464482627436615615767831175345754461365631168366218516312377226187857123352754682658175641786214782142312842365625674287136717662655112863175836253258556124317781786758757613811651282861573636221443686687754788233288655728157847354237311878644116751446873284622674577644244113457757124186541525775664383217313615254468815238323225733433678271382654733215624557522578373828777823417313861457446871551672814735421556223447771244665177252651168646276827612621787587446277368564555355481252818326648388146588464274881544163275816225387456885314815321756743377518425118812573557254712637155884675263881756376348147767854841446654762457158667127332186134181615428384726868313811224154814712642281285748767153655881441646285485881776451787425143324485236774427132674743823583636241445848457363212355136384643121555464433526464421818622387454616734485856342332713184476832141188668317283581658486154165282258376815778131584361575222564455176434867223281175884612683317555627585726667153637241868484118315614477645846161536418586225165533112774463855282346617664431161287284545263678337518443342476358648873718253272817571556351476164748713616634851652271688488465448485525426561561483784747335311382211262652758786788313671416673655255833327173327231367315862442488715688587333818724663543371551441834552862781345634484226367631621343837667146456881166468325275345712668627131623246322347526523114844421211838842573436138674528646552715837252376566866848555116754884543776278247468334118626474437535736762733265446876817631234182316871333426822455345626886645465181245523787177326388544252413285668841511133265711282875525456458175872421214854412472128456111167238635876156217186513248778381836257854475574622543544178726866352717367343444438837471127771677636526514584117511374535457143481522182122583717874425636221835671212868328834226167163517725828758276761513824531176221427248271324715233222861564538277521457261173325241425766818785836885672515523464872738357613213771783366153425647541111244866723645433723341634718187276534857285231875865628717731552683261515533871678241688437457335173527532875761537865786325571357742232374628881858583578148473544641216577635387465658612276537871482243141662584877614676154281742655422343356457244888727222213153226125725332737414361414815756588848121125522457475875637884444411378132434571565756856857478377435753551572437835314432461813111727216832722325818832213468738384275165143326753244566612352544144883642147375142642158811227654581116382154558377823777784726518722154273677631268545364751634851425468821361143454475527482521455132224568252511652444771586844486486844653364643184134856635275237552818413628551413212755711315763488144341585337822647858531882775347253777645184613761568611453371413873162242138872377224347627237763816445758578466114446246427262475868386463378281435533858554123481228126355737768851265487438653748138237246746852573421215627223837466323863227323764767374148346833366372661531821275174273614251576343715186483751534157614574655184522554862834315157541372348541821816578351183387675481727847877315455117625367566244323451152351382154223566245658362731478724141243564268588475311158184113144214125861541215458475452151335155532662172132383542537614757784453267635237328555742273422645843858666514258263261873233274377388141276656438741736341775474547341713773364362631387757812655615541328818451372722424535823117162221681837748586413518272246867533237117572546877658886554253332178862265453711313228458365516472651232636171652462423874247273188163327766136238145577366826683364614182248471633151724342764332661551233355215742673812386174151686684212747453346532243267826485357778527378182256881842718728131116345342877583478236672651486832257635774772563248361877115454883447588418272416427156522745871452165361148555731776215122226865616328142283714218461873836368637757452761228712656785213318272715413311428811536643866258321518323161534577851632722446523831364837717461277452436247463323852265446174287646878725875871728743825712448866122517235486163538112761146282865255637225481854282444186778265774677314132588683775584783466448118146781625455874738573877354612115551726386134782721364487552323122818435772851328457762728815111837437411513275466146413545377118125832762653763184248147347144812128866741513552388781383554827473326573514324285372638167674357111752224811313386621528342267346345646584548584216118281286758381367233368388825476637622128652627225244616314576828824535672137877553833151236211475212733616551472258877121635334338614383311765273133841674785624242236587465736626247766467361722556443467474656553341687456852634737417823545675681723525811136481247715347882128147156321426336224246155658184335556213267341621272441762745882145124826224255562446315675473557623531852551822114833757588573584636564881581471766334864677622148164687346782665155385658268245174578213868665227623364771244228552763613612752671146132242266831453737475245611163578178262168131733144354487545576816535856323348827426473816636687434236244581478438423285558388263844581232852551685625471215444444633722683761728322126754112378181653637827845581567663338724248365235442468673835264441178375726483757552256556136421313527681613888834124148132522846142647426333165878652271775687571275328284526156876315232733575435354851558578665188582133673737666861275645332674638862436388771515347586283317587388653638511451331241561878211642662415642325234412246613715515472236576176248257358715332621677246831436317867447268736721278163472336528431624342518126584575721786535748576224454837824385335746245334855377875237247273663352548647513243825481353176677783134832175678183314432275868132268312216223265371553836613266861228435418585562358838318572188358834351334585668636614348566721571521124813355865452654323783782754661542486517425775746443625842528164274587424452768326537772368673767713385344581321278848247367434243385351514841575848568782878262733676347422138321152884535518458683817424868636218636217551746315212521525315615872727868834644871732232513362237137267267368787564472276467153463836782411776746125476557267237471373185755622738863374118586152467484277713172456615533387337673767181247265748747151423231842434153557362863487271415737816818451883566271213338711771357443246238723645283312577241211682257823251258553617545564615778328663715553432422271213666622558476865233358828658234425147721461665857553116531628413844165854716442613465663416184187383244871351638757328853754435152453453458564448362183383233151481414453286145164348473346655853772461642164657814814674486287725564836736764575216325631123226834113264651654877375478848363837831378533726832581213263568431566383324523456157457676744215164533671228326377254464844486627784841178755318248818836431278133245637643517441186814385652764631328436576757726884734885686817762722373227621622648464466437285713671874712625661777152336716786181342157482271276245214752155638464358611162448212435271234628488348157584383688866145615243653838226762128558833621818768831687767147524262222214111663551622172525243415352364362376751864228754361718731843231455273532761547832518567372248637311123324274663488262715632375163655571161475654483251535253882354623157437517866563852241321773134142636126272878122425474852188272186551341742675634323476115213641537853557653428476148647561562847667311777175884333437164333135386535715815146532185636673335145651323418221857222767128777524423157263313781688548773632782136363784861145576552851771723518827737421452538181116435645636281766166316725211325265528745656276825437735362176885718751415744266568564414627124323733526187481877533188256348765181657485737563463556381654645562742754552343784354465457568541657268552188315676637153684874346323287511224186585878464143573352666754151882787714213482371841335435633523644344362676131335641755821251827758483675338487481464786678122623368216786436652742242541857677716671444671475284166686234356846767176857713131366712788528535586227353326462175546378575447464473775255144746751225735648818362815444533866647422451885373513633453253584517171824656551172671664666414866216143315364555116723311488474748332535343165153133731256127727545855883254364752438578327283361574733417222754651661732237737323113728448248647825188336535777563572655883816786818828646428124751338334367354841744512643557475758262767315347462411884187685612868221862588775711163743374358144443281733255575333428843652357673684521546864361174738323448631227367262812218433641728676143335263171586548765137574828258731682384486871414633628231383838751236217611254587587832462538116535581673658224412138876671143813677855575217868446526821226476761127631361444231273747774118631742545326122181684456426136318675741784116527338724475276813661882558855252565828488377163127625857286873782468422188284257851256888683642823625544516711434781114862863382425852346332832575278271454362761238585848128155886337214661611411835837778722738767126235573653314848626811667662113312421663248281324114273657327218524616772772242674224311867572238161775344134382636283172316387341812816835544588585483826222671882822386446472773522165861352343765862166682678258188354478253476182262822387321373831168312762355216124885547545271418726757457322548238281321322531325281476532817251315335576376626717885542786552875547518651812128436212553648821422536127816675844431162584321371818763317685558333754122413174251263684437774216771412658737173834784858233344442228236554431222812513565331521532286213115666647773585557728672188558756677838687881155171536616446752523167176212634378363837516733872774437467585522242125523261443154487476562835386457444651312745518422764722256637438384267845462541258413372353277374833185363252761527786711682367865463615281573463483731162443883177523452552462158678161218776614638765848341213442241525333818112863648125475131134147377684673728744342331471127261844861748277783487463531216157726358137862671321238412364215517654776581777886551516728474255873781656354832444775733621172366632733877655855356248366273176884578675742288223243166717545463111641357333637452816848812616367677345873872763162687572187575322714876648716576521121686683648361574775753686757811183184184862154587233637385544784266812671563346568183741377573547174725184743512416646616631748883375352357561778536115432815428333643584635267544772181126321352263235518641522763273888871442638558361436316711275124182835583857462823631417731236555114734457851522283668626335173334517887322633151287374752871555476722385843228858657857487126336337133841447874845122714622445731683217652817681552573642738636375487546488854513616685467443434718126716435433767687875824351387164362137273113618821462732321717642335325627854478743738335737418676256233147668477151231538127124278242448275547588131181544745754643681477721273317572663447255132712628658638588317453451811351841222625228178587528483381515644418456146485718153535545463258252832615336768835541511644844154565127873714314537856851677772313814663624576367226172864625472167335412281166584775673471141235844771241461322886224653685671648747458317475748678728748363752668234887132345476284651671317673277371518686831587322521235214744328515881771242451848268146477845416884847772572516653433737628254726768774233327357523216342626338131482882577438378235225233117174688842387811883661547321122185111128644227378323778818114377878227188632635717282557522235745835275821863552472513226854712688248461454815561138281133378617865564515156725575326425333365367352271166627436854341347768158237225622734374182663656877278785512571128111826563832837341653465173875317441634412123833637683538848164166446754347357364684662766866542661752857738786574377458277371526433145152781168756685685617326278282646652224273733415568623871836627552838382234141127676474812485681684483668838274685224651843648768184335632585737721841428711487554538352181141463552278372525657322112623373141458566114577771323376481782762127581626764382218856422757262287513828573728725747832534237777374165766341164723716388721484753866828764227488742556715618551573427553576453275353635173216355885446723675232337631341375636367614766481578384317466472216354126127581371153523878423545637175173662715122248545774231885472416228262467847625685774458241373776384112683648231841314824623856548641535448138556158852758766258382115824225744116382637648618684355727686412716224168327151818572564221776578248564522778684436344577732511471348326487673242751182188488352543621826525851115882351634215881535321111843233338163588228783733514532441263118243524564712266367441867758313372678781113535162523386438362312844562248166174672611165784318363674732534714267342474784887228612753274228155115374413686734813164737336374383358621887541781653453624767526256315651722152577373485333362465618747848784453145627772853162488532552138676737448377473586837311536241824131311835414334261786364814526832336718186584128218624323435668125412551442746618831542727853821134684641711171826318581742434787344284877175722726735728222427846431778743865216642767178888118143432617664688518622677373562584426211584334154714866834741565167814413382688188153252528257272866633636825253847235546516731338744657635462845352114645482122582134353877388355164531227731437716375827543461324541255433438814225637468266254268141173754866417611527712564826674886785536677561582261637441446144635132267328843347648751112547214127358131524622181863535852185528533555821348252665211365415551876343237653624568632112517485256761576484223378777272371372115237448817247834473342151144322156888337437845641333247232443614235138736255123482773638713275725723324573557543167861377676874454753124867857722536368828815472283885818336315151283323118374235584468372862167115752173853573842486483538811157543125586127531278577113615888265738254812756254432583483458617616714254283837441782555521782537188474831567247162667138474864725761334578724764365775737838162651818713286221838147328642513254177367843646226153465877462242831828541832166273265236485414442366275738144358438865766113254144677865734364665853878658756828572483815161713212352657277852736335514243646335128754815585654868827187483531664768188463442878678363616874734721325357382583136757184823182156511314747427173158671744721334153574636187435342322368446473338248554837628237352633746262411726173624463462432473874214836566882417162546737885521662534766228266778656361756582262542716464332565785678754531763718187711357211237123136448141255488757736483774172564354557656162427718471684248747688377567416355686452667878166672438348476445334221573152113458541442253636425545388252883623442372833535285433728873526137713857664657225171564731813115131824686763142622333635246676847387815676826332238142556161814636457731821365355362131567228433756455712426724622682177471154831763332654132167317273826847848615228328111272776818813663121255174163175473671547424482282386668438337434567533541854782672413255871435122417688272181785686352111665548563531477781157271373344185275786253147847346482185425254557248155832714821485366148743637435862176563333537786736223765664814842168473572262524376156544234558822754422184115774276617854382553623588114738576661716144232383781115556368536352235245473727686618186338714132638111167878224324663518688573537172354358771534331473661311614624863764673418331321536528171374632517612525133144855513381681642768655322441645563881623387322688468121452818572853466121712832763782631842127843452681826451817144721221181427478637515548462388643725512426541427525114167686241862244776281822172771457573345576628865652152186686326135233423685158212132125815162377871776766525842412337158134844813257735686482556414456317814867576534252325832372445316225727865248363531145234746552265388212374386476174118885146622382433558363457514714242722876285466873833853875531252781661762541788443651877281857478361688648176113878324723571172281732415612631446313213884678252742315248885511677862833266288614483333436455813247328718171226577212753624626218854128338165737176638612428546186277448284717772461177875436133337558426385838514142287444645361126361768588288716563252113814417428418474814624275623384381483455854655134421178342551761686641462266635351336822216667654486713566833635477318847458475646184324514435477661173122821724451428217428717368158411441468586282382637817248327748445176326875725221318636454717624252378465255417345317386425556384474157476338664624446624545233881723121726776757258561155514714853565633873774675552181728858552126813456571338626338452342371282542584341168424253124262277423833841517433568516442112351827314358744575255778533673241523381331361727566581831412118881431671464242288885564638776337138562331282652783843422464581282163145215881824576344365715536454542475464432387381756243667861845111652744655168164147322851315181654136621772277236548464764323341611745541183626458158185728111225557176735515418657174774571484127615442488562451544166544824817573675755515775468356877184312225647827872122865461661151826365334228253877558714586125755221343884176868534157668756315464842782322561114615756257463788416424414572865237337488461137676851456744757182361151377657278251537152271712423458861137871171156141337778777247681314383375241315347233888231624176384141518364453217534653618272317712523735761254125734582821754358844686235364887258581367564835521634574573525138252383261264857658161133645634547735316553612534425244652866335624652424232625145511815226734546364544627235742518433684772572833563212856242241746756718263432727283466415427868877763267372738762484243365847544711826861726173247827222364876286623577884316451284437386153212546375324166716653134743564367552213583232528165568624157288853386734877348858532565486784511633517243786888551837374531733111563421633644618823846522745716161425881728327461252416464818188563861656575868887577234384361876667553224228265534152418483226517374311272812568418718458622412623624526671276113533674233776166756782368845181177223217622128275263766276218436285561342141645261761122182642112852833158453578838854767744412386131186782714174711576782832262431612342176782126217163627344686665772152217224184842837684281358775877743272223466342847476575314314241638871263136568551274856853431231132274343835452716455375366767445352472863352536446757615465856878181536266422718253112445688375825465575744337172188155714558827125172318526835131727556817761855834481588821364477733313547426867762812676767427118578187442352461721574845766238445845811683438788452413854255842448654185634288581232525651826486856228324357628772678411248152843853462433628576833628453242542631388353137481542534378215566352288286387223558172633128232487226528314261426216513236587545481617428212488658726121156113378514274112263731173513516883656458261524586816822748672135178364475361734667845288325411651464253324123662147328317364321812813143882256368651143313157335115288518717623825477686136864368277288311625378823577226255863174581343471337582422662718644827587448171822886773177364162532883555487774263634878587727377445413718265647157284182116128738712626116687731555348763121338172432384647725473825746368222641866765648513674216356658158361133276281768444414517485545836721626785576168144537853614812216334227583211564587884788344627533635754328858437773844352373811634434265333643731546846663314875246417365113348168328772836874538637723784354668737655827317854652145568531378113317677633478346281437383636448331184345527767556137273825164147657762173228277823741767282277554734444582414412475486464783353458486277136357486646745572182564264352848386468586537183416236562214868543211357888275781568781255447461534454368555888514334437465236414451731384418342173248866437238584657716644824363776753731727334147358164762344262774331342475568588262424265386223433747525436546175837638572818536438173745466561678682486172365648568183238444725751657124465715767187346571488265852845178678186638285413251112617241322228835728855541257818228438324165461752356624142472433115478372415615188544174487224541453623545651141326471653561263587266224182468451825627571228576726777857672775533873642132756876614126176472681821242561466846843174336112384422636218773713522388671764776121676845877214741331653443827585786838252254558411574151653124234835521157138333556533474812732581363623182824214682238611157211448364317423234674182215323211888813556474831511583536752278615235671813874264137152422772516826646715683566275447776321215381668433654176784634531483732777411825438628535852432331312774444225371663235316528822556513312453354326113266313785657128514525253848718257154277285615717728518725471845885721248184314855631621864662434724764682676516157584635137711212251143428888722666855627225325723122353856236477373861578561817658181355615665215784157362433878136456113271532456728811315121866186751438246178248284128833643162168846735674145223418651486261668487266471868267772575142132368657633512233648447422574746441841883383855555577883581384272176282768782587814683343552224458711214811473384477758733855224418117671666866216783774612173418426371787775713655358123831852182587336552755443376584237341845521642222716187518721824662125346561348445248835823647183581235842413233687136667354453625542237613653516674212673422375451213625238875442264156788158471552854116565725117717168481644286766874147241644587324516624867271445536432488175457285371383257815238577775184723388446616158662117273545116646367437313618688747733257337562248323332561557243651841365334246113468711882776221253845214348584765533868477652345474322768523851547376366645547786226477128876576241341345737753224151825851214227647286757144663262826724352211232448778655231334837687843411545631866767113477211637717146567427744365822557841113232573748888386418718587233164285323823618787711558451411116222757743512775565842225766221146218878765124325722467546463434285818364232574534581338122231718236442848544846448148835325285172458457673167172816444771258144628267422676345546161184843264515867577217763763278236416456328856745367214771575352337731768153533873885361681143258836743532375724177527551542855435651378664752486718241361427276331418421361648334764212722833848844712123257585248211734265478525653815348415282862821537888562221664874876347131761381637217427838848735125263654745364452648715527214254178132655284564818436137555378712246472272516321766516888156763865874633642383683845886244225311482236771112478466552843154687135447278718861587712385246433133818481153511688677818277541718576744375636534852554347656258847567132533743562641248673371777615725132146631552535818351787285283835771124561213288483587863122481815422182421477852762671383412836478474713712227645544726364831146338124331332353127327382226531382656557486812148558165876532831841473257438674238727586135817117133554525138165114154337243278858546338621211632156437638774138337745654534874667183247481115787882536424615315458718162183837838873426283185517144876452441211538551322115147145357548546543527885328846148185475563332765174381765721612754757831512453341364746838142854855257534623485222266243544174162423762234388568531143283531557218583327213423452523178651824272636237781656827121665556318745852378526883764285375186175465543331523424772543687764235144867875343134167452242251183114676121521664733568155744447443414616774245136211645652356281387771164155622787335826268521351726585828846516528253743224821271378364244646735516475128238418365171332524854386584244668121457664235443152178675645358537672311788137762123117683483465344722367633652548842633744332161841584675216571834188282346461853652741665227525175665487485172662326275848244853772126214271155812468833718243575657377744181121131653177614527723626784465656324686127526877733465256455881743283265344133528815745634451435281727777145325657345153788521312388268865647673888824133716362223624828711877428213462641864478313784384457343145544774574753234486635637333652524316855158624375376484522264833178535136386138237288281426576661436878877161127717375416468661536462524412626131368887477272162623348774736315184773481832236433286467173455278543828118868853125362231645571577482241487631734235571111364278873776181772183333541353776736311421546626123216862235574178225627745433553782111325361776628761584277873387264571671511272374511611256241537612215643673434522551438545864483882374678834163867227777267348552866585254285817768115851687516368826224738761768276343586438536516822545551434663674687743736355418185382887517316742647252137187814448722286686484387376147471545426842537783284262115721771365268462613382284724783528538823871561427542534575484673117823766388618865175161223482523288378682177433418485856482866373833451833413341237852125187287657832683666652347812355758734548751323243243268681117715236463342242351138733136641381436473843256215232567371458378647212888663812713182536682365411621152283273365613385528567828621518452728575424212173768817236838251176386355748365166818235523633135246227514528625674862235131543232135843887813213145186444137636186228112331645755782568224611188413236666877216325118277451346685462141616145856178623132344811847351248457441662451387536764222813248645611758345112276862712742248167478718335782877378468781712881577842543735724311547115413625234641884654632766733384147671156144416284226473572786572387517648417861761235843717358323763652324658732532515466425716235222185741578211634642734864622413226786531544414674766681651525313111586573833651745738854221173445453475886557754677614422758224766343154564354361456856662175712583653422675742464256231624683362152151468636518574124331885542341288868231521284642516473442468388812275882274568227353138273871782565186346877157872617858586645253176352183356613553683163326427245855552588142143422535424272751718767568761318367556112238853625674828771565458162713672133661562548673255882722237132436265151172714332477438313764161487213477575832774122871776433366117345773258367874318454881538318852481214875536518336675543148464474557766581284625176875743147253234376673415765813641488136834332252246312542344783777681834846478837451685721547178557753885366255663223116727185871844535338483143137672188524247337318827136415615335355753626646425462728568581254677151833644864236124585257264658327176516351426377718834354683613451821844118767782621822257627156566288661622365514523614535411287676115242144735617347145178372112475387247414711716442148266442535527164423242184312744227888133727336781318744525467748663342318365181152525438768843244727652157127744768164575751675141328213671873237114223438285464666613852352748551131746117622572443866133651113277633167262311184577546874343334346152353541132168456151664826745721765334441233161226462464637241247641343527377676836717327217127361173482413661512785472142714184483535357116773362462442641257511234375437712714551355735758437148722151725561847875325514551653721814334214567342725468221837718717877238555662348433147271376287557326248878676521566224171616747468361635356336633558176453854373553424531577373842785377773717313218316487726712133862386134455818585368138337182812312732746847777582655214461272156344618776165687485424347548814156287746673526761245885253724425123164575524865363181778614853132878273325635784486638252622173278765843618221233435744183181872212158251171733635675284182346631483375335413517431253366441486558226434345881645748777858837611667888673647441781582538634261754574736614178137386186773624117266354418662646347565714628238511512573151316831637638713422535582543815544663165175327671444134123277668587568817435724315773552822131266865171267115826464613853361634753254618685758871621366125676313224577737617727816181555611432337535273412513868552322837676781533754151338617572432824255861432558563636224824532651732865586236275855326351742783461437851585663362827784746465617688544848745574644615844185163873258517416872736588835328563288232643813728362776583371384741421768258684643211782743876268528557758527268464478883245527224731434471633681442381775611141436678355823224825444126858252426881686411824775812132258238856615536457743222112882722564843214484473867824338482478326235641667376277224778256276774275825635135466722628478851882351161116667754743886162238443814613678463883577333171121471318427863314535474463717328434357362617273213431425548321457815777347266213417321784748227648558376153422364655573623425534246374212143813222582477881762872266517272615786666633135711317735381282717742237125512227655363627748412415348163863833686637653314623725232448248127272333558317176854434823574526561667335626177742273765373845642668148711662236212148834361154516353318162258525452261754733447366453636683115484323234844532638616747378727634175172512261172177331646647576828716817566654418114312568284822564833421212358125246272173212826343625456231433544332638365362166188536131287682661426124411485283184685176718612867172184643885885867387368817183257173264444167236355365415224165565128238737441534877567372785281326331423648832711215576715635171881225884723222175452424866412168535573758245545277656675187615287863338278453443218754736352836351338821432843715327125758675526774552657478815485562113681521535722483383257675378281261172618174414325784622526845311873781321544253325343746612874352682628427175685283348636435715737675376451731286121236347435486436743277754358551654257725113433811327745466234768823267557388628462178288331445271587151674266812626271676288664514727846648436518228728353822238872418867143633353585471871172125685763685537736438447141544555882158176173463536412248355745375225451253865161126237235784174783741576457683872171741234513215828651224143321743185124674817117853812624757621873675433668555334642482111441256562317651285533474732268511182367162435218227624165243263728683824147184685423621478286414178663183128717312648577353322774714282448413258665816463183686858781758425226784647758154883668222418343865576233624231364373665438434117725326458864354643387257221776727884245451753575788685136475433877876577356312635342263885865168773788382537538883174526763787136833557538618853586472654683552143628557677821567328367465715432286567352166278743747854638873268525233186311167484841154131421454272241766268868214181776844275246663578271224482677561838162416661768131655138373358856717327821275447744865631286428122482322552173134178643542514246342243468267667342164846172448642616146631711261478281763186455377348668513611637664456581516882176318557237627221136682862371128645523585857525883163464885287465484487118643567134554148574625846557541652731376153373753182181114128515535575265475536712456476758538152712545278146387638618227711458638815821733621644565853614455671845261135325167625324328622152541366762811114245862652634236383267342831356114526788327444631188775467753715161447817275674865584247334426355614278773453545231151731437634235418784556414735554247381351733533377187863254171173334834617181852573174314848884415481283865213373651386614778273232636534388464125875673734687127646673675121728853444578345673314213535851827257377831235653146656687577383666752381224813586518355768447525366418873167725366664276244711678133765246786466165822373288836438515412688371776645381882775424534833471788388875577223342483286187125154778228237588572787117652266241275866378237532463188587471542157734756518755322715848541864135655811682556717414155727354836575414862363256188172887256847337784182486157685562656251732732716158363123138647742182866426514437645355548731762737572218214188611673831412877173165314868788458145856463656228713785754858288176828857325758851722752545861747684486658771633566762223853657752724668554438113478376188843772353815858374434445153885356536763647424361274832383834185674626825275723674455636677637854425363236833358545455156432636453682663762765164484583181474512352666852348117533537782582666366347862726873768316122174857242843557741154358743627616151412871775537647285522432854577831563217542478823655776351234326722443727123814425246634756473263816214245578315644366251435786182147686314884637441183715782865623428276377144845266588822523446678282443532523776352627152535667471615537426157167628543715641852261731143361444521447182116672838133487574613711467225733116868412262231856276626543672465722348527758516663223276371175252278555727487527553326814552768117673382267384385722117766122561318763631362772142852866316185651748658356235552364536571737848532222858712827732263512318843231112535547167645486767178335811722551131551728516736537487833264676274385174812275132737248156436132544232351228137744425337758336434878716248542161323434867654363752418674364547617176378562178356682581825373546788175435514313561324616526577164618712842378688143372834287717771256737478266817176544776156341114857514374633666127562641615838678311656167437857843632582275661261675676721754527474221528112387164677868626836287178612643566442248318113717486362857355451276285732276111837387888841783757641483835578163347655552517662153886227772272718441467723578744371153276278645326215288154565682262135275284862832671766362781312144326384425442127343226264135111733141452835112351164542147681663112428645333566183746853721322874746545814485318176257337335447544113146562223653735434228676433218746281247464772668318841112426426736447272225417547852443473278574124754441283272682182748262522157561425323837456573152643642416757335417655587557855657134645345382572174871414343563887161356552856345444563887624163155658547717268355611556225311771382124324152665833715211378645222147225841256537626573373681285228358887616356635467383211334812266435613123484287867784618426423274416422473374852162432514318254552481435518535661686745538141748767478466658561268262514886781381812876623574458837424264413848547322884885267566878127473277848834465222471366626225614167354675548435768245127261371772527416325364482537331817831621517232744122768357656461413154377758784138581166748451747771871235623634686566728324825153558861383284257132453685467771335577245338422553765613735137622867344435738723758171176365232622156657457355377874455535635425316677588428124144363422736258666443553462836662615734383352877115332175872323815748655656448356524653225288783716173134643742763475624455124473253727337513466812365842866288358535365271717524161423347678548536136721574877222684548285322854384842283818366344186345432273318354374884513177664767743757471536384511431477542481328762411286227386817548717478576277346165767785582212764766514888634546488585774473212441134654742375611281744862652344861158745668642865142368227618661762673716718136473533587338787155768215238655781155152776235285664433872678587873834755133518822264888487457224454741635278588833565224468852172682153833547388778341676236623687423174356711728882353665413813611126875223115454534628454825253277646218881548636763268333417512537334781483153734854627731382734563467241547447554483313725445345134625262844124718521858553333341486632466852174713556643478234176364252184774736643815552628354113453283483133568548223278263761582762643386548771178741266521661384255556673272351452245783244874431244286564754446734264811716528312422276422124277333654873324636343843145577454652665167675337637134145535653813175521655441468258481523418475263287742432245213424245852245836725852343186475166754248338275356754545327781241316742415723184732558538156146182678452328855775633264527268334744423316553323468273832178667844752414733532842376284835657116224747684151747112414234775283755644822611318874358148677647243562526558615557835417324123335236551178742334782725138141143887171763348357676358727443814324434238671884134718267223637728288445218414814172887886417614311454816243516861584258254476588818322611243642818356547724525215831713182633871371255545632314668671516633614737244672358758745582637114813762338231154282718311856251286135873133675471627641838768818563641838215721242868352282748348873313215311828243366186848665534532711248257773557833278627814534525186717472883427347688568586352125627615812881327482828341276822633827712653243163548447671725422417132757323515785215814666148348575327152413654586175185152474572148616721682148782828151347155854886657421232722621857678135755187335438622465282316828248141344633565455183862244251223818631665263262376315287242517623422653856668154515571686525712661581122761684556248532476264877882144531272311131117844672764461115852462228726364168682811763315234624361776846148147731137425125486542631853443351262128657358117453422174636627844485371184363751333323228713812481264653566467568616711348633131857564238861418444727256864757212788737284453562755837635146438688418158488152682126413231582457114827336514111638768644258563855883352553867265314816283756881745745325124865643582535645338315622378242168828314366347782264873586862182514153766338822845225638272334332821533312481774634611618548553557337372321367563448314811647518555744245313714411284457528123333215344166775537816645245825572867745651718683471511211113411275738617448651746343136244846563835621813185683715858227163211327211761322753335536347382615351821335556756641852653714556365874322465483358232716677237441484561365885364343283838768866128275735155417871114228441344835685256388442732577211322276667387674538463528727378356461876826221276628818433238828548615547242225188161657188142722442453766514873285472452563851746248868261733254773265452373277231256776284545784534185276768144285486483282288478324572511887533154537888245328885755453362111773265777184856358678662324533717464218657448314268287132148462545227872112346558286567558355385577662544748468575537578271551283456681452857436666874862768511753438121518857766556514647364133545435243432782662158627886633128863858684135566762512128882164486867845472368161886763711287333564676516862385531383176632151556183175464573615583253565425284446654434657371548585445866837176755314834246618348218574216533635747782783481741821625421331761513577721317181885253252226782283117481884368224621727324612258346226364642778784855121474547772174658771344412527811271451561852523863728338621862128473155132477118626146626756517448847146458763857526663422236726533776265173178723587244126163114573237857342526646162834726866687628136562866414157477132732782117286764667717248131816524746781124341138535647544545623784743761771337221276118254666442583746886511388716688844426415122471268774383454551473211556752778325764258722335713831256258462441151127887737386642125656742518766342665274845817753445216468763515782747786885755128724226171364343453468383451756564641243118133185786885561176746557276447654313641824264181113336276468488264615821833663856123581487263588151542258555351685344448813886553726522311743642566682325215427351236712481157836442884281257178747682741145375726465117168815461846224885713748357373138226136324636816132367457832675555171661487524564465465588222445763374375564751888264482443233637632455563385344666582434574833754648253617247626634681873572542116132117818417382827671755311823522474777234885375732762487567827254635778455811823178717556425877432837851787883863335474434873785182171142868186877663354561844526317722365434851623354165166217221666528281783418425417886637354428467128166783857226383151615725773535167277827513342277586155358414784535212247251557516257387446823154476572843833573817231861457181353153624435841834685543867257666673628367342224354364635164454378131444853383735242517753833325431377451524281385552577846721266762645718168886348365447381161554187211767225338854741582588422211623835757853361386142476571363773851523352175562843644327664827277258618481815133736266265368563318431345255768611154485257176726475737171478842385235844444431682182564238534588666688633887637215775787278183882585765734416673327344254288551433111361281132337138235438424532361167382467576352858675535731751675614427434452551243874125425255351386133682387148821274465743717273851627126537163527622282577483824111277262181442251457417754114832132422561142532471578631228244511638348235115614231167174558683518438624831144862826548147133257136422866238247151755786364143261513265873887856461666367354733226486378168836237771836126546273287388686321677263273448273787722145773842618343241772211587443633862666525212841852543752344727346436648574234758663457845471464541174141351884433528831461523245244176372877318357315282526143561643824632515886324745553827226616177578742671366872438771153666143337436755123151326416283177761828413873882578137618833284758633763257362531722857685631153115448483881225373177455317144622257364225326283533114852256325413421242157531636717558631127433543552578653876278323742873478846621787261535418241132561235384247868213277628866425663544144363887372517734848431853365345218771251471528846641211231665167218773378866547757362564413135527573351627448284384236628145472314424675233112342786633573248753761528458423248625722334755385622343622652322873131578882154214713757477854726731868618885171383468255412662861523525645733423253473878323126851267477371211712676681156854844313845147552417686724873114413132241465568434228343184356571645347617622175585185844334822824285768856838388213743115622577136324726568833548683152264541455275833438512185136163586566643153661327764474177375744243441813343746322727127468145228615733136656826552846423715726633418668261567851615381148735588237161817352488657222535723266815615133235252321166737855632256144142653547678576553552253752217858781765854473732671773781855248166341831478822873265813776462758383634874833386325464427255561537511473247516845474453472533122816456453637823271147177177362148335871488581881882651754137787143333862335851878332754587867433227661472728233778475558537846524766113174472786584578344376867414145222114534763344685338172373878782217723741671358345314317573127422736585566222772814812782612857233466458575582148773853762221832452747757863678357238353826158616651822441744535627815568756662114531484336814144742523787722868412686164557544666311275554511278542573387282634573485112647466547377771727451651334841354883124178576588533165312511672666751626513455248654484628344486476272142827385238263717542146357434167353278423711833252157874263782242643553163142527727578536161176216151132488138576362822881435237144724655561455418743842154342752842873182334284168372538582774243875118678141786726564161786287532362286531323772675615321582538311635213642333572461476761672838582325617216627786185681637264646752136883726661655244871441383647582217774825156837177174478476782653666517281461274847838158458263266647676664863357825181232255671385133861783852442145367716785332564163275577142634782142877486624673272175427256344348157731214467185567672363741853256876571238282784611418776868833842823653561231243612121742157288151575748633263538542152723617156737867367758658856755281733535741566742626858548645851212255647138411787773266152654227738388747538837636365668535725473245616656735753171181582784838257737885284373171225174138838751518636628113782236612733844418433185238562783685744523171458254177615754425445476441817457365762133822512346256166766243675616161574231383366551815436134248626584156313643566215761756451754358421142474442484136872626247438566582683123556347476542523336337776682551136767256263511785424224642121367287235336125335241866742157535862354167156158557638165753712427416237432551387614236455637834343825767757888218655836775153737616768511234857248357252515226875854566831141872164111175476685217313174428613227722522515685581351771265522248275373375854115233476265642514581878146262278213173552883312355382588721185767733122518562217741657534755166388188186742686161224255335636636556858573514534746628717533353577425672854871283724786181364865857545772577854622663885585577836747826353886876358272647171388746577458886232576111361854221558711713544484445345136377816816182875774885873478528711128142213533121144555385278676488843224838236667382378248863416833571682811768743388652383711672112627684758123537732481272645864447345164857234326433376574781232226765662681682563133446721518645826845633575227615318482116175158734714254381227555537378118883124425377367652487276631778772781631163135418627285358181767552175341328644255315747212166333116864433657782613284144244577117477268761876612334382132117722664328214511528621357218818848463674186737872253654742573888316578785231445456465748116736335266332867116586777875517638138714536723361511868451516161624775864215535716687475687362526453841814445633345247422751724238363653616416615758711414558248547181461886115117718832382612555113765143115814632685551325126817848585682542213476585314512281255436717822817822618136454231381574817573211382256717863478585645738531611151753571134142546712464113164183531451266661177576542877531314751114827625768354852552842541535112574152336635572374466821278437685423513743172831511214462527856123837318841727573437377553365536457821473256626526251157224717372171616454435383166463512133518357174667526882181573737648221514483245484533653622547435187443588372588613368653358543158841616888468622566754785687721738881134581848247657681476527833712222437286241482653131247545816248451756812452722337555172826883575826751138756627627213378662445256717535568727426316545572153648541821672166542411313434345258285463362576337525755581744641137345718678765573641588658438417631374418587266655263245755887411721362745522544368775748872848441578342356641185344772478227363824465214653242243645245456763634351633571823523768815768732468782167415548384837487171716831335518212225145813135827231126152152715547376613456316125548354148873611281454615417122387751554716575384443585358383681313855474462276725346868234588146281578838114488416884885436126413413121576753122175364472844262442754128766562545367413665631257583586161154332255848764874461636761518556523385835288378171343666732177254762838541524158616361666287422743428634516581171485756635821834575124281352862411124867767258636187675875883217421474682481123572652535818114615688885227254621837288662552348215515355174664282238774473757211271487486475844231248266616286777544833416328616673828458111383485676718368482758474535142182156687513853264886637682231246247488668176223417182628276453685132878556358623453382455651762722657142617361534271165477824372866648463138536427684257817772627555746847865236537826442427645718122342814358687613333428241851464437527111646451676886365416688745271127567738125646442558678464338477112318553456437425887244648755143167473224887128178358817731826816347571745348367243776315481362218828882341464656366142673621137144637822587542337516453481838376183321788145288278145635326212316482232564348252366573484125583138677631516456143178156746444466834221156824155777465422185778585634155818254613717627884857427821346272724663484758887167335355843278646687726741147585528382675747672584787487861377253438713721521645441261218854166874581634837327451554413355683236815662775513881418362347564562278447557637413242365161552365373465258723817534477414115333588254246768156237882455784443788471884116773544882458588362348883646743213512255711647437622754457541232832347635575732136683645812566183568456186611122854683736347785532181378256321455253647567323178722431773862347327186123147737627624278718773853838572176286534344277687662126465611274651563672567614782841175448546833618856882248827238877184215736542273156442865864355246561262174184381237252877672622153381341563183644584335655265815533773626423416356833353446117488557558446581385447572252232276351271288535882321745671411828744472742153511768341888451875838165648751352258766582857337534333688811312337424664634616263268636537213834814477811241247411731854814167528878626418172583716262367568451453452676852183824136331174865363524334355885534212782866252318451762143271141761641614366157753317223566717747583612156747821245558328475825631781821313484456634715646715857237445837485485421685487234213164268783515812456564782551382428426644238862638528472812727275621485812745665653223514387562246651754681176464214448358831883226723474486753147516672268475417211654337455355751871144722666627816446285488145333868223447268481818411844858451518434588412484656824425756186886183215858558638423846327625215754735312312321167615484451376756426548172714335848364365742156752248717621211277418545846863584576257687314167128111463135838335348227725584828178524875528347567551132886531375855152373153362611224418444572445285538778814618286448531742467155766455888761312227786786627811872565326154357326537437722688165881752513112365858833587376761767227617152532776737273411684165267186876188643224586662446673272385168585433725636161527487825547562611726424388684281448337777125536243855336323882221218342761388464546266447331661711766735154725565364647543615638282751128332864126645331824852166128685644184735677135165847623143633688416258211414181725861611568841718127321517346632716457257366735813487373877325785472238548866216616584585336674836271412468818227265663715878332281418646553641556582716346638588828217226677667653831753852487778645534874536175672134511445242765816441275342574215426675456376473638845766883645366771261543668455488123142471768484832833458743858458855526185617213373327157761613726332862464684551261737481338675766324414326661151344166112448675764577712612865868582823154151661264714151132211764343158348682144265876233145686586883763473337828325183424714615187771463841765574571563451522258188548413241145885887521348148652226735863275323746557726638428727623586314243372131843771683237164867732221552484547457538117747741278818348753144527738632414752657744221563545325157211536817271335315722671658535675737564757673834481738532847852532618466137665817578154177563211521331462627433823143335614352353845747718724162437535457615581843763678527677876311686116565111142785527385461786716613426427511258637563354511112536521158613855114871331764861685512583321756454222366283336624282585816221127372235368283331138855722287281556321241366853871433468366831448866228817331233876128212366463285422341877341453614588351813173867524661635135714633487517383777371167132518767214566332383244643551152538786876634448146513358878184378217382553476678335511253784776147217443675645176118553552586488112552782311585861787818688448847814442416583132331662375288266656846757313345355672421848641434486616188422166142757845111172684143774176252436713586345615417857816282274477347834716776612176724268517878755342584464121581581374112771474113643374251212521852216474111341745154742185662345164842487182868717135278641375576851422471168732161716723617374637646586382534876742315773648212246112681651378482332367151146531758725814116623765283422216827117316448527551622427326822634784241472373764815333234841168784644761213454686565846433757684423278387331188817182753866531517874266168358425746413782727778727836215673818651661415427151284578833428142634175875865155527518771125246535531115628255251117637388763257377356846432265278674516471772612414685573756673156417284816533314272568174383786126615721654715663336465735766264264385531364382438736615325748165325315511226364378348676216827745767421768356873758855616332886655845452286622528588451643543444131143335221625122445525615323154126171286872217634517764532655237355176248871753872722858775283853377784523378221757513181213172333727757511447262312488684261721436314533168333716685733657512674338364224434755465727151486611534635632322583163277512622533383368213156216866353314474166271523887676134762154411381715145137823613728116563426316872472732867163815611163655341426714825428358263812433618681651881236188145466748248786557333486748816777442536281675761588851263883323137113145267841738862216647442426662817854883667568683748263385768127763377711516677281534868347117665535247867251618878633344247188535347751534484425253774526517574858147345262821852418514712546435642358283174772166865121345825228682141474334781728864513273251726422832576418254117127724555114455283626288521462335463735643888224454326171538557438443615727435566737822142278232218465835678865158541715784272843411782878644625281343751731447463146874476824424774285738534868257545764363813746772614524227717333152814576476141353546574388774584288135265854252318661622331785263174855546557323814778451612732685531586216333456246671413562785252685266177657352767238316382338754455817281252415511818842225724756572115738454753451668636841158345148113486244118468816565124883853765655311487767763321274237782643173558534384563116368858714816673622464855415241121527457513577431143757663571853845738135426781221512787751258586378623486558177822663516146443757347231673181523463514348748348618368227652124336766856222387347676348735282243825212186743365221736541223422412614657327553152611574774676325613365286516878152541618211744261512771427674721286113488223852827767222676813161747475735321612157177532717833837772834332587857178661676778716687147886583387131865874347627315234152261554265572123751135441855511822311233516151711865138424813752723433743651873155412868855667423881588614264372252356511244586744225867735714262884435563642343377643215176734435745766722438558115223231826764656423833416161531776514816361762852164344184683472423466131617215582128874447372584455733647668145574818818821168475331847518583658668645162631833554735672483273631817363584778477388511547616527561447475338463731867652341545486628567663436113254112148121568168352167787263645832465517857173563338222134521122686225864746853623832777111732335485824661254881242177428242387264216646533633478674112216522251425458272368467872127517353878765677415243248123476414287785324226224854421265322582153755376144244445281122713375534152464674766877513547542537367156125334745658217232442882267852165773875866865313782815177734773138363128246185418764244444614815268448541182277667775522831764342276357544685131186238282536452522738772177382722124245642576161462448631833434273453324527151677857564158417428263573235485753737265283378425841285454241815541821124315575566767244112228778267216644421221658743256118487685567377143148546576387163242778347687475264726766522347782736172727743567628833668324172732655158822261532371676831224871434318341522432527667252344674655458736632746346663646542468126473157143871731557882724771173216128274668684353345317633335335523716134516326777654452274225413854524658563257123153868447853721884515383884751457558272386227454368684543274264483356587655827475326716771354126584823622565654362562244441152754418615426425487656827632418313176162653887654645273575512238658585874513281876832874411135121645858316626744425858584183222316517868678723632735284785856872741856843111757428882743873867773822288173884477426366633415382253776665466431748854451637825383551788828225236358354356652147222562148746432354422481325171757754181554834631375723761281518482617181814837548487118326656355435526688686848543511547361616783228152353343633854611336274726458414762786356773845244622167711335845847513525856673611767515284537851242433427752447846618547184738184787382148783582663684414828758716514361682847778838555873588614132364715881815712856184517513685685845237857421268636344278846355573274551286772453567247515215823176776351412722534154681824767512384247313552222875332325438514647166743438681338743672375643714548648758747886844637641755388326262272165164628451546156485453878138348665524757278782711837686774184588123316674746467344382248745846247787653232111663646121287352867175462651677278287158568878343558237761246667864362764868835734517114253327621854473268572552828477235285337154438136443745173751262588241115148737585616733444377511287632458831413126852722284774814114141386424841327462616371145353664265183833887452237176456428678341544573827674417351683354587465834816253512283751833143758372721651723465651215358551744611615375677132616741832758414737216278151113856228267118741834412544587858313646883867177847431313387526248244871687541436448375631555257566313563134128442156183763716763661356585536323356425276325173657143548254336363616836278385428417614754882881735418415345646228615515657214365517718562818855514636582421187177387561643577831736767782868433722182755863127362421383271788834671412248838135516186837376746163112287122333414533676775727745581825846735121856882538274473281766413217584431647142648733661126138888415532241685448516776111862868166753645156353483646164174784623567525141227872755188662348481584625283847346164374746145135253835834781861371785568563564645322231272167634486345754758532864472848416887364434717687732872767724262476417277646763178761417341373314311487677221438723883761254177174111668667268648388421423553643785461653236535684564212556638762851488664568584153323782138243224284441645366681617552417121368534146115244758126885738173465875725647326223458368823234877322716538681576421644686476623526248115346126612452546124477116514534816125753242824562582612721316742126326362321676646183158844165816251816716525175667851231144648383548875654187141338582745226451676421721157632347313635228255531588574431248432821364753766381186322784451852415246614765242412487882114642666721314543325571685643811513242775868581683878486125321476642425836222141867871836372741251263612154188671361861371328124224515247545747743585248341467645227588555367681854745814326166261441647257475857244585587521816463438517637828372412346882762788267463348472573144515434524778834664775124455555147475436435557251723775526132138511871748384538513836128665678326211326764858543634713641227384682328716765876586576252124856375211278822164144333118766127117464711663285427114532731147673363264488717827173452711445236724641182724412872344446872681548651624435662768442331275851386731562686633341585857755414636847584584375115286146321844454618241635857866833414754381775878315661882847221414777612687568835375316566861642217448872726536675711724375322747311544233223111186283652238754281684123277283243328841137846824435878437184387757541236686782225261781811516232637427552241543416134213286276357861486718325552167656558645771885447862182276845372434442646243131335683211475254277262654542472238875777875735827572456672852221425731478477238564445736624355214145144188563634746716741465512114386255836554273644148182733422553122851613875718734875436468247337645727715534138322474751642686531843488738654845326816214718767536425744274316688877287573834324467376313266845584557524777775685837144558452483461186374363153254164881835865832634614677481112521774744238475445358748733572773323271725454177218561265713416215516161151675643334157783727462713212632824421274418534875185783826628537764822623537645421821478342156627568731787357888816535335477573241288662387677845125745827458785418172823771735123523877851157758513384115485186756382878574668886473846524213824752511228571518341381717527515782264617663874443611246277377284466738863621821365371881471287888286486728113767517746567631185546115642458725578168555183227472847161177585315365712612774653774256126737827673162441824235164478814818248662177478353763785571272814532381756716756282726577765625657145134833751371145826854486863418812433241862426315317661375528226844552868526451287863665888232662632738856458852282343472112213768128655616166673577851148737833527512563711586227627573762527586532172357675543751432453228241728621633413175823775142775738177831516787628312765844488361845721723878875138721784221518585511653346254462472827747333262433354373755645231774853638213465176344425233728641863233617733841173671768147482354756737515428718852564251123376235587784134277358275381122167578612845786243455878681325474674584458575688448788617575718832847254652311763617354325666456534565235243574438148818784786474827222815167863227551675546413563232152464485511644372755344346415781434624862882782352773164746424226224587246768124773436352534131537624752355377231613313573583252327581158431524727154466552173687377864423171261322256455337554862484766117547113751664464886761177842745855525626227683828713547286187677344111881615624452681183622153668515716315436782526627433576243656575738476825651675864857157855277542788214126317452874577818447171433161472675542612553615338344614265628163134638677573864223873766827532564684636442873235124362872234727214773744468121135187713734844234772735757852626471447673387888376513536768825721618268462585655178341323161827522848271615363222172183316274226648765383877186234143151874487866382564765366684488214731346182527855537722665224634423332262563188853685628133246214287756417583782676181446225365384685388657313857234248161132848115645112855358712678671817413716858417856568381415357725147776681687146611618837728782551854527648425686175518422456862713614131235837144135816742437583262654482736558146714173463665123712648444673244862852813736483457361785135135661143421785441578677267428224766766518325386764578565333422316546774213245818255133872272541812844338842445475864575126653738751863813534378375138353461432328683454556247654147445747288677645547275372622332568774532313512428462117827331838663845861623717512161881122212261778757638431157788482728585121552475572168413764345612378462786381554123166564365423244646342523862124618617247668278265176732853367887341651813514116736662177111186538463817873523578143265216173434411617216887335528274365564552848637845727347211351831572714535517131518444658825381781122135888534223843744743871878832463237446432567318374813861468228582187138758686568652342327117165825527487353348341838348411328672214478442348685686316656866261363476814641263647471678116128451646473674815532274476526438638317564877677256656583321428543443247668451684215571156116656612865385482682373573656384782265863224334823328313483674123357388741185177342788425367578445167187622785565248274313657672274427236448386413267615825358435274214561846212614156213717858764241175687224874228681781316437475466224163641448342246223227437275287524862451521476466182155274174746714472457721721166485745574143244814485131722824115553241253241771881424878866128341127615777318241578176153564112122423781226275145533157526741673372542327363371883583611621137242126136343455827516848716842724286561814116858575862541538814136484553557564283187586885425434186763548668214725573867212734314881277236514645424783668846215265882365765835238277485733383387616355852756745853378141127341564233366366627464562824244571644171774576167454477341428833422547161774465614868232124366565462511813714315438814128447364431431671141686447863861516267676513256376161778334875731588748644225416333632442757477774353731686354865681317884632766755133883845252457383374714584568113466345584878271118485713773847451852168435835646627536478785188612552451634373352671155785538446347476477332576857556455211412168528856644662155637145275246325486674826674152166286157788738521364348174352512265526714451263858632851281283761447738261623636115368655812574738673831576268643445534225258174844584671532243252381362775311168657581324511131531416536615861438272565855838685662558851725186182468253636623745414886626382542667348437633536168187578777211764678851126721566252816331161636611453443553382621154748785868418486363622867817524151683436214166268126772843387777175214273725678354248412477186251187113333752616273173535462884557851353842285658144337314847557684622164443227253653373754665712552466461587635268514426131388536388656553271248733467886437583735844623617235161674176458635818342168374528444332114532562587158778546118813731472311728757673587671151313514875412622443177552437818774124662562764858216723134422685327562323783824762126816882851256545353717756268645741651741885167814671786513511824153462335421472277785864242155324486716834141426662538717641446875484467221237177417188421474536227463212433487548477716142578343131363433682736341367466153356333574482673773646635466486672332278726231813268647853528744333228718341655112685571114532386565161321643373314681653832533112121274633421668683784536174138317126743858412311172288757424544273281412218131521127371463647645873274183663114162675183318226423643731288763266117267521814633288623248171125412738617178832623748118725276625384424668416886767327264852647822572626271211644424545422168357187846634663375713687841181743784371281335354358444733552254346334574626858824567848651141563637441526351443717326632685838471351231522783872414351167284277461515235185535344434762266324274346577483576288418853557466231361384723881452452352416342882534217465324845228372223114165144211182411653513132161813577252774323614362115121613783774454734621568213833245611125833544365328443184818486248141881175672753172426483563257671624825372417822238545618288824311366566474866131811335283425464135788582767478651683557627166331586842128371263468145773884154717334142532758317765613252838481286767321848828864131281636712872221558186112558248358735237664323718438178234121845338816636135345814353123465558521221488313533524751385653281442187555818744746182747735711378342182446828351568122538361736687262616126742375671753634243886365458144321373367871171881778273144883552575384778486137522223278875462476126838616448484663747731436311268283716376254444247443163242553436838256742741746424333842623611347563414827383823833716836355656653243488341226711247316537238762253628365775264641741878432688226317153888433122273434242268573514587228368277853518847151581582286268857144476872711167437521132853463653784241577563871641247714851555211657317316714722537616731674511626872137333421881316783678544218384117237343333811251574322518173436153648876731458285164376432432361281318733842756382325485347225815833644311837783624671251778414182547465876857168817155333458732276647418268241646153287278267543772566782744873325856427486782531772168271241336541721382711387277638135864386837772662713468218776832126327582485241382146476452672271713228878773651431375846185174835136287166411886138882614135126746651758835533774528471575126416482863125725667648273581836882876676153152238183837644858438534281772544836633162823764188817148417412446457652815314226674352188613662773851848631537224876772267571778317832777241465815334887563526242611632352547735545165365117134551661567834652337681452751246552247246381488466113226152764426432542778866215538233451682788341165483856111215372547752866573863448361328561676613545543313182816273122552186335735271281147422436215215671771255651684716685813221483155674384513428338181453865434331215211116443472742664345535827226253514867717157252577381452532388511212785748342825518318365625137546871865236555766123671732188316648528221143228237327152668358557437471624651176331846826277821287737422434431257555562546632154835211767668712565773223624826348153456235385376837158267635871161677874184466115841318342135514442532478716828662786654767181142876734112236734231555117251111267613363227655441181884246281736277772346585741546438656738872676218483424483438287446657751311586631565884816143173425844226651254162357785285278511137787478233641454473865352751623717547678241642773133428233831783741823367462111513636254511328858764574523571726786654432388363757311126226746115525884778531817548562577718158824288747788477251758316834638561746758648413317316241633315735253661631623885868447781561576756471273155666264833642635358267616352168214313636556156318727116326267438134214766336861366475584181618776412518264533761425124143313786786887441415158154454263484238478723366521126822644524252865855223725363765442414513278773618638636357547154137767423422487653582178383222817524624773657875534283186674837357663524534823652877624483231213283752585654315638766623853558788186476472884241843766857635461262631557387435258443841234186161434724112871238258213633586844662331833222268458674175675114452884224423468358283224413641347628642845738388177151612121864165554425171272364834245817272132734724414211731465673321114832174766135245772613741486352875115143437372822473327643248344456587656552282721511163627623752818214634415515156288528314164227282756312818544814282426664314418682158317616462687872318343747652518372853144545578223665847746831527376386761565115435721888221335722152637836165262345366162188417448485543366143722578874834633125243546678556657617517287621416154623455323652664737527532322672315184221311511355755172487171461128556378678238826716112877126656472782642646647855165141221248853771856568251784685432448471661176447663132652488656458823375728158744873141833438847816715282128553762151775357877754657545717844171658624812126127411637163342644483156633611458136881164538875381756764413636633437454453783813473447447183888121185318487344337668253634668134432132228341442225711882224122832164536225523762557718582222825644385561253616728542261845838255243411858446616226833243827331583852266742281722573863775272187788218587565631427133121554682622161126465136563213225636616554616722284222624773368728381861324476546485516833834238883562645734413771655812137366576533477614474834588445165634736358145688785684618161885686448843587778281482852772632261283516116644343757524217462423373675254481121356422534375313824838862464325314836515726132484724157733616886282837116543622354336638334324236753313814575434461523483483764338165264887317731843532125375554234822243141347148337662274842672281338816381324566675731136345452485368375833853355686484123444161732751611342587164626785241358465418538738772211318376478648184327831187614862252551851821556178756713422723781658652367243265562644684772227373313632347165735442136117614454343134482816783273586336385672846178786612846213516224371457332183666183823224164856678343751723818287118842453278452314331817847456733615324571471758587658214243581453286315513763766874255767868162783265335357232634437611612571751561384177284538446564765131884621185417351162521741677616214544564458442532726626687781328541787287155826747463716114284356647116483343516662618814456222834617321712861688426163218347772447825575521885421552727157381222862381585281862553454483364422147571244334523838142862682373116282845733667185733885341635365525565572326171635746545287438487545153254734477363572333437675176782164753517524274364414826818466638772654672788432362218732158427234248584576581846247234464811238185633131374365817288733331847353887687326351417454536362485675816312334188812417425274631687423216264355275486685415363521866347213348773131766272161148626336477441233634315683345215365227553337576263315346638254426477424612326617362118446465128865534363551665218683784113538477365523531441741773666245636533175224528536457573673477487184275137126783432876346774265328375733754652444454675276267864168533367528244821586155825264752368656347485517813354452378731458574331521654114557471262181533455165274712326675633254272251515178443775447687183727746126388525236878853411621663837848143131187238615753138818677151268544643355446462376362764357282867831676451518563121164767355321335457784823658572378684631464278247171167766314782238344864614242556662128573661565364874444473757634635248338178157758781584222241821335482465881572434566216648275663258536235773312271383238512731732886622254374364768331176442142248333674875318214346857451877588743634167854384367114677585766163365528287241368645564773152554417581248645331684112688414674431878873486761135466475817611642468374841828554724638525482158378213164733182736773833688662454376477313273558612565627742154546128725186518586648521273134376585563743664223627552842657252336147441885346173225755722457648281715877655767167134521457516783183368848743138883842845685165283634155531887458575845686666555664655563141714177788438341813728183622351168622552131816813113134336134336826681782236323667682276658787857518535114244738322843374428877433887585827154378353866853454385312684745327618362877438818644461282633788157844562565766753811134842824316376624845884474447425275433645581866657474611314122426443357855878656644416752552251863778636484586248642815831774587435235482764875636231732853832276562432461627176648547137886626858313734272873733762118313674842153572174157665487217673656462462368233556455123656186715776417273412325561445475114286678146447156882514222316852416563515543361845474822211656516835765223585554485372656884317671367172852116538155771487627118744383528236783278263837754126477172236114888254155543454418288568443318321636477863114663781847523852766452838381572223524874273547788432517111511377841111268582682531152518714634164831634471422451261316581272347178283558728382843315544115631316847787388837833677335553517358871286438614542777637684866748742385761641366455378634775236546722634553586576267751172758678638533555185522821145431513765276675872454537747727126518433616147518231483865467577737372126237862233724323231412242387143388382257137146143242588255838216234424783225418322563888731134446263847578173411533342278388223436264267654636155476668676815386177466458822413727812375647248828565778763334358527313254556725178725726641245774634147418326672871224412426472413554765571827663355473882684868215584858867148464245724286652221724725634374484221636647412537256437347427148467513822877846441675125584434785364343441113265264726712248687422517844457216768161626714271634335247323782387672647677267145272778317614488687724751286146656645133727563512177863147444867761455258468461532785583661672811288827853426345236171627781346162385885586153616463125672877562361546638378866875558141783835822637561365658553565864486773746122251785842136411744255648614278423871585143338328284271246217276617846555438248111455217185738527333843172385714372345731325612838486738651538654671123731338586311747424756486464643742785123568621337886847717724625344128251817154448232665181746637644271152543352251524813735457316615688866434852476865522424253172726624338673537356557336765846687162662387482655118181184768685823666828444632763487825212651832587182314564183435487664544856873782536673244738844447462887115531135417661548724284827864336215452385752517135357163182284548587442555681522771426454646533347446685453312615561475632713173613321584642623445844586521515835244832628248413511436742838875523661757143268188183851134637887433352736114871243574765848677824221361147228828117176588231745511314212178433538281818146638772476276165821418317768162368621674436537512728158374265816438412628236857551723317273354747627834643215138278881848126134681325247763725231152713328782574645685562367884587518234752873251762156232327217111544867827833212871314441753113725171132856632751575435717433261522386214185262113357845313212385348354764678534216143347638121211163522651348872173232656254218848587344583863338628872482111133316237473362846313673475535283126578872883436123176748784375774573146257464374523248241564145334335468746781441252716754261521565611817773774251717381351718784423723657642385883657723731774176525186154176854761733353745883644454623182783386236763115625461678656143382816447325538171647283768283235218368352432282248628344733386851261341362358261822572252727114336326871153657324327852374655158267765583644252583482475626548446127312824576633431158848136748656336588868818541112174841515737174362514637352766427248223668371336462273735484421262843574361562146374854575851622668668732351746767467424772778588543454466744814348158817465623731363267477651466155818363354245716451536646345266113783543732734458181133855253325632112844386834888118461243476783223485742675387413617876671664417855444623315815468467416762317722138523272584732178147211185636415731223248452526357871163254664628565444831174443581585748218627877611557681178485411453424636766487786528857774283638112743572266836184721684851362222387118132658885236342554751548288433624387378344814836212686331187334468315528574645735173831467386825253462671286448434452352311152776787474885214458783467775828725828247342114735586728367263675731871187664548282431382852625461125557722521438434445625185577316338663485363161881288464425424543225545866312371732378245515488242386463248568762258352257184871421178677461548725263347286733474266135667347834451514215778126543214346742634663125354265456453353878212488274362662188516412223735437577784224484166851447334822271444546714226254743745655837156572856455863348784428455651858111663786533751644675472472352475226764435788134344611461711512522876731253815858542527742358614883831414653142281423587728878826432517217788383686835748683277856154145888184288812574776338465473118422274668163427578531315534625465164625225181646171431654843634482464337851876228342777136578121546816852252642255637333237168565823555481666635156116321711286166868625253476532354776684383154261222671555122527227858886582168856312238484382816537877528343873324357177618723884256371623721184638854265638655184275653283715773172431274235581816546818281138587145543446773174115864741618335536674282474478444222575754665883767274236545147122215248631316611177521718411612315555484328766736858444477176187747584574847886467472341333348164655351764814544174237674826868175155745852615437661883627361226263571573444183884152526588414173425134778642435326467374281654234653613426754322837756186331531117652552263264535264844132413627166666387628247713248487243886734267377814312585641847522174437633788588125337872758434141266328627162617727818354441236853668814682451234156363818434475424511167123715382585442887175537783757361337682356488141364588452178444223358465222341623146375631276883334171771736737578888412263133814254377826718181738565627838354552755631675511873154534531237536611435583161148634765644487255657142655826168186725265653426734188767636447362777488821216563762164848647488355241783363465233383581736156357346433371466453564443587645418324138848444567283785623543886781587211182457317147137811581326386632562228857826864716834686878668836786215615387438238384478285644634343832183711664181146817354372342563327821644266867458557425278868224437786663731125284574615618756773533317411833275648152175644448345562775435538255646553177456361135668615528126322156782147332181726653137645126781778835576131142643475712786773123183422252564327137248364175563523784131158785164844766218641183355838831346625361555186761433617723212262215386678572215224247262611474848167865173585444866524751277826175867527186377343815613846546488774141626424223323845714543382711527731167324538776267285582543438188324186577441318185551437132782478137166226688156431388552823544448788145486577251461241672416877547467776346636687366764888855684843317276145411141152465277848712467755124762364574744451188454421318882668775617564646254256584133241343552167754748742525721127172577583858637527612762215781732518225787856817264175535686268617782565245758541441571114868287343388643537313411714684145813672371347424151526165858332473531566133774888863321157772665584122542113754181227223852156481775161522476767176434357378434317676811874261722388284581536478617711686726535255363765364142458445186223524637844658842344653461417647525632614858152137634453177332577521268882557356832667842763553374551385624374827665377678815651765178664733883511485471146626325436563442164667533725257868656725623568426217285532337236287256626614785838836877527578362766811232747664711137488584878744288726674451152431854154485722265147366315184458855271284831874751432138664588776227411784434586478287643847528862825823857644838314516182463113856487324343153516618735451216184346666635483826188138621153188713367426646724456864455755711868152622825827621327824634128426432215177288176116346332514765411852132476742132571818815685326267241768861554554663875423337428118113543283284164143183587284644418167772252586471337254521883571322832568443855871773322417214817731354617125618367334477238711256515743778288165142114513647326476121538413644143537212458572146317128755452223242836386772878412344348622131435348663582552265636113153425811868237183161553415714138543432314544187283242881765464382861117461722722646545457868822138681543648566864534325814241383743115354484531126118833538886778445333312687768877517853314754458136554363751756867761744415623673324183773533748572787682721733325786717148327285638582524683442525842642872638863828715521276255146488711884568763586162836323313486118675575581831544827456786275716773858523738758185554715248573664466726416561215732434357625245176715433851388718424235614887158867764486456473536437668663544616462228253175747821333748434231738311881416638317784738165762767616534352844617287242687728227437114882716286313387533775368454266118247848336128367446878817755411132237183526278784752516437827276224567824618874225457511735381373114548814163824861256185338756476214214227312475178725241275786726237261127868218485266434288841561234641332465411885355361257676162875522654786553655687321145878814213368363484868841388773883637116555723118864377767588322725138526517346157361126648134732412581762433865162188128373242321574745441626626343124342374231618887831376161348142128334526267414173147537866131564424424386142148668584654437646232177557883538856184647224367168644534766832767664821556266481675235783136247315671627815233845883775117527216716128712417327242718347885334611363411416775253352252421543637261657818578822261117745135887622757725657823226567475775613375184771617368784216464485264733513636722361375783328674857431222172728363216667744858684747367655756384422164111552832844275711762712152782416557464724132383218388751682337643413675543424621674181726733681536388145718324562515665377381758426543416466542131343714771253758818456814624632341673247761241551436614871612818543231571168326458547543864268735244756632778215346472815538532345746675515622674857718477335132155484858716216475447142524273364872782433177772512563548167288868378132757125325778451171186848753268414614328484462113345654566565735815171687627787683121535142363476726452156813556118116533134633845581655416212536228513624185762247675735653377378686648753736737472511386427318434254882511816554635325583166514254837624463717243152213536813586887522112651217565771745334416875547845551668347758287673646134352542477576744117232612441682445713262781154566454784573533151733161674815243827243384746432127622622186556863634814448174626725243512126727752852728648133348116741388635325765585623113132463133378457454811222458427566715726386617882142145164676284124874475667481648287687827365254656362515214674217131371515627178148348864563384635336785455857317165271723465236651617528341587286624352525754617158381445246331437413255226236781536223167121883712282225236128733684378438725553547147485676245261261877716522161287162637626424744266612572868184528655563476615755127752225123725117552464438282622284617542758425582737635417858727357253237622253343684137176814826586521327646237285815568313124122837582782253555785383763262176646332817885112357512164357238884455117628838312216381546425387622288472878532224422378686313852157628858624266321284484148431831646581844675646685438451538233124781121222543516836824172432534382486323888647632563288521717246142155175774243551432121643827118623678528164423228176745477633556472167628435278525488682362432768513231536713784277536757574777665266252237744161787161533438645766114875548764354863472712775731245382742533414787871853712257857514847833888788147755575843655461542617757687768831853437387114771377428415582352271158881322472761788247567386736828545863587462372865474767167263133122871512481388558441156568327255741166234866875885751562254444524688462663413678435176153811723781642323213215243547817632312353552525127813236364657515828438581143258373826837573533624122312555473366888146278716327556142552133756333877523374278326424874574884767382741743155225268437472477363534677883778336114335627641365671677683263725335726356718466552428518156183845156381328261385342124542664741718377758232741368385363336867877885175737284366736873125555718831135286584658481478737417341355454728246582131234514277828727562278112756858274628378141454252342352688243747451686754357842324351746476617212758525224333713786176826315275188217617264645148868725166286526517863224382567754228243462752483256218511665153643518488482861813313847716338383813426128525815742317687228111647338115211652675414585116756456132655751136125634135121638323272253355756337183142833584338556275522355812417758433564754877116831325778281542464455225768588536627342371535781437426524334827174755873367182133213336722838721461611676813536311572143327266326488566578126377888268866422315436352177667521316753781138728668543518243244173855235183256236653576847563873365447182443583616352821451732787572265846466448662235122586833817618475764313587534871546233244153864873332657824521641418648821757337786135117821451168617351384468443567768351862611484577878558565843444815256442533635422871125362327144586333326731488226241147827284524314745535487618817645343173771257383635566438136786372166543264834771683115156522455625218743677741264767521524412432116372348573465472663521415541541533468434282583512114484455142388816234158577248435888225311737846558231712443662841167547148718758168134487441142537588836217882412536721627568288526482474834854185335214445434351184625585267847462764434453223565472847724473534853881247435378462544151521756512754611353541842416555778428786455735381628725327133586711181353121368861856774363372113125836286415178285227585276251817668516143126215122148514453674356516688281156185724475513714438121172842371553143448382444687884121886523547741577784584641318263121533313133681337414881823258725324654478128716124358168881617363238575311324387271127525474551543282236427517286647425885364211533656711668574161378171256476626332431283737154287156261276416173558183123617682386377565754314826618544312276661561568155873161216877425272265647718672427633421433773125317552253277828637128387748412838784624814435728346314732127768354331617275763217311755824584326381157334336148886423745138683548327238311658436545648236851453465641318176732526556228122236827574118623622864548426368418116344765287877461717572175374576266436215543582457474174561736683836251516426354554666221868746734132238638616458133564422313784322317735386631863778251848347272245237558436124741178524655444784812617614577124212314748282784515137688673474246723517326366482752486147762833782885636427122167676811142532866134871276642487122587618611651287275525582112634677257173314187547175338366766465534228842636376621413515143773756277873247643827386812774354888813228563252472161642632273672285566443314814164352762834224752743516282227257325746658175324175535563518435823367511744274565237412572211333237555877354257533848764665728387572834866374871115457328181715611251845456262628415421645578724771783141765852175485862373152142636552654481154846588456237512526838673757336741884532724412557788685848286436242163818256725321448726782615844721138885611623671373786761466143617537727685363285551675518653871861865274211312838431428737442516877625738832872422374572774413744616636433238158251377122741522118662356126727287662486867555235135747314565431235165883166733113878651624358311524616435688645476416674564848225543845115376766573362434425226735343814446432575145488476448827731183848327662875872255643684131762853142615348337276811672141121183624813118472385254583783123812225444787371625485773354863514728331285641644482473122253212272137835435746421537833353387586736274751148572674648554475855856225278257383862854872678842421727457845143653762855626474764445515181356142565874823571247453876141486226552212626773782845866348263655737647337265336158583663147643753825353414135652543574764524165284527374686174351355561555351165518683235668752116474467424352351548632165177177457338341625323261111477166657464872483447834174356716347156381687436548664686748844683166868458815687675265832154381424744643124823462225712614272288573546755742531287657878348212557287671184183572787354811155186363832821231172688577254123272452241112235357717224415127737237114558341864683281678872457854511144227677872545243516771142267872132568528336235527116114328826244142731718734322347247366751522747813658178435745431811651331573246211738748626318553726711466175864251878586157665842745675358464816111622422675138416178461242564745144634368556762585472776511827428324881427771275574488684832287664721734662324216186685871235454284263163272835111865857827311616613725313654856783338645412718718554542886373471625187787118265348163148284742463447881737724645336362811316365562167214724718255654476458138138143465764216862428426167664523662122584431478512125348133636234722714478148128184481636168558173861831811626641415324357532246616586167725454418158857771825622421558352315636224562283726665421686461125361423415683511765525618263484783668145247287232782546418222752485643545318165712556232824177411237377331425124567757447738581563124621471868226436121847872857416767468572253134334338841672753427237262782581656744123315447135688225768253625848223857548761431483574221557414685828567452375732261826538327223673544863166281515451412176748131664336235272386335281484267122633785884217777567286687721217155366723532445837553634288543575171744266718227174556187224284767556145721131537527216473574251466724138271686568838746241528847727462475411853685187387478436761155778445148367611221174672364254125171741717612436781237237823224637255811224337747778211175112448727772134266216317518442531428272888481561627264672468476523487433385517272783175763467758488417232716215245835477241564867152281634152214235243484865247636441666885123646381533157271838815153128442343373877553586258457172853335613518546441145516441465261548164546838511378634448436767582312666577588244711167377118468568664345764538871535213364737658758514867627842444612353137668717767512777764643151454878723333841148188782225548855254738714835717424416234125817162513156827687738235264228455375655834688574264262643578514448325248725484861286884744346213661733327472313374264568537633481614862441726283243248377147665578414481433528674222634388166232632775668832736635874414167326658125213511815388174154123457437848433885562357365676135652483162212231466787517773188147683178341421358124366753761626658537874531481444342612525681715822446745771876728861416515587371375711145888321818661613311324485471133362287248643677553332845371187541867124517458663213461324164611174462417447345132513668223273855323835188575368458412555656355357344454852254856485638856727661435836418331873736741852742646588525582283831475833131626842238717841375742264588464371281658718811476336674763888652188571872715137816342825324375387256233622371834487276481267127417133666116787128257572724447516874318176624781342645543667316174267434828675337822167133274557738664661474728655815852836465225715128834325773526384671646285327537532625112838737314872347662534816641731253365676765212768577464741552611886631116451237752281468747137352831135276246541662734757786345731167454142548641714888553141686351664855761444287582661862256433238535615536178347388481121838622765156771137718864341364381466835556857683274211442442183883436747536588324766617357642338673725645664172678535788557177312837741368225156538183731672223246462665728818436681644512573624415252418215726482538476513782173183785822527142587652756373368286321872413774645753576338233175487722366653134366128127584615625741271513174667271171322354415753181516378215378163173442464534458685327225785314866414332412121371676824786725486376426875467847713431656262321521365857324257578782242583827583282543826326374512433274553584227252167786438728437663325574476215343738864758777222268786584754814546447123211436418464654784563714248358487326885284476543858146116115224546156755272114624366184374625821117154526483721635533224758281465432474144738856647216435655164318584732375346325741541884831618555354154452231287225424126482451243776273473826743425658611524248111821464474361567575448882517864356632248686282433371713253343563121632538422254871557138763165676433536547868366786657788486154142531876416617255126147485333617376477866363771573233743622167432168612635838326675721544276885421668544362754681431812186242351365533715768623423513831361146345137851528443448741646145167617481137841382543661622323258147511475187836722863481547523528282238221283536438614474426573858171253537376456742345562264681762477328751457328436626478478467433382625528461758141484141766742425628367552766673553381643683684151274823273353317178875631835641423444838318742447872427887624411756437666341254365786561155424242862384487753315771276466274144614486342162286288646558865587366687627611858247622162236887252148572163885787617537254486142414874562637741114821878644771462883331158574723663773124232381817543234242784378426524716812588862413168228444455785688484442446472546711487742728457745764152652565687528184425352746344781755484821772672153278722785176148323631455613141825516566335845374423383275215676887513227467164623113687825248576556828358534483278641155734532333724478583655876173638414281561825258736366532268688434274671125385378211844684256422458276843715655726537714141651671645584856518832673851574435451241665324578577682528188732124164445761384433126877342512573335341827286533538122666328822282318234478142857324265325816625173467224683474215128563834837565827516814287582284426717364633757224277426653353532812487678546832532575646514233643763274782837528488832487852325226276214748824234412766457562383718838385224882566648132464314717576213214762127878773117524772244713621338778212683342245785417658856665637843353485545353632475125111145264535176655125667814476566812314344365154247127835174771452887187784721844281181213683176575535836241781458333123562846567877553518515475267873188214154234875215745248276265658738542653837553251563312176757751675712617548216364732174512732268716481473726351787327111472155518813853148111754183338635673888334873184176334748134653278664253743777118512251742267626737482545815767738115816532874117815428448468627218646113413482168618153442447114142887776878836414657625547216416648441877336412447241181173471126544766857387172628877413268575344572721452837321754851683358733722434332285737378464286282488681635342481374427622737836243433481112756685523457818431378836846533887674751175527878748426546868312514117428167727673884277768481378883688811635773165586237738772721154143266166786846167732123252377682544851887352434375462255583838555168334576745444143478568224322733268724884671735464753586752463736156162146327535553763554857272742163231778724472717785877616338214861584778187243367325124328271475337657763156211235461175668386132713868725535815651213881443152425476424477151567438786243612237567263663538144451224114827444341235283348213871154786272264742278668615273215543837368252313113712723124264446531625234836374661476671413484534116851472582544342354342284517214711442247863282138267748162336454152255627726431667224287311845476474688535277624332524512147641177323311682614441647225132483241445376358142331777113424631235485578714286644474688352244635763638785458611358745834846142126672576487662858452647845253774183153833826445133553368535184651678665866674577316333334238335137166543411735558722537143542453738158756157421434842421254258624363275647875624488714551865661526215366524768853424356375542645244673252276813667627774438641124541881228352831814368681274166472217136637565847245825663174552426856816333182833614438258437562684171311726215632727746836635624854544733122625387423314236173477567231477887131817565425531257433654171356568573461827142446335564886847348186571751112832137216717825431312141682113237741171846522551873173756185813628338433138287144437258114126843247716513586171481432873684743415575252246864641575664354614814858364886346334241377815657223148885181768824515468167747885864318426468132512421354336175426721433562838417227447187453642258371363886723778581445412534514477567674825782623811111266128213652578731247333157536561684755134675373428534273155338463254523312373247528236228188842156386883417278251845113634635713527311747326724464124135861322131785731417533837441367111768751135776765378242633218535247825716244885573122876234473516365222315368346126438833437264375357744263571623865656467651823417115671453611155862571427428526121128177655362825672344644766844446825361626563566624264677254624386316354746568166786325234165345834576173486216578152217244877235163656876516274255233264247667477683147133722325643747716262131657772334138781833885718286326523385183451534625148253846886667651852434638113621131884157786276578584416861674622244658834138612585526356544262575445286688424844861413476124268848554176861612328824582111151156611635457236488872281376548534474778724145117127658274444175863471738874663687156851528541638846572868656617876444854638636821736375828445437382381637552865722542647551823243712514467487687373578331542674164883675385717323653744471518714566612775188684735245251784613168554854241545158264873841311835761427666184173538821564341426836733775634657344174468317825121454225722844182722582683786655561257128636216231762742456566287886118728256557743476325168715876311884485561755766475627772776688344786766543463828135481361713713366514471686261144683344464372536561576238818212714868823682113141552165212717872773586441282556535168317156447646512243782325213245475511372148678427383373812436482343173126158162854188325155884386816656544514151666815686368747871813143278118381818561274533317678287438152634374834412513243474318486561616222714778716875337883347223511165461654522742337312385526824868841765337343785413343314447546763724556431355862845622586581433476766656358684624471871267314712528418227836825754153872648342274147743751443427452157675378546354477816772131628546635143776658641325365475782115534451261886641713633857178344865111677365153767415374171751424767448342333422324273818676624457766423833561442271256733244621487651523651861726738718164855828176442653873288462313112733374612778377725874317287385567846566737837478344268232378562643455823462483316526783162474481733881145643726847327327646147878287784365712357346761272245572186338626743524364244411124737356586353488377866382511474626324261867471611383868548652687326628226687122388724455854833538334581224552734664788875522714328325138386637164481513248846548714114142331125723283858557472587882312574587161832424788563368542731765253244425385168258622146427647532367728423532586355744131521488718571486848632744454177316868361548322785626556466588178437327827771232218138546236323814412855878321734637633238274743682523454573667162745867174857577754335868576335863715731182526442455787712886252278335644734762618881415155685446471211818628523485472626766837722451337848734342551217487428581588622478334135247772235166163631733364234671113354774247343341646365147781157615727885837777128662688465652354226386623525721831673462757135248427325445312443647358181725216511246168332884448615461562821727737436888614137138358472581771631817184337546155626313357744351878737612461856751418834128127546151271834331725345533323722827657683818816364466771435756746448612472621462856272864171685245328724558656585863451423286362356341615163451477567822636561842433186276226337682684281727583122337218442236288571673721873211276368833364488875271237186515832342734253881836284116377358632827411135857485532557713834512357318844556723314766582532526755214266124273231381624521245583818553736563277533322115741645252714733864516518813133512811125447351115677463758527818834855518517237318643733337632123886174625558647531663433288684323456783243511768884616854677222438345127347542836353212822588482141128121623745552245484258638633878531363743547553222426513281835576428316875617484284264875248113762447276444228833713885158644587446524268343674777366372816442688414516268634257682374821557163121587857344332137351426853354373332288581842358426684724658747452281136272715542723172473235141886768828535881347854633152663154476887884466417316387211357335186568687234242467567657485474125568764387228114873775525535683712581111371816187341561341614734482542588115522824837183845882818668781166214654825755283583312635773445752461142454128334885323647485621736347183722115134161711565648154472751264172545744632635245113336741557622145273135713665743173476137683338886742528718868421448141422647536674572641622666784774235637158458774121414454182664866153733551555816437516181234234121518427237517512368775366818425445148541238338733875813824586386243515386873612816432627758237462252524177116117676834835336151661134383477548412466324448541655466888556177844645344163417431225451826155482887615241664177677711563186123612126848485655734753756724542862735854174124787132361184544371452262333542562852471855464863125537478533447665347771481361148624145633723673281132626374478742216731641831558158275135727182515388577116242367182757378357363134884872558847534341455821628452536773667474684478864121624272452824623672615653176555223856118233471481314731672857575212375218743212385825718223746131184534686382525247841631282381312287461188326568166321761774116747156284634833523433184181513846726847417534454724137411546756544868355744771118636426773181831122245426312138548235446271553776282514586521138471875863323362132262854256883127484238726624145748541787664521265815868683485542838342143451452147514138138615564186177437434487171551672556552124351415712476582652552331422313221132176154721516183776275871352542725487523236654686461778458644276261634746537574222378432188875174386582145265334426552883384538266135342546256332271328658828438254233471254583152563435618172287275713186735345541158846472246253531487325755573624168342631176484426418478577852168523225742454351857885475127565786727633476652715283455353541278317334817842772475823425551838687613756864782883866641236652173765541128247866756436165768225666754528721132387231721141717166641866212551372813638343777256474164282661448614577317235382317175521285178427252661813375132273816134673677833388346671431322477413772456373166166628675723286337665263783231162775568318333558415365168278746264626855174347153262212317737143343567575352683482238533143248311765521844628813227611361334612415842277727136442162452413724534377855155688625587882284847473586452755277172427353827576742641134828256463574513212551543432757182872785144435516863346218834221714575112522111522331727712838221752862117884366562678147571576563456215486762457433682116771882751681645247663113635865324271684546633744175723153546587341841733558865757725322122447348153711673278178748584717224846311684534176232561126862884444383643827851182116235466126281575246442156271152823527484836685123748268852371675217628713845272242575418666272626412634644576815572245341464331555363454277252825631886656537867836283436247647346848624341881776686617284262746371256772442162787214583753611842174786738438815655527643651243585835454583157327178288666256858626573551285118631232781551344764872647378373881474524553423587888542717614753337278377152558474517125576625431373225167672861521343751316883722114471254316763456681775513177688476184477252388834874632748335525285524125678383165135611355471735118547528766251468466168851531683515646252487726248833648425556342138573383168442453572572815546577535864721117761673414362741726535727462186245628473325181117564624464178662271852731652356458737314557783122682414527222512847362722171887128425258675858341773366577851378463513456575564263747766363515367155757411618743167615747886271448427174722313381268281824734722226325468253528876621832427257671151736158536444225565615213754424746246554131732541172564572368434281841785411681253677613648247666428487282425251232476737741735462455251143173177243447532732185337787171348585556227218161848724536584285156323416278652227612323813443548133613363554466228318426133321733382722451155421716583456467737857374387724884777224468587421431563323462164474412885767735323354187757375833528727713712122818428344785362435747173842431164616723181741627585628124271825161633885545883248648873634762532537351321881751366281586731511513356663754277584581852526654472662746784183283576587384286454632776553315622263415844445735727636381322583785773678111652482415236717583422285345485751282663587573324287141416853181852246363535631462528461285751263268381726434715472582871253133561626484334717555177176653618437812763865211433421522225732126242231241515516451362443367382681435763731747672257886638742755266418715715571632868581831781265244643353662423152253255337551286445542888828173328783178752328387452854774626224237655823163517253621537315283488144627182251533511751474878834752627845685173721758528118446171176876875477734175258864325726764726852556881717838682682617423754548438551244644783311463853432534284116216253824142462713214814718856685851813484254514114441225368621357525758473486163255167782487387258556677486123667336873673723535241856113256851378886157117427167385456437781822232287648868667434853466485734821322686556541168672731876662822332881451753822518364355818428816874613216425286822433158655618531261457432837374433543885737586143534223516144164651556845444231322482454847614644816667571645626764855387277383335286167515785543615445267662561436247437684512545665321557372677454282856843281321318364287884456667486724627711435147837117878432132555252228444333777243127846114641676283132622511232868387718288868654155745674211515158231725327138124165137375134815834436648285878525451765647288512374483441576135126658462643271628384428174258113168387623881753828342356574624288246674632157814152326631458127613232686645764875381421153634517281442434456677863368867867833735328455453126278433361651376652812482562118364757327621324754228578273531522678185538662276574623868162131866114577554621557717725521864832864357357338175422246285787121477666477214451412717673787442544837711344167518774484254327725334471445131347238433478851178885843721648811332541475684372665815878457773723236355612325882385187885358735564574182137852855254217161268121286615514867154653223831675124788714882542882235323321427671453178322215783181626817873376768464145774287314314584266873765848814382663822283356771824847617112814451764164476154835546578447832887768243712831278266826615555451637688824816246865177376443573247771868462112376347612857275722824678742462134627814861426764136814778547445714418511733685877668612531264763274245575413172834833513713273425121587815888766844111114612487241672584276654223511735636274673667436148844157361846443327156464267828842233451171145574377165254382157538238462741341378428831146883223552113831133287384182681277385877336747358828228515366136542882818412543388257576151224281853176256337713223867635288413832418814183827756633818444272686338375266312555146455221826756831387558826512828375653627558573541461142728671685476833724621225655148553717571283156318181536445826633764864347543363154861131822377161216234654858122725664323421363735822437647847154568444645131415616485881783787863453165237132288464372753362355357442287734856137533227412232245265588621538867616886755136437324287477316632228474232383623744412634732765121336861838564726862376882372412141683656154444774248885256231167341254654153714477216448353346545434114554845783253513432627668822654475466755254516854324827352352716878853834265424868443365548658655121615251772246128841421484813384212258548346165857458473473218787174884118262124411723183762824518785721164185144757456565237362168547841531248168744458585372487445674286541682146828827813788721263773784352116341776356438417352128265365584456883373618316781846413438542874542453322132372253751245168633416627582737726524655584316565181323885843713112775767162825173782634626166278561328845871778528855662771817361888484243452236648555642551827568564721568467246322674337382233366416231136155533541511354778721353445674533442461365342814123886834113886254832366414577885375771426823465767843464124323268336766628311528128343353715214238865187536263216256145811366141346711358825384135567544324565348131458226138521241387727123241335824743371368283884338276683665324546234236435748428753218383238718121747632436733485761275234433535382364315443373236231558651281871821736848117666318868424518554741772437366871653278111854522116533477371838373557842853225274732638645664813241812315721687486741248327123478264865778541721358455733174478724613432785141166488272153861263838743445612476314728638171785532656148313154811353872427638275876363681366435166664645578477868125722343876866388857443846572156382671688424281227381333312125571656636376271864556241484477322336137844545145468154478787273124287618831632372744282468625221785554532844415671144468637668128154582222578733526441738732788455156114825674563341875645167468652176124832282513251618351252452887283364817322741776323747331438276767664574645487362252258764131133365566346435863772283246352246142113621318151311128758777775458127365331827426341818361323848784484731762264383876333422685613137535727287435874248763248675613745722824213386123866322126478167282442757812338814762281476574352634418585817647482851536136218748222444476747566274112875542876766673314656163754621258723562624618375672446468157132837843767322275621642248633623731178244488212562238418333635766521614165333378536468862351846386245321587261283844827322563372481236468546223781525161381331323273132684278734362756564422168545377142468486864813274356114271887541325287113656461648764856177337815621264854381853342451314786534335424281581728452151338328326287612573662142686425155515241664344852316761714648115658854123586263521372868463621526245678574711511473118174373881744175513412318428675352683145845136745442674362777831182163868844755278771657151885223556438583358488364541638373383637775231763464851743666135217755278428237832246111726768222144186576145273462624444162515463157688443836755878378248584341678267828612577871242161683826724685647135132682281872723784826757158436485332835565131528426818433147614732748581728362487337147172166223577286436152511117874561388858732436181328815182364141238215252717281162388784233784713862365748414622478164586524387487666257552222323233184657136624286731454631443323352455616515278485231813782243138187872432356732282142656526531125425217615762226842518381776326226447221462216534775626647663316855565631761372854721246522735276258742417352417332528716138281664552464472645376386857854121271644568232622246864264121325386317126467125424652277373268464725714824646546626553477647542556762355761224226328122384378628744517317278558831257422881468718222636517767856327454446155687828858888462487268716417218832733367776622873186888724232352514245467353422728422542868173823315361664444471173666511831611168436877325458661451421544321576487572486561466511232315117577327382541275843688151628521611175472831654723418442737314435775655336828275461652331116682752752343748826224353315428217746628146377833436488573315232742468627587813346725264366871125617238723725756282858585232171253487764784467646265245171264441642574147264435665136558112478288156121433736233475282651456243643345267325143148281158711115664185742735625685184318537887817517236536831375871675252747878586678428617423883152283144753141723812261181118811424242318284266172737665216464217874627766722342261888376416346763261186121158876271652532256863745846662542364681151421242181875282812618153378387685313174165165335228518162155112315551258763356412827228382463724687154355133315782563583727761687456437278276465421323266148376211147114517678747666126367481218671544168641437388368432547718125667566576787673771457345857134166721624211282734217254164663135286713312627557483876578761474658215472457218175311627428772324216162176631515673432533618871573326741172266686224537135374584518882872634211455718211574631177376771384825118412347132374453552162645411274742543111782118168665725366375822812477115734475374631775455137524773856861777178352431228358562786577416845316272247787336421332443224134267254853144357371117828124357831132852484333462645311857238724417715757835286163741352142131476484857175612217158823426235352238315787256731581678627827488163271715762138553584554862746126852714457651431535582665823818837551427168542152488253316785464245241187431448346611643372517151741217172787321338877264421534417321461384466716855254544761847241521671534165278683336382355374763585532387364411127621828138478222352765824166381715153754137266317566284817257361284121278566216176176442477851112813417285334343173411182151423884242655834135375843381265465623545338281838765541455857644876858142887223671615633272512567314521678554447816662512842631838752273348266451656187741827163378551826478812831387223226743688853676587452468518456562248421532575383166338851752641151441554251126748861551752121543385515435381472866376286235458833782516461274718385478628288364375435216327325427552761376263712531888785485624725288532783652676871827447468587314684457741883425763821844477833134142584456818128724771368585134831473363353632634536663438763832185355624615561754876156315375517874514861136644361378822715713657142675363277724561145274432358474333722481641227825435165584272677216624884433357412342754842415326811562826551721645615464376738378342278635124215383681638656253581518781366866247541251552258218167271146642376583721712884468584875152646384457537178532333477578724436454116518416275631812688256116567467158577712524321886777743827552216852338312361817564348268113687867584142651268572785357332382552247721478621247671232143766482482437427386845465432722745417275262183554653278241617282855516378542271742212874451654455611257231255874136467133141866652752727185326645313557735138157778123554352787878277211216345273636837422145827731736682531624717136515542154615473387418155746821822374377554612436236148816242646614265187337377852351771255165248457537415433111616112611556552222558521556311172753157646325751325472212126578113811783477672282544246382747267476611152288382713361168786584211187143645722746731142477272634812561655313421164776475882123863526217828654548685537843265553524123114623541827462264715724644656222388822487776273156115164315235624584152176171351124681317422647352651583282737841385733416258763683322586447724458843775167215246766462743656518421444747683873476866768348388878856231123677425758325135837521373315374478745667565614887634323223455853261827776243357581575571651184484863268775812684347451737272541347645117161777351884673242683744222543263687171825876634535346627184713563371684617556723763575635125544274864223655477465878431556776536212125243213232663155686163447222441734786716432887388652855888814883285618738125513772376721165684374554334212753152537877273442214184735212571726871226365342341734565153536873374837472454682456755848571624114524324638728522651675783652351278241328136613374616344718878155283751871687384277661437552611527465754247555554718416581456552156267761276872844483422847676443348357753531162277688811648138283783156583373266641567326315574647164842776357213121717466122237633542122264736247141466541131721577214774821631365751883418848853547661857542176661484217811247264528663416667376525125556475621651215823641165572373388657834683881726487734557143477421346575844364611448675474423557488373662311161816468162481845634152541146821523488134756546772845137227861683222872668752434284246643774236568638288827182838818511688124711856768332553764473652464166124827836223648217777814817465848632142386811645486143123314468616476621611447874123474858346231326727226265785623445617685742376413357822632134463486166262768723622132812662114284683557675622765483682716137387335484377571765652337263444374243171848264512643735871662783631287312458658417543754651157337152448274814763536387353471257385614885652432165186616468813823173234228642178411466881884888623864766147436527348381831535862266768141314734151165366486514161144172445326854738548622632441184765436815874635224762562426765711526326785382665657685852575115511852151312365464748237744671533736311746446485242638757255571214155732325113723765782855226268775565884568332314386421341632256856416771734518441854186748376368387577566858582685765517127221665288126348654562871488132272767256736718126285681666181361273385223555755861713142428678571288264756657318623144723242387432444534471721345324114745746648871172731762775236644111748387422265368246587652126733883671857372317862446715567826677313447753778541131218744447116684838555623141171547636416175727211714882831157478545884625152425346813724666858133767542113281712885343484143418772274452572237656613422271164154857165778568214657222623466148627675368624626633532676626834445147832888442755358377234138166718684332756531264446374466356871116724846578763168145441327732287236186637848717288647333577145624643581758144376683281167247682266273343588541138336753481647457247542758882156276784715736211616735733767121552235861415128265848673677663751623276683822563324271314372478522483524772674442668331158682458787356584671812488485523844173682822825272824384887846466215433382755131133243658782168467548442375644872822774584543573158546253643422211376224178634747321823478466333768481843172822772313786846518123778667451474764183366156281686665228853876443526727857782314318788357423452276267872685657742117613542177816314876131672251638761521617381175585726448411381152384815768771674647665156633451847464426465233855688157736735451313373352412551873827575445533481283163483488486222374871668557541862473624231857432232514134841575425124241846668511157676884523366828112165441677717256756122186325358635742171824548723757227285217673575365654584185243513522834476687713718328356176126863487526226516235433335123653384253444271451537516147768668126458115876643458627388853721378538372553654274157222125686641134355856241714135177671641446688215453465314518317513184571288124113176461647143452881748776523137842448466716528354765642425364581584521135164233656132382573233748241233468112625362883816548552232788331268221336784852775374212863341232331233768472886783874546781748146152652435276756622616155737643182728726644552546852237578755622185221162855775126117516727227551812447272682655847483483634574485335824426568581163462343156586552374433753556256675627223452822864814621446473428612455288164257741637222785846632121344133855726524853773422321715882885438238825223853422141145541132543173472363148747312773745885474785588671731453236361381487237244361273857312776536447826822332664548174783276487235722314166761232536245133222784213474543635762855173812353483873774752823245454644247232722868468342418454484354148321412868573238384142375865415721845864613658141833446674122377662577264363882264251256266253746274866766686257228113116446787414881436614466256357512637457451665132133588732386366275165745137657488642133351158627871385844835836668388514281647387314562162237474617747172713818412323224684722116787683356723585125531854313853764676872265363514515444321152644871837521628116152517267554684611822565436573135223334618426188638755478878252443421184118445122661832367827651818248117888257472385661611377127473414326476126365527227523186723841433435218317266856424427848173728523627331337657181756877454784862688384255653173276115275724813531381433572371724878418574562736723732213252178743117414363466886814147274812231475527418356571485683137773112513633683765366882688321575151671627342844624122317174547314822861825768887422763248545272172438315715377412367284458213757246441716668488548828187827175325612583575151532116677551125625378473848267354683585734786461531228261338171768716767344584368445343727575271328323217751134618414134416847523422238412827122112457177864474255646888877235488557655635616131252261253627582264627383875126373584177436735157273672145832762555831263888421465561728345867831348541831454677187747367385485344324343481427477154873183124344772666517377668388674754637558658582541223758323473876741538172616588734781785373435361317527718822865814244662851787548624472327178173131142485246834848684267442328522347748472516734573256456167536563476427466813115412443615522245451182216462178745773452587575525834577155486365836217818247742384286127721117433763636143327731515622346156132257713255836317834756182824767772451472535234428266374572121214522835258318358156264227235212182377745157656565561837382366857574143878344235541212758781256311462682813515345814457484453735168815518457787378412245376884737253714681156152234417681862241517173238786542586372365437327721145358386157311647668682846125226118534644643883271666111776861616554461111426183372786258623375131311125866225443232385473522386841434812532648778187716556547785786384455231533723842648655211822867656374432683822235524412275758413482315411732561861188161185881721141865337875512117146586722143231711848518126214421576564743542215252286356325522466431275655238856457277578785134155342628834526635748752427431822236653824748342212787324122531617547466381131882862373714684747614566535423745858131648145874388271442161135582145415755178835682681547777734367223533552225322711252458528185573623182878585342618831384561165163846738181717441581731145211775485836838362673435327271442357424617772238434171422127514185862174483275373857143347113154288522426576847833612518833128762353554874235684422514528715881668882277765175626665588821276744851588466271478316518212827756787371184552126565645713111283453332344265242437133661818451452374424716357138541225164453474512442231842521453654116776866371882254821446544343672243853636636686562245176232244638428332381254782112188872334166626456337177426145618512761521412182871751813868411814646481467775531558675825658715544634662676463782863464127115722761883442383437642721268783842713234783224436421425532584343432318778545613556832182551715244256112241635337132266636436587266842563352512622178721757261424881463235864854688747485357558443725346213463443313645478685154174212731154528622325754444745323462735863748412168438384643481621617655388663612751768178154471683712836821158235421335588437627764515112268375675615566748326257713167382435222786855435323568185533863823221273414346225137741111665533235455441767144545321664232454218541613288685627563427171683738278723834155785282546568357154355556751443514186831488358783843133318356878471747824147656885644482146211474873658143815447632568424562673137433135545113657426871441253236838724275527136326378147712211573527565566847441728175837571151235243731676826756863643124121762231546527751288168853658287635447773852187517474114883786724575228357235175718377423331162241763376316761763154862366524116763282475717527765332787282381363347787747238371761822155123652332252386723224637412274621535545425514636125865648121781673352238357243622834741882878673532624665128158275558353643546883781625783785516612312231732183675756311415362171337387282161483264231271452666475784657565231814111327683654735757654337365613858618788781276633432722561574287613288647163137522231825281845865675541217471673465126243831612545216583323777651235432818212875165621467252353414566834417188756385315347785177453485554328821522258523184154173548227516262665454614358626432243884623328364566258681181168122818763573638547772647747112125878542871273445531747142383658365728332363112788236278517367121584826147327862453542673471257862168344621838843477155142417868852342651674387535625343156358741515314331661136677514273347551384634656645744663331378485665656482612178755465521144662235765347255152532531234212857318412182581684658546637615355437212184832775827518688246727313235736815514343368738286243144683781882661574837462625771872374582571675563834871831483511264411753158658558861145846461274375741737677685252666774778813462375661412328572835778342857655742547626723836362135284251251857725378311688758515771775828284275472654676134877772525754374514648414644217828752738712373657644654118438127151644377586236565221561563434181742381217266362145776218726134435121161788413762463712232814642588558258717531884471643486624128183754546671331368255855144572555247752336542583824357645134582375158435828818583153888346477311621162823184848275654421526552311853261344587822476123551618657218334176538455262767248181574554615242145588428784483834243252568436127633642856772266767622238271484122841887817786472778353157278156124114661285453377124483553777424471613617218541366377827588241442851516724248618464475635137745838411663281653452141256168717448688663867458412266482122845562255661382781714128173151354455367572817546766273564222541281686823466641733532473458151432631778444871153744513433617287244251654271415171355743526447466845363834625625326635752143264167562661837818711867624821246687286332784536884576327744417838823315617574223518516552531137724818542447885628634352168381682742382771787728483633272865228554882288621653312511313412516314831257757782246837644623537755162357567716635857873651538337778344512716512371741418726372883163572632323738864856621144418423466327886221337833464447767821368368742838261446658316837175687133678412824653884665784644524854666741477182783655155187611643687458514664587241137222565622672485332517754353481884833314842588882635238248112434536417224785157674887135613474876844811268874247521811742546388822257142512327132263844774265841128578442178245263723828576355285775852658575283254538165516564631551141576828286154711876172382683432442583273716368527238675864514521152585541354553437352223857837826674625356427838366753511266235144346241585356641658533113351785386784467181713137773165875383163184414342324128224477546742688438232846428865476747821622114667543422517362368875888413513824277647376352684462557755547326825426446673517115747624855781656267633337831817142861871325838441562615232277516775261877366873122286782258741767733458428331436364644554753272238213556422856234825785172127782452358164852551868658467654338261332762432248185176577277167828534574828813573814447317824763531178715714474227587714374187872184445153163628661486444111574184344282856777718651838845851544722868747517643676177553321272668541283823253467355534232243473724361846778137735583681814861338565822258155857345327183687375511536544641761767856268843773673178513848377763461512431277164831772135846356821885338325215337687245531245136446456438575523264711162271662712686586338574252456442312112412727545212242843221848375231421732676154487141762256167835557631324622557316313342876564638654421564216745758821833336155344362165386568853437227442771115174475113356716444355416443241228664273265857241251228574877457173183747366183245747164127248413746725384572831652532664814378761252711584511315254657164663372444582257816424144188228186853214747131852526331836121815281871574835261878244333748327584524746422757117726853448254573455213233886822723251627372733248582834558266485111787121227226754628723112883585276388553341345226127467363587257475171785767457727532576875473178533668388356843851441236616422126744373368426261368117816858867428521477236768858512676872315884267178143627162355578855287885436286618228786524266864666115172153245241627364215124137455881545814258518317838815358327446188116457653173565361428146575727572385747862423653267811442485541254541112647138736518551385575631346736313777643418316535633435454238526763552235354438116624734518367714578182463558474876372721847213561415831837552231136628622762372732713681255331744428872781185377213473148553847182855438127486445145625668441341557687464115223861477341263675534582872838734513438715545712833832217686558678136527611772776566336442412147131268275873114573575241646714454617337567871215541375337473458878235823113316667218353761722678124545386518752843687267355645264565831552155664687353126626831276831248615213114157327185627832284882531228524766863562727313885273334665268466467745674488761383443488615421876233628875727764341416217822311142311343135727616562312128213325668152128711162426463571825821315613258561383425573172187628813872788582115278438722171613185437511772233651743647218674534811288481845832342656782745212488521263441227138487343733453527717575164235124248164767452518441213518413761867684517276557538363143727253322616442146614516563551887158214674265675715413457666777474722832788323248548558288221581135137612348434751346454848142444675786113631646851178347382664815455232316445488186521163162853785265558534262555642884455452256723114218635377824354141225132762316678588842338622641268115341818354884764756462716236212723123512735173366278865234675347611374553374566723771322841588123643585524586766377267742152277812134712271635447651844533233878762243136216328188138818228333135851624137676524555165538668375832381643348246267572821647522628224656724376657658178763656218131273326512243225761753176878733881612115733345325773885558834868767525828584872683538512263387227332352348267678732652415862481777266181141213112555787877357416823122231858772123777527748711481484868236578887638542575556318425776625862848446776778824424253351162856642455735636521584446555462831177367151473432436844446173642762317353221478677566513328281568781572726834275588417415714465444211533876874223238124716578652541367544523551584726524763321422148561762516444654382687146474421474266646422114612777315824826758852584563173327783556536743828513775683463383885453183363316751712276361686886846333135281236681251223852174241366422617566853384257218734841213575722683155742318565657737768142471215314611153873638868456861557218168773453472758411461118486765764185828287858431788785643817322486348428155338884435378617355738748378587774616477571856867145148473586185672662775628626524745727223283671488846531672454768462727278178413673131885524324564546863381456556382624371582813161578835212736164667263444217871835214478125437826567774661846173357435888271583477326877467252178471577475524263256344576868518333881162587678377681157537556751383883433556771853764333334272671513161613723186425855378537844642875855625245885588635284242586551544862376141784164533312153163855572265663434451223342215886883378331218118642274667341814312142267435578453222238661268685158547733783134585364811864771556156862817338287645543815216752386756785715324136817247555237188737462123665136261756236866464723252864876784583876587726663676441884516188533663172818475276263218425143683551461116111331165615268274346824313355427832838677553244312417374561632535153146287363718113764616284235413253564285121783818572231862833423784665755727188633417521648815566186884121324782182483632832354555271383883611153513564635234386358737226525762762175542144238837147442558168538563611684516734328685216586827417262123637211546424867546645636835215725826216145181761781844286288541361751753542227527324543244375877776763381388274246878575815787252165147288843858624251684178821551862328245548555764467373834158253318327754576715555537881844658782633171886788332515131815823475762414318176381345681713148455777432641827856553445453818442318786272736831411541273386275446724438147732433543648233535681258558331537782422451558463734414131377564422165873543178412422511866665221735777512865154758786267458823628356853436885575664827814235631842112226236236446882386543768832388238166233314364448413615282385438561572545562438885848452632228147322524414322435514744652171223588358314743271646144811346345383255685437652218435146254485433174276684112125325453658312867516866248416588378371812533175671766835878533825884327385345114483212713455741768248723178631284361243645342645878478164213581318848773342853172584754727783465311231281721718352338734242837158584436658288211761224554228771423712615764515332128663381736682154268448167118664663356711713463287637471178865254315358374766822374525454471556558124135248761554378467717447125152421112456315352836716682137738142361576437784456611134668873114748733828684182418348431217216684115827867775776234742325488625223687226864162237663854172384475216782275362375431781655117326473322347157714761348513772268174852231785185623611812762636688761846713728813415543283563238376425261482825352334463762361348644234271621813758772236638684276272231186731216473655466274581166413548161652457258584636672626715854345773585268653437776866557486866432328445216768381566272785645541353266182543633228825314257238726283763874244725182371123537265837174447866773186562814454233172268348255317778417271488813758514632826263325378366118672683837586327284473877553341166852774245688318866533834214267674858125517326655646185728622151324754142317137785736183861621358388562738744138226226876626277476487837836251261615575335244334848741721281225358136388158774772555413155414535815372846646221378227215552321468857655137736632567742841235678566264485818538435652518813686782233886825474175671348828413538454685445617487453362666434332522647156583528167428687741372514745187882882627773381762267651184124616825563328486166517571581841554876682182318534563245382135556482446775678482288676873234677451213115485227664746354278822637333554871334242177476786723172146434362766346143426783333814528572183784313287354621125232584712766177168447657663121482885741315815656666522516133411138118587487367263317335167576713656237443243447251312166478584432578134342825422564483813857311472421724181837352467533184436414624135461374554442837867524117436714833155474636471882321272582278147377456862141525718354351131255883756478617633334662881458676551455638561323214187562714274532172878421311537748254837377552138124638226516715573157417542171837512871285477135711644545168422232727257123626157668634387118575216878728344187512136244653638847262118368183764231648776445655786714662221414444353754483471475541516365836362371787222623433477446716172178512266666335123546567137871782782716125116571757737146512575366546832353331414382541445472322544356821525264173873655481754667888345747663662258643615173648643722334418767233385243767725112451111261487321443764158118534827675861738562736476822435833656766177416247436773544467824747338746661137282666286282668755868653263562788574174517742326358427736354341771335371856223665637275512448612727532241175614751118673268351837828336755136352153844643522145114465618414511852386671727126883366684686414846172825286855124236577552727763456234423485771511822734876216528751623524514681682747156434378414452516885452854415451861815163625682555885148837532434173164158364737185651373286251737563718367168773267447762842565373717635145627632432387125733255218176231412612115376773318475817884665456733745735243764457884678725841536121463634657864827226175333723263353664363472837634376726176743735573777548843143545257647518361711266754818574515427771644156448672652728887364724854832154554165115223634188786521631585631176167615631351155865848535211712348778377635422326735141446467572453313844438232511627286357324144682817554513317147682118722287764755543122844876751335354426725877386148734548583138746846452164614153223855411883584523677115882488255868363244626138553731465641865548837734555774371648152345283163738288264341616755687544654812486275711127415123244782232641321423533385675642117256124588148736282544718571161147854625832113376762256617226324146386413787441672136743875833627771531184373444482878385423644251364326832152585828511716741834421348781274355324141376355336422337588652884725437325453837567112738541446687452535862511316834116746584616855452744876683164218682121472172131421652471346622883447314576283857523341833684242874778514476232764246663281124871168115363547228251177261256886623323681238476772161527152115768343377731485283561241435866217745453442326571142735426711841422373332516516337354176883686357675113323472541848751853264623615613662343422881637357745221235257762416155487157365464275148523818165713331744462335355288437425644815685678687267627264383324234281725235814555825222476188518443428748414474668385367182422467578143512117752553734584336174341558387736144722113438575565528365255331874153552638161278464644587216871588484611886815831447786656816168787755638216782748561516312457678178231457472333586234611375612243423613785436485584464683778723265577784354815638434146631841672243673462484464777846685378176157718457532747732443362551717227157268587862237236131885562868118443623868215681248873775278724824673167124352828874418455861134664427741858358341748133683544644882536751516174678333857123124843823531553665766217677182387572785455622416486152388588216564584667236126526454277725224852667234542747738278476134376666668551448251831425443481763345123238758512412677237818855521464625874576646828152574866633125171486251717744787783586435357418238352222563463623547442683648616485553872128744131178217134175424267483782185374541557176575762737727128873227243558151518882834178675548168522846585221137375617284255317215228758527336735534637832124338648846378645474566344688351377376144587183184624715721375548438114682536585312816614821581434123856145587426538465647323487267171431287571627184466762512465275571684675562775112174514614158855747628617354652476235753188111253562543178123255366544172823544825344384454875137752588354882834426576327277845722525327143225722565735567278828588365627881437137433462355772876748765451251241768837646287316471171686658472647423864167216466741825487511145828151811355275667235434122624615816564655275737362637172627821242124841558185616443525433742267577326728252316462828584328584317731685374347437475378372141412822568662131544547355844513514814815821217866144186813756852581246331181683476187714814516135153271778441522855163327283746816264111353146788377555215518151813234614871621613736454532646563757715842856214136371512382326732257884134355521331135716654684521458674255347114634338244712454734727758317677868371125428851377756546444134358888447726182874555722428724566473611436838872717753387538426352663872761386648356878856383263215254662135738521715422751766573746756756727866625843255254553736236366754283673865626155688772751146838643868712362368166284211477862581581867174385478533454482563354868738762115176122625852512535127551482547234354857826537885255467456783716718181664373867558134425485114766862666288411262633121775324622322586534123554678518657316633282365278741868535426587181711482261562278282311841445154418438448626866886514271358132161348478831113745581381283235643716244134184674361743778526865728333846624346574134568426225623717265258222883678374658752524481843427722558432321822538211813617464844444363338857738443147474656375745865845181732864421765831321532654536774157541837612547327815144628515333455464168856224841378545173858777133836178766254737574752245768453716517312887852744635431153563648583484142123446476162743224143287735631648178565456183374358637512757718756426183628617837842618815331113172265556513865553575287571372373687543278588155573678735456324432714441813421117466453714855351238227621158541243585851262833677187742731131457322411516436747523233386578678584231883885381474335474877421678784182476511575843182271321736371664887827866368413465451557483216232117553224785621873238716271517856857785238768677841641767745651265766876717827638714827743225378188513758262165685454217334463287272126863657155748881763732241211364356245132635576578557458665665848183535578631772434732411726258175526216236861288123448455824381286588741644647632718111388136668136174263888284565782681813182711353535881341227427577284415755486843177685127176616866151174773661681734471578622325842376667552888616446732275157358556754757267313132468787733148138868886362884383655375867773381455336226161625547575653873753551534783411417672772254765861746527125414255837161556314441768738831544511515453351426624628612473225587571117857148772252381282322428686423461735525565815762631667348657716171724841815375616846332263218278342824432847221171333851655165723666654231554777175556422658745718158267437682865833161525456628534415814842344326558631428183655574853137287621873517162424721538245266282136368558424535252521734584318334767217212546847523387577238158724466343522188133652358112777174312826687482434486181833418535836664534151611163328531647675483443238266786483585328171631263387415521466174182358832247722774747872426225113853418472714282151246826443224264712734782228258642458477667381336561233362842855246472745685542547174124136765841834527272623423772285514368838336332572511121441521813484577158755362628482338818843355346438854624235463364158715414327468381141144648164465332817144523831175663565248584253145385215632342382577667227276252484448132242445286686141157443872835745651872843888248124723225766124756183244842445215435152533825341845774383462277617674136321481716715447624524235435447535474236187542314735375577185188481312277641287742177617328732343426584347758622436447583412388172666533847265435132321855318277725551763446353164734858266511164381136348721513152561262724555666644424587766534442347357875537437544284353378888611157277711428143227721788112528212233773137588386681747453813184348565125852517381552141166516817277444643477454836653766216187842575286716668735341677326441861444788516525264812676847634726355145754115162553275854741837411281338245812876858374237156856251533846652253117456747746843728123834321188368521872625634356644637475552323342858623476173533563615118268151421665645536133414832662831624111256216857534383711485723512848135434526345864377318761187231112287737381426164772151238785762546661171558433145888541552118772775784625884153182267128171644224454653881317676853338635715558516742382622348385818115672152141853848217143217175441362188621387187433438288258625837161171758281712333253263262843767214558515277661264882348137855687823251635117157613161473261657346388688388531622255175745717831127583376542376425558657268574817661143233485435744854577328637441854152222136648527725836585381334173463242577252716842458536311534587773361566712737444258828485573155567312215448553734215161742137776181445272654422728712716213485585513552636612162673441368446671538254318742318237747158641528585176217686222767358388276816656561323481386576551818212172465735213865843514153358322436841545431318645575478412766121651525571516328184784553618826113734537523413464124646624177617223533237661671768658236111434155317148856614773541348428728527225316756732335732634448474423127217426255237378666326783686271323757577676854724742548375581822577637338662663767873412151365367512782738111145352368858467185814483142868476143815576344233887261178156133634572661134636835442284468758278138621616725316171628121421625851748824562213545676184268738135318154115137328282537215447434574361665427372231134646732624823686112676382262611147147388756551518424761481821164555415717454385648485523536242247116525124574474553313168222645212332258837615433443273333428664415125451122323365112124413228548571314247717444571672574172432857746147354482761348224626836762377833524233555128312877867373781477175486475555875815744133888416582765635611823724514478441565163248858782114121277347133423332487852542515638756873152175316638566343452558518257522623863886681765615715868268841882887648831742711521287165116724115137486553673741233821788278278315484124248688744464151556377828452132588417742525244563633418186162346278238266258822524168274468732658621823265578547271511432636421336217767525743233636857744125147478715443348455153636727883367111135455186231241843417238481865244322786441714844217352427151421471612547564511115163871885633861451385221436261752882421864416221647781378327737156417757186754175758573154385772276681458174545518535635178585818361886237125265316886144385763483417235133757452126457678513173158841373444627671164532276146384424846812618478271166724635151185263348258624532635362468452787628637576623527783722741721884725243372464471663385248518628328265771418286341384463825413732327147864431187124627867441128266585667111547336135625486218154641733243226225747658432487472733372245738564372237575433332654555523857224421251557367546634853324657467861344885816632811725355148121233357573847455286525845342667844623883168148333871265325858161547561364815646161262214428341754164423773375166358281562353861515585165255728432217631238756758461817484785378731443747115156275555846878321612621266753678411142753846227547743528181516625116157282515337584632463535332576365564831285862367482545581323287263424328465456578823476347736641688322537641412752433568268631333132485327231646561215664262113171441481571424446412686531121652874388641813122223323656548318868227328448115157847266484337265563761362882561637873812366355248223223754747424714142888558582474752614577687381535521668718576842675743368676243447243565752115225773867534411536511385172417656835467634776556522364478516824884764823633151762886318337411347862488162281277588117837244838516636683668573544815422655618621733347614363415723537468443232857572743277427557772435624748874335876377732185654518758467828543347316274781837186264455121114145135143374516622314612566155643733665443782225516512678635554614546658364573521584773456241158521354171471455467157717653812835118182166761753462812711447585822422376144252272325585373734255453325164577266825142843813371743152757152646286257522333717653477283417534127113358372224871524762341784766547256256728318381364764252516631247777431247513226162537814613848813526162861471835567121461865871171512523848732321354284432523615428647354763115812658684483756872116844642532427632543884154874586276366645884171523665726522871883354763668112871565868872752128721782427146252373831354345748714112741585577364658685573421762377278762822413216257538861823226856642128125858382161561435475715247253581713262453243787335361616413153728131661435563757168583216575645445826686155524627762518424515748551684846331483158466856846546152164362587882246313847681512277438847561884424881128785831787244847641386865547871278121767531851323211335714334513453586623634776221711586251163147865767718783846411326138264621618225117816385778286748812123888146525626186675564437153743356727636644758586477675224742258456645142557574276551422157483511352718868714473137861532353373532468281853648445558574688182615212378182485544523647783832368586711532435875775843537814426551786771346481468448243116133762531855548763543815314152482612628374425423334141182322358853434773163853176158137616466244245288826525516567817557632761248146354772136573446318224143231278285743338877627857536111233714135155663274171284753612615686243276474767714623772541362436275883621658516572843187855557511281584451878862362643826157144847465183787664567722441766443263371164188312765247758457223361527188831383664545251233377785827585744574676151418288323285521363548523333812124465468857328227157513145765721137565536158835338368462851868156325535437587423135168547318347473553662777355238238641828775446638677852238455215448226823436742327142756883431342541851248532643412656748232486732313661434433236416128517377626845228651477346487636417473363818284632844661184232443141136717155677188422878743743288285483574556458273724343543472373845112131181887472646345513723562662354711578286247786366785312362817187564745472545146675384471412874625857533674561687744875224345165286183163322273688445246557725856717361364641442184276882152552752177534741238831847631226658732114232716125838228623183352125461457133144231546378348536685354352268124741645374622277338112842554884228366255556586772354615421323134487114341758468484322763425523871513188528346427683284116624261311146833112176583555517726485272527363644216668675833485831827224221387854743352366316426326162368464178455265236256772768773566433125647731838288636844888575735582444388818766281357882558576115322616726178683265467366576118833153442431466736424316421315823726336636827284245248512314625411626673185482171474435328586761318464745126874776315675315286477785266163716185528868466688467674552231453431481181714727833777361362757878552151168177743231422727743482356787135528485526745645134247647265633826464753464844116452552637316557827386643345732415365721667174771127558154637455235535831417887232536343322236538136864644222277868521185513527845534248741252656446867234243853674372232467185665871377586767646176866545215231784658812832673338741668773823863615442735373238763588431144114587626861865455638331677633258486723723271423334477713181577376328713161167136263418376646227846737663887662462317158171777371176825782113265344478612412143442876838833732485875564424752117721367283471774435652263182827563718821785376862641245447833368371784716851226386466367142874515516226833518182736781661713245833735118714124737513744131346456722833512133133783635511121114618235365255174635375614552224538463185263637325866754317568758324145311347451571834763471567242431765722668284575862214727235817862577438567167157473524745254834862718723833558678567611575387758347566474668742885578468746464548473677332374481567685867668414571647326558261147142557854342784644631681781324856541414256886376412822111854815141521846264655872617661332482831483154612414445862184288457112265386734266515283754347685175463881388753561657865817744357254547423877828463714222755281562115622727547876281267338557314651282227732515167531553337856438558668322452687441671383836472231425416834746386862323227852838787172822217114565265832188817754464424877563746326254487315165334142347826321326728446348458467488134183357558164551183881781245822673233114454318443424174851884184326584277835643638674831833443248643342742553726757122522761811666345283533281241363161337181242544846538345643181243484313858415668288871143744314463262642518264235721172111654144456885642616187175365364638522134853587827734162782756534533544165652576741386775175881816675746142855747586681718376872782123237584886441324753346678225172476877171665513143223771367722413473145327482573531417782311832772566237222435866111555357616482811842348181816413327123216645746831437162671884526672672338256521226746352764772646628763278564227234547478732486282784425465718421148126334623742652756846558427182558426754647648535225753516237647565124377885744224285214457723148553424546214487425364836484387354587217676238316424346228721483433783355127364163344851533157357382258786724837467282382441628143573125866175831568812674225476338736864755463458843615425315865432342353652244785828733655353715573374227321318452476118283582865824114225338475122457114484772853167235656135517246448841328662417216623132442281153115863847542257776211164858562127211415116676351324878613714263243383421521348483388211537775621853435523146545268611476152471685824448632881878627358164385788723725833554184231826666367316277672581438481277183823667512758362344385564417254337867212261225668417558571765422726511152665745152338566564875558651537682688855362174686315873355623825421142582167528511451265768821518772415312768743677827535123355318118556125684236515258586625533265677411817783514152473863618711843154424112451631814244117761566667246366346176286861255756726284113585716288681677143247864865742625286827287513256384587844362827654335712224171237821234776616837566765827772227365566516874586366731535266325643154622886514527268711388662465851181751531415563615723861845664841165535646177827224846464875284456551617476587683172518527142327586523151676887838128246283145878627823254526661471738713466871371813215687136224872742673128123288524276354733348314635444422571422777634712324426525463876831745788463646146553376125146378373227663166214467636758457678733635486138757834857214884463246826732478417134427181481112718141177552158643541782188363483186148232434647836882682653165583345266448584321151357445228131861183438182672114361635538756652417271282524744767726337163738753464562577433713525557787556162341547235858453242464368244528333714336625865316454568163244375454332222357786162537337257581744128374578132352164863513746441147382488681378257884176611185434375238826558763181268567536251541116332476528427572746545535341166664475138854575387422447787355346755765483354885351278713427367474752621324713764114278371311427321476132672271434623265362778538432868846561461868248187383717268573511334344733656422221448882778414475471453445752784586115152837127832318723235778378874371263715846552123586783354137546781422335373432883281736524683124624263422558653843822681578163674456328736284838826214886132824811147173643545828718557344558626616447161686632632255252777777112257235264143184241821247212368255657744466721334362336155266111721552774466323318138882884381251168343156326485131211171358775723452532743247215587741776655187264515632677438644441383217321432468843475687835626674622572458613257234572646354558213588815766758477644518358757388164348156445176734358474522176644863781223726137742763387871473311313826238664281882163614638667215467388462814136677586546223176714275135254712374527111173261455226688383728843314157673388685816515358328221611554715517844625455547837714658732635875564683356821332241184434752674365627261877552826118745676165441827452737615185888677611284486113422187184635635671511754463732472734364418614281713668854842481465744334546621128774535562518212656337678532881813356114338511313687816411665872447712633354547151622225286321327214553864275452458321211337726736333384441711657341177872644471884433684322121873465471446817686856564272325864547167567235523444531324586642627662686623622575474273146726718153813142386661134723668424816448185677683833262654867372817114311851854124586386785422781675814361137175745511531823757552152275838233654722581657545171463117417737642776578735128861746281324635836414185536326435838625561864341442552622661343454717274624331564876127478752375626374242842437512227844438862162185613531835238514316412522621573474858761675866748621377414364763123548774267862326583517775121344686144147385431887382223781852872168558645258252672284664475336244581133346126887742653768213576614121322837211345274686553552326233757338228112324117631327181665178587562747765618784722617813547551657848634628155131118371473543688537747572325731214274252571133467834354226257212853446232376443246436112741848135256342586126161351344418677661485862533685523465535545753415415244487535248787716282343627723872187542532636154716528164521417283572313313557767473523873363765514654122727685528434338543786518521163525511678767562168813254616233371212247586468375376721323843252512522156484253277313662186746634337527735443373613675717627687657412275422683623276177855541873165231871438341761712537346755635861682523642762774717568456274444884657663163846451844565227827533654257537714327255414356456747453128732464148584511238782413438877785321672745127482251864275173283176877655537456461147658211864573662812175653563816744644733253368183437438861557823771666616656368381164673584338678745784235211133863778441215572484827435731487272422687387424751654462434135125864668681577386173424526325873135547462765287264668823436718864576653743128178675727518145331223511843453318256256875661445818558747622648551665543832637268174387132563224245686832758741638874417473178876216273148845484172624662751143484364133772346822551324657178715111663233433538753118367411458481266878785468283417482111556874786772231654254875663557422371678566736574231411113675478715673751227435345224822878618152222463551385844458462421332116424356848632866125351265266715653677661167161754566288578515558747465382773728465175186267444862553127573585283524514224236487188836582122113833411315176386828837586847466348483535822216114143848455621161585373261156232544586554286813156774127652423322822753475844538677137116244636218531564577133335864122151183231143255557635751181585336437688483454382844577163124478411676557751243335475831188421837264112155214867138137334145167338334784637518344378658156567447736527672866252245168122563852814411114815627742887274764272311823372738217385822484461521831824185657286527587382447677736568858168211651585776323275242217315381648614743513212366621444288286265215183616137676482647511254264843371431135874826848355244261461257427522452137836417647567176268153312451885228322873173834456247454225128243116556326272786242885152556732556355634512743473214218712548258888745612345771721567621735454654654828233311374586855644645733521553588635236586152654784374547815136725128614342228852341353247588245876338433744254155878355277427812428437326741427176464343151822314582524733185285771625873882324577458553574684417367428478162844573537654543572652212354353673286663518583284423345538671771247824468333226354588882114385473324116735688276843638383672783128453545662332615734626716638846735217581864442354628678331725673344182841341644623816121325571242115126821231342237112647651571465337613376358474568632268768541881555263618133783666384264486157141287145217318626312831834572651315725451858745468721547547376886471384574443271637124338568641562868446354481287537666368161888238737475353337287152558731671522764433156676756172287711768118366441724461885653767865765836782788843171347258756448171646864784538468255843743736828587327163465532277645634222824537434268647386156646825222344172244167824415753524152131247873285682113712148312727288674753185743255788357758253855486414672777747223643656447576464141731321817821835325817783344522758478162421137876723841358143558837847628154772241444513546584873733141365546116525351863836214356117172541163442131186555883315671154725812165326762237525322746234362177587325588177653626866167711887234268473182171653614754565188156371872358636223582565544744685347645661251118232562686122516738271437613127711752275884778854453381413272132667575526253653518143227464615515322413586378375575771758488686476841427827234768113732558662864583467274714868725413187385736485111322565768258356732432663321811248432444718413787884228838445877367458367576334218183374643661578315613673125143346175214616361331386643624886647577413866454643265341664412223551415581235321667476811628855645325873233747476521822654661418743713411661823867171738173635424358132154513364456524276868888352745741627733531683318447146652883558733354118553814845333267117682165655565683745757633543826783738862481671431875566634553834486846868514634618635657415118182581315414313415833156246358837341276143641363266257575713381155846846648634717334565176511341367735771571726513621443731477832612175477367738751432365564367815641476824432511321312114527778845626553614135184217715484622128187437884463138381616825838575785588557723186752765157756467537115152641275111151315354325386211481343552845283566772327275823525513242345341541682611117248774366834143785668321183878216276465617622363784211688157481834672274751466473453867177462875853231128362753542124155478571266288524748443154121872658324434556571663253232144343724733131558578174263245688536255175576357316534755886636287724486565672238671621112722518338812228158616631237247528564831767161588363123515283281158463314885766328848685617871368424527337347153735382538518521356447577247652377668853873175418136663563454118827217822316571465371157742443534882873134813372486868352755838561754768328271722138435883478185354467111518311412383237778336545517574156347352827745442518181237551763735528317146542464772836547727858584462467548731542877284584172775485731641256836512737278855842411261686878318227662621677168668372663273852154727316382141587222575427854224548652351425841187255135261636431824728268654331241652184827427711727414826866122254677414461536566138558236645231178333636588125772454462476663482724746482238286332461172343544724522788377586711654443342241447862654366266152812465526246125484578638815184114461124784181164172478573576881448426122732245733833388811761652283844526652368358126852257115553133436135326412855367576166851315426565715848314154356536477625436712371115614884356315431261624418627725183756445868777158456477564685164343652354447246112231842144887314148371288888553571335311575234241311644513477344418775858411626346375623852852558288518755368451474546624623414145557725313182766562457167487838815578483111644151875152678648823621338844584343622565833767385755323844727476744831761556615886758588253376265454562667548528381615121418563173147344833143115538688617182421382317888766323365347824262447862556434345723474684143154342485658476784536557665548525875843883227583534218248836483466336274253268273181328342813143268652272272815215822313254713154866663814585775876374463877873424521516637562117815141274235485536458622541334377181378573132234472261454443176746462886343827577151724677674118788173218374212855524126756654321761585742585735522436542651375413471728177481167748716122376277843358237437571446255254718175124234833148323166365471268447482675332151235437664755475651688342165748248426413178274255628586571371518175186731534283434585616576286581654111765727738764711473356552335411676884561822454817715228426843124225536674137213738164882348484138184228867361412688626587324421425752444522146322813658555757276132133143478271858277511586526613637667772243723183156857586344625771675174476734752873833484514571263161251637186718252143131634567354372428734463655431653273468162313312752348461718432158176558827775568646243336634787845318734277556161544827333245813846574324418463874654851428252463613268276458436124286363128853253421315348627115755441161364246626354728872386853258282721231726474481268611723762258824446325652877184558464535865158876526563311475486722865768655214714431181412264676731757171228273586176552112187115785348575644852272873821151225247517522253167481851213582557717528322757286148768257743658427718112437815425816871376544287815743884121651612768522154827474553285333816262633763536436764144631884822824363231182664174688857124134466248117832523846388831823538773525155722781315412434176611662878534286423446245447743153563128657647364685644656824818815643862683146628648383688531334836124231853286775115628827358338518866787237382243185327714518414433588242845133428677457272717472253856862274216876266213328657813567763627168472687717638741535183755151753243233363427377577174876177581346786181727523741347674123685218528324411336728522372431558438667872758366778132674833575473818475465428443747635881842333364672848748564585254815642535783367481225416668533221176811751373836612314178162877264615566485778364121156757674533731536518564576321267786361577764615235731557555113212854763133155562568313232747153165362622266376234252874355158735288361124154548587565226863472178151568213418688158173431422756667125678155364357572732414715112534578753688788217115258881745234462357287325771826617475886322153811475888864184661338123551874681286883872445154222586527376348225131188675232241176467562556131225222177114455646254283213473761124424517227141213318744884634172885124517546853227216137643711561787321775441372627632863578772338247781316363771415762587176362845854783223142214782615511263246283718277848784731541541383725853453528611643242886487366518675777621531841517144324363228338152536342113153875362821226723672786858784421351271762724223182422715471722731441747672831618266288721138557881844452758711741468827766523356125183222651145752372725166566673752275787581858616465834162545252563278168482474171458166778588118512766475854582555727676773786548586758248851841873866267253236167345748882745623317557511247248885885612841482151825383443162714642657711633765721658418383736342131177518614277446542767112537854317646122458771185734565481446651413452366474688561786154852384364677125378665884736571283243618285362268516633251371242878456424185113662674887222447456688124246657547451185748413747578816138377516483713818427651378632744831533655836667436613243388142523556217168351336814471553382826344844532784188487658146871445627411727388854454185133174744127771416217417755482367741823318155244815265271443311883447835321858535841143642742885383278731628725784577745867587131512627544442721342411544857345322654533347577613818676281813125572331447733537731427381587516212554868184165273162344173541514623786583547664545734423511666475511725586562121384627643835456562818765851746328165867618313185127843125788247232475157681223176577365357835468387487113868321342645128223655142564211311134781516124882313187661183785633362717365168558883417848638372528125338783816512712658547244178834838178181431767416164437423345213868112828482584213128348657886644625323351316285842715776734184271544183332515212222631251718636252577123855618777747318843752284411144141326636811457121665133754184128675484374223767878244843574174262842548131885841235343665485266476643415654484863573331553636742573345733867643618238853346428675557883251682751435442161687672366275323184715515576617663353687844458751576564428186554321684234616861148825322633346486481586614144476317612746656154127163461766634254148243241624847443717836475452516787153748658646381715576318777217712778713568675675247143162136365657852213835787742785676667852218463853778727611314825778337784475331135243465463748872551374335128674443614472634787518487155158234274425722218385788576815254335562344886578353456264212811268326486454166386446155162743846547365324767746236577327578838281677523631621816126888727834824847362281235232342188457166722516464866352627615442262274817882123416154112622566874446135888484478363815768177626571824673414835131147416385475866247515532312538437314541663441825718786836353765111721263527233881626731611132134578458568287881425462473757722835254264713546758276811135577114675526447751878351573518442815666571521451723133185874548443788716715775112166777578576475388117226423463665856441584728886657756842588848371565255742113375543172145452371628778786625787468754474221251383153568651641856178466773466154751415517356882345872642884225727575874131317463836455618127627583581437162114448267624275442765262644252325885663285676544155325765162267353118861811651716137585267336536117646235421846334284415282317621316127184115683871811277244341861887362228567686227271166154346633568761645178334231662848745662833721678828642873645824418328831848151381323586157557215521213771824374528771233773741184574278866552148127212152561773557322444862226216714466761638574127222557874466822743148243752557615221125638184588458216453165781331422245758876352358333482174453376767568426762474754118684322237628581854825556317347515561236253751562768411535241567856814637616617766255351476675673568474842663461327432727755555636288546882743161357788656124563185864743261161588652377748425763356754256253557827624454124851837241848655287621133121634887438835264777788154145736744671254662166534664287861766681564862331387425346444186443464115558762155468585652653677116768748873818175518513563677578752353177438776636824726237456326174854211646544674356464672744672581472745653286173881764625524175781767675411234635381646371453261547727523783683248126745422771178554867414825561666455387755456824152543128812661746361557542645184262578713384461618263731613346364561174251778662448335322165723628118614657847487728377712576315463455574587733121645561241473523633652213131855625718185721416652365466564528132263561324814458511424226674326362363142212286318365336762384657382837264724766187222325448334658642325787611467474372531353248552135134777678545368828137388558361514668145721721677248513362351845524533764241325332784734283572153558176138418632521822327858632524371434642825744241625622155354375332424655883282628877567541334624711157712554128412367567473281316142256415618227827285743478418372342235416242425634182448552411348754653857626618131476446313541715457371274372368883625627175413746358767283173273746167143628381438243621242423735613772762288716434541448432718123571773215576528446874245382424623635668557876773252844664734452328538874854845185374214647318456448752788823767377138287471348837233441838267784627546184862112243667534145333533312668141866833372746844421485863828242331855374568465831182683623611533516473476287648532756655734843428715723316756443168588412666275133265851735555454421352346234868757886817828381335628553532717864522836326661414782861714341221514266757841772518573686528226323726223748243486354537246713362415587363338521828664727852772255747752814875362384251782231671675473462878657247578675525378445124643822425365885611244862157282843247363751885522442674478524145565542437555346231168568338327627757715515145435817856625362338617327771664675351366334266717423455554375663881177512388674672477142811678731328256137334333356334171528316628731685653584662687852578432353278251372724413854335414331835441755577585615248375732435577781788632748751367785872165446876255724541388114516636267835872275865654252521822883424171573776312133364426635662578274785226641547114335444188815218167526857421415125786832182484434188422326554522427628377614644473223838713223641446646751887362154276146747852731684622824831554761154876745154114534781184267671267563274181823664276286254244226125467147332217553767512224675422271776755843331154871113262785728128845467551316864328716625364824213543626847674412143345687724287817725775277118847661626827177517124137734256788236742716588882162841827331756523437322711887787368615863557676574656541248843728412288553422852728263577881847343422243866282812676145823832281851334215557868187382845277535253188543737783253176867158377254757876474266688766568715137627276672882513181775362564688325624327164387558571611241256231632438476435531837357111435313232274754744481244253316232265824468431415468344725684485868641121262773436167611143168721135666347412334136737832747452851425528432843426153773546113328483688481787316622613686721852717488856444581487551184873153121457214663483853367154512715647488683842561482888218423587842886363716113541541243314281868811314623532387461681233465633527578617667678451261651831135514434183324768886647251682287335221388222666486373446134821165256767736154337781741125471864721445571352534784726846633733412211515288643478781647321885648874162672311756674386821857371241611282271773421464483135865656756825256731787868634653323553271282277833181687714186618765358632464863233355584186826224868372432558852783457236214857223737644727775738275666622352287751487445331658647888245474376415734581346233712586642264234713121618241633675171486873313822376832684462271351625715153524483585468582383545816712548177773138836217467866876877224446671855165177861732224866246654558518546777855275668887246567162551768624758314618488568232157147643383543312326315242418131775332457446161114562275171541846217812414768571126772332453121317786472116542512731212252855576166562151273243133642823282118855767832667485311445876562738455763873884314438887424231256326476312288515766426813423881252714485253738371471157573814112417355644117283775726361267574344614737717384715216682453766187142652557152314532836713235753758466572632568277652814718888158425815644465765868573866765123536662755251574647311752555476535116737464235277747112681434881848671323822285625876615233837763214331814475522761637247226444338452571712755835283646187135851152737455743177842658665418862414114728326232373551584884875827855326535674771828333766274713181486171513136122645274572666666538243247864527567228888228552218514371171214123252247271871566388155415664764227736553335834233545513524576526467545833815246817185742728177571531738178366416566747734652163476474775735283558245213622434166871651314152738413487513857418444247116252463334114843236644736716311763362543546447833647546137128534424667338525624573378364533813167728257326528462533662842487623613554713586442884524613731771285863654837354872152212786838885815761554486285123822584511132583487684154215228285438114854156624151211443671152648325654631144337216658552848887474342632747651745661415686588627164561728856712676136867633163635732266557422536837454674663185142115325715374247483657838652468547372285461677752414488383117121648135882146521133758883655516581773453735486384253111832426352152247123518322554261728551854715847531442718278533753376626252234475153116775313668444715864475484257553362744785476356434643717538581317728533416557657747128752184125451642156122688431214837576324633547834575264612824354118422886478857663665852215147311562626532755875674321134736137422688634334538873814321155122887611715847866353577417155738416624265264588423676145366468174553345641288557154621751837426726454628471445561775278445658448745442153537122243764361351716112761481532828322273135256824776348842837457478671556454756152125453482734816115134331348188233782762665352673617746318281462153366353544636877826564425653265787138675618318443177273272665562442464271822782525224351653378447113585461487822557628253744867636774172556527343273583857287888653758835411866163115171664656632355651685441413416823674428371553588782487742686451371488556328824837812738375233621577224513832315746228714447571454882378373554574745433881512778544783663648757618127187757744751744312721231872766151548131151232774623885632536122442154872351186841725258562162555285476866414777837517336154617382676166756147553442386786758512454133613113115843625572136227232232248731763511213655552845572732125541767212816554418836141424551126177727512687461883353166141287267125665182816363674443367561855668275523145152121244311451638135725675365317153416441587277884441142362341248342714556886727177243621152751844432546741611712858125714525752483728388732446631667578412377821788843367536265582363661647451211442826348283867717668885334177767334127647155214248567156273348616887615111131416738735562635762253463127187227553875347338148881738487356774628766268425666286184143642415274524851317643685716563815754126451332554743712164851244648657753853647411417127583833184383733546223527185842442236574513661468777836776321652643765641742642153245564263825147527241164652173328123631281487863831284217545844287535451148178375437247525338574358645557146836181838142527245478314388411283278238514868681743582251488838774662136635258617244311162473782513113166126181248758887314236834162612523726724854888618188862855712473234544778135273552831252746643675811381275547863854177113648561243642116288468154143176414785665623711534366813277818145851632754782187134524241268336321182822552642458757834534658343431643714223737171628554857527643741458313781512815811728722781774231557571637881648482727628672734344778613526331211154883748764411525221617522518585878827571476154678388781571753133237241262524711512274265153134473163522521737328588423351244588341552666326553274527841258271667453136724763118371766476676186632316715871843552447345684783881884658178383837164535255887732376583564628487263785358657884371831786731765726433646166646263582148484616527887248253457785616187647455585511188247733581814784857331276464468643435814214575583475574632881643717572845763813783727718523871751346416384516547735218364586778512565652471811712224328772581173751518381827334562714625714747374482172767882533632143863333176188274315353166428354411447447378277235731134877444624175155172763374556184878647367232123684844124353157742255345775247221433271811553447327844311638717561773885223223281648283834464775578588587782727157367561688421317555757116478142762134251461283235862872717671147112768448852277277112581612485752282185724148613135221687116722284547183335832764437721331357666266675673585112382383242171162272156127421333423644357553433667775274128186222654462524588815245124622856382557138242331821655228745251338143348418261723457511546234148672866615673862714565486555187161234544481878848238247853556681437328672482678557174418375326243383173721561364765234417777515123322253466475115818746214188531121141238533853576328414275723231817743175635428664775371614343885553382866558711248354263664667113316114821832188345565243543311448865424367337428435714322322626858163281512144758761647152225387121274536676786871623381585574885542813387281112177318523521367581455837332826737383838461172864377571388216178215847486752632366678555674616441731464525858758386388371721336367724627613236832283373311322545248347773351873653372368548277735473482312627278247644356187275367344234776581312442312448323586764535237162317154335244781312856127278671527538333731757133563647681346863353863257536734888833117187642117535361733362418471825762747742647637573347163745588577145166882434126518276457351653142537334366847412783452515322631417156515117755877586712436154788487484733714461315143138386766575253886857343557325713168817482243237151518624437366254676267558758447616573216657225147228355828755727653722638382226828447881761278211431522233567232624618718236187412551344446514284636248753534617672384626731782346741445517773142482257172481733521788418414355128846674781317577821416485387677143758627632438143887646335356565674724276855847185517471777231668633515671328121877158637228726526318535166327214888774854671772216331435841677447665821171622142626637125645788633275661146124415852466874368754644658674676781858565738557132457451822371821546821243816377625262516213131382535577324344473672353572414533483743741377615188356785383477625763622158334236768376313445211737761387175266657275725258235352776166844181475682824567223684237122523366226382262276583486356353437181753443175866142664846641763421887847675816358878534717257283833765544772621862166838581837327787455272574225123135658881543114761842527637463728385838884216441656428567387233136271788572432567173464235742846333462811814728583218172172254316436168246233457148747572323368378222274414768432514228847745624377375773168864244521166151714334136216286172664534624888384281117662556385428388152426723335256278181325826241726167573643243788217352754862288518244534684616228823184456313248424186758273542127785728456755246778731841448713648315837564133876112465142888626853527586418264712311148417771682612874587512486646418671323445642365728218355556424632736866517413338686738182285876388221674133417811523478686647728126865526113345327756786516472214668621773653816154462213423125722311532482385617131675625814651185376235844322422245636868785883648158433513668512447217645517386756232525183255431223674224123678575484345386244547865624745887156263477253528118537386783653123781686666882564433782463771116876443271127278563772324768351318412262716412435684141468856261722213815575772654128688211481633617277425248171618147261216212835114756521351437438676634834322763882167238562515416737766355778254582378841177352236325845617867844126617718516354645873837745875156874721452317566116363375557224764681823784512246771266651226132263381157662246727225845622258681654357344771338616518441766717634542545618577171543588258672347883257826783288333442768251585611277543235124785436774758617815453121446531152845615413283453611518418464121321152752527143184287565664118218843486878334168737858147818361242633176627682558322782244622414522113264371587644153786642872865774687834843163265234514742118148443755235637853258667265578774872377551158486456385782555756683316227717726687235276617144744544185734134227572245431678136332421666141643757331825632226732172523878621735744721887242715517565558222335345516468868568384854828587514352562366112334634616331532762363817422128486323147251384845817826736756748182743252463585533162875857465565772277564341242884745326731843654133631838638365883711755314457881311617258343781612434677725426172478531232435356266788561378681372714516672516276276438276214564353864821257372346787861247735246426488664522848527426142341414178436272341678878754457365217844688731768233186864366625722532254481456166281753617388144826176314338765516775771732133661448888412386684276223675552824456614826232326332662726737326567226346268782466471783282283254372727728526452685418474371761575345345433818376266735181786487623141365572625865871643781744621318434334116327672682857267184718215363813423336853572525575624411477262423127462177425617817733542287535172773745153755848334466326667146674277521122368324286627531646813771886772221835344411281288412332147875483765715487516511448223872231747353345872722557215181831814418313747541181514156338263874813282183228654467288846688154145273827276551478583837416212477617848331486465228264236625511113477584652775585452244434325641835226867684886615538831331881573761477875868617658378524241733425542863488675532462743883428278663261578113573872618453658558226384724336363231472838337822631323415437315688541386714715881572356215152115471276144527622884388387267275588162584136346822324414878851372125544236328687758637787241385688527222424314488118818752531752746211128677562167583178143567336674641872386634175647164376488176785186158522671882258675881134837658826776223453646131826262542556721652726722777483278314355155413711838351485542846868267734831516235528171885466365488833735663883346628171867111348342872827242453763738834861363733544331865653725628243664872184553678287282251856155512425473256461368373211136852631877167137856737444723227626354633672272217435623628744481572854175451687711488526421418457285364655143532651138254513862811544437746267616717523311611634122325621753667411528546361748711664437857675473714337582314135575371448138727578171517861718152566231527542612747548326883518872317123763117854337435536848416552453655578365745752671611321463846517576718377232651858127418112185338283387873333641277415276831281388356486417334728517855767333347587433728352773362135531862838277347255431786764445884255588464247272384433415144575824255533522771444214237785434635882752136556825882536622884422315534552183424345886854276445632115636758367225732353152817468838573571368556217315251115133813547321814367885545254668657733747521282188566623687355722123265124315247756188125577334751261183614316658178673183327757747286223347741245337272831212328226622612366646387253545538845174224888782681715355675778146432628636566288383226443883641712673333148263651163184746581357285678376312712384244166115612561381188343181464827312121775647266863437237235163341136163358655164734347432744386163335631673761643278845673862646213242821313574128635177182736446133821543831381458315168518687285247562181645371158624344683348238735126245545813733687531721472363388451874256444382413315386627417738446415482448561264636145151862375554562633821268661834356768287872686551718266454125215533222313241752887537312164883825726471686351241411121412584378152328738836376413734267122556423648563172172873777417321133474687577533378424774733318515221854715115782686544874128167386131148346368277151788153786314262387555364147823165251283488371438761378855586871571884864865277535865246521588375471623875475377334485865125628184382411671816431825782151722778385542288772676744288447427226738657656663533655574438473446677478375453763483134282144318567311867548774515773184622131752141442721174252755111267455124431717353234353145551411717336614845346228264831436585367553825551388271558717348165525864466561776871413736288337568578545447253854117348447555255824353784382885755366163884137452218183561843766335231373673512458351423387856485382146141542813852378333858775636481362476425724852346558328238732234583223676881624621287715556281622381116647584238171837222734852255453513353674812631522844388616646488842312762258817828251624855271823411855111337388114237562825613318877574612814738322128555664613227575611737566266474751167487317162723615674842432746327361347686578645724253161143882873435672474428243636165561231422867354154731486442547186324763313411467773366774258484227436845576851578652224466765483137527716526658371416577881512443644124544326872578122873727631371264142656331242128668474235651731536616853682166182466461164271527562824717671865852351681148367464411315553742367186183635757687165221167264223574872764745328838445531274853162777687715452361126738341548277537284385556784688136357841274748274883118715741814525385245521766772314234746377332322644471461787143371526761756738828582633725673623356284663326822387873462252751878775336211811855434164511248653157727565267853385822721362388158446862776374633437416717357116533651718857132752671523576481234437341211734727285128456287723112448857383686651715614538153237456857365621625628325824418743465581882784445215618185621574244652474343281655874431587634456446348368715417753748337161168185478355874287382123747638324331664837341136418161434283356224452742411814448182353831616171575438343713117541312552511142565547212713128838181121388213612287255213532872165618415374563744837764877143451733576632777332445334557383731332873526462351741456551658732153776342822778816452237228364865144745787334667281664472811571364842266577858645655118654373181566571671881446527723374454532481868786452556383837531187362385831842743865663268256146456883538314377243422166615147266771558618823677162322322433826175532617327258728828673848532557761578146254158532315857261126115227337618387417836616175526851532818745637676288427818856583354763343623437823825743811214858672546877312713157855524443567433448284472861682758452541113331545576272468834762234643116424645214864388687558556128163344387444736476724145826812143417315752121878116374654623456186364211275464484462766434875447243751775183664666674233441355177563746868161882117357617647515813783475561678724314546642244812743871152172882875351242373111561153525853424683276321864666668362374826627633244118811177442531865644185717668273533284524247586747441521143115241443464678647183836846628532556564156755467413738112717863726316424857154576271751514874255126472634276764632377632433465377177881814663344421124814388666434438721654783326218277815113653627687185213854641125618216174861481887445611241583141411657818422558825463141548773722444837545138182534462136565325637446547418814745668168776721588541685688858687646823486153713652131537712241461133154383424168828265755675318555575577451383567385481118766744164476352767468727854713453752826612751432267375252261736717724145284416765828267654164866255787218772416175481381135763487262458447878765847844666633741766328376486476218782418546325353183848752218768674157177344528727272167354232182542166333573438672725388481666472727263254445387312828121458541574261272782141632782653331716422241652152811152444223152266116485888556375244751188876886531622766738512475257731222424474585725765788743614447843621686545766446235473131711763237762568535171451834237326248313232362517626213325488785776577488228282627657337615838381254423745755658552768335584161486726361841285781152674668443811335572672617357472788158331817374267512734646556411746612688327613261523261215243621257248858266362421721387365838242611122527772157228363545861372232371342783267317358278272674512716434828585664122685777154167734281146757814617374372453181185736341447563768232461817345264615357744442175545476527368613881656528235521658145178651367628621721612282668518631775225484844143873868426737683786276752123525628877461714121241332518281163267223455388161686815665244621672684611218754543338858683434215742813176848738114124213727822125657724511834688812865841862822571567313364755418432766154827147742426114574275513766523586651673151734847224633373621517278381556665117334218546722536353482741444261162363363635286462635416848385133675758864873252552216744513186786428125637667152418166315738255767216872562384757344251732553651725141438731456878734375727731668338375178113548381632541726361514384123733352784424813321632566347667212725358682252813112616535355217484624662138217636586625178537774717885357853563426643783251851381858835787277585455786474185473158713657624765585858382584125276426318361762242231576326375678684428377378714365877311327842322777368587246433213115217838657112531581811242826551443241772853415846435254131222568136344622523577383282515181683853344213445556367558181171411677232472681573432782247524166154231886354317266538613648621558833483522226377544638276627381183332842823881758673785756258683863161268457817473634412141773228845626237268474252615683865161683673574752572561232835131277827857868675444534143818566285671761727542866142626382215866561318211542141811464846186314118681853121836315635155365336218114436521452251834763113163338828814828625226436457758651276838754587578267864347788521842736228867827263755451243524654464266638675888238317746313435827563683374661723482271523156872171478615484456725822454562115441387528237186438668286188457484623375683488346747683466113387367562383471754642467847248341435381643485485845438188683253722663872384732381387473178812734533668625257622178763213635527241674486738186431433718545615358574424777537227166534626542435861751885233285441266732746374688361874646346212243368648881435367655477138278652337354641172827238252126283475436188646472584443632812132585141634734858343763228135832835135423464467374617671611657274625636818674417227775818232761672365483884836638614716172714667277217432386856527318512425146345682241841224816855626147153667376567461122568861173466777773616176586577714731451177483543527332131625267527352583428878125484335481862727658561358634415268245421381872187287184743462785174334122443863665553321883413316861338854276413367541533618155854866221312413156741336674581468633241466342145666682148237628738466578841826645534172735281537848288555637272711776368582617267265173374283685432666768324638572712882556361765231172125378832242614436361118348217822575175387882838644316622141487588171331465175441615337664554453333284258744521764238263454114254655422633512682466572126513265211717634588281244474831232337384548516417744637656383564354284185712836281325477743818787728671132276612843244182675146566648684653535578254336174764114848767646144522171112171572417146788142744436471536126114527866671588465774363673663227858561681381636877343365284772587764158663623241556447753442738352171321562176586824615518671411377563525446161738648287532656221528762675482384361321817586471664165388222114217152565466815185354882677267717461111178272513667726746256833285165853754763862232572872548568368116233347431161664526176675721621557141155454131476763114327834871356384377383833738178655563711251416841354348542466434166327562173271252488427511862448457518676432436125643788417821531215712222387575576117154634228845218112673471672416721276323142451131573457452112733711727355263376273281785242127168822286152687464352461747334427137325635231317417371244868318852166658334684115114266881522858432435875132236134212224286281423351817311687818533277683378646721477123827773254416142613833117275375871348341168751164783481512418153846632464573866122362324628843116125751851277134142367545231781381784241487111878478713673562551735133672482766282856322346554632846485375318835177424482667742827486734212858872224548848541522786722744245656143344351823428778383888157112733621512557417347851337284418417151847417287543145718177651736546754424631428438556353172451173641171523112537381218425341872666225832671431452122173521431264437327277338755684766846142411615554846555765151778674531162758524356873185666474551428632854558311552633158131823616245761781517376421322747864733455184577211263564115724175233443817128342671284656772128235476168167266727178226621228317171322542614768745331858315765478886787567874574657166523622321261286162414442373812854417738177686357854543746866277338665141775665686371236568462842241245741153861686464484467214681823461156585747563537518461745775114538355357157254745417233726537461413766887743158215112866453134835444786775517762846261883317613351738866862281833112641672777478484418252421357614283218115663332238378466748233258443758827371385376581247488416557184658787171526182478738172862713712774117641224363485316742167112326613136553836148177648347758375525668364878423853568528117152864452151882417547868268586642154573465842144561414361151666823433573211351562664561141571712748486136618155212225187357581822471438324826847278773125635453832417442624138375854443143255384164488621875252113284563653732166212885247861875888266224361535683247412777511448874468566455544847853222758278423554684364211786317251248183236684475875268275228715352714564623833542623378673342775721348128132316351382726312787825236375711473611188238213688338322511421247732767418626478283177326446782841358363534572513663572381646517254848766241587723681363156858873451348626668154662842742351586256715831273573578833656431276637128114816424461881887325475281867127875556445387681164354672324773552144147632342665522646676172867173488751521732852357565125173525756836545428256767784618763616671614228118677614175148445547821167545357346426843312415532528852672838451317343832233444344831121718526533711226241427273437746177143826351865678345126841285237763453887865876454668685647452843468328314618824124873181542755812215638732357363381588843113333287526852312157457123654874383156566338314382215577424165877867742628512671415614335732537141367577313537326668722475231233443572227564452651661652132122546854516686547815325162352836824427243213521728287828745645413313872477416215755625632525626335428144366126645628278285388782884835856182368634858616138123383426738686158162377544166187486528525317862118114788787255436427656654618826738264377133783388788342875276248245157158785261244872854465562455425356258163455715221633273115641226475817126673813218441277874624165358718144166414586625286354818372475726574164367832684348363784351312721864633178214462164428231235386516176884463858636625644684454416514174217462846737436186883243774163161681366146711431433886271677163654662366273531442463377754634754631132236462122883425633418371115324637123183757863343446451234484173677553717481638155147645415855132257258338433514643483585656772417382621382641464287832363382727172847637522363586267757717864253217282276476563281857628824361477152814341565362234114587368676461258822684374872245871872574524116271555255218385772741781672755123633415637864555885888416867842464667138663131167183816766115636422556447613831166878362824543465887876847332351365376522363426615866536538133638286612852837384818187354785183831125562171537221628664476385558546641716111165751538285762878235312268541881773552252674746715255161367267823356885677262124133326271351152616732743826572578688417586121273228347746738565155748133771277526685616186115547182717786774336343827422788668843778513674174685476288162488163743884283711221527435865623165747344877481366734852728542734234251836611524838458583375828772347161528152537184828656677564474723162667268137544654745235841175333828717235467333537536387588372836524147872772528278847722731473283246824758588451676362288485247648815626518557583823217121114331868122733481437884742385533838588336756657755248433761621272826326285858442812317463738256584363884823481142655211113174364151478125764626346113284733213355551748384153157576842267712735752644278723665515362617718268443866654414758755151768871347746886837218574827366483535227585228787754134621556812286517251572668458314573838163186728572325643825167426665543367547847213721127683322351536145331421718157218133735357362176348446653117746512321163468847841862724381453566448275417845451252461843482382242734787675751311784828671638731632273812368131287357332463756845576436144111272864643775466281382563636488847521318636682176266814434513116313226436167584416854346556217626111383647125653535856558241585635816883755785557166248151158688576886288145544121484532354828612757421665554421325638773348277133367545287873835438655155368238752547553343434168556438828251267583163525313481652726345333144221716467664154236344323537433415136858618672154163258853363848173255324486458651534221854883314817432368554228454623133476341528313122548451623321474188475266468826382281815414862748612447148484134338666467676443825713212688568855171358212633231651265134235575765726661557744765685567168482722467812628733637858516637485736651315488548272526135734537441252146365733814264116837374573277575666561844885464165687116257184226322757716884535835261452236746745746385642247564316875462674425144453363873664333246338757353543832357114741165458365843373438351251166761568437824352554678333472557665875426653262326284623632233178141753146486257854718138462475146312444527678324222465335887886162883532335574256476863571227241816128738257718413885537282643425134856823671152263761315563647541725311878354742526234281815432622422863534238581342144437723283347724625721574518865451326523124563432675522388583575672365753456877727434436225357557461735278754236643217772321661683241611571335125643246682425737823447525831588214848383481645178131758564652285876723665435155812133132231124153662257747175261126283517444454122176846183482528386626268851611536585334824251385184766664616653854647756582524781641631686465552648458335617856362415252452551382585778788754656225634481334615387514521844758425871174868631632126548224485313752226553444156564644827157367214425824112757322613737237244284822713666182141333816517433542756858751264637117852138634611362737774338715315381361447518381538167338482143515556432235381258127664325263314515655552334737165447323156583758622181536724273865186546545834235321552641785245476275614472372558665332511258468134731126363247616872182713822313775556721544188616324824638683754214124817651147881241662155472786416281247531143824134635587631435241335214118523572865282511148841356824321182543485417246274635243686186748144131354422121158736535172683273162573584213886332283522248363573481688731722577551167426137173486386242853471478818624157232582242188183753744523252518662726527564231147662588553842451863222313626316346686718742375364488165743228358841152732628537514462181144817131125312541114636872375562217857484648338545747611577673875873313567738837812568745518236741734687744614685236226883354483741866486547641122884377524556738241225633876252783334375147611742887152856625835427838188357677655353242384153447743285571574134233616446584374378131134778738261388272354436253778165267356425523236752876565534374333386656141648865677572414484757362811313714747115236747545227334341271625642477325325878473517682132874587771883458131543225388627424433654424515413748825727716516138468733185532682484112434211516446566534717777847688543762574331818821347871154458462485623756784575275182513724818572133838112163266883372635325643577366647546121382428841288761813233642181563344581564537773314733334818355854418776633232264684231584111145687271637686528781522148184326256466256524216688711735337288537872262383653156472664488734763845711274274127333511216124558636766152875741738451317618124638641153556424552531251632455816843337358584767335422721867167457131481288766545225851715333484481683377472261127532317627847111323722464221611226114731725382568527831681728626355315384638555371574758838538452272826611237837181786134153778884862558648575724818385743824365358587783785321413385484816523564361885582835886177263238321186347324867551836473463655351281282216636373723766764856264526121455887433482448667464742872774451475851876646367354121158328528585717613763511816456446218757243125254442317468461158712177564253288162515718857467562458742118466254534354251747278765378521888452757721223286186142264632651882718576834848537715216574726652634563283836561463342134524724358557282668845532554444826728163178173366742264466456825724254466358635618428642671525223113738343432863877766473134145862564672314143541561466364331536878155433362543161883574671148351636285742173373656515142446155418654625666787218787744241437333858418451742324368566377373784227425363864414241785342327662364246488865366328243725318386848212145325651618747325142753667677124458872611682537415185281837873376571432224435571443748512583874845675883843226316626277655883651447122162568553474657688127788718317314218436383768456775458748861517417545448145373264435337335771773146213136833427785128124522481383342113488786141248648688612773873634434622751132787824731268276546626138833186618853548746228786722455171423721662153632556522612381374243427751843731175712111768717671312663138728462343483416338513855648666253788558336723582233867522175231781866358588556516766751252356156616613252223433275326215665518824758568823566543544425636644471332244463442543867584477451847711327244442478665277834758381427644832672524774656332726688384482554652415537252744881644231447152851174143211224327217878536413553437768248443833486873587854354478588387768381444264448461155821425232835466187686277382552564522257848671566351138772343515887187556118366162567226673878561585723678221278268323832278286622657211124236242741148544834257383388665651717464316846455158174766233435786447565175352462522846865475362587371483546261463711558382284242513387658445765588525565464581755352367176566837456256251865523874862215311532657543475177764562444653635613625518844162648144235522385235467888171533585676746275825172552755778286263456663831541738335647213868481274635726876327521521144335325186128623265412533218362844747732732437783121781356441451238728745814654877848668261144415155358545613871576643583318366765653566242381254157285585278142683121288342684357384465136715543258883252454463862788125651731452324213322646754126745365532312616781558375467136131727218724364657236754285377351851882164771812823841254875575714548566518338347131737835263114267526687861873532268433276315733847431638118384367667866726647541488488211235427631214213772481616851383364265788613386255657388848322366784442568315431342838226483854325611146612477177432276437741413715234442845237274232847756766255866443617134665567452523642848245153384242671558813271552275638575877477877145483138571687674216526217673754761566115857145556518173181243861757317464165866362482326888521148768141226545844321543726414564627267187232684614566862334523278553535165872314221555532615752218215485736316767585846278172385345563222346316474168538216454384865774176288276375857432885614355621153531884143833628485586116634558565378255674375874417755517184855375688524766486116468345488315843326686873422877565857738874328251263357526115877457536631631158884678587553174467427586717158156116213264173513481256542185681164875425171551768746666768174184812863827555817424662437283772474861745828785616277312355766745121536727165537438763367716134843237556773874161345488178554764144737373126651176618213251411683485227474582122756338438852512623653533214528371753522328113734827668655776686845185841865714242812538186737327853433861815775435576711262458727145128268536864124613133811885361244525662868364647788843427158837875862166666151718568574625523123711721237264444632435576246872237146567884388624178854727584571155344135254527341531542288444765165861825533186643644625558162175324365682716732117221658563812765265813368117271883855877424214635828677861153747766317234628675538263348226368166532122156281833576886172318338646825162632427761468527476243725124353861553241581152558228846765186115354157728347878411643767683421473287327288627434153565187277851658864458417742648714745583616632275683154471771446718624231372118771813813567436717381253255822621653522252642678273874258563777532216727172678288887778868777853631363111226525632351423258445733828447743532382353353565583565582488231244585458818244188721212717327573364661525442655166422116552217272413765125752882756765275348261675418325842116522328666834248551223712667847871881752333562642465385188462672266166616474176558677232888716168335363446486655712772128788666381747744732851128586267284628642372531167216574576241862178584531542752544187846546838413188627613512288482725351564142151551843325358162643757143163718876214318158786846845824557786773458783281371186314156345477836676173364288123686613782247364445382746387857377655832676162444338787382571874457277766275148782265318135813142743387523771136218413321665257424581254124852511763486113144583362224763777656766324227826655325438586112853368851232617452741886742525237144457462164157611226547313337335112633334827248247533747321368563862538566136446734835387234145613124257721425242655377663378535382611215222512558115577757315722134286528367641118518262881621645271838635886775128561174587681448567757287184811733141728128527557773277442433676537351874188172146767511611413487326558383617324536252876817111515143484512844551465454536344645213655225244713513683654647224772524384566461254476325447852221533566684852617123156337555644125224456584864818768583776188828182375283116886722446351412345178614622427871121855565727415354767781473121471488634671168563616325488142134466346486146357761877132418855776152248262824377262722813626864671464288744431461478565166264438588616347514786515616413626817352442112686638173477266561275865656633354874861481344628216447312666714381823838481364138565574615451245218148618114813674141125318366228211461734283688788673551417857343112853616662811836774726826837541277258838142334222412756485674583138411235683845272277283758386853478142117845837688525122882177723631252572448517835878727757872866281151683444731272643586331664778628364126452137273655525424264134684314188312687776524623336774313271527415552653145271365145671535478342526281528737528768133451535527285331616461786286868651641273457828435512282611311468475663424732313766624548873231688518664133747655744737462351576715388378222886562746182877446464753141488465528157515787715581872688213848845216248773323233261828272458882426668541856212474348732547213245367863256576218867662782151247588154661522666616842213377533576318837621464262412865584376745271747313575713853244267627216647778237441136486768687555616688276755348377836178541353158355437268648456672667287437372574662548424626357336581642522177458831713654823223252733568512216555741583362134657161872628112464435833614422423313187224531677335364343126557524232323688521146184183872436325311823845828438166587517341423725164872386526348424582717731455314155761618412568654373524122232623483568235474611851474533741355421247168678277845812267217324561742154731843784545414313337662812412554342135366631753351473133542788541737176571316554837445284363274843355712675354345275625761868127564383655618523434333857448735622143154548784764322627215667252855528422146243333555384516155842685358156177574253487122142256583453181621265171167153684716865167454624637863675565576821681236634741381764837437878332311151164731315235731321266451458718645272258711451531163187473283763182761831555751672258666768453241255284581853378476838128783655242386615477523138614251824254574325825746544244628425661555282734835635845724832447144741413365585482133758715465412745168773724811877258664747256246178487626683415342467188556533722623581628785587222822327633343162637371513165847368515741886414624458825135586844151576266434842657165837843685162767172738448828821545731681816816461141127227656766881662365623722316878451535854816118736883772325855764671386737588685674883351257651541566723233552774755478543342665282562223326834656181254456271648175216358312188138866312776668455372376826816381845311443527454147261543123614333278586371534454626747485712133854768868427876662533166657237271624328412118337718233126276336756468581886211287422711164258523341657144882583261438262735844445213323548722274585647761737624226558465215125662362584348285533215566825377427168671573152536815282474756848134286626566745745333741181216162274366721256811172421472424615643361577281425814858171532133218867624246535242748476833477711447436526566678473277115385528856275853832234226866476467654477672885345131545124677376224645286854627821844725744713262136433128116837621474855614281556164883578815612566737364371123487654365681648568853475764876786755752124346224165848843227386344451576517111264466263882736615562444136667681364484761651678772513787142786772855621266426778732723338851287551738668176146145746174481866571223565668336831337347442181534752372727647411645728362252536368753644236457211422122486547314311225258282571628254112783763672223264222347161185526876153326444168823856417127535377568476873868474473238683136538762658566246865512732184425641113587123437682382744748644778515554513827872457776238888573783385431334283882828474756187545761188265253764834448137773447414412722287243822785344526265242387512117425652155465713118321452264785138451433268522764878528773264178754251371153146534164577232387682324233527213677656681153163372861638325577588164246166126664447171768872251814164587673613444374628535388333117431326338345377776265421881582726666113183211617267162612286816145635555623868775731862367663164518162482823173771672748376518832258415834484857137156663252263747487226363156473561128646575486815164238764568758356481765442511783285537533318747744854867574862663546358413888885218424611354626214652281564815112365347278632617443166518551227223475512141726563634885428413848311412325766634582758822368246734563785852326566176467333813451375247276642213177511251715835518245786223635867226743126664455726874445638453685178534182255563131131581517122226344853552364765112481323231527878412525767741778538177332153767567534517588336577253833628561878666214778713648772483823281474878756481563221818586615841116222434387851843862628616225774631255856874555257231583785715686555136886757866657218676325463522626667814251278457652281237214333246715313613512337235485288547844422712482861382568282128822581284378375216524525266124278668565652543251338863233682315765145647855412438664882816727716474122824466511288851533474267168378321781157555316332554178623743178666625677841176577524778687753116785833578828377423485443781243615543231488753518673481231122577183533648656171341281153453256444747865413514625863177857451263533721273862661884328633255772522535688475837773281836558311454344844375288127144374464614848336162623812873157276662887461734112483172817413285115652378352687686221163638486464455452671367655241337411533815467521184814277247656523225463287116635323277736513541246123513884488223786535227742457666621223676287114736834638146382117616811185688588215881862222778262655314183676333633746874112621346811773461845867161666733226766435322248821178317868684764787263554635657743811761621647471433413147117252728517418341844371231547324471212782314863177578284828311247874671727636637133362824215655228657515356331368263672358145135616463737483872725546157537883551162222855433711148877263447643351763234414452743786231173837446181813186565715126565318182332164831445224267237586128311338281487574775851875863646726673284457468512668722645668756836318617478548362723743518566753115547117434822247715782548812641857755167735278465162418875118122378731873128861552257336276133688485476587856643868817551474712828781478457826484314277545514584214788488361272522582117417125841882334541618861333516227262121664221488166733746532763766271444873615885373266722774134262532161736543528867221184416331266567286124218652617422842472452718662525367383246853352786215465653757388321576734383265688888576252483223528433753221355816488681466782866771771332823748442472418435412468563426486544373114223183385685547361876332743546181643547132322378275484814631822837767768852176455516423323357654254263863653257214268666323811144747286135514767432257135442547826652772131155446314362311535768313478325815566114521334787371651124223873643367358615486183437526358663657514346727143685313421776744454642585281142126345665628443536575628857247744878583353756472332824513253837756371363527656545367663214254642231876865242833316831441448687676712822443528237658627882867565472364635251653375766267533483322557522281126675555348211822117312755361766723587765851731782811831666378458155463251157551627141218241431555471281313625414278527247468256647472648642148522852421377434184773686221332267821857283842585455356283328177177232537662416781284171381152727451521723277761374627158866881486387834371546565718474673181376552735221326464578362213722811866286786157586518828857668386844424753171612435551626564531525332236388525311261523871841818387565742668314214648211424416513362241384285355217551175826764883324612625583425816682122311776333544513257484121261747386512414184467812468322164476717331575235153367622363852462834783275521786184364364415346173121474634171281484514833412824326274886564222637834568635546876332275775834718183842177448761287758778215433672122364355825856262822635221152258513387771453322865111817225441473527487315683715833488623561546347231846552873843223425154645437161676638488485653465645164538322212535183835623643425567484816363153617512883537866466465283643628827268766518684543117712257522783268614465813828667561882541818862437784886238174571253584615378138412374552672251173317414381383421346315414641325612275568335856336381174755744746437658514838712327122444833311673572218441711478712454487816171178355173261138315821264386866274861557358581445835171255428162716534443141425854388811662728261615818771785266443863337742542664171331841343741246387716861463545254325221738245518656358177656468438163231481558237585223671325467847378875115231726487656386887643535651361134751722326782368468545638154611834637736588362138342327654537133825486727617652864821574661788541124375686142377527545671688177378448162711326115573543776262721384386176613647464155862141246553111147347857623814222825123541713475471126733133282621754826368365426266843355678767887871572373138218411218253437573645856181486743782357783323387553568552677238776384347584427358463271844618171578755115128288621751581516147335286415326564762247332387768575477253887364762518466851314653744357582357282217443348734317871131675566382177612677738825611724218158683565747646117181663314548346638246671354841233767886761267157553731553838162374652414655261686543418448443287782858562366623168481474657343481411742741428623555623381635228575471877278453353546853555126716762334446726417881371485288312243643673868184263462166178816238624218212415874768785847374368164313535137378413123625622867855268575581276772715313874131456874588738317425637214288465747471768313725236674685536516354774484581237584453813432251344244474583421558265126521477757613616278184674834832111387443834213848518486461664888347142823267428777856188371773411744473451473317746866524248444268317641726477241518576312721415714754518444755658263513182362487287435418684514272377825353463442517241244757771275251854843188685542312273345717343865714522266773318422525344385237686475218444226142127544466445128285352743718422728464885434266263626532538687232668178688276526737524553461233434447657382582463146547565246285452228618547854227431314683643773171164657736543438652413328458127423866454423181676118557786143818426574127476228245846541827354537581351264117581717161118874884744511663831213837556528671883362177621865762856141341171534675241647556361212132751344712717362612552221223611777172658776837648311718211822532756515213361135116426377245744133722235446141831224617815281582427672857216845142876161813814853553442137346235227726633787825414771633884562882172271737844766667468226848856358126573183752331451238645454354374657612318545345757747473412354585868717372426527233654725152482517157558463445347776155882223684121385417783647743551785552117455164125486462167162261815241631653774474826516146115857568112251125583365578418635878138118254851475571485781326887746427323783252673785235424835275643467648861631325111724541635825275855582812112273171514265881582153477771322533574287268726236121516315635776761424687243534567364112421417844123341782724168425123636764745645748224651616738281765712645465731686188314341727474465551351283182485374173224318314868673622821473884287487312854465247811764424656841746254784327338873758657326226242832355352611385525252356483427472371645318214423338615523374338748176367273381786783548771733583478563573438525454144755771785513253642557265527784177445772346311726557861762113382535471124237646866774471827227588415645137571236516487465562413161772155813243554355581442521436838338182357585337143655414885486227887123485112224822886445376585743118817435381751233521428827657324654663152774573254784588757182617852155876613246657258385742436731541217144872686886628844573447282552318326171865357217562137684554663752862155548712467438636328622431715511283573312436733828315735266826657811825732848336267112127727872656662374786647558576442133475845413667285555481536224484633612414267465361677576218322318675653151134715258577886523581285143887654862561138253373787446778474321658111634861817437466346543385145627156876148857436377637637556826564247257343366266773645222384563727114626572224475331512687724531346658842633817613621321723823566216633647517222584312246347581438417824227486246162562763275574366676565733268477274812616841866566754457876142611466157562752234616575126847663737431787341768335757632646387771126421286771575238421475413557281333235753435822832781165855143353472584286373124274417274184732318827383653484373443627366758165787388224233783271466177351366523433142645137753656625246668212263432287457611637111267268635324853437555353558235516362232454721475468766123421383465723822238315854527175335465214133417476167737654244586417314288616472275864337558781338827163835123134786188485546534251513764213784834186383157723253458318245285117871765362488327665344188837837823772153834382116474144878611328146418556436551153475317744754112428513425211626342521268462366571425685361543411825765538314171854315331772467265485233715565583622286451673528257625414525338726587678624582736756878635323181547487784423444582417163328458442867626485826323385661874212116831317143175167184886584377657246716163167831588252584737386485767768884432821681563544528528386723557866445351265445311575288532851124732625614144674517726583461633127468776661262348318367113464345361624241267373518228156164681457315485886241746283611842551242278586413443818182333647542883562134188646213447218328338734214177477243348568114713155363217613175525881886877564422648585188436357373651151784112154618652415282341165762222354427854746143838648544158144277886655362363865741842564461741657384244414715471688723175463177577857326572455817331664167874516347144335554517772115764717552621868871425217142562885162133376715423231378334732676784848426376438677121461131253631872743176272845153743648587748766233762687226784517347482528151715581632267541466347711228272624286584643852324781475436621481248372661433522278338458135151281836883658317511418275854277738177328752132832874164335342526536421516647382118471522542146445167141166351668388586554523724735113441637443328845783481414218846282817774573571615367876534573872253881553352128738465725337468386578228676186388167862624477652673375181887155846566474481575652366686547173676226186622411533252625418842172144778658263531842753648375625514182338143633433258462353326145274767251253452344476661215138476271155762857361425534278638666246153444754344143512576571686437512555755217281584161733627148168627766172772784474124715252842762148122646431416712673658751842778486161866677373235783647872162457134616752183636284487744348481151242672885624858771518615514875583727258853618651752475756363578747657161867463874267415168283165735777837775733877328254578821743386166816465745737628543873113116715525638475454833336113888716862146256612563165781385613785238216587628868281622668253882826722378218174872543765236461668653462456844471348364144227157681771647534218712125624347714218133263257141215762333773285852542434533148227114763454146744633344575711314466373411514513367725632868254238122146712767333664418112147674657381133644812143547827425584577413383365422484663641531321565445614615881737441612358723126571676532338735537154684331521628485327751481336883172864732127283718872641678175726862383338446448173526383126834647861673668565827781847276141187332416425462236411134177166228262544218861431568845464383288272134576764264853854142573332872712415338388351475358762781255528676341321327767642285156138473211213324875623853624261646856612231511468675585842335385877843814361461324778766186723523523656871864382846426483818867458843447266536127343475623558584561441366123623423266238583827723152832532338488636375465717544688387283811476766323722711132478446437725745378584467844251488876438286833475836456378257331877478324856261258823674614214541247686324441746278657675323871347784542463116334515115536473467811716611527237853468436132824486583432612142716381816827144753565565522638141756414514841247238781663455376613578224471824758472624452717621836536257164437716368272427816745171544832487525414458157662853884237376736343181623538865584574145285574236264813448551272264311117814288211434313775881457546672517758564227657173131664881324413167783214464261817783671433537517414386157164736881463524138287822521684637422611416846176332758273215216126581833771126673625818334433168145864763473131631318346581234514512454468514772334465511611124333173346621411143564884385317326647536424142226237838414868146826187456216555277314141253171856811726226314541384374672576114637862813744238563744364574656262874618586638882273458685237553714132522373753426645655152117757284726713142755578357327686633677386636874837623867682527335128566626581817245348887117224661333815113326827828865671867522137574355861518721727362818412646668345753518821311817341111868653736762121455552633623221244477622774761521362571316466384563472313847353782418211524574864426775178772568227164864848657127366625474621476262834282261665684358831555416145355164867827518556238362846631484254654625113618877126366236557428164448565223884548541178822541588572166363815488723474357332375223163763456716512626552277845715878183578746253844344536881217311153223618253125636435723465881751838488727512167536236665648347478231372446681671132181422836387377215135171333672225432328838355335466276133555844214628658117755542675133217632813467316728854356835463868333166846316615673547358824454152775452573227175826726347778785775715666762744762786278522781418836572586325532151581632741648687227477244252536172553538482644521312635171644867226865134238721322336185588161852228743227132141373512385642475465175214784558445132566214186234813416313558883381213424717141466617382165323188461235648677658815383164816562428175512443813554167711528868836161428772372742586874471373422565471157485268138684275417517548473342521515362145618847562388631534755878181874341827116861637748332288533386734511744236821613515742533574184687638841561711285671533816763647628631362227753638285738862771836664217248832844786554527578377583125615226233432528441873781133511322865635865236882577782718254164336646643252256581617587225461888315718645528151478678863148127571227713115342511635824473787523251538144454686848871422326588238667347158466374746324371486247526187351243153251272447413647218741785155824285432146351168671757185524553176211445888753565883423417268378471634137353168814133135445766371753237385124375123853156646867566728275414471275362886365546343435138182461281476285186482176812611356538784845437435872715464717121244647252417254247652485485167346554167757264414743811286521426518855477166184375651522861721114444821287261762367686613454336586326868761267851364625726215482274266187652723683383374467683781774143368465883265168472433313767486251438577554461724236876546163661522788614386578773865327261545175685471637632262538327775763766744534214476463486246734651184156152481656478728337464623332436866165837817176622247312865788544628284246555131354755657853438547526444762137713521853878186557587612825881288711226283763647532186388314773483616275558315186112885851137154551658443816543828348572525488171437664182276438827665841768236532343284645735877551371828456457352535833685673512737426656621638683673818316233512635247658838445454723617336173212581442856237617457424244524434257586528366166487152723134757515186781645677844868231846115421736715426588486126126816555248477426831723636263631881646478425817741888157755238658258263734162454155755313122178532578636456662525321646612146412218466331786518885634765871287833776464642845266211755371134186884163668366285643844284228687722877215888218418332724618443844582214743627143852271218317514766283646362167848511633362432128661136842255533727161458851153464545232317654564641265126487461382347222846353824426666771278226266646686147681336211641426711671863748747878217423266475741685661231776262431148143754121441273183625458536778353632477387885572675166455254174378182217354416813868453358212474627187782425727566254128633771567545551466127258772183158526364237832474721585887544828226564168133475275124332668264786446724182651378771487511363638738138677262787322548152737166576734638875467127118247423221543463866671835266553482115647347155575632414287557523448885422444245324566123642715464875472388473156814468256164373427852562517872417382364217244266481315868551714464116488755757542346218127682547547178687364558651854161242517426222546212745474484184361622464566341886717845251322525274462247888623546865361317184354361843412121153317461144661358435521124348255644671276318722788878512655756277675758546173473333674867573188773478812366187882345365665873764613412573161136742213211261432664233234358253187177572584631236725553457842687812117757327376174812153224363764562174371674624184878721527648752517754737855343181711738171348317624385861543167341544821386236151485731215413336143777322352753623331763255528578152225562153263185561623568754128864751651113327344731644818481516247672371811523372387542163312376426626828414328683356356243828323756646613363642211182122586368718477614386388626632115586346614633233156133487661882715213148422116354827175667141436742515431762738255721551446565544271515126864284246228238575646235166418441512584656556233341788277456712326535122582687552218161733177412121626487682825347363316423811418152264111826235122258222338571153877284511521141433763654883881282683811543454745118247662732215746565176844777252527773825567181676663656127824465441554821462268131576861757281746851583783843685417577751857762714141643854531121466141311272118385524362837261123214655815473465424136175518711853784334576833178825283541352821477572378734352236653746476186466113737816521284658344517814858857523666734463362416665634574255624352133761284144861644128828374154377652515824745353351341453464866687538474562585168836188136356267563382736147247665645765644267314361336644612854243524811623845586763744778411486538814464215332676186168227574118465547467343618633115455338248366638614473546254636675185723645531113356468534576277121364288666168225744668571858521276728335721672562683643488147186218842726748612674751163253752552486673557755827573268738128872888167115385555564525573513887656331577721447513657646751523721783716436562646434764728465854178612178466221367732878837484375887461822756465785177648674668154744182358818411166528633467632234425742532365828234163886144313588517872614672478853167746482782385553242558366524726517848263135331484378541411682588578462767661553448475216455364583156117814536112213532317876477534716558763135787827156832413646685577862282615623287131733342543514381312476535343638243354511633132687447732153151783272358425526553524213666514723363482654611387357283136236542158261656377174744682868637178865768362362725862285685564635112378714453622273231822467376823811612272865326486823547346435765583176481436557842526314416613216758644725135852281451127236676347567366117818162471248452333334883424358747121534615553717587838261773568175156427564153775526854767455345154617424584423222643785282256314124732673358568571357415331615481466863463572835443531271536317552516635813331821733571181875124648554327574612471384662277153442184566157385874445375825683486522556514865175711664857138452878786818732456313378136758333772847136416427483433423118775842478145668661882666682475838487857888464868114768465285385761687823881285474563875672567183156284387123744314662114573858782187384164774554864618816118253613551445478651611384843538711145563521232552271324285487455273256737568473624752682288818732746568523358433532263711284187127266382838168444668722563528347277485787664847176674288226462662836356183464822627763182838345422467243333733788338576714586222144235187627566161121463673313418724166663172856131522168858213782737427638522687142828788312186662768528582431585172426676515245238517742871447648617732454651347366816218215157125537648163862258175271315458751666137321367888341173228261574674731268353827762764637673724862152635332571836418883263157522437865636482581551178568715663166825312473436764471442663241447248251288777834713428584384531841646787884212283321424787711656185473821372185332266277831771886178411141188225661281887656852423576235831351355887366138284833668255666865147587837184522324341362822458243353637743874341312141157286634247787573825313786618687344651245474354676177335143628126415255152346586245653153483723842763225473772265282388787667363738882378285821612132353654123325232327834167555318124216523748565162566347354656165326287838384441361121382175512255614457333876838767441645515345277482462822631875515651276355655366617681851467786535772842678447287236556181888785728268466132134815361347426324412582471763752148625644163611651736656416743718175127685766112381143538427688573651188728635475876171243377566734832288631358552713125662873338115873751816375163131736461816625645556445464152328188466711886452557836644134781554668436218737458732831481521323862772423186648752154226845353341555168341125111472165314215277812687881512516125664824545127848656772456846255387481253846166231552233678651482615415418683612124211265871345715681834144677143285528481657465864666333461515787285756225112885247336168485464832816138335252827628748215488424488213445221466772762557525567234467741568861222177441365425473525288513866237354622687621363363645533471454252727716147212245347167213832546461227855827641531874754666475273824728443686418617545811426457547285771663537436221327136282628541666763115382825837625441278487786887223126515412411134544323527684585452366342772125431568518554524161658247456767158813841672813162717111765572827185572851371533247486646771211342284744125578661561848322236373778276686134332328427456276148481882511446735512621565647734316216427237228446125563574611144573883858531555864568133355761164615655638685873611233718371412272511113428848226878745764485288457471432538156841713574626415476675346658615723231474387334683825542266628376837842431411516582228363513525726147231138532313265517683778485355711665732121518346832781736322563423417683734132565531475677555451442418718252322385866881136571781686628346148436842784142863138274675421467728787272856736454285845785638373856736117812448587832646553284184485518248264231417253445514326644584227138151432154334185822555866222174134513287372545641564752232584263385115728542416333572716277547711352567345715322667781455361887247547481774364883464154535238467434677252327751587854117555443371638674741361552867387322353557342333476615733378116851727412322562777327314515328651555518543452283168477728617538856554228265456781254657331822268382768114446525673415617642585754342447226243633423438451677744676264728528552127535851657617754446487354232577186425382178316264264862174623351846614186664422551352273728667216687464825658161115885142386648226367384828564718245162437713853437212715665543515736482755765155544227232645726488261468721616744233584141377641453146154573632281822427572235612768553748853766182212266886315385214335715573287828214564646817818716276163477821865214423362151177477578251347233335132383215637835638361566247647223377442462513252672242328821233884368762471774257255348571156671746833646763425562275458616278431585613251443373563831337878623766141734863147671668548574673355581637718443674153571358871653156183518255522281647421322826436623636448617588167148638448881261164578513726721163436366763248862883751557737772386517383234564563437326414517317345821175882326476673627634525521552172352467285284657375282158342386548411724516844747463113383318182562575583738833565256117626346885466627638776882227783112668675663856316534476732483776242218374638863118111337853283458343482626278771561751781467642841572763163461213545833267665136744845557647842746132776862853477516127556618875611136235833628463678551458154233548485166121644381538632537723724173571413247375227113384645813241715125715853562262147722617565636772438426747581158816168266122863438464146742468458148378753187774452783324556136235361538142717174345174321654345272471324451683533267568285247474612638534245235344216833225487823885431831163381613784268562557456553263237352681482616317566761463516337681787662825771661133328586481153232533444676485343527624576684137751184247367287433526132172855455843544842764782253416264521488463671627631218867434872372828256277642525643656736743617363523528377863283116516566213137738147787743465736371346187248747745536445354433543183761437383251184172135747641476217454588768286831126728664184838561687517164445126543222173165287243674875566487742255267524883575647684785544135428722426524764556134767253747856578323144214171353281575677633722686144684757536215471777158463825648533186266486326127112743827454471646765732712276173417871281418556188741374256775757634125315562312641146172456477732528218351782861242252888634588743151877633424612881786583871824478881767421433545214531433631313888632884347735142358525651114786163864248836628367115314575245313177434273126414748832355173544152383568158112555225688136535446116351146785153883888428171454285518874851254533841177825325557726375873824121684868482773165613754844345311513655657817175748256244527553654625331877432668422354418335835568346372644111413586643846746351467565112773778228477212244262616157286741774113146415752417181648633562424786857167354347737656541713242141273666577382855684322564431367173347443337445531411342524431742843312265887848123617137187856784376281846716558243381132241738238674618853358572875464138267688551663171453757687215632631557722871711475443446615623751338154123121627261314462685338267563184547833482842266665258652412733243384576883484237174686643784133742457416262588273451624822745138174318421352674144647176328884148486348568667182377144675636865537775856764114742478532288787512812584256584618615682628465632231188288314264841685134781146643841214367251758332643161281526522378777418658734657272576767253715413124228884782728487157734273328534541237735661862148615125152236167467756457212227641318361755514125113747726167313477188476535154473818142837435651735382251443366134765381856788231177353118226183266114745222562168541625577474277463478125253873578335776131573327617421884736826883822737538257378684746211484622558626477785643527155253826646757147142377687117572861433311838156365841631487571416843284678426155473233317868466863128844132741538745786721515367711253448246367414447342615841443132213426474728172725631155887112735126857356787177864851611885857375813771716338321653818371612284136626413161445355234824232461561444485476824757422188432546414718133731583727586664477878374351766461684687763531547633147867145826564232631276338234758118358624618886426214246474734546181511631576846774733653153114656617541543275511213135627277784414323832621467587264273785456384128744418345452356657623558355857766884425326483555431555241446733776431387256786811512715165211462261114466827216436537855456843866166342271811575455763211715172557421411351343442326425661275846571613152646533868381453231638417278423464132473838552277672254628622158561847547515735432231735884237281537337355788851764117267232747488766148841681263254257187215264286768541187755378444856372666671571418585235447251271158123338746246374581317256444275676271734248857217155464213636382753232744685857578536847426834271734854825231486561376147242134753557838486265561317773113188758326512341852874336556437444471543484644534637377386735846655815248236571851531618144712288521641774886321371377138542827232531234874668655758846453744754775517734286677642222423155421253121745425216742761168484464518772453857314758437515374256223668413244737557331736162122561748412678273151431727423326683133182182176111563174722865471481861482747782231312528248248316451767626527734668661255336852756547564263384384752463646841354362361322788272732356264767363366634475828435717471726156283854773811246215214727788116283458815582158151457574632783354782735122283713316413815276786511232444544218622828816562756886271562435448287787633828141532188842445542236731752447325865772326422382168354386474282446553728778327534836716542515166557652271517283657564457383663868737782676664535446246762618368662388817138678481862775214115255574283817371277658376674818847836584616518267347678875437715148116764242782654235435325864212266788816281468411336573612513312126543547774744426665551114653412683368638184253548447334542825211324222828763771678164337373724531475413523463873515173562372566588624272127476731878614227345166256637183573488726848654138425266423164723353825218452231752425645787168464224688168543712363745488536723418354548288671862175236433758567314236646566788112855822812812551575426776753484126555838735188742346247843325861715418435461764427124157537448123277528844187168452823843532883367117768437711311477432862542865715715523176444684271213436118886114366736341318151216647662511335663817321166264765411475566136673535614526556122733122272651438622335547636178265148872372126711151454585778345472245273212275721577867163243512742774764313834823434288377362813768754452538173461221362247642244575455436418136753125444371253238482312155181826863671164215365367264882151872622365248852444255781132462618313342366731863866183762577687126612542211824651342534124882488377776738518222462384682873115186657154611132826843345185618342714171442468121646843568412362836481863582361127616671366327331558272118828347534861854164677176353142562557351354156473437212372221882663333368346214638147264188764457331578584168158816583622663715832686655413786864812422644556733133677165113874765243717524526841635635126422533682254457743352533554215263248234115272115581615722424427375883587642242326347655224717183734464232753184785511354452818574226352546322363252411788552326664148285525174885347773686774432481782535217722487342425178758417727157636833641428138276182551468434478773627751317134253785323237586672488551862865617655853762833532445113834384568762723441478865456435851572446518612613767826668673536378386272231251212856753874513544226865141755845775716644211562783517554416344544674877228437522818382281773586515464216115388544426164545258451666348561541873435582832527861482845182245146343638258783766661164622274784533815634768763751366114386625755687676563367762671254757356548418822448766176881774767382765462415745741382122752564876462826655877628728773438374731144683422636436262355264344727625683872716726156154321213162263324843466331453251842467321271433863273661716787874515843827612637534623821666727275146216678164287638243682422412351221434851151265743385631185786526315743424875877266782255158325381232686356527642167646755443545144751734673828556388417241511487468777265387873235452272651353341171813842473151248568483884127835422672131127422778841132315832226264656744588627778647732417827861437826814685448165515244555886384533583777557637335761121435756678167556646835875642363452282563352284762545886367112275171136482456871812656863465454825581888425337423425655751374364522873217584854384783672335883635681335722475263577817665467875623536724483527434635211413454635572461655135824252265524188258875467684564586571626421754325254521323431618546581556271834174566557575245865376655154584537728734232132431582623318885322826467327761631146515882138754123332767443387556115132525157712642754474161548528678862354632345371438216281634625413456124862871127631435726771553166121468356541273633886224143752834852521656678346185361428523131277548783625353762335752146418524172185858235886573888868677126112823471445652182885222716652687143785248138226464234415235555343477138788585184132867784636266115445583512667673676823766121214153464218322538545141664246828474431277767542666378133666828518823423767244447121557486631521541226773783362478167855632178673816828743183462544247354738325734746742214255862315441631185451615536524181818867168676215844744721863533555877885686572851144254685744683643358435323735333421721111176723415875532416485632325835452621266261531844865252185556448278353517571414216572164621854628178351671442464355283452885443486123814246641712345522361844236187165748566327272318616242737583584321624446666181617884163342177642181888155368783851768434721457848468325178146686823713542512651815444178438644628558451533124666224347844526325558571887438363875555127586822845732685284675437214834252662415447855146234586827684451237473835235535454153548264121565841787866443827675113646826282862354165783364132217635474213358786838621862783115512378434862765232755646735361287565576464237231426743735525425484218347158843648286473777374638865662745381831368623378722763457284857435142826858437484678127161337336153323165152231663177356345326428175748253672673581676648165841112533243852822661774121138713732274457786527255726225867638525155258511174531856862731658883574311774126424512544683331481824443663287183674156848466663847376853718226652581772125124627265638124812428347112134643838252481468278613573548244232141451262481713726586275542577873537426482326553618361541627231425846215513613143884457114286583747333312167835222721546583235422373245863634524374741314233845221264551261352845871626368446123867287465216218884717744445454553268713588464281536768536655455746778387374126274532351244653523212146545781544243648787487533476474318371844482647325231185484486614436844387561178488618855382777878531835142761434687441574184721646315746315547421383524238867746866148675185282712763434138667824548444682864863435475285313486813476468744115154826861471362468687688487756118617647781845771834464485423445265128421667315314127722534716442236821324448587311812785416766683778212422722226846214821386314322541555811188442153282221464545747364676815756441426447642823152455375838866666133158887332538333826582115476728836736437665437186217146287836887334545373317115415247634172658223738427438333176142538761456326641515366571178775582424176838745533388241741745651622484465755376424311688423685112556586227155374541646828417212355681474865882133478314521451471784242727274543134756211861266818684874673134866638647163614866578873587723346124223783436551584556174248736784658655674815473653624233721333378863271641578478273265327512212317314587582535172138174741612127288126428316452253744253661753631452344833233322336464645324264883141518874386864312168411881445644832225186385681854833283433722184138747544782851672688847645868233736434643232174242348323755125218275353163873875574427323843773345377734721855786342414425246851468213765773555371247857251411838216786514124186876435454883625184333613367318121618883485816234328137663828636515225826547611323478817887181218151136715672713563881438464334241564314763868853574281355348417716252187121836168724376146714323175338416421145464383843188537378156547558322137155481633144888284467513575167267322242148564336771324337168533115181135262473326345613545166757743848676334161647653331243323828871475885172442346113371566175168531176773517461152782831113125746534425727841287116382675384144611215586435546654463564814762753665715133312423465712533542746265556848675332714521466311371712574283851635743643536186262713178344313722456484575744525371214781537238128412416223854131371843527757267762841683482741366718736537577248872452322517736413827643746224755381276864674633216536625688338655147313731634313141215435522114866437566315436835266881382774767661832614637438137563874128255585245775161857277545215866333418432423526124445741872463885231373751763514885317884262314715834263434127884383183186646112733342356314275565653156333243736452264648772563575172655234876878457675524232521877636772718662182723642214458138378554147347815367438127766612388847342648532521744155624886738783211632413855127732486122342535214454481658222758187216746827326787844626437547175253885522731748633736637764733481622837731743437655277376575236142885184284576722551247386834161325276128424225865176574385415476417741835184851347532221276278461474227541258748182132416616827215368266711632256471852432666112553563647266782323421461135827273562536155855758548567588856521852543275778468377831762183785375177312167362833588665835122441371358713648175854111467833674166545726165551446238634412476573877264148114388462266555716345641762646375482337842487731438678376865181525125644128573464375258238528784757237321235882884617634737744724323814133688645187251431342266827262173748685266717513127545556117121466586763387326384178532348224783387816813727111347465432281111652417744382745525345832317865624823358212817263648734827141275715545247744611436128434618134543651886246246516415282676876541441676314174843257768754124638314242777385127644131644342166738766778334714534772163586813553632888741741413275488675357711573523711123457765741212124114334385674158582516443672411531588247538461313587377643768376155216323771682432445165117768346584583622384648688364873215515112745731134773874626717516376553338383348337787744447727437785333141753718685471735476144343487123352331256118144247664685241614816188333744225241355833821287264333213658671441681533646114148562347838775356433861186172243452857484312428767628277512654877757463453368457632416844861371468668784445222446211184153783373865374578467263743183135733468235316448615748737254241512635271556384721858255447286611466722651173814374681886841658787326436661618252156182881825625222122784533458116471725473572517435155375166121678817878362218565454456772754832411184655717237177138733266262854821172348265616731514147635618673313831115732268154648251664447654858213132472188567575688413261357855138268317781451857178573477664162864458776116872126537781187584343474654354548853778283856614446631561281386542215228742772222362254278321523477351145181433878265167765564341753747512114156644363261574347131482134485875645631567873757582155162516146768246781772627138463367465468521427448738171258745734124635423588355168385661322123774251732138215264118836517748337416871764617777761326387236787743784811834182142666256442618186655625711757533844118222338623524251253787255154888637815485377168613862641185714353431316883444518557643444861584613636887633531437114361162438535871732256322622757618832717643188836264312334614867428856388815187473477786178438734372458633877145155228712568252231486211567713656116435687172665868336628176166457716225158845333832386823846232678563747633682437456223561787681142673514412838254442148821746564264688651164587828524222413242522327338223461332781825547751866158746863883462412584458624311112362316872628543645282338676283653455366828386188438336612163456162725684535481414484871278456678318271645186355712448543566856283884841821458443542348843364268257718178441876258241383515215576265117131878745514856665164653132624867348651572138841258534215346728726317651768733715513746624162361857585215756134715278362278746543873288386822352453154564428643126336882232262228452861883616587415625232537572844881823635361563733875886287363833663146675482761527628448546633261876582372168574461847846481871337485481275248878718272747173377332743735345876861624511668137551585331686686274648521714777134363771545473351451871242774484821177872267825545365286435638544782786381131567326632763281625185825217117882727248271877313414438874223485628767842136223544141814781581323484278238883235834155274457771772831353646428127134224861788715328453661454645216546667566131435675463361671688622133141531841174588663331625216444875824687218743481552258132715145312846681377812488115356611751127633534321666613388262527778453633137618586383171414331362242533716127672268473746475682351468882723551817643354231342275656263656321144166747144518788356444133863762713871127824368714448456883628418175828468488557548188482566673612542226641775725114563523881328265541787534866685166885782133381462687121853823676635411544214583288512621314228615557113678468657231723665188254233814618244884155657227633525581756238616714617641722243784181261371584338381571551813437744572836373424872628158118851738454188252447855464135365146127446257461148166648825533728246721215787268132346226277452663158242442474142465262212686884376555241773533554658721243826817626645178662142441167267657153727684758656444335184463128561615432456126885551826232653142441145351282687323451128816736161863255883784238288874422752186657481412711245365321225716456744184812148278711643318357643112385362183538144738521837438315233177271486626335233745262371821138168618873788556732616866486874552778223711581576735355155746347732152417176677556234253856256226284445162138827717632846158464532716544547363562637176473464632688827333718182267455882423343876638111314781783443285475728571643132467621451714414274318157175878767263274657357442566188211351325425783183482856217484487384576555573458755264756664136737517383611828823486723372188656728415222751435127525147758764163714443478288633565772784631363573118138636688224376756875367325317353267134223463353186838613656742231621187453512646626881387425761878646475867237267433573864558783545247154551624634556823348475842252387627744541225534824435581262741175164342855634545534551826142281252167681231623683748746574181788448383771518653241421488667747682744517121778443274433842771173483317381414417732346614148248772616256258567166275572466487827233856845653787287745166551757784788178414456742442862368436686156428346774223864711638514441272688543435663552771487462751156445431372242276524522474452756443633677633547653156145853621615341151672276161277228131536754585835236214514665834152715341187586612482445548867623161254186214571445363881834547584673554441264356167658571842773152345756252151161742454676768664614541442826825646326766265763625436342827154525263645172876371432672868358723632556688163445118847114865852244864734784884751684162881888284714423353386681216362236588366884785717348516716738873543557221545285884173871673518716228643555733728412135272662572588825227364238615215367843844516168311613141352326345454468261443381218255781457273477532765352751868182144875857367376665433748662132517438423383747314817768268332447876587153574455568326483228521776122124746656433263326673448832545812418732324623312224716145278838335113416156365486183485877414417453281452636556574325314882786466412623151427458415535518713231782116761262848225264778753154183374171462357535236557145131462126327167841581451544354743121653316365856882282363614162344536177416325787136278253511153347358558251875882248225437173738138415642668463445313167615362442832471822216441854627674143146525371375116345814266724351714686631388826227622423212413175478347257173737543388117733478475126152624815768257271561286837534424835523131821381815667265826675651417174135425454311733568326363566382617456444526342413443346713112866164778682222114576227718778578383534744834758417244868415252173485157263116581573714158143672541847772534852226436877831425672812535627632536768113211615815276275665465656236416113762153253465661148887315118825228161768517728727247634451725456152181637523148387221561231275156575835317411322442872364668842731217628466145413123153533646274682562628264816645427445611626147381567154786783817587856186416882353376346658377444676733244386843121671156747217177472567113776285872584312324611645264283411433316551858583655411537378445683783544711354772585312561783242461811146736147574566424885167143434367442574725325723784864414574343245111673718787877832515245882717163652125664577634341721234785336848242357375672366716266751573822377326711215126344675182261514751368233783744566318232844637313154521287647285145876515411433675725283715338618828242683474483327568668652254138883331182838387766833336483255141284728455173535333472884476654545276157445282636562347548621123211387787611271285266774537551452648628774332442818785166548252444577466344171726356245376331547832833223833272231433632875512177343313687281443654531332627323484366437187861657644374744285785477446886534178774522786714117121273563775648422567488571621746416532444588752461625644341215463447538317616885233532242845151368261618367887576451672723538623672165224136643833577243676371773122578248237611111565814457557744475441334746727423277158453242127275648322535267833873852681523231316637231533674331176272582525848156575414136645716468311144526563136443417363272843166254175152713655613353764227446487182612558347322553421845757762164578266447367421372238822244111873178488877222434181662737226884136125387324342411781215133267743487878671353334256755545664874646513558832326736745166461385713527634473866756167346644532647436758763381182885132244762436687665658144652758588588287844673184544668526425545234761243343222145563888486785513116483678327341837436343242131732352826332368686236811177537728172478721377668568848186851242856863413371441832256645256518641434821252641354561254466586436477547265656545321127678357782543247731374664783344638575513544888586587214882647855747348443121431714836462236854572862768221616275717726651475684356856655358676128273763164341533767428445471766661675456841572851626343826525268656238438318775228858341731823123766138251342582433724576435577226518411867373344825178178377881625484711353815246574441282776575457823277552852454434156365684473511633338877554576776631813667675438864546764327638354228278417856413138251524121452563771274247687825713765777781736657363282536225721252653555325782126131612463618782278666243684336162158723652376618547826467848153516553577673358716482136634754582521464177413585485123611344337157417877882616631423172517133734574651538182481782858653463431844537687411734223822758724218576611152743217316163362251281467174425714573171325116455533844631855185381831853762845887463381854246171317411875541214245235855611211614525131832443773458745544745281454468516344168437577676477368583472878623431238155744525714658442561632242128157548468873423724177725758657682251238471251277388345344531543258171785336375843135515214243836254864534136748886171268717874532363335418258761571718765515878352728321221234188556541447837164218354228613853517444532474232672878177634316138156873484652538347674387255451118734576542324342173878436814745756367882566313221785275375611273116756277765422437444727453263763157624417384848876768365728486544652268455425867884728233233823442321857158527611148611613343472127642134156677531613645258725871425545853341224584127315813437262483615412846757648156134712843825668432522656113773646312822745648738165217578475653785721637375365538833588117364155617735268568788671668855535126278878786248343121776877433668844571875614773747547534564342715326343247238268727688518375776514343262541172417328224681415354571582377365655821524284653668251232248837162516848471132145167247138177852562132536257334866331753728727722833672686834165171631518118274748881161122356845178836345427142571125642718771647618481452585843574264734732711475125338221727371131172424264176148768183562111147471765167368626368664312421741521345158718668763326523413738665117284587874437837856563231645234314885843671184321483566573433831226351846851344542368647227724721317532266138656288463423251767688135535824772773667147774611745587647252465718673567245173726572422327253752225686115338433842453262624178766437487745332754835667212446183457738328714325563187526774841814623237167768374643677226421266252564654747826583418558642781144881818444524136263442632212311286141125753714123783463368834276755113466257751116466138358314327635885112417224636642737381464628326866178573511672526338854238756743634783821316628228852816726344886243442677844778835241231363423153735766775817142317681884157864447634238282456888631557546156723736548531126662133751667356558314214664738764136373135771657486616882675852568478475488571743654863817848832512321332818462434688214285541267582267185411666312522455378317164457327387747533511462327646612278428565743825238241645241131211426258554142874427762244228438755347335356347385362534711711244682518668457511773845717811388572712158737525511125667341387345131636321485142253857148545451522862788433666326456885412284435512556866611812435825821642524836688725382513178213558126342468752268871268667462768881636113241258773773218338658216727368867214633514447878448146275547311765756232262555362647222248574524623346567586314461273718162213578356162182662334822164617432331647685222444713647345413544852661164872633427126643124674851452427185774271172748727174254767523877387868537733637182424283761332183145248256546647254151385827414528172867367433747277635767756515744452712512488168475786412525881757334884573665684637275788638727553355731275281266813231353511153872175253853266365645463424466117681648226524542686422876181612438443368817656447315845822172226357352464118615185748266847711777615482476486688157313371618462771238784818555512532313642832135472526637848374544117381174832115882153444281244721631811556726425536585868667761754144524357786442784562471273143411246745723862747732828726818765524835541846544623273187114113812427567162422357152366615312461857533121371366164417211365163212143266673753858428836286663337163265664242781111328732522672737661442821617318658183117755434148827634252454756815777564544656151465832681123511577258232362835527872444723772715675413258215177337587668631831812784822651158153127352625111856837346534113862531143572685782432275525474375518214677534673586686786527177454861333844138841348287285527164746786645343346341417674344642654432625174536431548183766213631844783812577718535468447715385355642187868528766437864381671722432555583775665843875287822756514416641133373166173355781386665776386654634428864154872714634734427162116713153251615883254671613863414626351681475267142538747548862365121834741337267335374768713868855146667244712386463663224423282754361613532747485532583432374232137162574832124665551625417267461686441713311482756624767156774354552282441454738415141554627242567724886273331213434414481768421453342257274185227755635674483416815857214716173131271816711417547182176153127558825225782652736634588386443481665155826484835823312382722816427436114581822727348182145372264813123658413845777122774212276584288324421287464882868883373143754674638415864373463516772237672364727325312522375725416683223386718753157875836423687171417145271612846458754812336646277634767633348613521587327735277178535681585351118656325387578556576764527481857744575766523388461567325811367123246857726162185141432614357836372532517744533588428441845141541358234775531666422141233275114356153627752613242776523416286673678478826635637718216863374452836115634858177567242142521567356521377671342552544318287728123587418331141187885586646343613534824172153367157174638681366768315517812134377635175516156722124572453355388814325751831448123467675287321742658214815778674867872537743778868215753488482534182534628374353363715413278412544262247534427461882857841415352274155568874826886811678166221835256656228376432184558422171411865636384312445333645335653571418387845343424355478823743421333846486857132472435378354727835256477153143218422352141227243374126521443138353276517331144558731658614328167562334226232672545648781241674346227434856634413526215651556757411317173864573464623861816747326634357326351832818267314187717525853651414755448386643688367387857732213724368164878171376356718881116161442541225454627627724224437233573518345626561735686762623646668171283358538682733125615248862376774545386676223287433853842751274877727564847778642266776744781453364328575112465763634473541845388127222645528448634823375632325762261861786841384584341453457341573155884122874568175618335167755167881451135442637223458657277467281885114811643744112343561344138576618732667554552121844653584385423223522324425553572738463518187467773877528825172545238655624684817142438617448424468781465188718723121858784323534155487344654471831753182121552238343371555675471152277722562821817472427262148257527344855214415545745624818121548746372846231114883233634353347771212115716382453444532721143451117411621336236262824587122218527647177785326471188472842626681181122466464755733842788646771578587437266687776842533115813736156546582666683158641845315754436128117887355424237821237141482564177226316371366876664337552182164454523461387128747635817667457737261487461855436443627831847386668765248213686166436164888686443368341115372462481722747267853155411257787581652427351178256855252276753255855381731344185838282282685553574234588234734452743164635886448317882755264714321562634357171448253771645327878711511823646134375368333752158522826782837714323821156756141726336833326281871863272424212726531221278652315446285626423775522266575128315771521625127211168386117132782813673626157283278148841178428487461671414454258136222687538146761826841414123126358153532277465467867682855236787785248465137242353837122574341583868814856664312132574366123476512487811168832683155716572224137256115482116814743126137116177464854785667182827325552233847218125118233717517781735252256557781132751865555564148137353838351453286472775127512668642172778474672277228574264647287737662845183631263867555343753852777144878856566734455644372282255125534323328644168815632365343644816577126754444528834828273727611551253567275862332861137783782842315524218677652374381745281781271375463582314617774513221516843458873584831784582886861454742862181267252187211488858186632267383227558853142326174184854326473658257736833383335533878374824165682465355776412542528117754665346315167838547573753684215851323351868384264576354757864273431252327144532842556451268871771413228556317438622377883282263435461243246258542545767774135252258333757357868574565285721514487471841843177643664522513616647723827527858338267381565428274387282416314843458514337686462817688678582574371472484383673231831232664284227635831731757644417415467654665172111181855235224164682127172371214743873614222652728464738263122437732845424677627771866815152563724755325411767181377777512232668721248553132281225547373532372456171846365323185235678231353626771116548632412787756676752326645321284141582536337634155284176681466523611546557658624557578234727725537511246446737726851566363535117866443872157653126346447332888874431571117342873761721284816722458425782756582277178862412364578532643344484584586682245287651822545224523884555365866626358374245276527837147677846522272626748544423615447466365446577361668743134457225725361654138683662335685675254778276518744326573684766276553164188263343475476758725342817382884626387225125132347553178131882572127552472265415275673366254341356771631824621453128534265834658675648672126123864357235322621155642753147261761411256875334534231431325745521564642513727266588724224331834467764421136451348371867375543428855231588243764826623813328868855781331356854218516133122874765375725161882445167476766137787723463574621837765126811316613473746433346785375742581388243511523645837186511266788333568822153361621552428263246325626534314388263372412811171184561645476228474458214482863844518852763145266174381244175845176531238773315486155445613711361835627351144823162744531273278458332341848588221832681351422356377654257854525186474836242475745566851845835628664564138432351721144588528264184144533281534386158776884167233886357623838746714727268588148481372765671157274828756511182887716282886545426674381825237884141278677635754883247658554422475364714521484251852164661473245133457514872513166612881153287842366764553144825624775311126314136222351727368542484855475125883328148252517285414266152117755633882741164678225322887552564364818162723477315488778683271428443735461763645313511271583252838435725227841521663524484482188484116186212512584734838377175574665562621631434234475723585223721161147776353776367572375142688684435124414377745436822718773511588547811642634578127884866272327526578747322358281244552282476163178135622426357526768276678316216755848886565547448613787257423816428211635147361673212242248411155231844818733263468382477855426283887317137232637762188243245327567854675243577786246681178126244228182154568116734353376274418861685764122448515557762135564643116181281453143686565841885683656481255552367427143251265354215768433474547261341883113826618718853436242271635372378788887447383556333523327216215814855315573817181358784516654656614735343886127266547123565642476447866252352715336146431463232515746817553266586368463576835167766642512817463316581362553776168586132245434147244123615116782843637471325765733534772251786128318555568842236728187736778527835454363217841364167543142126435337511624762515117743523468524487381377153716317643132517342134276113571338667673826444541414713458483718828565213327174382121425663217343584668758522614843325823251864538621186678771281368844436366665751766256136177637385872585845131214448456556116681383143127344888885573457687813512131241241383473387131711513687347175887682545755536365247636676145447665782437474863152158776231768812225671618858844728658373158628651445566321814555274651811473346733334836215436651863723327562418172831527841586182446572558781883116384616581157666812461615521688833514248884284248821772828754857841227163167311645485726411585765631135575132784458878514177346628341417544633178361733328154825732512425581773585743752668657443673366878326367332745288131413482255888268286362683142474282773464587117741411856784566456271137332441562184387421738457467368238241613786565126366747382276742766376732832373858478247772273622517546563153863725861513278735154284731517851325813821154816611842647875151318573678418546545213471554774323184536348343375181155326172312268876781551671574651866712268121472637583436858568712862414483175551454855758865856142518565181483181651577151117622653657674718617325831334881762327167376411138663786628148741422215861462762543767763873374458563221287438537278533183818378535733772872627574331345621125118576445481573636686817146755352666524547338414285715463668242317767355313618243321444211861777653442662181735575766481472115283621567627253521682686743868363754452776332257267458113372246224772825854668483527751536878632877622511567771165138623745674253851524224865638381778217668762346284171333416373454661244548635436457555278178643314783467223621584247661327133833612768472543355181844788314485463685286351216638143581652172558411137533265156666242125276458664735865482543747272427331381632566435621234165775463635185775586445517228742261476515476752517813341527636688216747572847335382563381687268382776741662188253864328243436143143536438746135688442256615367184252717455632558264642161127366184541864688854233462133823375857614424733114834782288455458234526181143837413743371825655111536274257834636572884311676756645487133641576481332636445155547387385515763182258285718173355456147632621732754868458378358845656442238515711674434574711846383776213715876864173627452323871355531666845575774226516478662378278128214818414865255464564231474572367772474446183227326656421626366168825275813246446817123657343311747751567265583165637725211583661443356527177877425874775532163757748523834126868667214382137226268332282372536611288782383821211778524381241627837385346718123124536716145557284568335178344656458351276586277266868251121454877111265762378526563688532638144658156846266861112688275123183711326717541611546655847731314413714827212844514583532277842823326658452824378234622151174121462468153813465742422166326772833568866411632725725631623558257668662247581737383168125552713453462652457537758871884318113245217141276778446386283745227224387867268814583487486764111474462748814567641611524126183565188888827736624732536476656231855673454521727346348114512322777436868472167188682423747162888553473136284731311661211257286575716324525744447856858457616648258628386277752143421663533124313563176464816251243275167637713187171841511413422154414657723737322242563128177623827442687274433515178314264775314374421727415581577568512543465528622685128676167885668225735115183667213253268461371435177626523368247587275342388362437236563452783677216487526878615456214813136534217138413266881847346874177138268177841173343167368363722771618428315768746184571753223334757847653123454775887663142457662475665266762173511747225762242566487185414112671447475413654471447871577814122427225878412236513516556845771142181621876734734631822518684215386133138288726148616452863814386881632476217333672423732335774178814576563448468372387868774171515848513148412434643462637723278386657476551644817115481424745386842427265427265311538275165616516175125143636342447828843537667615772667357362362372434312883663282351782747234685533238256183211362367383573754131126637442773855414251682384863335753681225117774377323732354568362138438351586767548687851711372642784363585137345245481544712263565777435533571388768267436728164775613368565524661346761561411725318112825133476422735111787686663565722226611483242167771446421467886158336582522141311755217526485748852141835288625782122785254854374768843571527431376441731887151681781781412888472654774767751584585881764258152878483778221141733682528652821345845823884264336112847237232813165276127556766247855762821521843373183448472747347573417736247614565762712487512274776816781251381323238865152817723566476273361882848884226334848553431175468445447287563457768127328715388554245874121632827576487213231336244837844124245332636673766326526628482882287364135723543835626122533351677235234254578651384663563268165831651127482871425552688465687163567826484478451314874724442258125168721747466232656411447726545432447524332358316862666665855522711526653616168785171672872673231542866431872535437548767581163717632518347615412373668427375556776863822784462635127673152721113552583121884761517161744671826751387315342212741668576533757858627256263643456686183841654463654211578538623127876783255165728517341711321786483258428312512648322375533353144877787352877757174217135145158217654127223777158121576785466541366632356433316886751362775734524418433727634657272734842558113211641533536715446337386581617454555287128127264532252275236165576162116438121263246187337172653244135431585138862212412885826356876737716254384543317754461278432154521384137312782711274521828112638631811678734871882181312418521362411654475123227351724843878276764315566854214143482858713771622231851544634335865784673548577187127716728878872623257577128531146561546331484723177484384582834223456626772465234287221638668618541323335223588823583164852224267871248232353241335757572235634416417114266371776282653118273413188382883733161158838231566137128445472645188817742228386681544173715727781761714815353546821211553623522822285842265258775172811155236775584483838477617178752151757737561256336318141144761872831687413476364772513837785366631821522537667337376755736488468428346154477217133312713621144745234245446428286456831577477872371848538815628711383131462632375178382685544854324125642466542614433135552738773871458888764537761113177786448721671323724816518242872553837476788427566372362645665487728536423258777162753514218432157313846461437524674884243585827726467574747431567265325561814314347682617455217114523721466885657443223558745723341113165342488216246566283232556327572588867563738333855427538618176256654524881286257275423138534855216377436883163245722544611441161612146484473352756326141364243734682486654464861341561244424728646726118815235587834555842642774686141678277647613163463581872632567414148456451144277365822525585547147333436637432356267113721775848426245522322655775686522768464576855863721376365416825233633668623866875542313667452533178857874627264753675274378545645247118814414184746266623544646674288283633716652142571678732142652224623461454471883461783254662646674376573747552475632671165256844118318163585436231381376618467464576576617576164583217645361575177113273226235344118634211643118315421545656487265611728446586617256345223148887552614876573545432775324111477731856685753861562724887333865233585621437353747834841467778888666467211887566645615712177516517664265755122228333714111336423654411431223347424344551153517225288231616752353265627873472747315237743633887382314116668656116762588751884383212647174281388821575638115486632836661227387474862348182618561485773671763373847754172761632516334235524672342182725164513782784737552688744753316781611682651423452565433225827432148478565788668516177745455642728456183157557858373324823736438878677583556362548842538463334784382717565251336271457342623576567485672865115321833214533344211515236483861143734521271847688833137726553672227637743321141171268472263753244813423138664466768752235318182755528571377727381645248445625272323378143743632752624313654313176635843228435213216556524224728472513833131724231345554754854842651814367727374118834862245623512778212454738573313718353836154838715685228225227538444773171671312533417255187645186477728714827162318833654556276571662767115428516632763744443588627411472587275235563156854647114741382646727585337567211155837881341516664722426277153777815344376627751564373831643511183236674148766441421341384356277277357748588343848156635826688137524765321645324511613728637427273184318284441815725224182388787835456235287187732324343146871574352872657363755725446582637676535328677176126341883438737477137385423261267758322483351567517456356863468688463118314457554518838131828724583336563775313622788361157635626421427414475381781545571548566626166453414316484774515128885481258284135451717118182761461647625177232447118515528848851812156343735875817341241523333675745822726813272366253642826183652377185664552214833123783558567148833568582576644266821724123528438381475383138423436438472731622467844357678183264821523575323763373515424247514376616567165838876415144533568681548462458283348185244848333613615221787737326461836232433867776371316765278626277457584644613387473467166167755353824448674345544722518376556654155556428866373476733445455873343466354427627135364611316667138147163146542711683615766241835624468482581845112557464557773425342112815151236113176286177772172371663552226387241878578332451467366126637873854622721243363434115613556455546212747647378521782153743175388527885656747727324717448452852288231878371372824822632242218622531641337434213873381463373516287758151634552431224124125376263464628221666863737785112426743547226311647474667858556323283845684124524884722447463824166821548728432454877127614137336548586435584311817471654558582711663473616121376655626773758581412255813333576773284534632656314526232874665441286631362664315746413736436138347617867333373852132278552836735274436584831742246432866384438611235125411513786311713281763171727153765271144188236723167677327578573127272325832284513474875382283665271856256314573551716743486718127353153722635156668418133867544183685266462682348326124133881468573733274855624728467548575846826741218428517188457411251441631432261474655146866138855274627328425424871136324285635266852476351545413612866533213468412816633424887278813337615583578476284323768631554654484471618726546216141555144671527865144517176555548767777452714466434737715817688562755468716812835662272388542331475773623434555717152616774287472675648812668452253823625552134875472723837617835862378683834844366425631763866451155173885724237845752837377273874771426544318534521781726832316261275121536651613373784177772682125438348434881758126333641752684417611657423237388473383714247375517268546857575547185877862534272845816247677235454214856465426876787122456185611588638225447518636341746557824828535553546275414538687834378864843353136636237136466686348287533438742165228632353444455458787625322824415426623373712614886265514877851835842247838512152345885774624454451761616461363642227727246161748367118215237577438821327182648171655828184656614657871743374471152817566337587335273146318782576818561187787445866127382462261862458553731842285325516335612846223844234117223312514662527388588258827157662376448778328431555618365856371457516826654542717141654116417711146578461622165572185111543278767321726812427655615384161232513284866773433363673573655167388445368347883778651558876651244477387348128577768367688725867157437261156784633727435763136136776813711318752342573323243881831756842341336617272446445183664744145477275151564776755473867114882473642652355131653741713748684284717445551318756114256317563413355725144462137461845631261887614784781425325235861864747388534611116534617354483847512368352622357483842836132577813436832872133137347452621545435764266547458376428615761853372348728266251782143382668647546418547652263762167284185888672263137458871487442132255761858823342137872822141743421431246413684745152535765671621363341637277115868728277156431845114121842446354384717522832454482788643423472725243837836576171374614757231354846754651215575838386353751423538836577851713827254387178676672488283777468411847326467371627738262685536253726882782687683743865847212244685352618237344116522617832266462233421272531214662618635282877612134123431817532735454335571365567356757288458561184431337284733853612871811321252686335483524868438324473312385271124281622343452223687478483288177866513751655781418588661727286118174461644726788673647717164187736443716257335741322821366153512837545755157546824232758626677727168223248374345123246277667458611252545827281337546572171172657512366487731281135686236826624653383551847532777621857652375363746248348425166476455563633245445722756561153852753183723518386884664674222487477387812317718541834623685761143587156685324463654534124271655522118412717583334551363573778854163134261758348378284654186161811368451147635846584172258438727387142653212777717334237266732122845848652483713662616873251218867811446631886654855133863225341874611726714455837413222535258867674734555111272417271667168183736324225454277435857627455552343466876822715424413717353671871433517877583722575525826842732823785477576517216453573827615325616157758841115774524528632421176688528112744526774376624482456581645413641782256535647632734627548656348781624546281545358836566554586383427315118482674428736115686218586316155852324268542668833264546653633581313778113226442121651654224276257167786724151465657656145152673343533232216148685677351457848845761337124284611285881275345842313217861676147673688175266136342168472717558167838211662174465673874283253855444158226674687711472781315835868636643264182243747741743117561634522532618534488721543364541383472524428453255743476836713553664537685125627588275765744823461638675168444115523342647762264425884777787281145768376435453566213365631726826265441856477452137353227425686418254263388464835333682553343187257777311486274147415858664388828172556272532414464435212761655745885386485483845826863126774874584781141821157886553478611532524228582662227171577246665222321884235712247727183375448381483128254876815887183322553756646536881586465386435372451485588582414264674627345368476338488153276243136166575427281835326861673482161185378175374286111274883851383277422826888226818167744536756536233231361412551115835841712127743733823111654536441411656245781213577426277481678673564618614878552486861756862663386747748515387712415288655671546375871438813161133417723768516774577572536312214547585655444587523582868664444112827433277357412677564621634748786682814564652758165144546813278872135117281818683182887674374531268722342548155521638821152452858376641575154521857226533663367218482832876778525538118554726281451454136455566111353237115185421353833813584856325188684412681518852218846845313723131115133182471243354875666128346343656642182522551546272177866461743311435814256131166578744853242417851322431275182848634676612555825131261382734485286885813642167377384482557323241581238831354672551573321363461517351663535686781442557343553551258577333433368324575874773168575178367744467526853274858515472881765317821725463675335616737132561856137814646531871448824267172844361414572312847116527813813716157461674762562841321452557728127818337175211725617886168821642277126821686867626158115545166237818272818826367138615487724833613647712765641268668538231235462787636364782285186342443332762373637432684868772148318835546242536253768346366672843264226713344875281564887374251765618273176852235221757838712872311665714767616452112426851364441774237843378441417612184234815527715368734244411547373817537755512786527728825446748216638135252586144536476382561685282845454412742521213142444313367874872543222311766866462117851685484766215373875563645612485435481426685626726816223563255717723867733252231234672448154553366765326656463162732263265487264112578658528162532556654628655641647751481713447441832338885674257554234635853835513234647662687525678653234656265352726378824222133651665366854848647324864571433143338763666782278648383213175875868527443562757212411563841241787567557663878747181635281173172232388171683642771617288231325182141243454517262286635461755688124473146182113138877353654451135811446356153675416247157536311245332541147884514446572883337775718386242332645623232386355413454388671682536513848132267488148145524787434481685741861148688421854127864414567616121546284241266476871326433623485568451648741782687726413247726481768618627574471757384518617873465112271664464274366711453627756467684366216475862586265215767214318184525386465684421436256551255773415863855662737553715715244721281462516814245246638423657153472883172537822348164476185521582861776856722658376475372876545645758744661272421558775751377155164415435326746183324257242872463364475526173446713366261142753814578783577314686622635428846314388453546644233753372852617644711184333862727843414336373388185735462128351364854655256437435626255224337511178432756577453687674828336183746138272466628542232128415723865271221451472557763264532488885815384118147236526234113252458817341725845665277866314765512814344834478826317727131876441487333748871673745527887862177728737518248222775843168285372155778452476433647243817427336734871822437321146375341821658112417573455775323327783478264587374727288477554878116332311257363746152858321332653766463346738532364663311837888814685885683184282834771781484263357271384228238113654612862871648474282414217354785267212665842418765571344463134512434561188382517881872411144415877887382167285881537574885478653768442287367414821335228846872733231737536377858371452832678862633877578683112414462686862174266787738316187218253147327413645417287453738182212523424684253672128412454767488836131521356882135132354378213584462141648153423454227464185761555625368576666447136441118561345466487476852182531671226858683687755183473685125154418853884366818581726718121558576283521712562714362266854682481546126313566413236233341323633117743728657631243225856253283624546568612582248248753877255674886627265433735716674423532833256523248143365838577521788746314134247461661811485513851521756867847116551357477711217783845637614572726754646865824667425551365588472875386767823854665176765544445711283847515514717231663425167123545743862857351686633615246228235124712263188333276565174522487721853234827817584737633385546187426417141687677575633888866173522767175216446611215775681771876255762275734121356415816161748435461351863364125135336415436183548144136568454875841127526542822687836832824623215251314827157335565661558786444436622241126366176136756671741267283373742513412545321454571125122165134851372687743457281255763517681236445575156542254231587468253468464856447728752652448237123858166785421584262522484362283542462333613158657672421327715667728488386613838288548544774741111113344714574863653264632434614345824778711666881435565845583774883331437741166885455323522242265234733825653785486273534333135721171456747541654614377211631188773214867378548116528666635254315436546822656178212578488168447146728354714567148685767724357222371881726118667325721715223865623786673181565726167443188662851234451483511641855212136155335352484528864232243858368528814376815226842363588117287684453181364173574761345167413333154836774488225251422655363718155228272387375725424438337761377312668476777612511368721548572177868255782435544633266561748165878414832117742483321678183876632416741518373272228118334266283356443213268578578137331766851546141565866328364231358822762646236871665567688433421167577847324348785518127542232355783365527335358212386338872146611348555767613738444474285435414367752864176746725434335511481585555266631338715633112148666132266558265443432156876136682318282787864145472867613817814577456667535467288648418848288458447176164153681481323752353645288833561458826462386623278118252554848762815142313365332732763467285281276441238172365833513171677337532451717743744172524558761447238717673136853316311518641187121573422831684235468572586363277585486572528477832865636647748448835656761314168465537862183416121745178485164642646517344412666522843843278357532574527365386347448437156162721838172881628435116365861853457621164812845487257311173435668283663615276532215244451232742143827728674724748144268866175584667233555683482211648751824357188363435442514335674168287757745484551715524423345463318535413238873127217841611878321261448312357617738712628568423773533325136157658227511617145471534364164747133556812565764484714342