12971404345353043230709594963862142160042163997125324811600151113266685867767176358612927185755899471790365298767115047339313880551002743983023895467419151611422557641296038440929316713015989926324046778854959969839602633978676186994989691549762650736268393167379975775705913971926619903225881606794739693970672167274674429883283194350999412304659107175126152699728856444883630949430350038597214345241809175111707303127280148767886625178678931752176988281081126968275538878963075389452202026089439256336052063339592869984659929944551792848634119705032572293753485492173968022694212797616378526067983352952941434719664783599193994767138757075922672257268646322298662550514821884431275857573531780991435712618758399683113782371301536415399972886267386962437755164155221413410575121486484535325568834889934484095203766602636663987091387342838911241178942968692344158759357819407552856838304838486082286556007406554213289520122959313476982226351343894664461341523254137446841864796770334804214385017759258421491368125481118556466610672607420127826535638907616476615336565681869791166995746486731046443366898018073380964611041838015239445466767567950738770737252517034251273921952318071439082199034794164111454220235100909167641521154101670132849078996263182685749846511165200746025927729599454413294491422792543219662182972472621143223200040759672779730498954070838872988467223015073387649283773342492923714731224341149947110732681897122198949201699127759271457821181127551095118295338389401379820424625048109281468675705921071056614252438186151555327508209723759935826731023206301717291222712994762383947565332682668268252462437649236954384804804567756444392286373624471249120775245736574834684123963238775799721771948068155583748905310728467286735743342509097768860623982438396639003893250578010233891762009991741177657197093721548600837373462268305357856564699867283501726457390083172221141122816283208932045700176962027033999086593571324175819953203540831681903619250366272773334511911944095711340194980586905468779196567132649614141372187937189173147558236973875536962780482856182121241083285586263295007915167793883652787951083531161331830888222639640275979561131228618930593198508244651693932168065386852375199345727075523670127023995827224649374354136811262834244799565668214787876891849500491939566832276474932206713248184389684146224368548182129674108777525208636261321683625532173371403461432842860186358467184196995106847449031594836354269572879982079160443710978544280778043649956132745207331798651646600757532188199965791534352075805898777919586084622770854627593414482254885932840480212645747875774636387230951047487536031238845342493955748632421904645599163564390041525657066647165145013652052589678533936019753370217946883990335007148620563201135556932022324640224999793719880668773364364860399326842759725655180911399866504144464057629542095056455927911319259280614573563169950888569711766919957910456208594595700424694219172879860321379908876026004511521481056958953467266506254192503991482386039805466843556130910857807997324534533858331259547540352424432565232172847721259965724341594769290104561518360619043655592217716700118633768140966174418892893466167548740494480328564895140747972481651271834297659065912710278885647340036529702416493755997447633220869482246767871901469329304160137668167373407727075294217568933644858392823080454554314164671943338705648266064163360721630963736354891027938744086098754589294395190797187207584043257741413852590663562580636124898903620767119159295126165373682427719497396052516283975947477110973725872845597371970124284666856695417069819379456836887873822193132894964000816317031816689625555190456332621375085406477089349851015153910826912296260261319606800353655264487416788396173810345418711136312481903618884251968326228468558669669699188797376735443425539530999889989341693732428308380885562202317387678178447996368757343722244344608499180183877666964349200344890229488191876228843547556278193766786571243042538213537080216193596255817830485925504632343593662998078200351863581982482394637388148722638560436040575939665107679835407114840216958774062050422754651541833025721763605422979895419674281825753922180102290286242763572476377537872639343407601281924160123727600539822955634816576817440269721342093654294033628247113658792102978956218462818322863559589817850100628184092838400465663504296624058011663297266576838056023433561745799219898781706859911782133961163226655132202300132971891382484515298819684775299024644503726814183889380789898407823772619675654215897914660847456110537699007911726466137564937738511299628841424120596238697157619941357126501777013966122290185018903102688858417095559915455793805132518895811376067522905486573774611881326297001894871796426561739749941796565477371523621126486597585749654559498469391454197898823945236679147933874115439103028897493113115284640318915981069881216458248910559608781276753967158866630020663715367895928397365114824550404843564236941250736273766890778296481221908387673368355486086964095951772717434790471729203212724259370481339529615277553498553178808799223089142840103432140054293989462423263369850627154803181363515717382912735535046697828549911545324175369025021707052003107630776423741231350381219722874175371403947469289635748750732573672812790754628264764031694488621795197402690118997645942614473694890776343240179555214686228097402816740512721016381618294398421207270067295413359323165394156042421322622974011597247766450174827639033013011297236873693906078608503333793738950129467518359754788492236361124761036053982532362723186416151023502283435735161866451230302399589339445854001728151352946558479181758537501420909283405590358553738033904548307219528049588386891240924009598890752714420357235642431934931839394951672396092400913895439599841638491748265376194811596466142873875328336307544148977207203