2022年4月28日木曜日
2022年4月18日月曜日
gforth 0.7.9_20220310
https://gforth.org/ の Bleeding Edge snapshot を make してみた。
$ gforth
Gforth 0.7.9_20220310
Authors: Anton Ertl, Bernd Paysan, Jens Wilke et al., for more type `authors'
Copyright © 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license'
Type `help' for basic help
include fib.fs ok
10 fib ok 1
. 55 ok
see fib
: FIB #0 #1
rot #0
?do over + swap
loop
drop ; ok
gforth-0.7.9_20220310$ grep stat.fs Makefileunix/serial.fs unix/filestat.fs unix/libc.fs unix/time.fsLIBCC_GEN_SRC = unix/stat.fs $(patsubst %, unix/%, $(SWIGMODULES))
2022年4月17日日曜日
2022年4月12日火曜日
2022年4月10日日曜日
Frink 2022-04-01 100000! test
Frink
Copyright 2000-2022 Alan Eliasen, eliasen@mindspring.com
https://frinklang.org/
Enter calculations in the text fields at bottom.
Use up/down arrows to repeat/modify previous calculations.
FrinkVersion[]
2022-04-01
100!
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
1000!
402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
10000!
28462596809170545189064132121198688901480514017027992307941799942744113400037644437729907867577847758158840621423175288300423399401535187390524211613827161748198241998275924182892597878981242531205946599625986706560161572036032397926328736717055741975962099479720346153698119897092611277500484198845410475544642442136573303076703628825803548967461117097369578603670191071512730587281041158640561281165385325968425825995584688146430425589836649317059251717204276597407446133400054194052462303436869154059404066227828248371512038322178644627183822923899638992827221879702459387693803094627332292570555459690027875282242544348021127559019169425429028916907219097083690539873747452483372899521802363282741217040268086769210451555840567172555372015852132829034279989818449313610640381489304499621599999359670892980190336998484404665419236258424947163178961192041233108268651071354516845540936033009607210346944377982349430780626069422302681885227592057029230843126188497606560742586279448827155956831533440534425446648416894580425709461673613187605234982286326452921529423479870603344290737158688499178932580691483168854251956006172372636323974420786924642956012306288720122652952964091508301336630982733806353972901506581822574295475894399765113865541208125788683704239208764484761569001264889271590706306409661628038784044485191643790807186112370622133415415065991843875961023926713276546986163657706626438638029848051952769536195259240930908614471907390768585755934786981720734372093104825475628567777694081564074962275254993384112809289637516990219870492405617531786346939798024619737079041868329931016554150742308393176878366923694849025999607729684293977427536263119825416681531891763234839190821000147178932184227805135181734921901146246875769835373441456013122615221391178759688367364087207937002992038279198038702372078039140312368997608152840306051116709484722224870389199993442071395836983063962232079115624044250808919914319837120445598344047556759489212101498152454543594285414390843564419984224855478532163624030098442855331829253154206551237079705816393460296247697010388742206441536626733715428700789122749340684336442889847100840641600093623935261248037975293343928764398316390312776450722479267851700826669598389526150759007349215197592659192708873202594066382118801988854748266048342256457705743973122259700671936061763513579529821794290797705327283267501488024443528681645026165662837546519006171873442260438919298506071515390031106684727360135816706437861756757439184376479658136100599638689552334648781746143243573224864326798481981458432703035895508420534788493364582482592033288089025782388233265770205248970937047210214248413342465268206806732314214483854074182139621846870108359582946965235632764870475718351616879235068366271743711915723361143070121120767608697851559721846485985918643641716850899625516820910793570231118518174775010804622585521314764897490660752877082897667514951009682329689732000622392888056658036140311285465929084078033974900664953205873164948093883816198658850827382468034897864757116679890423568018303504133875731972630897909435710687797301633918087868474943633533893373586906405848417828065196275826434429258058422212947649402948622670761832988229004072390403733168207417413251656688443079339447019208905620788387585342512820957359307018197708340163817638278562539516825426644614941044711579533262372815468794080423718587423026200264221822694188626212107297776657401018376182280136857586442185863011539843712299107010094061929413223202773193959467006713695377097897778118288242442920864816134179562017471831609687661043140497958198236445807368209404022211181530051433387076607063149616107771117448059552764348333385744040212757031851527298377435921878558552795591028664457917362007221858143309977294778923720717942857756271300923982397921957581197264742642878266682353915687857271620146192244266266708400765665625807109474398740110772811669918806268726626565583345665007890309050656074633078027158530817691223772813510584527326591626219647620571434880215630815259005343721141000303039242866457207328473481712034168186328968865048287367933398443971236735084527340196309427697652684170174990756947982757825835229994315633322107439131550124459005324702680312912392297979030417587823398622373535054642646913502503951009239286585108682088070662734733200354995720397086488066040929854607006339409885836349865466136727880748764700702458790118046518296111277090609016152022111461543158317669957060974618085359390400067892878548827850938637353703904049412684618991272871562655001270833039950257879931705431882752659225814948950746639976007316927310831735883056612614782997663188070063044632429112260691931278881566221591523270457695867512821990938942686601963904489718918597472925310322480210543841044325828472830584297804162405108110326914001900568784396341502696521048920272140232160234898588827371428695339681755106287470907473718188014223487248498558198439094651708364368994306189650243288353279667190184527620551085707626204244509623323204744707831190434499351442625501701771017379551124746159471731862701565571266295855125077711738338208419705893367323724453280456537178514960308802580284067847809414641838659226652806867978843250660537943046250287105104929347267471267499892634627358167146935060495110340755404658170393481046758485625967767959768299409334026387269378365320912287718077451152622642548771835461108886360843272806227776643097283879056728618036048633464893371439415250259459652501520959536157977135595794965729775650902694428088479761276664847003619648906043761934694270444070215317943583831051404915462608728486678750541674146731648999356381312866931427616863537305634586626957894568275065810235950814888778955073939365341937365700848318504475682215444067599203138077073539978036339267334549549296668759922530893898086430606532961793164029612492673080638031873912596151131890359351266480818568366770286537742390746582390910955517179770580797789289752490230737801753142680363914244720257728891784950078117889336629750436804214668197824272980697579391742229456683185815676816288797870624531246651727622758295493421483658868919299587402095696000243560305289829866386892076992834030549710266514322306125231915131843876903823706205399206933943716880466429711476743564486375026847698148853105354063328845062012173302630676481322931561043551941761050712449024873277273112091945865137493190965162497691657553812198566432207978666300398938660238607357858114394715872800893374165033792965832618436073133327526023605115524227228447251463863269369763762510196714380125691227784428426999440829152215904694437282498658085205186576292992775508833128672638418713277780874446643875352644733562441139447628780974650683952982108174967958836452273344694873793471790710064978236466016680572034297929207446822322848665839522211446859572858403863377278030227591530497865873919513650246274195899088374387331594287372029770620207120213038572175933211162413330422773742416353553587977065309647685886077301432778290328894795818404378858567772932094476778669357537460048142376741194182671636870481056911156215614357516290527351224350080604653668917458196549482608612260750293062761478813268955280736149022525819682815051033318132129659664958159030421238775645990973296728066683849166257949747922905361845563741034791430771561168650484292490281102992529678735298767829269040788778480262479222750735948405817439086251877946890045942060168605142772244486272469911146200149880662723538837809380628544384763053235070132028029488392008132135446450056134987017834271106158177289819290656498688081045562233703067254251277277330283498433595772575956224703707793387146593033088629699440318332665797514676502717346298883777397848218700718026741265997158728035440478432478674907127921672898523588486943546692255101337606377915164597254257116968477339951158998349081888281263984400505546210066988792614558214565319696909827253934515760408613476258778165867294410775358824162315779082538054746933540582469717674324523451498483027170396543887737637358191736582454273347490424262946011299881916563713847111849156915054768140411749801454265712394204425441028075806001388198650613759288539038922644322947990286482840099598675963580999112695367601527173086852756572147583507122298296529564917835071750835741362282545055620270969417476799259229774888627411314587676147531456895328093117052696486410187407673296986649236437382565475022816471926815559883196629848307776666840622314315884384910519058281816740764463033300119710293036455866594651869074475250837841987622990415911793682799760654186088721626654886492344391030923256910633775969739051781122764668486791736049404393703339351900609387268397299246478483727274770977466693599784857120156789000241947269220974984127323147401549980920381459821416481176357147801554231599667838534854486406936410556913531335231184053581348940938191821898694825383960989942822027599339635206217705343572073396250574216769465101608495601439303244304271576099527308684609204422226103154229984444802110098161333824827375218998738205315164927134498105950159974800571591912202154487748750103473246190633941303030892399411985006225902184164409988173214324422108554248620896250260604398180189026317781146617454999771440665232863846363847001655618153861098188111181734191305505024860345856755585637511729774299329074944236579668332700918367338977347901759248885660379952771540569083017311723894140326159612292912225191095948743805673381278538616491842786938417556898047100859868372033615175158097022566275200160956192229925401759878522038545913771783976389811198485803291048751666921195104514896677761598249468727420663437593207852618922687285527671324883267794152912839165407968344190239094803676688707838011367042753971396201424784935196735301444404037823526674437556740883025225745273806209980451233188102729012042997989005423126217968135237758041162511459175993279134176507292826762236897291960528289675223521425234217247841869317397460411877634604625637135309801590617736758715336803958559054827361876112151384673432884325090045645358186681905108731791346215730339540580987172013844377099279532797675531099381365840403556795731894141976511436325526270639743146526348120032720096755667701926242585057770617893798231096986788448546659527327061670308918277206432551919393673591346037757083193180845929565158875244597601729455720505595085929175506510115665075521635142318153548176884196032085050871496270494017684183980582594038182593986461260275954247433376226256287153916069025098985070798660621732200163593938611475394561406635675718526617031471453516753007499213865207768523824884600623735896608054951652406480547295869918694358811197833680141488078321213457152360124065922208508912956907835370576734671667863780908811283450395784812212101117250718383359083886187574661201317298217131072944737656265172310694884425498369514147383892477742320940207831200807235326288053906266018186050424938788677872495503255424284226596271050692646071767467502337805671893450110737377034119346113374033865364675136733661394731550211457104671161445253324850197901083431641989998414045044901130163759520675715567509485243580269104077637210998671624254795385312852889930956570729218673523216666097874989635362610529821472569482799996220825775840988458484250391189447608729685184983976367918242266571167166580157914500811657192200233759765317495922397884982814705506190689275625210462185661305800255607974609726715033327032310025274640428755556546883765838802543227403507431684278620637697054791726484378174446361520570933228587284315690756255569305558818822603590006739339952504379887470935079276181116276309771257983975996526612120317495882059435754883862282508401408885720583992400971219212548074097752974278775912566026443482713647231849125180866278708626116699989634812405803684794587364820124653663228889011636572270887757736152003450102268890189101673572058661410011723664762657835396364297819011647056170279631922332294228739309233330748258937626198997596530084135383241125899639629445129082802023225498936627506499530838925632246794695960669046906686292645006219740121782899872979704859021775060092893328957272392019589994471945147360850770400725717439318148461909406269545285030526341000565022226152309364882887122046454267700577148994335147162504252365173710266068647253458120186683273953682547456536553597546685788700056988360286686450740256993087483441094086086303707908295240576731684941855810482475304758923392801571302824106234999945932390521409856559565661346003396150515164758852742214732517999548977992849522746029855666700811871200856155016457400484170210303038996339253337466556817824410737409336919294104632307731994759826307383499600770372410446285414648704116273895649834555162165685114551383822047005483996671706246467566101291382048909121117229386244253158913066987462045587244806052829378148302622164542280421757760762365459828223070815503469404938317755053305094698999476119419231280721807216964378433313606760676965187138394338772485493689061845700572043696666465080734495814495966306246698679832872586300064215220210171813917325275173672262621454945468506006334692713838311715849753092643252486960220059099802663765386225463265168414963306369548086551101256757717890616694758344043486218485369591602172030456183497524162039926441331651884768606830642004858557924473340290142588876403712518642229016333691585063273727199596362912783344786218887871009533753551054688980236378263714926913289564339440899470121452134572117715657591451734895195016800621353927175419843876163543479806920886666227099512371706241924914282576453125769939735341673046864585181979668232015693792684926999983992413571941496882273704022820805171808003400480615261792013978945186295290558440703738300533552421153903385185829366779190610116306233673144419202893857201855569596330833615450290424822309297087124788002017383072060482680156675397593789931793515799958929562156307338416294599900276730832827716595064217966523190439250543226753731811755315476780739470338931185107297724318378972674957455778183345495942317353558291046967315391275975687281861691161083156337232639968881490543943261197182274996791176628553401860198315809629981791107208804992292016062059067271273599461871634945774995805337947187105456452579396024210259136415528398395201773012712514892051061708228008339985665786646920737114269682301770416324829479409558694699089379165191006305185352102345189798127619143061864362703081977124992751056732909481202057747100687703379708934229207183903744167503493818836342229284946790660285674293251642569044363473087656797056595677285291081242733154406580199802711579126254172797452862574865921933293805915239524735518887119860391319654287576290190503964083560246277534314409155642181729459941596061979622633242715863425977947348682074802021538734729707999753332987785531053820162169791880380753006334350766147737135939362651905222242528141084747045295688647757913502160922040348449149950778743107189655725492651282693489515795075486172341394610365176616750329948642244039659511882264981315925080185126386635308622223491094629059317829408195640484702456538305432056506924422671863255307640761872086780391711356363501269525091291020496042823232628996502758951052844368177415730941874894428065427561430975828127698124936993313028946670560414084308942231140912722238148470364341019630413630736771060038159590829746410114421358321042574358350220737173219745089035573187350445827238770728271406162997919629357224104477155051652535867544109395079218369015261138440382680054150924346511711436477899444553993653667727589565713987505542990824585609510036934663100673714708029927656933435500927189854050109917474979991554392031908961967615444686048175400695689471463928245383807010444181045506171305160584355817521032338465829201071030061124283407458607006060194830551364867021020364708470807422704371893706965688795617928713045224516842027402021966415605280335061293558739079393524404092584248380607177444609964035221891022961909032569042381374492494906892314330884224399631396391545854065286326468807581148748371408284176455226386313520264894016262494802388568231599102952620337126449279901938211134518446387544516391239377974190576649911764237637722282802318465738050121277809680315691477264910257503508758792248110223544524410872448565700755187132146592093548504552829170749596775404450779494836371756062326925757412813110241910373338080434325310884694831555729402265394972913817581338619457057799561808755951413644907613109617155928376585840036489374076822257523935988731081689667688287403837192827690431514106997678303819085690713091931340846019511147482766350724676534922040058626677632935516631939622498979912708004465982264899125226813124300528104995058595676527123591494442612554437618645029202881358582871789577224116380815161831603129728796987480139828621645629196153096358337313619724773332353025466571196902611237380629030242904275794549030022660847446513161741691916851746464945459696005330885252792083472495235473110674109099223541055506299687642153951249355986311346661725116890785633328935569150449485189113488301876365100638502565916433021928565596263914382895068324838727165616560111531517055222955765944972454788815532316417453267167978861141165355597588331979638070962998880767303616940317736448140427867784251232449974693421348217179595190698204602997172001174857303889719205597414742453011135869766256607770970225633261701108463784795555258504578058879440756064974127974530918418405207558526462208821483646754652237609210787539190454684852349759986044943322828073120679922402477507514105890774627334319091255451352225329275913842047384603056163154236552935312278389759446515787337343463172280001031380425481404022090580405056003860937403435068863081434683848900708938565050027569059678069404698435184535134141031615133683043714786642925389717165978629010728400758939700388317742648163725113277369926827709465342583596111881955092462062153978121197244762623771534452048069819082524943963962251113831177428978535825590832490480497516047104257569753442551515779815600370847230603484753977513688390404316017486248871339311818523029425425676202485688393970836748788453789172574145155917919035398535077200900594979352939459631213445503368260690059828717723533375221941915547303742062343262892968397015058892191112049249864792053410872349115430987182160055762209075732304626106597744947658346313025598636315029959672352476943975462530206788193304372284800209305354155640664838569378144603138697563459200233462606995955513484754147891180830329816421587452922952678937925647752029052675349356673744293182673374571642465407748267901046778759085408130531447176455869894169668940436489952465247443988349583871206296485413357553813419500498743813369062703973874586604296871595820715766599826607317005624465541763024501349159567288942619746144496908671655859782729228702723774835097362901019130417812735773037781804081589136005207315806941034305003184349342360269244733060013861119781774472669608928321052543116496033420102032603863672532889648333405862204843616575362001468405476649666473566979572953394809138263703324220930839366954980688240491622063147911494642042500022450413425558561937442905257252436320054487441524307305215070491020434076572476865095751174125413729531644521765577235348601821566833352520532830000108344008762266843817023235605645158256954177359197813649975559601912567744942717986360045847405209290089397315276024304951653864431388147876977541478757432610159879709758855625806766197973098472460769484821127948427976536607055051639104415022554420329721292033009353356687294595912327965886376486894188433640548494009574965791657687213927330153555097865114767947399690623184878377515462613823651665956337209345708208301840482797005728071432925727577436229587047361641609731817241594204270366066404089740245521530725227388637241859646455223673260411164598464020010216920823315155388821071527191267876531795071908204525100447821291318544054814494151867114207103693891129125012750853466337717749376016543454696390042711129829255096830420665725364279472200020835313883708781649957189717629338794854271276882652003766325924561614868744897471519366219275665852462114457407010675380427564184440834805203838265052601698584060084788422421887856927897751810442805474427229455167420335686460609977973124950433321425205053675790499520783597650415379001132579536040655172654879022173595444151139429231648950663177813039057462082449171921311864129633704661406456900178942356738775523130952785912774533241855442484484493664210731348819180640189222317302156645813473186449997905781662091469870718039388885781280740226363602294114354869871402143572055947730892808653678920201935102605361567924483276749476117858316071865710310842200560259545115191391309119544447844361032741876102338843391687589233423790859841968266525610628751237572318491474951945985728897934981791761822652480408237128109790772638864286067917082288575852703470839714561619926247844794692794996845945632382702297364173503430783194115698247820013290851202878474805860188960045901745974055630732714487679085288867978809970695240681006625611440014983413580889737246844064948857074167687916413224205373654067330186392497910915474785959163865597507090581175924899502214799250945635582514315814464060134283490422798357939659258985200763845646681640732681928346007767285876284900068874564639274964415904034033672337814491597032941787294155061054129515400159393851663929325677429557549480046658273579653990940233543644649376827272541873627547532976808190325336141086433084237771738995221536763095302045902438694632702895293994483013577589081214884558493819874505920914067209522469096263076941753340983698859363700314973728977996360018626500174929290087931189997822963712306642297996163582572600112288983647651418045975770042120833949364659647336464289044499325396227091907373705772051322815957863227591912786054297862953188615559804728160710864132803585400160055575686855791785977899197902656592621283007225351401525973569300729015392211116868504740402172174442051738000251361000494534119324331668344243125963098812396962202358858395587831685194833126653577353244379935683215269177042249034574534858913812582681366908929476809052635560638119661306063936938411817713545929884317232912236262458868394202889981693561169865429884776513118227662526739978808816010470651542335015671353744817086234314662531190291040152262927104099285072418843329007277794754111637552176563589316326636049381218401837512818884771168975479483767664084842753623074019542183217985496260666590347925816342392670947839907062923166535037285019751324813803837070894638925470887039085723581006130628646664710006104352115778926613432214655311411882596942926284522109026688414975763341554921135581254616558078273470115814006008345762133130389987843270653719956709570847385786092649188858378739239165554263577301292243641604062551736892335636568854365851646207821875741724364525814143487632761341752707376754922276287782264765154315341585713773522730335403376364204258034257264749686217823666951353410677378421131371131987373222891805275062812277716412494412401207125954319991746574745892582613712825555535080404143944557295994554635608487251339462936358940832098964801619583130429720964794128539388996265368928263807677168759588502216464582430940165009688797366157733560316836710386895228270941509545222744002735499253670214715994056544813842186380128799900820933576320736369405991424263718294000613741900579513096298545330748197802568301089672873802234820488862973130369689882640657904781562389778485365025691064231795736025330908763271784911189748432246868086340383964176127605788646574472284824932687443062551220506955168464669477183681911432873544815836350548146411099960143390595799766290646881295025039150923633011076070632863317393378149693380247580035052789782755750928604039420506342939327064636161031822879248152679306862749237275631852225654266008556849497720285909150930495425967473648331437236349555448901598668408362176913559656039519670425368863482369587129462524759031776813184977588276576740482558136502103649585505703259219957675334264223783723586058509403583977103476670644788640831109650302565215607464019652716999732373465237173456595514559493098166644006211599349133180135150528651842178828026343325934755850761168697709125580056185683710540856081249519403148064618719402577663285267019698387567561524696759028106864896869293315954352097687527137201616160931174250199709289684940034696242325688410665113304377412256176258658941236728171145526423894512631717834790276921171452887352955019336759218908006048633737786728180610254782570436788449503518925787499836694785908612975543084122677060954347612133717433156783790162012337237023338316414706428592185977610158232721997915062871868186750981665537745013020880333904353639770263363809098526494532628146558065546504823486429495390613257400496912888340518222933644476683855037967975809619983575807027759535968788226194659612223044549275600274955168583542582295336042834426318478068825395450746691877897765406038432512843812811316856204608617289408229658626174420766920297427930088129519854678713548623236610413216581279267151545961594352593456757445992307889205519540082316409719591250025455237503106735639748835542480449681383030671851931491335789202123605308199952020584503423499932150962634977812456658304680581824563524814625849331926195406884818446445248429486063016169476663242625231476322371109695369483824482316410396224507675405614287468267835723704895606990652792688455844512046654853378534026646645042339638488257719874953611300494215593735545211926186721478265416885604094928290056616883807637656690510740892510549165222968878676968631652514917701499900066637344546120262780701925698706225540928945194718778004306130021828287425867048748480826948573444778244078734102710824870269523830804910960482013901294024631244800159336670212658317677879752965963472576894326540435889267293950687860830626266263287392087327302547910099932113388977807814336728791448768373686467748528777737403547472871644217767820712964506270880978637928144071192505141148004907055608097229299792441471062852247029870699869227676341773513258602908903875707454368077876422385333700692089616351009233587303986543906071880952557553380364725895007306772122528078179471056481171378557451057691044322925429024149433588396093679321361696954251299731031032804436954501929843820842383121265825740594509426942777307124802176915781835720087170538773256017987133005505911377823841791640280841409623820847637393013930778428554545222367559824666250608754284876104145661362227642405914304455580856318180935230407793891614902116292400515074914068443203230365609954878620999194306564455332547135557365318516011700321550690787716752062881527885897149410320986984083048966524351030502444679931779147659103428949129054120361601695671222140806369405940304552186212879933092856231022418446365289097444640151986623183881962444822590783585914043686193019041458962693878907034982169868696934448086213990534591792826654304798207219634134755646525483143771156678459077797196510772468000293581546267646310224279007313631352522067062951125935874473134186492497282784796644585448962932905262058065248588707020879389134476083344653170939242408249328008915731319541348311820927752486880548733943315867562666122179355051190609992911379445634995627391898459029021713155706096267881673302940198464237390445098028030948975981259252055850973537436556825780313681902007151675693827281818824587541710721180806556448039122504537089422695358382192535075692834095639859265599740391316709290043996275976830375217503360879028295673068862263077729733533853682668734519035709709687322323738300494090123239274318759046526327095178406267264828893646896593219169521106361729757074376148061601331104911692271318609404145014842866423634716982892418180484365230538864559809839273836490685480823014267803143937440431807822678779494006206489151248952516543005634448375046751754207043313372486870633237561645232360481932024377596890914783372179553676992603235715185513391098402739063753280702313301755754269396202629423910945323537910125948964941812563672992967084250667599803456273455598559628512281414582556024841783305645240508450065988755987518601335860624932784487772006842296591945516539562982960591610046578907214842054861830418175604559815168088031783080261445994444677918012432146400983610678683412974872596729258786806223080115822026289014364459002301645823666709265571264559925790622304745235625575111770791512002789380975775468546121017307522799241407026308137792971909461413145802081087738121624539858769697371425881836152605069380926917712087321915005831977113322793572385071940612761291872572099404930250277748156614021327434743881966413330052634229082906400927944924808556131183440161804801357032507836323938921567643159620442612809700944107776130638909071294456394056601559246025454204771186140420155233371270501377121034570009578009389265329385720478576508777149663403003562380595757191609382171312222810465858388943507176431939973012661591423837170284400120399485880996231859472474858776584355077006934099220340378772192728370301380838144394114984971730766162961342059105014814283949700695951676939041557902856356911055547312684571497449635320554677940775184056667637222969090346128706829887104278761090090999160443821794511763620835379716161833124364431267855435550800507986124664397724135502128238026726719914989727248512981287283697489276420792868666970177259794407858155909332508554131299946581118527691652464790819119384233275897699573012098103009171001695718791616942270079528915191912521053891838538959315167400505723817401030621004380243011187977704252328073236575129609372456053680037516596164236147709330391224409752871732067976128120428026739256557305675931512645750047875756531854825821411574030473147492511910835615765732002546109686701890307648531373832912682481741181359032826625082549313211431478953352317043989053928534946642886074268371824902498092479487226633686823799580875637040808655649321905489637785549531167397935270799470452399153297534358690514105864096534514182896474439367182852711843560799285895978176543950113088848419163516673213692860830956744502801800373716458009168082972708715609185038654053436660045504985624687376022557041595800250174095361839287643458003670864954057941720085136357127163768323493134230703821274484501440529541695374381945459456533165140990993722722801019654652726227831512103467686166826131471843610025517863247950150022953695466317739589344131481485834694374523981159954666071205997794363440185078360899108948073419633939259318973940943110042116729120199722626609871927014024105805515315100109804996044147291039451030312664114726736839973315035036742741546992633165270432940675237449075056739508929674779115800864399992564817208847429250821546279856079127768611946086210349405535850134472190244543824521089284409498132717010673966471114931896789977661595488186193176900175027901783824624387873831483279500879026433992577026588005849778984624295660321276945810824348129690840972550671054732471317254997191901039553305847040728081693158626093886019147689944137673621432083607375131574376316754666479186753896571555100850626810005119827486807780592667765654100834778571024250133253391587384761024129794736751001163498977803745930025457609870671092153597115178252014281216647543034075128600240297038428615984289816602143429849088917359682192284469123035904329877231843309914187264674607558318725713138832356015809009594182530207799397648462597901883341793830920965841463574411985878296475850943053008148341821747826603773762252997703468752903517310792083220038080809212164346586817989810504274375385786789186350517717501606531826406928883250135919517178537687865881752366421534010961295763074762648070312757365787762352859057153932484576503944390496668087711899192498933896524852395536795827530614167131757915756386606004839994179548705868209201195154952031294562451315422506574858629161606523796643010172693950282294667489681746821163996794950294284013099235901278250437428192557634533217576162292751110598368271567229778620053722932314082887058749444060116236521627717558503013451471452765841864277071769968435499620257547431811994883385806759692359580622165832464092095350648357935817742903018315351290014321495518177456908388719320697769695657771754499149911431368950836160692539606469893374870942933219185601299108564470256257163505508620689240297589684714283678684735455533583477652536156578189996983068654671736445996343136468195427420490472433064675001442697508322369013083895492637066778406531328664886080129513771720847581157719491012345141774941482773580041432667332379617716965698582785832300505265883502247868050648201444570593197343382923860072601696510903258980909912837652275381493529845099414966933862815568031306981064525192703818515872648691762563239441425216118427769145067718411735714396681005615483952443154944864238384298900399826113322468963346522104692545137969276009719645338955332105584245640187448611050959111766828942711640054010503770420346052521318228045892998637903572350665108782350043349942391285236308896510989246641056331584171142885304143772286629832318970869030400301325951476774237516158840915838059151673504519131178193943428482922272304061422582078027829148070426761629302539228321084917759984200595105312164731818409493139800444072847325902609169730998153853939031280878823902948001579008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
100000!
2824229407960347874293421578024535518477494926091224850578918086542977950901063017872551771413831163610713611737361962951474996183123918022726073409093832422005556968866784038037737944496126838014787511196690638604492614453811137009016076686640540717056595226129804195835677890904754151287114083692425153529309626067227103874424608863545436398293174776177553262185112647485586491818038151987716121968151412990230446382406889650835750022964993964236425663527161493520780133120294339305948199604353969420254761018738252172711966524222462978613221897504974019517165315304898748360505669527154801765121621380041098168079734535478517520246219450483450137732631069390935035988598826321052841414001575678609609029165074696613545262530732547530215683071540424970029721042464657713750561658172851551721628867606644818098185845649120912302682768147351225295912356697622384753282615770046948114964848491301953671340001803143401238051136817383529604736178236359090032444297950688020042549707581742810920051587113272541976395544996564320561066233809944107996509023983505868826254101504437048432069614620830058162203244545765692318756565514222932145066788968458166403431217542120384260906858381449614534899619231900467977963087077199296523095849600825567809582967912837899666754472631990135059896378623749638002602721271280372007190332531861208580942669184318813379806172391391371142452541538009195482178127103419057404767790947408548585300339461726805826153286598871069522633304688276156298586025104515900688436549770091859131407933630009426687245018590571617291031936490991098228217111303418881419416874105904104754556921931093863614157983757941694045527938937109384182352483469190977349229512595307139832856254481217915270504659595865465695477902009217837081622239912666569873083979636249621037614923347132760069302399217673511891057774156409115337523737796739164299874501639465858199659299833466605930164782634986047986287211118948631170007729933467879533102208785302906484768220247087722697882722570310129317599975415218608043766240038735376268905375571540042554032021774836867599633613159500423889949964185457785707105025684811847514397763075381968197081809353979406723292036890892278320076369335840658417149841587948589109694590567289971379841585164354962922275043894861815302043934524746300827649887776588657430808787541341307659150357225673206408139140297963493742700782840103299929256690860602208331598375281999915671870901630152916471911594792045589654174108627724714953933330259638766452116193127088328263058379407282477564917067772021579613731556638858117457882957118203417140771452947553579710818266975798736591330783868285759503476782370731375931078738540084688378992553663116247942504751261510463457061195247608225899147088973048499714351467705120587222704881123894015563084242325566582234524023250064184629592203477023254431663678834524234786351840868377556610441235314544712469309924054972384215818431201675603905031719972524565657858377580857753875296587611843196719011428331596186371229904364101925104590174899485735184754538966936136596452820863600242776042878575997267236789350943310481163781137073061657701913615155210544413473188519616347234309905239123362574033170102120961038611843868063597853491277275931137615512583588086143609696078414543531160473655542295909978736085781976548586918266365930166972883618318752758568105775675966067631261844908745484099323247260781661001877242447578482757325634619280676825806300025702967517957687924077010327825950051833687592868609266123531195866406424282856518217722405362370108927300980366147700076486863597137065748242066418805996019152058416937539572940540848572048418311972653637539392292607122329445546114043830608888455472262982521959322579596676683095798571389513587611207880657969789400571881906259210735317292516019577563907999470160972554166513367117816883319321840660636568596432815225078372608736592243877575265200781212833881618586750388584003652016675406392778115111868458199386894262575028022072407470229729807300769305350299030708992932968658499970377357047611241589821412780882071586215497600204467985139003349377901546985902884570454097514558451773384812005969986480262352327994453850460076937608734626659015202206123435576750480616281524573157302966399451196823834643757718903063240959402591380922240597916893176229124101771570400726896732414405895355905933752497459666555146355479201710856104464717446942699735015204481366510113173286586432989936828058224541791358609128169942609487581745879188901454907687626492445612664268419746466944857011135284594664778705669332906683191211679592843891707763756469830607726946446157098827211286318181633963433982622278777880916301674073605099360426618675379549872595620032582682304219761940526821315661525868341775673460140510890114566065131777384152248294592892196925081707708956060296377411787353266276600324787319187293783780138148270015179795987032424870185876471358109455318476530890730373245779028494198986738943517064149564804990594093006277657735282745329364839230377036786126011877199543323142317134192498839532959815897143069682311169063709880980582350009757935709752159691546529309592501608247973828973507738795211228712906329949550038643238424051988830206248681225406964552601853561814705128129575209176827634038449369860460590635276881199756668156927705608260532688929317249943995632966640087434150868853522140468163389913962148072377130843590128485356097963244234258597335002413606409678935872850429834088884095874692184869621139102956165151538170058823013454824506583037720414969408727995320732618984459390723172372773505225555870494048306412233528343388721349540006501057439848172942309499753085648354311183029377249071656160503018931362666762334507974153416632205688115646752647275910981101914383753598053770480983400813515228505733722683659544706233239092293045748627565018775794784349898722528041596009731196081424686254783434375542259755548130923524013655819377601775593408810900096330395839742102569482162078387429035759201725472744471584604614004419451027076341900365088783369309245319804743224095273365904204974224026338825169846115223389858328713412227461715321325907836506058798028923224690960644743207800323698659285511311486990398024934998680927904148415993107729560284732270418489597286120616569998066038661086705201649351313623692078804312221012250312139216410923582161474293841740579901729847279223428368268681490950541242823200796710166512178797440562594938913791839387426657739855976346749047716702698381568584368778609847394993632375641155980052734098126250830686482595500428887779183729173641924449692360120188390729850087918862083678323318850799596507200877668342250701300559629485460639310338006962409846734799416469525316124995399767182205049908946878275981474421785804487409717095320780908550438545095692074375623128883194472294012503948867091357550225733247387673836713948329373228982894652463686312122894655728394134751081958915738700777969517675233511970332926553477842126626657002704976618186495385321990992309125975969481164085107764261143480729926891434934653945485760525710686985891865174258069177742205999308690980946888210533880901657848794759904966902256959045488837103415525927717923977445378303709813566514552358199104233966745765529379855593010491613523033562555952656933996721762709773327929804120375937122471919820933347711940958528266320276926806603115723886129903420862187816632535548132153661026850422287575793955396246749701457223907836584704529328949977050715566374099627874261081802790766282656761601872487265444758953735966424841514000403524335516071724658005399597519912183875779310968284797532713687787361975283783737741839312064625026643441685607598462521709586506947887764380981435366133058233958841643177128134689453955873937874432434687145280671197195513231494609576155784202655057731844749283396889800825755589655748878413064526453931674676427894243522757310726579693105983442299584220142405730467977460221240528873414147742446907801753090702006287421337553108994667660074203230000277508786509230740451650940006952970374507654440416869713072190688458826361661200946641016183036296197186589885721251922406071796493047632548264919418442230198954452647764674393967820682923984500338811107120776752224770873226964121000376007970278778381110189338569896301997115913615797647888168527297008769300198030181524950167975707554384139664071545422307244539361131825430686392950328457197322610363857519633077627992504281004202341942775218915815914545927317324211667599593371418642221693004005588524791841972862404830299347319173403590416752483859511241867878206389162437431760290323651473581040959280976594110663286261572749778942322250276197696422060823682727354246626199636893994803560390052934479419997096306769803571896244940576901535476957850882261358491713132442048822018592198820969477750987281874282827463948245794718843584433391177265043073909560325058448198995832915260084255272946936644128057058726962168290498895119135233679078611106005101520912096703971372818279362911106858424628545623544082650432148061029825202932934167703257418140986265134812016733116051295176896449167032396751696313799382852946025718217594969741787574529710942590246992970304017747251122364200869942429038241884033592227562548081488222629163734302167789862372815541366631949624102253448015578860960389521180854444077733552613007057841612033631098799111177140159832098881785478879281355580695256084154713449469152472326303293588071045070473978081460303940056718501036271708121921975450601427613487730525199147197276975343080818433964308940508403092776706439767188849301321751277180869708729500620623858309493356097911249371414797898406425487435634179435773610196432976321307837967874392664124592919149040384282474997890647052621063555539181658192686736473129048872386414660486917414500522399761813423455838136287027973958387883497909965137568122167354165690451089724770713333041578551072933765145855234470344805699717944610670127903271473689170381838317363952033066536784880688768775638525520626432024360010265126019778485160225231568714899183967962218366817905674813571558196442595357514899006471987287653913445808705641902246543019946827778127061884055417232377647521542782361760659785409953996144644662409888525921382247616839090424021110345490894287658199343693272661467486064067566704905492346983548052820306752831201535417015459985788184397345100246498838312846172748705657695989710447548626955273737462967243982991200091741274448867484142796241175130638341788237593297314320564584561390377227159851542127940776884782682315484247143214703996896768557078139541649820998405502812909408942843401326087152749210886528273710935172618352935270711965652390745991201180849764648824063615574449022471175861321051721565747543212567621988750941249777986924320822903797472606428482676052060098450617805020511562738913764387344408615988222992400342333216118459519332040331654041268829151410051175346044859618550552461534191531825748488371383384976042703810657494000520273533891986901602983797596721764733190827634634392499707844921679047980701936607898978235076844961473308871479707159150674059554795945616206401847611429632256723006229360558636544195125810029782794899100405487072319421171269043025931309379610273269292776168085612238692797978167506895130655918778864352680786654889456083246582202049612516465489603922455168615894039160649834384823614528296817703737280476898941720631772555910186086197715460227546326335017825305338061539177185199150678600630600092400873877182858962680440181097350311853355271507893172596966113060279956964625345275782203774937875001959708712123189240594811989463098117595560372357262892928771632609019318270473134022279738527232772958135423586861817878806995580888584315273219611170452723842068853460970223461625759242072328532616105092697007261610147100068356093036018804952048001444295815163594881256196738049203450196251109453281800480372309808243475041790944974865421692593982860122946936952714583832578800783752103059182320682657222032315525532381176883500049282237037749793473772822836901157515964339072765271036498329533732393003394653883948103022833376222844458257770958049239252194621024698472658836275609450190889882439913301121161492651362657216785169452679134725629838186819434530811039875576359993814521262670200215098196316090978486654174213524212947841292029510725650186579095120391229190247172736081000573839205218197550680566881305391000406757652686690652600256147497209481701516743765654299822982695116250816911483231294541217579151912746632825168812618363899144709713881626713222382312912566394119456413606732938547716291731561851290848443060769324599072376302630111617805374737891389175899875759852963328049346335658295610221374079203742442961819753794193668833138032461949803999196346293216191569611076493619660511889414006285129495377272334113659058086275127752064098131409956263683524659858068957978404477255075481162848281133774431751953057500186518885842896433545704400754425303088202476756361974972031292673221813620116458383966810498414436684441118711953407091150386989246858007441355892246814611628988973127213212060622580373233474510322266566957668634147656023123733116093373348733724482110167464373461709662021160459434551310477138234064015933983509230604614367148103843935544685011194934426280207090501376094908281450495676289923397938367245854290092387431666760623673525421330057356976433249850946365622789694417044829225094409078969259501323196449765967838210526028472310306412516086031352088884336410660755637669215279059781455558137865770044315166402322286950161109107871717948314559272390213625881126459580594027399537375282706786853658390111769597876907303673950556794567616295058617175076509840215718658442705693783521624084819985011641431542172024809367773762575560546404670188554885788224235657091505752550260835018322910466791437523917294876428099504237108588938389124155034237963701721161381822024554388786810208327369253299404605520373530520105444587389942549759126155650765144808982939733577419457483786173615753497522389083722703433894946595440675750641967711507550411840086319231952652442436457976842998980991431008121034162184149226795406469894575618791060525826148805644253320303822308138204516899612379242904929125256612187982168383381999874458801497887244209542841803849445950646907893616208949522265207193197129658085500291841338444021085288924413805088851063385464896155410100597656027002851496011959494342049271020775862890080228823218566043326811080504334203842453007726919990171973387669009454169122192564381208160267330564560385625745626143781662708868994564684693318074377364184083928735328762858597112682905882701027011902920916640117024084495316818463831094563006897838424387097024756768194233064860716539403819402630851468979918865731937329343299508661102852409324632499690459505857225390077224728967981465443836487997372995524233686693540906931265173050508567688922581727988245951736699217572378408646156384944792973173470400972784791580877908990167250742106621102050540230255806647819999854778123326448314045332517914084385334891248582800103826200678282744019404049910304999275521507530844306601319885910704595960474353483212472755594648098101812598832265015181338358124251219192358386108246384654783814626635213334659939170230618727580237452133262565201310302123984734890625437231136569119331849131924665436669627564725123606763608977970738629583645024077401744858836836099811587681999223011944837087651431883023466880948554659499376728951125910120474823087450400522054049949744771831421725355636096684766283468518025123530790606608992080158550721651216106152336946920269529287410444670268405691856663506104976768939011579796490393712353124342599970462979713927691025205443736117910654869353938155990897336583498144457398574241366234096737516656169481620924915552742807281228195690046608974766665256885190140126600636574539099148107294906253097892680188784856985126452859996545166747191850194767710443606316382556181535756415916573970018725821150692807874028002495879061145249559448750437324900787806787057438488115053701332349468592035915022245633071585054412905801746641742441553633774560559657674092658550013439162757044290030296453297990988172725027731465366812907582036945797394446183544456534194400240889095781193783417244765602682541993503975070342118308467114898420521868451510366842114357965425831525018206825615834874915649468091261363418171487172903918728683436746174922870138201305482377725419383447720726906629863468535614508474165443188721783234018812253508379477677329420794343857884117976870714557132122371153349706406779715959225354580714248673006176106156958311593558308624014272604032235972025428928236219044380662324367782539795899932131380426268016176644284264317217822427413267907721407829614161495221476082552221901964370283298194162411232420976193546231602151237369828739077731756134944817146398837883019260378922559974760401980801668534369247535309257777425814220710151828226065673693634939251712838818519815866317870905122238798407872774608901235907855279003786439195917914942043259682012218152999617354050843311830517233153927630012561853579030004195440411357598029810119717991233823654494864966761017720862035131013227146598359397743572741951116660421899125214846170155796011033883712903776248015966481996251065325359113183354992279230426389286714105412038672234957368763289712188897338591652264344616615133870507921299619502983034723233007914124919149288541805026468685016701267245549429430492517374099486428242461703347334033558688375481889511932599962383731264243875770777840103457613032315926441306872149764954076530809297037324875479248583846672028239700555595952539495074266185696679367113179844072051447307129767146925628852910087179913563881922537819973937143961376073483722162825069521958888685523752741195529255056447754584800957007738448799175789627391915154732154194491978559856446892463139033217162616581252765196199167098796702725825005420378517820572832288390554843175483579046235806720522045103597127249480152437571026147673644930777276562020511523029284419825302082862043739752465790417836281561930525505844041607631949068302390759556634969401580235121105442400176637994154155351412969906730503968435489636490080205490584125535163656254520595181807809531715944189206756719354492387079059168813743755248793690923577329218818492124757898125387366985798563576079319433754173784987462705023353663067942714824602578438092705277884245246987394329925200698435524426777993986884026705900673895874691183977578917359695774407848460210677681164896109371097977974673415559692658869548501302041608492876340334007006970278791772088821500408607990934528791781608782162474113582439568138817115799127290380662864895649210480376580578507862482996306030784365119848040225318244364406487744019981887059445285284900323809069145246255947116812829729248801326001437518788503201179048866095072634106442942165347506559233592886421072333554178687174597760804762532144805233579093835406793630140193590191010744562841548755861511962585522695939542049688007951133856423436021737070100071161302988649518148020883490380411431691672999397289616816949188271511386180833742733925974456785117130136457828039202912862375171170395993810517420607805975703985176388535766104020644902112593139557836537400176830245044913610556403297719866764852677849513145551956997713807409365307653678367413554684070755172866351836992413353411366401135103239168178722140244900022466712804567526317368476578168079678272267472777513525802832217938125702587283806616964096355377678460196306188990132842332522237424348704024396596937553831790139574378212871425555687044748534419987834327331185852228588181462054308642386311135257762935540069446336691244996761222957233971279272958601549011961674613845205779905251090961859893851691403168750115884056910748540329085487546274460878469534918042110065741323582393806997749267867415719657449310674559236984530006909161518925379056664244841804118314151201216829547429989488285459654972254707200080030219853670616751655074679058498456065851183207696145972090312640678717307122398225681995624648679606004620113787147443375016284363484084883046635219180900237313720130048016704290460710903267519876794989506638188904083535525376671178741649619093142813906428819855111559840248531589611050289875949210140686689391454900814744137780323359657180513273800434473824237087323122409236329039052049549717002552384088781858017198348568952770049744587302379559354337643258167512803695887389425279896098662074344124191183336468829811399771353385343706906743585548614713431918829258791372432883863125783491342426463300315687791265430425421260571289874332701323610941302809380252057982637009315536796157971065346765462058152394933601494499720320893267740662053790197299017718266136027541556346454428611064151477502385823359627510090590433522689634600782074896792346133220291288382148495394418083155909535525160434922404052206045321972519786433718086820025723607956928256265025399404363159168117883820331562840222634136071147964539344117855047869026500929271573808365956756092586079231718059483127921944617408489758766670718015727759264837648838371584576333784566893763793216440044331544899386516718976637058799753110145085603788369037235052451929715209224647456278568874044284777969766775097292150587019069834599522381008339388901974536333108385342698975208589774366623770166279598449669153592323598119758976261872994098245579725658879007097413606445472619467397873971159725387223231899212474358941846459053809131072034640325581499966429590575291727533592982775345476698256042289877674562472600762793867692922818566257202918873889423260323753723075133662089412031384393356686008225431190577243371074688673956551090120541821358952099361023377911258722503492360506960439395808358347775481881802024637313993216251648615664541157656216165252916725693609204122333351499455548356460939894606497865362208879477017555410700426347813049945543783813554468556089612037311055052709906355743308672644895815935370494437765009011298901867450753772888191012128695617509836630992102030191711541204969012855568162460869866438176920254731770526385256524773704246661116427488862410435663911517702404030095297378752058387561346074343389073443377584073258768601558205959443692603582200208425236539009656850062885721966021999563606890909583877025896724383950880738126256575081366735459229067561069380996845513591677026746381819468403164267134629248767936043236433994291329352180728930207571499659808451832261016750498232644591703530147376397468565498394328331372805151922181243432897807264279562567141396178508859777654833932118291055853930965741672182641022815799137494663997205267289831159891809628740193428122390576856574630729209874656278909242585734101420362642338040970999236353351842618267640556430441691284564583707226143859961554850012510582946792291098322947520663712079488848584232931026489389714569122094315164114927874659144092142323496805925662043882646178081797284666187772288369979300200973344056892912435582602027178881047096313862159194104942781916093035747246395654690570498561911485766748749529111179879756159745566655148648279242673231940629471761428657886129584363536304844329758648074058358325809630654624388203690740518687643142668004048987384941285485916374057396618809013193147522881083059691537295050942385160999022035201365750746193909734287145011479298067190329662381609428497723381573420729024621009757211576683414238413299482883031646234038853768621224831481115361105031987226106434108278399361349241986076313763054212070685164080096479026770913648752073693828612359660222693031829836519064505953618500615893845438338906019901623361248883432854660331235901943549779529138818911640959108435737245091205563453808396505342673778629713855630455419441821871066369168850893116722190721833266712439682292574257948967846653070635835823202180511102682269198287823751405115649432080067206121193700043545290431113419310010917556679443052305808482855439390100493228849900655588268380739877733497582163038284257790093000550544991740799686363363872294455231073961665511205605815734330755860868218678374057703073735819584430713127160743274536846541062518535267618645439774689977937406807134727217087246865787020200095907655397991161668932740824613345484889955949143334132910264397986429762460470048604616291671959202461121884095745338023997122605464058666718857164901415937124261277601772954661226329880939501804354908391583117614872858036204370514252470121328077952296719143368362607963927642904121788865709155590665441305088181261883003295908595896941032017239985462113462932428669423649210967239077564379489040457037723958148096684949838797323418662590676464480241754444735299562274538290417944909514891969192323519212184367056572296368262811471998691573443977538576901623069620313514525596235236668749066457483252590631785195703575059141446920394005608398163955836085017887147939828815319439394953553130565775765468660914392190994439683950603526709020571662244812676874786969238966227741073656461212814407383454876560733987814902577863204940246306091832074467900348285197435750533090534935496695950670069178858640147230615597074756447498896906947405886465171023398211289161181128383985701641631002923721401281479508512011323753357913419765774622174877938237862049296137567416500735669229498265169164860755051744644985683506890909220136874149768626593989538416433322333511294481180390276079484137087925301213147444169757668559834839846766717412632196745557721408624670909352570376167270941448686673783687774263505169443466209032297657749414382127690718030228948285966048471694457632358812657747948498720156899251597611832526278439737629292572609314669998797200962044056422277320390636201762697867227859399398539607332857849266142922806427347061708999157016105760477336866208423399707087647222262649943829234682796449008043060383358442705726539732513080390338907252967166830767494012724415180162275854470539336366257717192912754434437963758638067094970433661743097383359275497742408672674921232002117192071941515039983575946538232161024399198055145448901755131622791787821686212435516305219777242476824362608263055229919476269224593771011030615968499133288396505224278318248297413948248181537800086901675066080686767062301997865041854471506421420599487014188659710005944559161840931593806255120761781127260320935825839123247846548592900863582274703450811904584192863910607201313253698862279745791259458316993835929519244610047634705712653610310061897503859279117222798450475843780261038216979888544576062098165528752087246934610860862579269962472714595056076362476572705178931418002473782952173834688296283957750400024049466280433720141343332040072596228689788651099593736521972257918669816490298077200510364497742841642842273500286357392658755153729264775077786981373848179403409156628940329303442974533738011057147022027409783815646183396010078376157955271108147906606061335183345404303841262123947260559998610913583205856042714434266297797177969145198575998052243406203828657190787712998708536577413053345277461277493130405007745295709826949248649926891391099600129164379663499442373257946883779864780558334134210996986543149059409133310754323108261276829688994801822192889215518779835736246368526760481796585964145846606132895648018715830067179805823716546885059877990801325644723977096884821716333034559357912411853615938503668855632269377448613729797270162388303519376311865523664714347564253866479595115380858053891707030553380928656648299378623982123099572130601100504218602841259392144056302320885808620095673517400943026582404995853847734856011249735707656960266912565737077973737022745294378540902638981960951759192989229757587161005908244620151557544612466837174397876691277866779936067281852265901762127216589176058687537024145337321833826569703177463256232679915394624884195203316920702445753710683814375550571111153984250856337629735347658609525834865111987810382523450389806776013410298139841554580790685029857284820747080973337156550782258367431236897658490072750615635771520081146015917691088732410172331901133101582764606139557405578668177196403212663100098725267071270690874951903824685072677777005981035658240067269642960970530289788252507201822569198050315066754926953215224087938659301147288746712116825269361637191222310422920094689156721089227750424224341831297311481577509554545070530747712150054117890990072976352324362463782549681736808801283652065965209168728908853726542092603908273104637491015939584395090720542013683563748388141455944413358344433112102345687698934416680258376354598299961425809653098633788534389244278735794957970583898339558570724062393583708269019290030799894571550881338655431662555464287960402555240832472752859284045200294917566618693905307189668914197458412832922723830651867008975098895447090558790153298129538039097054582303266079196070668771638306802294650725608526903923532752698858628510937268261767848268762756977899476047913579539119823470930938475798168877741575506206622890784551391567687549721037466035281742285879865102549293768961380257861474874906848175254256429168741122512512541991912134576278213508777855468252267971336672870918749863416706487846403684035095772925323483369139137061400388621552144528543308554769007850913164715794553785356980884174076038273064804896184298932607374843873980479051956522193716978948039605160967286116234112653091779662025672711723942760290317623923968557138064739354686158487210842912363415653857149708772316719013739480550237066908688793949789658902643329053902954496437936986490837016875951434478864372247760527602943198722488394572249012917083208958504032526917849938784697846528977007500816182214263292180875216501427681300206939903809286263062050053995507018239392763398588473231997538912924059996067118657932741715160763455597511757930803354984420688812633382783410900706007664155699150006344918591581386617152376252397358427669334356149639074751099133184214206083644986572579972055075705169963186662289258452665832785992873763970744813905216664416329871925515064793130057799113800198446093503500510196502568706995748248617660222468360930138613973351389232571453903417717388545049986824316242076545505306754433411827310351223471488778912200979211697911699115132518965139556707105575199173125728345505007130716909776826581399004534323658140817259633489439109621001889879519967441569993650975912116745563363895026953893772615912380171255553800286609594977281612588884275447415597837659611516949134979974973663497607925928217120069412980319841693159705590871436320409788740541117492130568477950986705874850755658356765487505292977312617406268885545475476241777253537954231893456718954635240065025616046688914029131202475631551559883879744895498061674383139714976762442921871770170623035283616804874268898103297933181943480740384509078273840242221107533336582741078298462594893212509557432138047743138493724831257288580482252864269482036793394002923063802338554796611413653700546535100453136329242452897129382103558523077697277609181079778714361551838252635868486480131498965834227933593310602119645912386049084492580695103750913593454824622525901996824830626423030214860781946663747508165190812116887253644352385769440649559077747789332110129739699310961430486335722108335831666522972966703388569707813817941004353415725272900853580329182470909028810565347080530201965116213618334571469133668749272184148472520168862881955540606023415295058631184195895304800926412637488662075553501654165522563445815967389608755803695583944744192040041517101550917060485364394510775267205334753903189829941518015815813033709453563440123814472402133856793816906771455406076556966512203704720167899971710292955851113651859358772079615780310437940116607252535316379085750118714419349705126673161414911580485544828968384727184215778180013513587183554222200863862025298860377890979364970216075603188796431962173172117837651063011554136488611152133662391806538899794432881803951154952360523835290829568551693482908754236857617207191662781350313075364590355407103871806425792694374651431016593538653847399840958129927386925839225192301675082962197196610045301965745573662401372013490143246697456964467162491514586238884596587188564188188584725440703100351331170760033982706910191077443827019224602037008093282609935335427924393891076507157139984768372517042989748859278274268458765440800602137989525517376374335993592829587214042485276320893121854803595786935478763338864691310570469045642348667304845204019267339101562084535181255911569580873299421322515501238016432230114014024952455407234457517626865014404397708839746477550389321875748633077081492512207561678675165540874184605361080486534359506808542679474250136157424983372689690837534203349717226690590846312310904769990208323731893611322040327361894845458412420826103202453077239369116686636891360368339702499865254693180503244327053447010394054017217732725112266514100836767675186186845853652972633806931486976923402741791120409607859239894420035469459284002069778489740351249265967586403532729740432498026146683584240215164052738883731712987630684242415291626423307967391112795754345208286218495933127591321402064771480831887907810908019214625896042803123272393108711605000017395832588730166115444721505955017577734921733527883163285780322897186569523196562090739183946333181488448771443307190682454522599730407074005417958383515255982066902960788581504627887667440756728358539435017071784010644369930204780172604182258099459748845873067610111279472045261017391476872666513780744886636073383106523961050202769247606479063984471727348580137160709752462284841831310577288175091307066318608189184135115158726029808174624782917053704340685492518991134791791030334976893775455878373786179267738518321690582397611770680732295062704206523493281477290395906041060684061517539609437799059261471215271422542731279135371636177985483686032521419291816946219228869945320044373872887837963207647565587277133319795463983142791947022974816819775602860183953896252771525568712489307475954301977598970654250007700145997685187446294569669289547009994263345239360625369745242896660335425485329193156672086305767800031197763052837158461121927669128589662697188217281613782055446410931865829943251490753090181722813683108903454259022762793468645323540978126633075993446904242732142038417961247637716997453375951197986480390790946371166994572367758382166324104023835343262268038372601999086871451924923211176658358049407199822260533580321902169851186902984597090308098169011799624504200033102630013141654800196533732897793334337238387928809986795038193278818340559251326685947305875801814660811009855979578228870479078626125957036538039349924328548198319557441982209395124880016991612775907977061918073950728386766441276380796129190572308746550912040037682276755192085525872543117271693103407413845086074848807575418279723521611445605642130561283794534706145081338229862911252396417456274797354931622505849877027030767067790705472728498547012408368236579210169960918158477645649639990829543809022826487697904412677373663463143118262956394759192192317396500683646077299640023393351105261720068260237273128862689636634540796766990648838729731103457288982895249949647835703650706848676340823063037761274136581040824906877843441142323205361976585983601605796218211469873578379152173519082883244380420865346882019798051079613539225286526700983001552003340094515974678010603685163055402436537906305926720653664836818872822598091113603574906794510535605789685458851477981758985169232279128578247427704774183033598466277597854827367471616894331891850454340605448167998234838934231535628169554800136626081589766780261214748353136011289215197057791052101494901029043062472485311072185036481619025864701391286451663934678341928580290584097482049744168145238985617973889425306840219240279725421932689360569861304435328180491504336347979874270418460553820885161086422875630544265991690025824168200328693048929782257966456122133995312256175254203791028176176573723552679287428674282665825236500478536682848778060105836278646838929093587773162785345650189990919656600439863890617616829935933015028676675908947799902714691967598426666295468609372837636801078645914618682666833395482621722053093101954043604461190486067794366574601491417286200659129629023127100939756605786852940637176640297347744630659096368106971385712047673733153713559843079241216568117463791271901301529831467396650293822447377047349448814180823600997026450128007178152331277188099011182419613857055127883342745602083465161176841932171302457950712178724818140409858202694498999054105973063170859680810691942720233905306936306142123279371576673658059076585673253867794110687766917736104441652833390044854187551019569892067536438901494969132344201743862213357091244704824581939011615785404844701549915986264656231465426819978896408641127646541699492113889679560290159318112324421727069717142640875125482361929482881953952601191736488219694898006730976945669720397717842995815705950815133488016167272657529551382995389293021990011376051418593813251015022133327538103760099426257950456373516913439938539578392488698704880264987336836509285062985254663179425545387506567173861585747580812555093378000032798285887097431754115806122447632318890699230120446202982322805044936756692685126369399916740228669644907833743860828122684328328276947823113532468123206881835807789067615417407697426167581693900464187418380885732029932030570172068890931403021668712058236484629298061943205684833424307077115534773444934614986435438303617633509203576137923352916244823078694731208037099531643892184361257107639425782588056805823496031093815291722459186240410073171881135511051656221311790731474895811072708693320991086598335188907803563281257750642767320195858454648833130365431341817496108215504522231463759648795572519318954016105094907554767716403650385119918071753714266615823675271750871694806268852083286755918572806740455510919481507565516753744363611003968439960240897621869260462312936348646679001251874858105506835874752976897944845289315187265312095821339810516373350222887580308800137157111903775989208752360379039936617395264212066808796808441463718628735974574844696659034433903664661105531718265184468261100746554372832180596665134202872430216706138118517021060388034781675948896658138517326651153014714571443958079970686371816413786297470884122457057603493486235211851856243364925753032951060864628079748911886439116720240521952283809154009034784745656568966861673509166356409589925017184600721983213056803128045733470668394631102087092074005581895910415769686483459924725127634787327786174281745099225462770600197656539558757669548000916423630740038591297453753282883010971395201510982486607641156325288317238238892206896645801687093834924591469127111194892601300283765938374424334045236291528706209008107441798276033370292956487857685815759240149003539523600449105544485089637235066845981502876743785998976514203175947450363287329457060772517669932736235736559122518625725164460358389660682349370140119387833431423338728999209554766764337336154605084711756686971138941801433718748790085488293300584864005887357566277528360241332140933075836001417537112983339673150936144640381276692840860731298004951829123074043031524707170598073756355622237467032390293852850002226352483974035528442545672016679107225247143644831535609413867476283014647316999370070099888286349259323546561406387762339651565587329530733916735147973463336285234264722852009756614268685794458782162787053294677262060374245550423962239197352107248893939343669260000437706892289679148202485204223883598679008421106703711511765533474318846595196217235109009986079548131374292070000695121717093457072687436431685218918348439350316825612250309159124599113553464517887320881517742976519604400628523522062973833132286396148638677172904758859833612341341936745933619063722108735990112439730623335795269151532713090784471059103905973177886433978943527909660975914722824820912300746721916143903366456710145718187862356955025802911787823420294422565407779159538756188722275991956624878477130218713389548263977328714983728862030049226860343262142891938219386658264798215612702343211842268469097341283635997190159180423505030027447978407357657965145449620445375411145436025937498093233273894309713656348276043770741705523728505572497913076586415373351435468790445577851165296802861331903956519493652221144044477047261062223895120831296621641191710341352417614712822709572677186273657847586341901628666432921866756408836267313516424636330954883989261361878499174629906120961832421251248955483781254634271211122568690768490812936172126799929339332990981906652329675990469446675659836702352815256461374031132265447206042248654990801614074950405230106737238247485795659354393619650217951808402152308467018118492938904538687067152023599972243877787329148084560689889373153601404919588950243981805826445860116593388896227486118849000717728850557719810823478030707609734548228392597261969830996942029847260418171347615078178232213962436678806600937747910179797450523847712660965725067466677527366509076827798823969737870248676908013165352781274426220444343092952040638486124783364300818089620760144542719209808691370851207335972051495187898040341686314410332886384823879894827731561688144688072644850517934001814076914661397680335133295753311112221447627897814003238904716164355893843716876394289097419516100695419505751484391728755864935776701325037961264986254747411842225277387896183209961982838643241465238828124858605274889158387880623355651782223803303977203141307234804286804145716308833339983788715483590995348139762202755531530477882414842078487588927439011160374468636780912406657609986310826422710212141741643848970589795740458394427970540893745902775020677188071333443441000792960238011820368889042141339203049214417054791638690479094570368260710047949948234750520846650134744877659728001741077038120409831707563591187526939471999613797320911826380320264261742612408853586202974276288675805124966947128262502556086377789733223091281571106660708195829246809152970462779937592129637823426349805499876676038852156775469984139922271140181983440123326244208045618132037976865781360457883010028293236832756889674390406249336761652256270994455629475679422548143745235315399745672430229744425749059133593318726882900962409065940235765293755802271190842712301465830412082718993425979619360350342763825458262153922419369781353160057215288972134657358481856710601431007361669533152960093986029111248779188320004430004028120021794708573500659011942590041204206461728645962066906933466219790057536771350111742050150065411263853310160441904622915808682934821909043629267533046144524237885922270307041531120826793734984195539202799425008339468697295378691972975389899010315834604948159791208499470508192332828191933191392856973143737854419884938615602705367801946590722025158771051024453928040460483726585197583437951230772092689964094291425368024269308654832760170181371267157952959172412578545865336224599645624096603110282840394914059060183487981674433074785467196846612485320041307077888356798418629934185841221613857990878866162978932345134016273389935872274844790509651624513522668795142292401834846443882898756049749974429567783749422882823630542769694136008990147392029372319902558625272690690092693333867053831181683205255893056878875021260871644472326909989275439568402512580790416395211945978562814337993979842597853056208880840914543106554829502804021038647272888132346007173711128284159724691083966784082217805625178740216445236875296742668088911807363150228912513974390633521881661009210667215452862267806721794693540883999495928918572905007859136392839824042841786953680486615419180259298491853384815489086701847093190851825881458865592126099766854951639275407505493694487510368072420640922695114219078839258438719311803536019903471321412962705014626199273874819081350356912307966940836545267518193335985649984313482215072133744611001646811124645838125164396880504501089501772537472310611437891834644309318680829201803599001365981015865026708524300174630748742019486842202329323003775489947576864139111930144965481176943149210583239621445851589144179199023668956586188804020197033005115613679106863553124737353301492676529041976492647248291160829054308628951814296966534141531220911026964051428192063147528442822072818854083696668623238899732673393494220560778050816877417235793328277847303042715249771097227669280977971696134299720608658181365724247113692915132387883447465329356216776735880057134545735799802243373862433891981653822826154007884650329746439981339551070460192245868231736420884448199164519874927834591740187511509177550201341129347110025059592645224857686914748763063916203097272079900891059342127846799995546826235491757667239557047190666193380329788780505047308837507468938914235342816291545689887623700478782369132509525174240838286069306183175143009068804032307202779579130985510431804811965106273522186401750749528231853870872709372006324597376592906749207382554846745307920162787497195284958009105710291685822735812437704331335107821695957470841610318833995558832013047549927463484613186640288642914900508248519390444482581651274992673834361584422838145470038456009824058684436291493663322497967644373594168616029530622839063360689782286665374056884185953709933948647439304106617381910590279264113896294446552416364668274572140862307479258862229383752849916327795735019603792074718106222534500404979542073700656709651671923424172748083855359590998383509748753061512985276630250699680884965213985286178558331352206145204264188863225798527341218587733981616890214685538566210265160592019183545374718860258439164572996610362000405809940390027705716522914143216230164843863557549623706201766293435347487351212142517321403179853257786957796246138297317716285158703204460849193366414496929322516756397270238183863307129110749180541456943857717475057113469858101628624192159917724379318633265904825565585215353865223459223753920917445485838060784021685883441610763711625974783295953944060249389264322264860003361057155662521398727941579842468200122496949808667281615891683227468148457642596368143701634949518103313060358448891878026092173532739881482551787361444893731504232728721235248560518106422134548705433321408347959838998882797240947198203042909174406734366759465787131513019893906394837123029740856958258844307561000932239202974147816054607142609299918198874359739479063721059417836061251796643906902045635666863351836972468086152652731423294539790994373811486578954190255958194326318522427144000017892571007648186719561289105227732487201935896689762840144379142429188042656467246857914110434120857139066159670756492498720337648825052742835509528502202577582018482752198136281366251492316100240727148432348000527182060047561645567960577567150336431920713151913569196882552336181441836354053940372149637759156002666795109780855352475480259643662410456740815745307429943708994187104773548381089425470106263067586264445919884104323025562151831993753269683257777492983992112274048535237401950168181123733314321694955657898041591220331524751618863894401784810430414798959292203791184980299335504233066044759265623918453413280047871278469652928936708314913216391508708899458314817250350660466027107873262950625677864535765881558024385117890673427346321012086341483992653970299419998366945416781384305917286704234703987801603993274256247176647712071296498999338032781206560188132386760814912002626620896704981102948129707183254664827910108294564868739047149313152781588824949591188122345775951252090120560644240906824128858962174894486828367753885811153825069970779546820538863097645520467635355707826037226870607104973073010526727363677987079651496403057286735375323396548777743529051172935095983782054022845935913853278026791284214773985390340024412183172448699966100410957122034893010748654557920300912826490907786932978597180351449158860232339800709098030408422484073548862939750963691273223214929791419146331966274132062412394769788481922528273664911578599852195437526440097777027045683119424514941439574137439639789862214075032118679433700819777451481839939027337434281035500731503239418466266448395234324529106695297666118357207554049755566087205139079137725937998286286842530723177576098243725282993799931519514827634169117127310055568711613089191604777525482998692928482444586481379738121896059479936722793511777575879927484413999613517834064288181508974868270291087232570043961041438575499382962615312256080791025622504887498490846635021825545232597675811600854236024958415353706951196087493997199392081780032118728667070166994203405962938521534454952012481515662535095982844277745054856039021141687554181373153889223813389713103054291775851994451550538614884568208769780411725698722635694558182516503784400955459905443699046769793928439362815517880804358976178723823373444335812904663806543956864559950730589895925013243634748148084628833104032478532170832122678565030963462886646982594900818493385316298343100234549904990445065077311867777085139356984813731116265641550251326957945202315900747549334117703499184280567762596383840541806153755548353707185542377738858300529751597855667835095677314318683370218423161646360063909780745257774152429512297123185708132832815713424730225968571074313767119746842541336845951189615340772087782123351699259669002030363962602067824791112417547807845755527771244996380428049446315499423847283557840942676543423288910562396054799427160595616364389973934013427187307461275447869637966035150097411305853722154389481050743547633151087916733983083071712124998638108254008067564536933771497702400853414291979656032381404436115215696089373305857237870914088296407674735654148698198797145651699604832836521146725936553828997125438680847354452973333746012795062278698816811919385257821841354906781910240121806664768161682646107136103180285736441821046718427595738023272422740206089649745825345474888202054953038585650971660453343067074652789191444058531470115531083523859722243644037335070193346968127530216671509257356470232420096421203061773608906618005422346153491259971125906767350827405348067644306172424541272733525325460005147710661866746642577661238388119065796173723487395844381913814710921921061894845829653817852543885096138259966637476961883345952422338497179241378149790642348003054575504804442961147262535987182745446951657105330280639917178816951717301918184016763559588203892451730139999710542301397509190063030010244079308668380559162792159227802355252513515909506365422242505215370237168852857960293718773886096648687024511941115138911928151515231357780131253592187610639999097877652886534225722211867046830812955610508470961201329182855230329461078246232047237962039216570467022917141606977593583439339194028731604169522426868577585183193433629575067136879343122910658548186269098271386961610070704238494917577778247479580979732688089963687344935648182408615808033892569015500358762583615746223263562179722687011614405188217186535492619405160488133236429260443780893971802250298164800097648801732343887247061387719864931027316464642028240852085884280547201422570006637701160590358503876758703738017673261214536845611079476556916654448804937155473214746178648759037777963445969296928513580946777126980282257197887051187353236859058443405283434871061272553779435382838738869213615863273397140425409161215884084315153366197057729307633275168639280679048056471474429844382177277041892589412556956517478920373362141533023202353017492122137657012938188212326870825078283054253211047662750571566639847232781597532883406544240518528154677332874217598841254464858976906225247040468022529770255966200616184636520171393167522854067926168548072268004488624140736874474136432305567565616526177603039218797939885552396737605171888128808517385767477084467711057410242476357276576979614698068127303599072122164266467516872082467514253579469928667692391661728841034940896236428892782560753537496272432830888750528126579660085769764142606399591179064633109601840229745713214956797965585990480012476453808617397187891048223782438982404982990699539395932333025076663069933046349004411225202953266224292192269288860315533656617675935027179125797370495121949107190029807203413023911134582109707824554291432870417180232330491274906063634735985581344731378508774869418359291940135651825015025370270967662361482996317952258278611436421004474585311588713359063306533059834992787766657613017332355270002218339140198860662533638289881146972851043767579857662619809008278402416605806037632657697388243566006708445895923715091622938556474724010220766385838600168062918812603942413808596142368286831000336613294690617919915391191338193089288311530410608631133965516906899085367035137604838804497563526505667252628201977954842742557757856381166774420050663834441397479384438804238887892108677341527152224099796275934861817055911537553815579161198186565473871708502416484103326176068412590985364284796519755495253444325439661181186844376547038238760003642382507647625797574416748385804001571472058807601767755498577533807761073969372283645569771449628590000727340499082250619136815379474321339145531467431658987610458270864069496584195012665518674571253030433702269321422900808047495541314938975196796235472238775883973212808623621292184390174400480347787053888869910238696774503912820378189893074013798195773756015832536714977649835618667915741979507213783268907080648766282551673462849639244595705901605208868046607529212534552925074170936197597247262892216016088419164310439560898692506575947958996615665454086578446373199369442220800907842044975570649795832493604849454640939917017365992132502478995904808833766119814051329048578852048666993972767749619437406410116575002896564431553249544699616798829732310802896859060870284961733632291291441594081726728806103224063982790166492779866728056006723247065935053621316670898948957112383413363027680921982145932367847736144939597622218578324398801662213298473554041578741232402806851966346432195190389064569957224355016689970311394664566110738240147657157832742688490548805806583353208281331512939220463758339938570955146743563510694630899634772010397187560233773552357220554365906552624056484731145779218554043720763225515158371360491764756589136856937636604302799832410206958143031401606102753436352984061400572044298154800563890222861775055525131671768612818300989307498696234723200382106082981167329023084750620596064915587896409703195673571666840477812667588828403525761778760506140485402255436027926807469007451897852934921874755413533949023809517003743313701463526160108341126162392316014008266925418472351720901814484502329971500676971717889563067285982232741610255795257188836459757337665986708413846757657908421314808186338634458660383301619901630529499711554069206516964074543608000266127545268739845488020360417381771585974027711287415417089648515623555755774642597628405649291557552462420247807704765094986850019764547227300280979507039564347705245025978676100758487021114112973494399827678637751457292959891697529106415158976107985011284109616025027048827947050832522702481675591157603720853592930144289370442675887993307378835828095638985400086173681170640113342835316929816091281131490735230375032190056970058853169957822297622398224987254125474029655168134232611643213644535759475924425274104772637062366544311200266136887529531250001377528304648581560308044289488092416153515569180453199403393466422706735197143251609144908466290148042176870300045760686196834318195965113647320849263765658902229449175846234469947439695651760765120185107303950012611762099889180690710684299038966275960783406549351353271819218463166777605931975429197749632986780632887840739349809558143531523507734184537447929271835113646399960953476745794977937809364198040435983954371693584667633860743705064537908411271129639275168759568906914417384261465408094672414098790007030782042078191558797266603484539346962967477481164861012312543080519991413473954587388189748884393787386695350156584128194128373521488966083009562372172803652753275008412262010917328027147669379019978461587423467055704120036203855052390818254112039682495603161687959650792752952378261581892391198880129935468513898481021191043197159137122091812369216047543935394131132782165541060583467186618374394389277738647139864606662014783087393850457100382750642958643574298187075958560978977269178132394270012337372636762134740288417274151254078478534062380771613011149202308114296700794752788642162583517888511099155282934932937988696526335937358080535738225805592730343600518525567638399311589533064000278572614141787418597368676666728862521494776028944035385326620394773240463815925095146829141489377041359569281013370701152425019987086202582071572532343839684032845347038536524833995669566259005490104583712721085869512285043889880394187894994235161837453726465980084870575838297732381082408961418971314337429012008733876867659695192445226722061735061871715493272591715047964938152997768212757143017293713481573413412556298182574820553381035529865727172623413655298696965950584352635172653309371240813026232396200302809616929387717989047788556514297449705350317803649776263295581693379238354578509221389626107238626319509568825618554656414018753480010169442972202787882036090468605312301919536085855388433529049262129802624536242699546541442788917681768807139080877066419551312590765286020557657103189046694114742313887402982066268196941768901039361235604642615363790417032014135952098754347593101002871983350991304856727316432874226925406212684457600672225157864327497705929408413190079759659129158367186110889311832529403960031143577450789919212203900696051713968949375105939686336555199534986134201546285903354307851600598065909993724762672852472180745261844142665589116259660988083232087806117510550431873190904351438623191955052733858884777844442016923794998413904542338462847204513985282627402795110856438358507736978939626274339667355972647863872673477693419186495511500145771911606063412097289039473005685478768511121439080416269079318636289141372920215259916334067554499164077536445108016013780182025052615285453168445951464023597405912365786985204478709933326318106662147228970085418649831763110915977149226369794413515079495905249944188527922572996910629934344755355848759167776942251788441054619341715695844218395932201084178724915134662509473300540418500569714105387386905613542555033090906368276506964361316739508443090006317583500973389562871129058456412500324737525411750721550658736227418103695762400730101073469250561494186242039862834020618268775663588763567018863628761270387654799364205719387639697483847321551376156940361376418951898874537709062042893998686544558929975992052027695244409445550060774558620079523483496865710617613853670958664483512774478326864322556299185797352444076601232785680863606960112617152337346198615183980203302213669761912016287658025177669142564973415264189336819767573158232076836135251841020388746916057153868663448229720976300266791745293066650812009877694356690194924988613895894463756210589097655328216857779696047655598544247407769103216396161140438486262758793534463765312927992917587924083529503093074328063472666810820745817531986554604685926417780976887830945612614274680752060795295072100813608755163352154246388764123205196893040500912560355653156176871667878550848475978993168324680896214010147594512661662377035277348701055353596089219525598858037041372828199085102189062153393455065562950830563183722292668442488943397255043396924772260297013502603182614446032442071893375334827092665604995469238301368657104041161790632299680898758039472556368825321877408037142110351023697636028534027716683424314806640932128715414077159449699122572305578744624303017411154441049291143521047645814593867644407275267920217590669441202842235903640599828656942849375309338429768161736080492139762202796798561017628701947433133281121339623595407363080059375153763096099935195692888179097286963309696469842947198217161722414512065541479321785783504515382437598186055272557298323095306389228618425325600626059106950558560629284981287081187682893433989808612936919536494809825947971420991947195045848608477714908563062737011401776988933837911016295767581079417583171665072770132990001276885359903028663803449303730921111727150202958034657285220103339335739997185250475342521360880468025034120146979464830570177329073474932913138262985998530746837193974696912456927666720103016476650126293067518666724989489681551849031610671166969664869860325241055342985229099862952140630862552999794603027895409740653261066713626903081305113377739255489777921980318300856101391172304810203043718065605215016319411637115111668816559596176045596684767723147999318434456947263748406381742101698586547819792646588112154795022781677033455357397834603670775778848330205143459627625286789543138264546359110473400030958573316517847023673912766320730609827006893191745646176158513074904631976680920246783999403344207123009396450084885654824485112836622718955809831138026232128218809757942704672659681086721926087399509656311363410633736068447297706625191077391448416291923883235830411356335263029322504603489146721105054632040367360175008242422080074872808428471060685332681346836072743009934961488050941414169622689608500447840124970763506524639433604566471784271352545599832394935863018186990193282318131472807553637071257787662039959668113787011647198881981517765251298680284167086575084779936124468133562177516228394341702788088691131957675969198729062225935958866246581940395792764021359403712083089523774641866273402542523332024815486613400205342139393212051007213769799848471618563492801942589749677919204780542682013176905397088651762014810240972023046791819984860836055050270854943407817323884350254130563867131568239347889438624634042909697710079117447790224519512911466351327985127232037988095694703617551271684954593812912517791848043102208216816913209910729882374176182264143274443079604663104763215633259359962235567193850673416976107819112424412196173432525564344628224362695471260663178638798608503244458303108983590382834173585160205105749179237388403317462556972365775257601514786542926873916112289057477674951727790999757216290034626959827146107653576147140833634371315823049773127726349908013709891395350093013256951260377216417254685597832856512262597342513949735372705784042014333968601292524193536398997708244099813035489867042596660812695893565418650736226139228589620789025490594828107627597986333747752081829440673773949854162995421859436360241703919037185373054649524100810530329370585778611995211205622971165667776178724572348731904697215351325547675724407825453724671197227064802631784429524503990068785144038725853828539876139029183219394834692160137943171485547981118826063911550116975214745844068760363400156455451484939788479782337267278681955889104700602225168435149654338721183033520716111431703023391692976736877956124936909621751918314104607401624277615565187147674013958500360978393862991637844612372267820441687805719631794622325644092436920564231090626837635660185535787302426416140276615525073207823914109465031506880408251076490602357936097709146258926914536545073537271437112959319214626462712191868966216347522579447615855247154208531978892979040605751547488951481285629176962379509468046132210325828577623764282904815870452823144179477929729232288207966251447830922417813052333599047323009040192554681615717173518803211214390850984539390311891507082142681144034520177600915025822848238620696195307636765793558000070677318425556325172467369861551978561284635053576685984498570627803949789926199467961140039403698012773085665754929744235660802301290227807232317990522247506790640881860012132082865437169350992193990287952346685310560825755828896194975819709973321129830433813367940317425073590409993280643406913051216393081357573432040183049298319529884602468348485829750403878779929365668586727441567998956682683599818072103099219025013572668774423743969474891919259789010659812252889384997020707856101233341227395236147515025446056437692980944169260051009220029376710543775972574611114155020822725064748713453942881189182412988157447388351031608819999274257883058091447020442133862895784609532795355421305488993750316080598299854497568896978431551128493146881109031631004937017170313599891251179579530492211209315997303168468492114053537132603893165073969740790538684230606403276037555109572384472362040343572985417412572545289596548585099888095533588674925497836856761407303940320636629291559296181723111840890086492225622012643867573994694607228610490446015060158718526164817934437502262170307092348406615719210864602160391676503716556179376236992859765648201150992159868560907797934134540133775942967664151860558439010548601658408574819832225716320658884029310149230510591546442063218971417773398100228369483677621570117588148391520514902307457982248488946055016683298617504633499094782947709659149091931052838422068544852486364531524525268163998251006571949469901642278092162118093973425671508431644313799389635201978782537032476316001254624520355018652671158735307219277755982305040740128452772564377339226726607307474957439648676187737106497982998918728455469436831690166170918900333876821980556147088746989686776403098043454805323362220097320425816428860960414478798422685657347378900765084749467453251836740153610137945870701778667717025881790234111041166613191669477180750117286623379906233899986842013996950686601495629032136153721894265875838765402243967240662224550452362368762750015290463364579244288954496405808154277209513574724254875029898405947366429541344340592235377623245492215671503736213313838417807753305664029493289482648291168000512682910059599894888473232240458747022123509124565181343305610270971516098678606988655216041402523198550514825464756018197342968458248395805174818305997331434099493065609426033235728548349652197744193985948475708990486524218427651601070548098121626317646772501257799494711106480167974730285516007703088408946740787462045276127995749448639939771549647496592379204108012120852517698985590593233500441220505710987578208472272158713920594179413871367295439362826488897256641147964064354664108492284107288950957340709819238597161069213680334538491329714795541167643044563162413979524265454555687479740013382603560549043922616058551452823854946370401709789456501973661513380363130900386851562439100433282095114298389154531685693321639670649521298329432892116850156310503030678667103555892895300404278444365130744503771178372093439097117184017314352885653359910113443069963270663476738484755138168967748775361411897925680312354411550093644048800351414687708437875541123722755621094673570903000162092465819110375604313843353715983447373323515562537066830599151332621062704539415295007134694018786500746683134379503695418862260587826295226697523236135401203211212121049375360110953184643834423495189635067991363014500549933830185256755279758685116235995294701852944242829787987458985597250536663704250782324516018060281908681922388623652289577302169481765625449762604935775641130404644862081861113413363026008634934098266568186006754503271844998453925061550462377764501743140491196657592570407055278052275305467490339926011772017825325422471024964549315988181494704845495233679751827526434783048723561163243570695989080261806474706206211928422792277852191456555961893960671392678400527526027780891925633907632720201072622701691267328499421793735233052932220329826522670447981779082440483833078435566513612585574716019113246440739678898396187241289961766416148706947649290879180747563388057178081916337563666990380333148627900720456567739273587944579646623701412908845089580624571229413024182300562953314104030923542296686281936225399730421279604865666690345669771906748122459098374595080157345983740872745148290265123460981122698700656650044780377046581457373362966322322511746881220206468491451608371234735782671753342527402952471625661323191743303941078652913346955740795379136949552604746247299644332420364802763477727542734456085189336817553019368059113874966738491507929230275692706853934572506468144489082321981235729601498346412365993723805474323824246611979219862033470477736157836022909109180134831716654570023605497223250187479250972202718969033829366755462289853967851257985167713571822851743350967806183653018295301200464432884251973399771463688191665253734035295894268224526883667067363210909291204193269255264036753547970209888775176363290212911318639086949922774747922974429028801078049345163849721009714599351074335375294239688373837794023923301997641779927838052377659837345244203251464526370158028474685884126747076115869212113346971681580210157092005084557898063583139607129364625630541372343951993250207773214653676203236911319378899582960271336809444306272705924992480029801378532376427803168932682233536520732142017112460112970102390161858171170383305023611182390286422451245185344911949950184507443650976284895387924275460766672075662735310624450633934315322667285080528104329786532340020292491589316879231428244119411833680199469308881344530597241359653220135215648534323394364167169817130677587219296390220446732331159457713802805348849135058090528843436848169099073365574578440310114883896557517302291862472145650781234003084929900072126575540074556420925481582205139797843916319703555760802938027261622371480668739631276818588206612513178476102744163623939650771480957174682267957118616179489424057257926638983757682854250672626717716468095257835941434274497356459423332471371008204724111679838227857389479731221879524150370395922190686420639795692412517340963580959269793807291779739543136776741688240717805109212325226079900896080791624675393984705910746368499996376420924661518942178651780383203202167393715860179317207145023558170095504589960319144748775084706157314418252052262013273151417177269136155025384436846232821546312110664094009613955458679845790283021135894780046019613375720037033843066744957033665131014413553807699585710702900699939211175940720849413650943037301242918936222431394363362977418388021920274576182974965996082762400046665029829444153187133635601484833327876161638049409866234624056542400565332968681665981124533673248638186030414002634268847495297903287491756778967639766650210756035707518678125896704884488313005569658812932216418516534801490884613167739293500129677081197980470295122796347020634411631576641488010887356319097940459460076589857204167663820175170363921586065750008021917929971352908104418257476200094537157843583789378852867504605539990533437073300443703122068136476575913339817071174455734744879619482354128960397560437590660542230150659340616382701545959732312986633086507245028727539193415797030954045772995208015026214029711221425873068089880849191624204047446680184334992314253425033028702197424721383730525511931481511990236343185096906605892354064685492280613000741089486154693241177459336861137395462244294306085347150352947839399243694655441489454379490484240982382403801119164490989013832877606485816535028105405552507000871575457019263047934769022202422416895581319506700159678206137466474610414787863594445159483884878448004021151896847519003456922297660794103676147642194479412603447114656106629493512595747008255341927317707627062285738840754429536012745809641857202944971952870493868141245614580647845969469782039046814307491630139238303624726869840113480494398704191575285411076975711220431417661936361860690221655624605950508633572039017686696420991507541117286441391727402174428818142088668714812940737106108449560597633184308825076011579352602379564981291668025081434494035703409186291835962149403720363999706300200588895711858895575744463674700183193990141250461602831207311680551020030731232713907898289175642096819589831928635435018128910332973517344780881444526974625937701706422261985439522302542754144040544235320611777494522335217555322778239480162627347804003802639657212366880912041194736621855917021876432403881580555268558687240903231820545047481695228371316414053187079528255426518914909896287891586762276942749970655792244948986193391010111770102677227406868668059975031878009438337999475880910169636748569020743860348830955411298254979876650744222741269720197795373324173337970146318429599918121462937045221435486653021577723933907092448965299413155294179282861140626734578725799797372966620014163827625387580605273494496536986311736469652738339771969301190595301691075087646315719020468760422337556477810923044035697804317881408578005975606784710105549194686995823512947306965357039280459839449252305935994840448065005034451519647571909326904813420227088412348250071321613660054994954049526762499622161990592387930733056767918094029545188271248647260124877169143654769734433525738848915891025574239796912627210242885950960826808362422381207068425654903992728672997466317870610781127050920633948041541206527806591090140123979843761865323138337373997919681385587773749046501146206621906596573010757051487667024975198552577255373410383887672885686815747260099079212951861888904120529102837028298515429162413600269616565264743717919639202787899549046998724695086233785879738889620604331290037174307244198227722547386053069323814755109784257410801913993298979294386079687334038573020299041614658713742766045540602283721054008463498102759627840864163976406557503320098533150269361228071116728311907192187275679400035300553515182260194082585764078684352931542898338554733567708128450291954743283518702664417823052208616481043882354711759037444863754809051160898445203326629997556486256131486990360731281410105584956016537727477111077053355960534943662992612617205523416670961504850664541577110345160295366940740399973377244893153539958883140911458074111683340596939943420677231870900680993436657148555662441014722665604625711180514678188852611114098572613408711943542330044120066952434724592315970855702805844519520733108919714290606400085726170926160018147321622948147453192345026019822526341240746438819747987273682745536949848959332043710541933915406840149492682219685813031658280502170360738757556527734060402468434399277912279249114855804178967629167154613414551340483569249353961971317501927849676701994100390576101655555390649791474636573746147871827509934237665817516851345586434665440946723209691209497150108707342417229325742673344868673875887739954356659044291235054990757676087507894261885513808280835776525852088065344774576761684840245264331625047457642017265789349090929312797466766038888922222178228088528600550360484291999800707197683092472243406545373128838154829758511894307190503691551209476081611597513302339822114767075844785687854722900610327372560061959680563840200832438501392815119721045471906016222775507244335964138252133892639342651091840453194721618915226732861347664775209239528056354792910601970708535358222454402685773510136501508828720003745020640569504725828218980768545377307904966918146083684104961965653573016597094453456841743896719288874546895012054885492809965735540452697633790014176564641908986324207001363660972494609437823840482982192587710542205414080197467176967707243921565633595176216922862354081806252978112184376520330992659229098780715883456661403861563384545390997522639122420756358596303532117731985083448812919730650690727986486496294338771931551222756477465830195971508033663489305353689510545319336903220057309655945945730116825932263736133520380836272438439776519526848004838302306399255314516127436769264980016089149464270284514579487064044906041103541751577448766977413772309541450467828190866993470748551446529296888714398642826492308377996659728606119989309126767638238130884578879964432568478549599374149703507293651979246961858334591248714761015441358786388161168101277727519251305874640854359762436927953916104749995843636460119670628678094413842474837486705617828837119349197008556863208113430152885426182599184318253737060730167437966075394548098573385888408176535937631309845907184812305000514106359554019307839601631493580362713640042420930941004508870892878144742855115446395301848708540423709741837631507808876905720882530790583238687460692823530726168887849600601970578341117046380973531183452025945071684393581413107415460462348702061865405308170844439171974769184384656934653585774297651560460023929184091286736759114724998901812745706015799791860001612321646965214155073624978250686438301490376387030265667690696603416591716437271471480907090363771515602754831252662730469054724724465279501106857696993308836552824975888427306462821523148388203891749091430562180939549383608273093044545593365561347840201971399496390156428925526206197415211950192469245126155292615699859745529817207753692370327294456467113078442301587521856317692983367937202663105960170269395749899977954646079074841167759305458796558024167189178300191774656490161669080782044407331332898491016609009666633657690212471049416670544452086170350785726149986876345557050851331010919870930696339121921793085233697061099117603015614575437704068207227746856690145440944122141300693480226740223347477652027767196680656232684589236218255885719628739457482603154894366612824059977057387343343125030913419622487561307158522907784074796098657916779487595711511439060999396327864284243523180180216509064351873506891633055854744263843112015495990177540906950791734700469914077585250165857263729969087409618172427749263671831617268824914911776404051216107778541057030180232621723758545922775248612815151459055883520513534011638608340364245792226999059313852290280123878019428377331308824245835839302981750851296979422442456494446932477824724750998398238360776855774622879168418630522230078688673077207733015892253885265531140762559801406185223873970109267992684637815604793389608024200248944957931995837478234711217105532248496884551886619981149318225383584330392978301684194089127615173636181896329934576077553186674523663128450531422324263285286727996048050551337584968366579971120618798471372216266635303889754545022092386726455200131165751694673927309924062411852177238415472492809268991281061293044247305540277068092741299025548878716703483195480491328705685466764207334645506449944283177936032139042635100620245993424736882723257331061193360071486314518450086715387203064767427004522422611254079190091477922068336739764610391107516941290086474569068906194772866537912706211114410866477146971115019537047578637203675778247824123977589229083891999217083790853591998561081233046247984294832317953386015147187239635936460363101660925070631181935768709401795069446521463836954851997985348443273034415817078984091037315228373774216585227699742136562945040158420773131456455943699081005692048009609811329230398524441331998693743360238715717367370795900763191446715418235660718561227868136445058102458819388710057253094416851188747260444679868970174970887402104804385101437604110041568440928847058628097680296390537328730611978099333383129533775944300382318637650440778560840146389332163395303216549979051822995004161158797131437926684668174858507651643540978045782597574791325856724014720477660672427965290735498140489353350991873297007622764806466295450210825495238609799664521763717921448099706788354146332251419949794912429580665218197785465482690931966436220209111676466842821808261758324341315231036163823897368142793119832763579997621041721440167611687726263373931026197153158288781839610971904862002318096040232582452961894061553762112684344185887691687959558786133711099552461511774836645388698205835670010983271295540055509084865060962651819417540115936912273768636241780888618048430526281776060399698053058331279838581768603680840522162309458943764681431413605766333837282601533118576835546701890813256641755021528263718807828132108085044799833856614533370739368524434017014003151716048989682145553122997706054627602269996548313760120246032163412642739008410272829678185737006953998920325012584172862081333698347690129497414506970563709211793814777607146620976938414814108852628441832421801071748585469968122611655911603629316802876233410081987979449330005778367204731653441670540858242144109907624589960175754925557917566238599805646109855567406188864653778698163121830627244774432642175028722886799872772473005657307741947853631219551595780249992065096328059806532415918108012124375527451521303344075651550866954732569581050329469602948919221855257543507169240999624739931897387435303385161379061115473528846168517618594146103482346590066754386187346724604098939989875939793557212965450108691428071883454790320373456251604902841940255348926993861142626720601847027348414016030506091313654160071246739737496886770313639285561931939726508892024000326940696952716769157106801285755739215958108031051352450281946578635749983484369366522752640904451887186121449448392782843684918362840879571342156938338419880375309972035455643814894281923743452198387449818913780005922616945071267305962577512518773860775001673873663163468638249809697337803130676690999888142221296224561368183785082575435149568443745266121747072119053622479002710491059438142017321420485354708473064723080498442570558939333091619501400538121902406232668579934710678627531871560175144136034948748051688881822388448663446818588190716717703944730942832601503627148253409871324349468499443774871846604903391669696909616287318436137675763215529881681090786957989968574961390839195052602594969810192184871990319741332452175040425140944144585204360817503003475800197168140871244902539042181957936830307863072133942689719122164193622624767779965269754512930398903013070980849127826370381219209779960464451065108219299264850589573572404345094504372429572338948154009073943076209484155019031151900850152974836721541792662994665982124711579833214733468796539116196041494917311870245773325675683248651786972778523079929228122966250963294438235758599606432577296588421383937165104070549064444321739213322232433979557496343408855489200109569980242609257789920621006594638239153165908570639332612588996083620396021134684230053980525772172545262721408947014291004439096236464757685304716395981530021273925142280071936557427513380348670559615333581635389142927287126355043812063494483777866423655633540003025691094990054644133048732200971746399451545280090923629114277584100751179229361399156386392248430868066307806962998680409875956737223146605952199560169228325956445423682108533553696042013788900786508861713681037333357949394420774783158711540011513320573179280508001123565699988524964552064407072644672135149627941631525555475374695415158466453756276889621509164905626715084099110932033170419652848394506924313113768422992894388160422383375652318035595438435815730842009035282187150476338286488063063078245239806388040775721456144499396242278321379237854607130153794764162826165532693319095708073192752678615786015063928164995189809479865151467203859215555741964709488594112095580645874624387341867323022701791756823968681593378961467282979603005484183286936771365799205096806456782913262747864813834115166857256654359754131081140895613600346378921957975458827928578720459520034602285626141584584710848969766383619534834462648505132269784862633114451571893511087341757872370482517390247652548558892231752997989036646240083770010035850296957991127935505626364770540322194529641684148713492188173486957285259015231036031191857073869560851982857942298381589889436219709143902419537107052708286002538219195679059158796322747759067659958184345410512760644139190185914238099175243315604461273803818962867522365613585841342587960122129252206635987298756798810383051171697227312706520348068324735442329005819349653713970132665198842771731985920706932896551267201072799001842152377186167013443193730167207758421282609154428141280620877777263971386850881916844578370827139648779323651960179851732620682347420678114637019767970563394474737736562367922566545034427536178877781988958627336621725114830544787274165448342396594858464273477700778488541570829904936069364480136783741292249514840228123394714234466983716965339125747765294805245370887299686148730806505548882954496494546950127565953031625609575957424637028878555203598592016307401548489005108692256173212100133524885129096505162365945232514508827491555024155813219942556954248205250044700181820870123480772691844015687619212665011603715135574951426805435105067291972000995182873593394795868479394617297542673710917516064773717333147647376969249185654583317999371748026526902101134484464777201777843044976592331367445537770056640727262847275744906084960569194044995361647209290748014259642553777342934602756072303818501166230615841522003780221701856009090312534912423427173336055822008219826326632338763978383847275510379564882608779287528841478734375400531648914466167699910192314397451518971014077059705009070890556550698361977962350573437083944171908498256136572559455922644962873371692444742399772825797936829340234676324600560947136847371523890050656439556485967949287159583244721333777432076484528583190027021780990757655242919714690746725292502944170980593805375753397781619182018023673696883992128514843328317951499792711886331456531751571123119296456030266251172440387585265607500975298871965500431922236327310548053261318654934075963900764279570677496501990796756508496530860159100163589138561664075179377027820411319915978609998804989895445636882048736435413052529813285794798729569057694387249038252707930504436266572009407503135991948831621817716219466214457072875323226510560396376374557855661288076706877999481985200168784633604174201139679009778189763499753659442424775571569791694839986698035308569150875231766249506570347808971102592557882750508518518752131557306569842250582342910856982728146771836430473248840366850514713392392656545288518043246623232547628519447197797042214210019320989884552270539193424339707844949759394278573060134233837289434276006053581494781358067444407550500409051450693971334674738963368583384264712165192078300664772815465390300310400710744214122266173708252990515473605758090491964321683610602700822160521761788016730238024319077881121506453743004141781189168863909944925328527591841741345704080162591546808501094914529650039713314799383028623212275493496732244018747007181647226133757291412331800392972656301094291828032564250268890269873586388418470438190725565892403492214589459365943945242363692304710612962011477285430434365303905647922939659348438080074647036644156473926659673823783063123344047368043905554159430404557614549691173728165057320718791120521790210361878080767149489797843800966645445362394551119997901719304353538190483411692741200195374444856191854528976908009969483320975619597398445367306363004999016092090390289485566617676171966404962115948098616182963186646870768618152558015381954667537738210421474700284419882086441315817531649367818893683248472096947186802495979674250499192402123529374662542213298298161240173915737377579043211343912329025659648109942104304263885005170070123358409780021302315313004148979774090480644484820785544836484300128085090419502858728623694314292897479508037619531947830309421867908281950085352309169299841651700777149536660066131678050376573019615403278546826973914722196253884351358220891312245170285433952308948041403915859487460088804747898628461415932205541394792154908965343757435452620388003530861153174019313683714396136055842601343436156708017362379106321630586009564528416063496077192318890845945425742697118970052053598830747645985563941150884820638959867878575302026226599781332140220803243289694927697774615147365406358223989682915962971510974323800695908274792260558495585359855776480996023337056975965752123756491406461317454757408582998570874611287631149271095833437125589658542680490346341754389041011858212671039349730814773781319500941843311211335447872007252372699896474720278889469613401092482339976721685256336721760437635495458365958276650622741293298597273655397300327320957771787360974686234265262966981696191536157166981687487420644170949200416061254649495127808751723805663066631130317724145683713552431509669616686458213929339669145370419139145329328788897655284062407527020842699399992296213884267328072776911157244746949730921383487112570745840429918849943327787419071320354357511776895090382745649494657736999225747348881934978513952468433534319759989828213904981969665719711356758610753556785656894288774978477645169724821696191646470160854976836264671601473870962064826919051619599479881783103079118368399607348857284378803263207707121043397883917205026970625557514083824424617264561434158434226988285017374494761806066479334050674489894730353454249728167615256993669709694614359211914306234618284676032412535332351756390238428929716597302274035164108844657976127316652870680842650245270027641863968524565753603548303454609680366790741664800452239356427332032684465037959289611447862588885016732492241003793732074478143518405016715784272431932017186683746357868839788339917446834240592005948491816789676895841933384059966286320265105915293783506908873980579207540422446192276929490191787850079833694716826073805299764364150203447441306378913749800748183682357609616431480074506256631017600344660333505952843705725877181511283892447916758549997063135821929476375053153252694315123433136804685097283697355792684208998337415457505880204794079529231193868902915555815337429103475153668561569875616721851329498349601070350274617842989557107057624572248507930742929745553172705547585753178883001380605474671878038162642228656337698510528570827178773067289656394192136003321821752275004418877638525023288381686712741434553539391857550639329010260203471104085106863462213473750133252902829609600844643945436041358066595156002606256508280396279224970514635752195460894314263091455940557671759827935575293189016394293578486502857427083344408861825448140691486488418463506432544901258298913219954458126568158402524388373581704280215040765998696045010467804236365433231913561291852309591848426801897158418428897009700116935250917299841253911307354508435642290033068519383517151310100883678852555635615159627332321191571393756468118055111560361789479758396843611157674688466380532463018596020590325616761755369012603665000721025555923012522644105553022248664819826292302932887085208024703848837918228896448011985194175749326086322873130886568979918212880884972875507582605112785115669233223296669684731301741920132344368677108815531341789346448232843177043154115034412405546155569252000776188260863794325995393830049442954775188051843735457768775851695428718874334696455209970742255291461022610783811738173771188780333312885612055282664094252076214784593603280407808181567292333035128691491034468623506039717103103837636556294961123928462074954374293008760381113823148156939945128843871751479663680604120879833428327930049004023280979280504754758538748514810361588789482329265748728071849256170268684787357725951928906109900253670784453160088384755215487608963161347595922412309173476504091075304643038483801728001027745077814162344810134384508891388079944327835750170720069830521146437992869729142194998024650495154856226456140128802596751719108225681256488292557510806091520858964482003792181643444412830750405267682727980836718163326330271402121720991647083045952071189894690491255258608710672054905250602994638102542367695948221108973620533900258826784896529421311690767969097365167491888408458482810573983263884923181946892167230304929400213312611298025317611414460122239116868074337588669666815868204559006767198110774550226522518492684809907608220146414227606481279285117263420080517533054978292258765701274659654372883179181178455016272864465445121835508185209142686217373453831183163264788356210595560215246077720110714488475645052562744429067981085030025766698997575576651653516605736437057165884776836590409337927472638623268093128561012573644007856694148320580836147624239077276574985029329930759091428064103139391438714470650662034080005489613635054722345449889565318864159742724119336498390114832612579507535667472346937991047327942119479217245342807870643277548149263177543987332477044635440008430275254009917912353654862027303370352908760734818523949466966179336536907709162989633140094357984146109773876335257096739891312382232656929223451052922849628301347777077386581830893087974421464914746297022851884831525646346345026431236509284055999248656749114276450475905943839275410910081885353853804747216471327381400891098758436685176814713173341286183571080794010220881498879503026241585099529592519114807952920955620182406114160127201550811267435971410956155455248776474996792468456401461614069710460114590998767805053120369641509098342336403939813987068200747704063877804517987372974024803464832574723480640647532294688774814602536470945123502924614397907764614484939192998267398573642308416211648008779982713670391990055319135959002913145066995201768136010023179537027163698876522361104685459380590427332305105428004017806279919783193658689068554317663704174617827099271535808747042130585021462347748192302616186229870277084812337061991107739968592114629955291315155523932055609642277518149759430787156657452060788351448187343824017947289131979495408826896760515067792020852489280796193959796145744945518096632995882359356280197477381591507164733288236432672617065541905500468026077535706579354273985279242498452259764556521781948535891825512603507804819093531180137889452802254470682751477803369679547909638410650417538529351876120345274530957354371274580256296267390264218167157041239940382546438348463621115825668856571988464644784007971344486791548754262567162331188730344733601017498141086166814337056754393980809849828732506834022705772112799248413381293623716048114108890181177863709214578387874957560133454853567860890513950110664376030355565974434463931861435915686163580334725773945928241422508027959136883926119483344865853426756863607282910698979413162900527555606187838625248168117886850234426513632079242592695541997352936146979123885923899187850795780468408927402830286941926671085865602644977043033442586777038000032472960387063054511737971736829072505482894251711592981580539949308330973836638677303081132190837437860928406205683924490762695340809363950967531501404437748330619564057949304761707094561680726977859498309988315551130304362428123669056079623638820118737025985553549617987074728811432772016286812996418270275312710870869283273175160092540025930643057203814820833960945105924551620565761881050792312535450993111105464763582099735073821104346158202636043625177575779007724907105769061838658072232844603724612278536801874622234692088485552467596216328290504710214731812929629820657237515055670915549007726088418842776768547784538511081331286161724718625585695471522573468993095710625426657767928697666326681433597700913249716337851073321563335019222944716196764317777279180686319963836892043551922951958349393128955799680001440661982183776465809404057760150615750359560145312120145916845537895931572833946382242986864674077887323344349758523225588910549064290204344154241413022466510031335226641777377717509563778980407880423079725264109659635150462736442663148341433203285854933385529966554097661454386093115017205936924634273275497781937731921721537191912862548613288874068467023705174354516827474227380261492080525960774072500230811232372629494251640836584224698929301871937994781317440509579795575057082401487420751978479387017858577975002879445086380717302843660363074010960957414864571516879242458440081795174438671038115604888919481975458501520346811036793075666331912901888495158846337540273186571624483583846837961011584747750625690392375944574541850059203094557384426798109472780716179590848061237514069214442742923122357787658182926513341466591216761895213800291436999464011204873142763303242279083014057253131111671562538753224249815979905260421594414691310927606504200397183127402405187910743241667456558296800437520717523590076340818080628598362303229002007275277194570614821216401992767241210887967879508757430100507943825672880057397166467446689831543308011098180105020928632632178265646320556597485658075934284135784235933665736549375865019769021965156801220818610723539592575201592638595073912851707826410218533337225079285418278886248055740520466333018992575732104560776234216595843344724061822966619348440937575192374655430651717163710465310309130519202777577291369271931047253230857703680589424980916099231520446694370363243290218546811761605648875759435525529716882354151435072597824881720843277588385654839882338423623517062717245606053145295787656919028255884061550804050802355855174175963368350658221793713815694479690156483568136589047896200987528255734950698602621536616986612776350681325998625217884029726036784482481203716432669484349940577656014300472706982420530402341440774043102596748077451555437371426326392394906429353860087742176148654580434173821122648049613787477711389221914919585910709575644944180993510140101517638512478794306873714267296718084886098966092939453679263070216082491099682316221891149320890657692145929365247600327440111236578963613444203836453128829724420357744115448625245085496144514917779669922353651340670646597777394268834011663072096743868112466724822185466016978311066004300536021448915940340198868372952825116450490447700148761564850242916187018822035127116973187415565829254140595656175345471276062081495934415440525787130718645049220054030933370905180084591462459275420201253717586996557994538436181249339474907352458637924602927933116582170518417796282268360979685386186670958483205726790787723795280450273643278788026910732278827503954257216990939823110252857471169812139258349784216650443269369995080082587313068788594321755404276219967457815056412394708235964843821799992815223751798696044644643263095002495889686443684017793078017345687422232650067375942299695816175076929470669939614114701587488351812328565006537504754727060660370405393647058717975323646100158751081892456563024117824807268989596047920228285224534933650890778684168101378336370397593389302845847255974698160009509367137409369596563858980131890090784730244022776550912119252908756172280264752368743410516279295531770160166887164391135220623432498294341871608628430416952312347067820152890844611717697148956227390722750396029618379795343550264560047740270821073174556397639530864418627683643589601492859273641200118899127470476838396385714704682377531602524394103413730206050322628825026601771455022945091278373130948094498490399097468882171615631211931057502147731155645930415136317484596060621301344642389653484108160795463109337667955051719433311625950554832523071629939860658544361595049864004767186908576927502982742940825929186303689789090629108410365009831430300390904982857302722411249508184004284415861602460131100189521943230326152975588521260431159160363831533523799388340651525201654056336420013890970817808717850700714582887012158297724207621175321523747113172589768500148703018872136789407196103964171500209091524835688513529533556563204096593722819320616637755143438526117410430513582478056673819531543005403508627394997812785970994247581496367177963408698744648210382778120881000732696814870635208868092588715564234110185698493494265573970292015365375495296893476738292831853543358528258379406002287583319274748581787244770009868128336934227175588707153928318643473464355225967982899808673231476577001619259134400041634921912395873355214692020911488336736086582834344634813807827507249747510271128474839027847259859680667296878083798480079445944359908060706033268645193951302091560381403461270447118707507003676948071345601920655119247213147043100288758342766693371417431516228393919524336555086804256208917581928182855186782847588346814775493116719480146805963681827902317567312514255979456343362044649322928187465265231028928898983883093501340439262144339040584670730912206122228284707670742188749235274360055836547923524839172647901551888291332952446001399428331036022508833779998749914074901838233297701064869625295464586292125683033947006292968821873265063497253403736228299366193322237133123843544025816830529680660839194782953232483881256062244811121824159956790628110730957014476051045162156309706020861038203934960376197217801833355464363339097908268185859655200810158230855888679707134228027308826758979428115362747090784680335662940501790675891294034917633597165240055725871392732292621628111153247829086048999349561464228945684713953632087364058957688540038614217900923448133443029074975143246290902594228017126714829680111709523740333672657403875523150756348430961400283763124008633503160403532147001068196727582191328329482568102155560734158443702351589006317320045695762350788700734103043973417782272946463612016858197012915835991789986231370278887523180143517868675532443019509488181880727435677554362410836661994173155702618607188356579894567896330036395282501032940167355581228572483240451609329274900015371222953546581065096755767650574280428792942411520251626626605091826856093298902469166819720634543034638706397233537770985498436427205243523853990794764235217617765480784240535132588038020895384729904784419122487876234500731103467460746310527909199023727771513423261957646311044969222218890592576714208167386987693324204835724553418404762813696235124433373347980677804736270871391643944503788248118663443642246672766162016087108215501284241220024481907472698809449346273711806623424273874572127526400117149491611968855138033442071142826139751764823305856275002754118952262237279397862726682621913931980752664751179035794394879839932338241747299604891528770457934674079082603506379724685239123352318526761094909113091104845232192477146014235707724340430726517832764343453446584349523768447177237556888735007332439842198862646313451836323783972714013452294594803722327743470960989378787303104745614513850491090475140600597940548611227386335595401737891257000444977512180942127038848601842738184529124649182455513399432197998693640887828615227177319793031805808003751128953654909743447784107355113208357145904757748679783200895200167203681441774151118322949375662634947122176215124889533433843663614091546030681084910437862186362457210486414927982817372291326937430158273355855717625643763807918813238381416502790109885115067998730844477790112966095393870417107830052086415141086784564369260746191315160525418601525665430145419953466711425672319588892247855462485576344129062329008932279417847280972839420760985452466183469607168418762926562750160020208250074345490068077237872129525888074786602531619708509762761726040325535137022178563917461859745617918766810622100749213117821733069517463208561683190313471151840236640760870947386616733667237976805970729220886321379316966553403678162974260524112466669039206795559971055584513655124555918372219359974372329281584639711933927398906413292629629471145062983165407536375536751052543786428149417879802365011253285419326185169531750601633727199457685032279962119466904935285682319714344463710515027857411220657059362983391602752214695334752720602639227422500010774155188121901664911048278008024790696645443225073277428948221882040046136889343227702936167784020695393188498608307956201974695873989821081667386210634806376375770664123628205896233397407556326876048679627074033367358250479103680646016109854846147287140895195775891542203896179803397059460697495195494806605630504291620299489107916981455605395946913677258536942164464807588903721685652775354447099945586880430227073784786311833030784844162920716437002109693785037979926424999674190242720655984936675846493941870828243624657970273431853678249445309133561015200126629028095229577734865915840553685293033982644669146861524497313001218392551891367311424716010872862860907381001251785566606326120031026215880090199951274529469989924343958923392895366542270751769802757778746606702741679007770700550722055452645852418844944244797203100664879420152606839071553830110800766010074110312721493553894804786962271962102404413887246082438008310956330197169733763240481207723819842158162376020877989988632729783274864241717563685289701719743376455028864356769639344921411398779723262834620542139589952506885377292673475202936105752965747989110574372281135959407070496658302871412784874147593514077940680332771187576701232534973447969050106342831419600519587180471394208827390805015210117748842997484914736764795411437930016626447844688990080141796978575309375812720418098392289618033894125703015833044747744144602908680679845365488559864170961644414495832583940161635515261116972413389544057508545238997766517717395924005551634735858327605824483804142666112273257757641310810118730975616735289120071783415922515311674193371943493124418899502735887223736902801604942038786409278505396265981705465680065479717003931676291936310996090226314786499121114188469756463568688809619177205386387437342323641247498309776589740240747214841035747884558679941260676053924835658487967650392803434546915561339554601376745593311780692736556796223599670961603790845808387430108359520896599403848647824958840937287282181393258098270506566673730571030995456362840965123641013982623259030955375458732085037085365554995880451011470706558089221591550074520173666288564570084651198980853425923881700555477663707599215962020090820583184235538586511609558836804558239319324306095035705434742374845319332865957255450400343242158313404507568245111855501436967035013943283994918225916739446864658505327257842277305755811000749729670281988602918494322651745416396051364601373442596816948677201024587381062078992333090152339785988762158286824631166656637953491738122722361878225114414325874359197268540303918132457065160191599555899307605712798880229112307210790781886861203005932908527144680804925150705033178953316856428744978286753558538189472990112776805805504820454742816799692159532252743033738197136704212185744687516696652354091667197246046242712672885064757048727134298314323026872967395600670233848490588264662607772892690831948345408538812863838303178749603172969670519507710396295283007301242115010401501099339356650572152322883795556759331335480757896720460436370501824581974337776304901996556600817470893690891901624649138118826496305172019777352867315814760550417497578274031752858982192953436295745804053326822363268573724693985822612543900392427816281013115721762691771982472123961473651201635455775264702662539135932911498284972108302277704411833133532951450001074842917196324841374215397506680311066435212868549970348534971692224826211653840391430056002467633239670837770491791641100234781725754874221191122777255683488070807786548147015329070827605260533442491153804955042644224425296001559182956922217229033342574286420671540042695492845660355008838647143498141400800966579145459308612348433310874459995631659298075726263238022364190040554047403085468271939470185180032414653246271098159147943257625456061513030785084283966164902610062777956908244307829319377105339698790962948705156385249062040343380570542702485504442022179545571643033814752715145782952972311913586850908177074059603715321972766430886942497677375892883085202549570786112319701867774101097283077014958125986476020685230774705042518967216483545726282510505892792784045889502059050340825270445174829411569015029652380273731728591551935010850630039194176178952703552372785648504724222888103057890464729577484458639915861490871800682629119229924343545522849440614914208271461527578159318206045800993536389173594859850143811474864072338565528240672841013443140162533337516139354388566288201217696742469272486733192088007184174009415117963129213009836618011189258810957093952738268060322529362575615862156554182561468232362887978290676920316030279290933119754844687393918907419135542791377739710685273797868551040764762680476442605790835496126151466339821602480095344031585143589620571054979665355281352780560459254973787228694571675696716055425991365078402693682066093463779899015593419807206633127639382948991444136623786764646894851175299404003722679671768271753184411940810441787011202611555504535098419216876449573969250740771934059397103073074315097057204728525108865822985280311954087184805991541906233275004389079071173258907170101858609707293182548433769856065838408120285198500556533159881506063274949668840692960435424097874152314502005480616931111887101326143979818972052199351530263754510912327016391060542003060116284883211775927390669358422702285815166928206042861002258781468168261596185384008163573109674169733534069301355739439098449632859074398183383828220561375015715075288198878774270680771470601559181973573973274714365131972031977170725035865850048143503036626854550327439171122284844011895345512478621569359431608017146772727664485285530572497158406411405339196117131050719946033623071108358007475512872934941793048083119677856703781912390828465799374349074065535155269395440149113332705254153935294633426518623024794920073754515093550343406564789412455682319096592549030986595245466479164272953130974881562059917093208619074450465427822291836314265386019464498478178379800668739959787935839105396285346716153335124694360619177513076324817004421579050800446327824791806456740847152432040942894535956760188186186257451187527368454238863168432365972429127111462854107758232109614133321177816034644634796583898587504629915880098759711096942681562008342067171499647329539742235634251586187964256697810046291013340274949380794641945205214064359864239042816955690339335218462717498046260946704168739758710303848890242619884604513041874824316448596384538834230775414702641481209599273003310114251096044098744143311805726623527125775485539606214943081970549351591218008428470842805117169668367240145230324512029780420045618655535095724089780936006929932977202127398943396320688341299744807944249511226145423115673069917860374975807054083271206673409813708733977521177621082256672280861287946057430061205987184398310531003110263518533290243452277910848651470686838411508182233717787773843256112151947237971433478450971767607987810152919158948014184855852106687204008898661948445880495642673046981239746844801351169725390433592532731331056712125651289719415275355629377791717472184016871700111119966208194694662391414826830456170641710935283492269046788221420711101893221979845215768703581656595361219914013151422089579805809830604900992076310837094661763227176168469069859404297165480132734471127775363547277750542870932544251835675912076895488672425574981990143934806013418818710633522044386495377751749472891450736780690301608197267562016849046722011482681051328394106038273902690422650856850934885489347508660356622836490526358617181768835751751841787926803428389364214706279462426291747042994920680830662087801914522015824991019966261138934931780173655142944930152599251109950526377591570134882558617701869757689128421232463565975257892102577305532549478779537963407592659559967716244073943364347734009283538035007834235237422535714864574887865900824943708210838408339216295170581105453678445539890647153837230078408642170692776245737620758817303544194498300606703581245996495153342491301055879053717218083779642761677577067299049456545133422473182499067351059995849394710541012680891290525330870724263652564630717785679676265222222782912050239167730635391937696669751995699369838147050294604530780384388259563584222958067223988868430895320252520827429486046495421584574534804391512606083663754471144768741142857640066015975889443501309978803987295613431014238472031494859754809673288746261439096270346724526634342366815684338068798564331304842628114852205159578977631121335070948310957046469596038067791027451586431303771742852796765124971185799877695615209155630160971024485203181694714949144495204510354134899692741219221142679985103249849583656412266080984318512284709246300385086434351503944952182299434625598282595225548485055543745117422623742902360801311695406838784041337946831352634007622330242202135830438093209207448807297224435403367096788935964111089388480973694986259479775435976850806971673419634196235900940798678823200749427324421142739087355073853669465769418401360220860846863716917704524806642820345343202677242282184343464504439796109062903737693925250302368884755953123804684769718010135655923339317604606226233685826238347376861414521174792989972098327494685635792755871448779423138950125954633937072281721321470988743108949625014775729499305610493027737848002270691596697526708037839481167054718438178428175614037353082059127354310224710442971569720259436969227215714449432401006456201574928390224399318079795376452566751839759821160768394643212142789736200820712183067353484691220476110665971492325466470317607174307574820431463247599033774998431757430244371386872787290167927372652832923718610805223718151143218561566014156468864142427988512692820282965860777546542308796404944449259823828481385196233179339604568064421531499183327588635358798905074751568939561570780856602991657367930779948315152661365165934692368433702189770042399249526310389504755607932864534335348167782251024373937583967469898265496815017569338847107259703604039782936752266808964282260304684539390567601445248760479811558824582931299997396094641870032505252009527176959325007318299765558522601629892157623396681981040902928287811188231059031811564493399660256864783389883931964799132601227819529410476921812800573501831903203956940424432793057365025543232563871425185499849056946090272627623181111102112567175339663206232603302120887299136981585864541568086093108431318225209630180902316820983160386240954908307407753488039955715090479961770160160429734828533745206862225281070654799320613252894242145648383223796536632246238286853600117022047617691504612095818655843576627164228354594194685821320355480952673086228136116637000239934258258362528809909787128301270814215518826700224519179648058145307351593337373409719074678165094652983162117366105615626392577449364621812738409611299218950622150627564970317870110642936630058948662958452007700277071210561661754067050481258456702800379330156148329361955804959093933208159206954910358173078761039311082738000066761740683785153251979622764385395584326904666152484124819768686353721354180489168306389853292578655571629228849530884133069273741167632964717428119584631420706590830029431414411332433919805880464736281107216738016935974478226829496083424663073306238554269726459594469133191127047903801364656231193338616766121374262386431817852454852188237495969409718778350100134992574707563472586647113199484234928405054548672052068124380098451461163345662438162231731092326935346665124210249983209585496165867180795941414112906545583157619290718341257754371394203465086271773643482434104403860127048208549464341468256446724659349665627231655227100154688498712796658718772502324469929335600816667756572266966100686596752977942782193327290508614728065962610876795706979432491900286175774845464970993306772885198947719679939554295537597901582679252769696650182475431217716112315207002201648924302487545265587608331769459337191533085044124360794931878124115609283601513596189055909554515931986307238377733085326826401530495017808249498410859376579546316104719113243119643423258917455428415986587444961328859249637587913591730208039198419787777637710422341522320253681786254814515571286728189502937316030844386018325747412033258463665497338449485099651855657413401399372876568746401452027132341780445750417695576530523800041888581379979212309699458666227110368502105694084451255476664044063372352111978916503497054796239831867175884236832439478320398882845244485750066553127261863346885967246270498595510645728030922882708807957666439588755929005219778138047879714133891774280296275025734487042454707206437567957804834589897690401501330121413632493264716849901581304143268094641555236650283484560295723417627671622007173215388620593646913009830727901600056388944368230273308559636939130259032359317672311899338053269126469963488943602481755874834694822865663093136368463810655468500726044121335433391582486092036854534520036840269902089577162849182093420132613483647111205944197076588075358794362367718449892131177024609907605619260183960436260058737058468978997713439204623259504723586093757488047705644048616490860265437258852197611831527931692636682391030098059611096254172548971517910526209269705288767642568256021824023517916700037728846501116179793033468360613265706470979637819290735328513446669386670131773624268247254476673636821879724958849996607336779358017333592862397948605739705606225176402743215500503036379396866824327530955790585452511395264860176043731121953965303296308386917715731769100050625358469867623894394842464710055253080171784906038821341606106772307782680560695508759101022403589392393563114055616287308295375947319642803812665958019808901952847618773050368782593480154636664490987564021604587156125592405413451612873092705183502800754273943637556727931707585551637896974497508376021373381291002036772935998973667352067426810431033917972789103904384959861905315243614101603668251439780707927799396815293703911836280840388107500444129810849360287488258001194928431980068953045849493567714636705711437809483814368580270661787612759396828322241744502706478939295420902623131028950477027941497956622797253277271334975463458174546087484005484343179622240527807115962697939413921654138654980628225536727258824498861513095603877533634474152031991881908664157038560006307982394814018176297402357782770116410728306341397768190472378262754903501222418586336124944840897141464062139339232811933387479958297215157736104645416801478382473951524378840908357734656471777451335079610953221294321081546781182360516327175802229474577807925368590664751584565510856651515260371674449826364144479880604619005309932436922262244412662308029464721812538264225524611346679454696369444107449021168504532748650095221738019292602559537358437558981038121300683435936862391387520975475550852356755103314492287079405386418255183952713712075891747967408630578319218061065157890513690805916817746681282722071458243665926632670344522837523445650609344079329604779937694041365826406344172672724773503954746008254519882107560479405572864643192363563516291695583564367237224079036514845000900163654265446390866667794688263297193793129648544137355729341335102488334081719517510517354695307582638455400198300365531504841823113209394123659428395134753557598664682178328982912636320017221496884957218609140929604764851420763333813500511652004189098012696751526163310875774692408595337844025714340696352523846676309245498712769850431416205313925689605416947487646798504105562154278207590024036915745856249557231320058242702594074889437949008520721775488758133829355999904814713997927591810708592060081943160565836899748682551013478451018898950487926259712232290612263346531906140369981745368672730173471403932344562916686855072967784723525991970296335502242789418471770124537143131892369348689958215752492033961990099097709050353986214244047182978021943466487726682762331060498459559901799938966995268620789091903509666105274725170157407568493576396027093623123826155719941961285131159880643049159210459293752089446169083729449154418234312977661374426292632772455484494264281276204584203821071378459959967050324290871094788726614105146424016497994152841277250664538525836533290002711098376624313993511629618209248341058955107105678186804039819191834630079936538165478887961876957596468422843665720359217595580311252990961251592104169797467218764595124616308927106246943802562296815486956942078106688016400335797486857599608943779216065990892827035049302482139375123004375050357553729706769369049955984094119712911883761025402462422539295124084296960781121651261738009079038469722402745775767642162148514749994972559114995334468850117089764718261119938262632249404474759663586521496127255441011601237748066259584354880073973799944269364549756945369132578915062213123763556511089239988222361835069375382681351169903941357200823755390447023910119426654745386365746053267336595855349768614508887504241152800583872918317713588444940106240022951976736002197193124276520395395054799027898025601729959045020986500819021630582807036226639695515385913749290744853913601118245774148189105200123006661327487357244723020040244164421467043989247350835567927650828398123958929958645211712239391020941090348651295412823355750789488711253913983524804782302736660363143295317385908318420691915764171201968033873425314210179420036634587438424476376675511171125360143667717334020000640344218790315069801456967965720460261169258546643489716272731328730557190727534836905742644087053675651176301900002979485948682187609705629010757517816234630518551847034759621906741302228497274489092007687486092992574451341697225376031034482232971077046888675561479003695172022868909519724480315641529565918462460277208944860200609781618689894499037116386464551189991133438926300823360602155685860368823534635737760986618359888876959423207587459131958432780094184892684759994111236500385652678405419376446853110587070188521660197175329548245192902060694900253330492994767959970797949453379756128923556374606061825108851325872893879175309465415115208830511661800616304659976829729142158276979586742972270773846518065735022613830264891452783644696122358679941092743952318046925114794579987064775457875180892061717840174970322920786045446028245381185960216926035063711789753693464045056894725578973444272638573478703993126827001920073140489063090869856848152858453095134985267858217409111164638740445911008283674841352850928384413619418890878229092783892526128315755783878355581500301306193653169103974702647439013431814547417961498192720328041034176199489977721216702929576145837257496864095858180133024389145126494288734006546118159494709070995287981379988414721658831344493562572533203446906168667991692633918281114561243199125891949334729279354934937019106833241612266840728610042394331154998232879338975727616064316550692826442803361816615305872560176593293264149674897084509664882445314884128504878889031393086292442557422484020574676307925156622787827830125073635854562644316940253581290017752290671432792461672519520991945832255738616900833227963481967103935980449893935071959432190256628827560674605370168448916560783141358841812956244172496011563863213012912409322798658693741937086666337877776745155586959577684897189444498305942429429057562619939458988792153519912756304485635212426032266035491491833362985037192251609123383592561383781578513703179817871541607543027441986910002149665084158932272952211713096289174442488602206305455819910919322225896770647021169995779010294366706730593055735277237924408338128653487577477437209339193230945150434744867708776604884747031817299751042836078364944140169815441230162944948072895980657416379952583354840157903473301612304629903057267132238652047434860995419338428581131507081554174423967116461629954177208146059919056864834769772257261850690518563668659784995413246454878847897531457568482755100798576909907912611623839653982495899245202662124193302193388556343455942518082446549990168288102471521726459105742288747874072083346349950272896794622793392422980867963393618236368342623194420474578788571357704294110742361918784286936288976728485077223793042420943625886901851057600390185762302373915981580022832086859510579327380258667668061574909263236660433724620504347682133123406153262538036694032832221475769853423556383052765460384625112172942885784462167673960475336340832425367553458807469071361231107948169502309593643097494677648376981048352155689021530720049793953494519370291062239318494798984848073224806222882191157499260654097189079212832163101717864697003004071245549166739567634219721120346717014110188622741172022957379528832201266099028625793241581951808962020597015485690827426858647681475282801724125000793047765544071790458159537579361964485355734375006301848881841884534908266851329531961153118525026596048125215139997460276052914199590466414761447165457678875926970344089896749581739806512197874557667387253520788576520051204712328894911792625590214155225096752071571017755710448378584836223665712147811901358043378468205567182902986501052453624917950846718874557227034129284886689681648465453758397720714403107477920814583047455555514101048624935140154176697149188395411078060127782714449788237935899552605972636260713452308232646315597686041377640055785218459767092598451686675552375491314967907809459741190197045604583304752896082181163902182032682917391355906757424379936691828431458574116535940997702258191650047033669873997456052162959389513185147777286336170714251037632042621857081187157870133361151266448886690217690033073364133016190920846461477812682096504181193439872704919715343562449500575577324683777931147584448195050429378069675421034478359108864642368705781661095430199228005528961119215142405679753605110425485061280318261861232533545393537955908238862791593710941922749704459028325661174773295529563557982422225064836517388668482871355069865825770637904846410701796474474776459940074515891258288294022029299191850044497689944983209235629772623399543142051051178705665523642103784078967711081354413198829681296014383045044359357090366789937807740115005574861962469277728074945026153740308679316231049806522081122793906551208700273964834811184290670934027313559633861237643299079665177210809868488400871423143012258129808463473919726408675732781159292780448106887616165437901764747273322948276937179632205642186239527245070494069649407115549317169438705467595074421868764440284368644797121174214863723769153947854485771721022343061404720205399941953869005727787102445077872926103491165982369490057404423514364214990301069098028723347098751175971519110042166449972644778384110475255051655416911564884148486885285839827204319415224147988703954921429895000242076592290740947850684233429563148009917685722667855029530503572424355476940162401057201837905773003602956379510372780684043454122274234039945253940533390992741960374800250736764080324244216126335061642551922718179473703832133015181489526833475132911497580091035432839352648379364347398690202359364754983687108158167019695962051585600021347472895595572998797478795364765657732248435966237907468293998477929047040675835570871198534490654590969113994557091641462276817772266348569727485630572986245308560943931621260323034821672014127056140486806103785725891520763175534557288182269327089985064043222405569604269865834043978847957785728014235416656412093394800720495632888793681009119019485546099683922618561639332260259708685524916945076192386235705000323382909685750306743767241120532860991671080716572880654712272991859146478588962796886001675040208892957184090433644795832447256092808876695584593728073903546361250985090680429047564816638854619481031944970554514599800639576822107052636302828537798773165837678103097194807660057992664878431406403888190673346849754312373563942625975847732312411251258540728926200657804599170605925073443404547203476071411769636454324206227704974559776385229106259889233258288938885189849793015669965054370202493153795047116362660048585068933677932880940341295117307917424979346071979251888689754263214578673301720960182036523808687805660232769854060990524217882750546529395370633929585714618258306014414700332649019677661750590644681446220352418235899152565709089984763092577807519427842688691085257071404078570595259113364943653022740526036924420424769434921896732442152353909801410498196262790120851351631511676858288040329080040896101840839987926833885803685329597918742755488031137964006151734273198378246495566943400787554746652221466078923914334621305589840981992439107880130358104309631534147945287961865754243429603742407825207490967413136364996520341007722035294942990037800444140426506512796323523144140658347829587277522406291595472048161217869022361051292448514615995663797009510666098080329509288931772283546937677044260115185782938378496779511789856748538541257307669030253231162088329235535580783094308742343058711054739995094851858584342358415595533268933261982312185529902594870309278848577171597682641294243964868749845092478832011677781711117479986046785568554620539497912767633643636825427650894150574047962529214098580648154027568476882528955274755743435773452308995009123466908197905152847791034979398068856804526108337133070239365236400973536461076381732506246205172094998167434542855446359982712010055432285880447801581932064120048146964878956345022217462975513184803152485124172085033616022808186941019382993800610874931500658656760366426311079894275382829994950432665929418102485455374320420376125912063098924318121386743240890275030573239342079597470140325857909571057489870113596984213555569588156485704820284838626137800115442661667970219306393767236407416274029560982984044657843690669560567761218851621845713440627600986362002820636676449141226394055099476271450470848481581884574158582753567679521027363985246326323309883165089239028921419405295204028128090104740118413570379602218202867911989703863170121932469027408018404848697899269241022961066867857971568925674067945113019315896924990963619294122352936683695739739438395427288440998263305939852252938156078462466975341726340208283890130459253473907174593410396140028683801447856956652130327225999093438716549428547570178860315227258689137474780126615315403660620882014213137808811990237476816458803316418185779661614351694083192460190101726793071821097945849784130774923434923594133756613029036540361345578369813464950195035127087459904502213257468378890621165050980247679295558781830436881359153233800406820955831442496840465610212475233335387741469892842405800935911823662393339140443041790572865374860004939355286797682833119987957814495184417132506741330346527550681555821097194412229703265140063197145044144051776841465919603763480894742533004336950994809003077022891594362241946526168775066499001270425185256413505698662808113509900482037252923944670993989785788974271686752066571470334655106788067224464393600531686794010205944625633809018069727525899563559460324680243684268127726788926293680631698391127192664605128577596656215565479378996431020573777683414889235871576099978430830016063295405063951719929049854510208955040957344672707215072548895987451713253337807102522921910123520561278668353363716327830097212317265515672000674365082433938019201995803041128132901283886052538715161330657119943467266415522605366947921512384834204105315382371684493187141445217005900155184128680328648857685649442674982443005404878641679291081571873228320645110293843982715927834788125795838657879819086195996196519145284628586623202761684301263457253385969188713662493319912789190335549240440506817316740058156375744706634507282815043914075944550707931299636479660741273921443333986852730026337311849836247865523643649988212122768003864019096820883822979507371308447816838462202516028301565156981183548216462019765202626087125991460491605960772115671051468232036737886811575617473027486454637710501375645010812121347370087792761127801485079839911368657503961046369334720857152732771087090413542811306732081601358802563885417411876400604172239450847180119264097976898991822037311928893278055968321093737807025299308010123036527379522406299554714877640730139671001727931140931133397289471367826765785047249202732799339803773004160045922923300606872562299706827108878943576728858042060393852904407407832943514574972256374047270001754986757649348072723565637876998672541835937114362139809465816983413555235966027636132229395005301246228037006963204417510920616317242146696686054243692653116795730256343342197966671160622060813584378643003614706547401322508373654649582634328565298898366577985542820433216595715172982462881505637082886704108193325801780722939925060066384050842101749613150475137398311173917228999231675497514658307280727708734623596157989956639197180787805856766319265654642109207424680923792087271987011194416065032181668336651422365459126479915586889091973272679442246927647810846214674957225052685334123479077498911333043195507854928797398646967821526923851519793000032667291173701176850785183971091422833459642491348245566583887045135859021844561430137557229731378775874953657517353650371526611795224710704042180503085746697619625246312228535872622945435298364364739041936178856587339276303565156238961871971525278131959402859952887030264077157172507768722231345321000809417576130084629256945426277041390461739232986165950549487806283016786093777760302969709989075588583095787418411048701804997772649030602686121137246976136624647067696559741225612607789956090634835021771652234186672941859350373666741684037134456274530737947670636027712598175887816859696266305679322648069865464753157369621792096263599294310234794853835028724960342961801971027121613508786852095912288650894096796475643471927498596015515316391165034313594285735956246345285731759709231614302321534755351537433650683869620343597470025552653582545199406509040214875820186398831118245621520704099512025559420054684288322764758321400460209480733283351766916543150109476221315910409625899678032847329748051958139997528918570335461708964511526437357504922127975861388838331483432837646807925649919761263331666220796121185083393014491644994066435588760303031576805638078811129029265685803661569630687679569908748817920172946591034363254903937105808335950784914169908717432717223769551700038138962667776600994976637604227632740936036615800298678870184299437820378214847935500215134760560458141040609737307946490430999920647924660291999078851258255802900358113251847838388364452357279458963682491202945412201554272010407600124549325266789891387999485763547385057832979587878727560200404511496765876242367864985284431437800612133746266377755264510286763965087477388116585092340933724115375703829216389034407820720061023906568965530505734135339257717645249287165669276042076946024796451249501751906149782609713563789750885692191999069774279650177241793475437693304031597169821795761109806105777356644457041929564669699276724520777862482859400235405238449603721075834126963112875290439991836520737196027518705490699839149373929761726019042064625666635343049170100448971192252870946063791729838821880565888290185536968166295878735058434746200752534132272275758787951236210190675943208891047051968169199692459484858231767798329922312541404039973029686772362554902504870307880998935050055135959661827384371811060962592623868147493294344555160554117910413212321410521620724137951471314325636040265283840324530556561573197241933165977718657721595818220040630771378119495854632936412331496743441754311779677441259001731788062112238527462566169058644301579465027214871014192539715879995807511544162218262342390993162646902150475593684350556733089678559651500713192849625266360071272324953423709914072299905338792391880754251771768807658487245783676233451041036025585529072339862937806171857778323527394683376628184136012374315531279098718430015384963547996544450125652803223247824699469401093165230261989460516739999212121506469467119227107277326376773952738669897376013742294810145779798553611049726700080724381816155296765840719309847914733000629603862183889828410776678853988099155910136012221887550072231123655309243923204000082502136009955457508411600640831281341071290958330029316712632302032586802423386009947073740036289968538064248818231437775394124763096251956199276626363547796414269777081889715696042752915729242721869728947680807054969830171037372667493608282136316439082195419987764103606741434805667440908395494115486581346747919384202288355061869007596492492949103341710795366185633531166225920962072180472010056892089806576935052410240969848441315198597520865701316742302685020059335671117920969487565796103171524817493492876845423310871631671036757564092384245912047244385529626881118863443766394676211729234636816710327762031086960377323729316988754211207190434946546046472598602470865522170981307757412384138863540132888004937595403171798823921180755718820440981306506968093506423133031740030688604962338440353988583845739720223658121666848669622280730213209657620059358578384878341517795283679758113141320217969064526462606789477663974233675744436347394209874918014336863091247299522425698181771626295742209533774355500561096629979197193311457414628089808962788708018535988507987112739058223589350526709947500999649839311562527110394037864829367663788138854093071311939188537315932673766934018958970229300767505217172511707698504037837447662244810507885763669048187521874472569601331998289990141892734126109860755651404495509602562813912888509779653494259493662067960726503356446927489951036103439793097441609793062056230038397680977270090533228797904889162614623857330779058706978132755004554873616216709251308054490324966892340488240851588074732983047089338764590778063425894148345881229279637519064511613694284688747795916132448083274991804091923954590425299829170007183399497150044752370985739059728095778177923822681450664498628909559901784127280841290100282551455916723012623694264778107105240123614796146288578599431127479189012010423380544924465689433463135344569320416556889360199596280292365915000079717499386004133829301787889262512879934436509546665351647768903841940043811194465586930571552684746545917339155054996367818627346583343881479723021111483762451431738150609684600509544970877645240732399506040448460652211189580812764246717121466908973602106193876727168399417550493492581822724989223384665159361736754895619546118561810643883133780724815612445018927519932361814831958989804983358467452332955523717190848325865115628258824584240111738293819575547943288675885023044802986027372641642937576609304004934719341022092851478738975769010871534505539394698984641180502008249781686499252514138259229954219267726703237095193700348488287908672055970843863364228984148363355575892744088894738269474195541288845317540434088284450323435061359760961363981713833800600836343765576584559273468764866739440519864336365588808334069807576530177378044709645399264565822789045599080180733290524799779854002833331704793663880324903003610971401879171605560868239247948873990471401606624850943448046829441406620476526573498564902613669002061443396598663397012011732589353798026116890035388740673091975559679582866099279578402916631642005867549968197012338664407340606737026509796176137099484302696291159184739997124502116898622523102121232437703202953075549573364534678418769059757922922260944890879058374665949656191758426622290992849387956834955362648994019926813340153335434961069613046435500675142322728420166570282941861248380576928310354564674425264022456533192182061874945204437572860323079911178439310807519912532638212415993023674707104678577542598203034338597099574871850048103138257751946235277225501644158350651582053790819826532468640622808616419162761849726293059078989651323021113297973226306855134198438236820365759825033824954585925329149222910610314468874357877332754732550247642199471962474451464307092956473104709229810837923014790011585124416162114789740756864783493875207886034237671508400429965838447625374644656518086695229895168078033034314048868027302309034568257448114703380393850170283061370584897217893028854119836817273580027939622504529990136969580061792690807334836805836131968024044937964051902218204422003990596787398089452610388898331157195334495871357843527771964401289749373497185140249166170221473010500640434020483527374323953429850137742489481495931731344114896269228287210147956078797955044889199143086752677793366578009977877591438193855781644348586004065675699893184047232838471881671920326892111267997422141673792275492281766467555275447111186116779065228953492035550446618256799364410760767173133981341829103582546287487666468718622500510655031074553018365620035432088748377421846034605553528354179322955014722311397078192538939861214310576945624782591405809706280859835375214257141785644486099392325151533157877649666937115786545499298828897861521867908962513459645437508070593177012839011664541938993432902026023156800864227216211512270633056803959477314346048936485548304496540251593325944865126404712394959615909239857668680458275551961482038377703045690686905900269166044660442428129686836831781228831226596245670499354884992375849133279257656452640415621396742124787877531868403784632813764396593041109667798681892760126553199853409226054623367149787243014737667604429418276173879448814669266391564319658110080785757833712624278674624703351388382158974297737786690346430267649055681317966628430314705202726506389136322069195289494922522062333572361852118697403328879490709393680030001532779064223277336045486054293089339194915031120045899063006974648644647697534024045146897844536922022565799685446410135022956418150039239982845165151995846320392230494254577107866351323646050743775852414530192933947619384976320772509474813533210668732750420164419036885483296652905593705360758488135148302140244934216998752684423065969140404240530756063776549121863668770830831779146020636106286253092015753159691462331203566449674061492552197910310162430720620769998560382002273367945515101258194113517192004526772754024641650298294014019677312431525259287536824429486353730998182414258512269329500669939277571835518118134700605002070013531282101541786746161845120890779680317168935268498895108287790062881298840657247079881941840968013686116701966185567790489870123947909714333635062156280555198379560585066169646648424935737394593395775158170338515694730722519757043388159140567700215047889156253483027015463837216760734048477635496723866415026386825057284969015755529507279395536157411215396473889239351071459878241179760526390969820397183603499284505982878566398601086992098191870418198526692305996878647649767732781669663779441660290573999583717265201826024362802187901288713175200676694086559632779231831715749006703509277464282257023982012409584872157355571084561971617613009556783251108030095983776108372610261695384811400340009709466901842220280707298062526165336173833183586370360248432261101351615204668292579485158639394624659958868878270764481240603742879702080139133713302494793900070368802495889526037601990246936412042617870790559013572027216582064128102471140459522235166688144542939357027752970923379353856224531892768300497698554010331474318810189057976343145215028532511332424387044370545990897052035719930242108304158140750530787386927428294347966180152417931664837846943211433275771094268842839898734351473279367400349715089654904810613684336558384900591726569903020033808364599641784831562342574864060449863250474948167448782912449606829446498731222556039517635767002452657589007307877374604135858599484039729388729968287345985159128990116350699968413067468069503592840539856147275367333535579768377163107183480665921118948837802031015150314624765536968407140317551615554083202970806367514755176547645253860633045912449860043132959906242658358934991100840761425731310248552140547078179344237081687397776572037898976849493850998461373704639754032706334520393734242731436925934330352729606328323359279556275665526348201736769600532009178966500188965536862528744906890535470132719049185579295463021971963308267643460167077959042922420042234690163319709909186610455209780870304357550057436439641019658810296701651477093924964842864395807545704628705113575441505035475513907452395958019628861933821843431268207962454607159832447845506599327737495117964777073135216032659361154207527433108900753496432368200088817881680342862497771518811576461373371662348822641389910836567722591165356338421370564742092956123730766517322241109345180753930632209544181006282856798113884122858967336342612044630918200465416638055031416589773166250426893334854508042050459589530409549471970181130065249344065660299952105788578302109712857656084514078173241894421066266895973976841953698772794941826027130838159355810252852673961766690367360520625971027937275900019999827781159112085317201208152721821215148906752534119188494274867729285789118690842702655556104177126808383422080886988949175718265180853656843139718259202728026335610057621214062360549500295420808887681202757747946963468449828435327616702187173516433125953228607467272879072412452771331120019628205652283470466367991584118808811537740255330074583563788747553090075943527306201942069951911212892058641513289847774239127314010193962545953518057002698688683053604641355899661097433522112024280775955485069915766948733680443939700202678710970797841819953719087299896601131855393545522872034361771005625228555677864402452904937972695109109937875244064897566962837912380664135188329056547027215709490306187369543864267366375012729390161394020094741797204207748773693076639521391292373851707566732083086657244551550610656975576033779542810504716304194316582231269555780171523544119576018887578096321371159355645296001764937657263256080068589044927738656428127815675376951118537692466126735817141223881364789379351270990365332874613314598489940247287819264367323241484739335386315972185848720039773743846960193576598850669417077006322799537917789174031780215140952203375075920931987990861334635127294605630285474071961562375213980863221560092469316218342283924287131676833669267188864745969133786118806391370921084562232613589897787500897787555950024247977218681404137324146809527187280784836859784677203318233880778431301212620752826014319170429070241279852251798880745350594595524719228428452206509404639225036656108687265279477529125035024760235658637647784199299219845785600120348687834223444624656554633613057680872303960765492677646603555589688597205692229494034491062150724118531778562095348762839932755361591014963301083217141984042470939895351081120072909685239631885626505230773319473541389546041722088120623159475399232102745066403314582554817843367365877751510866540498475857085063275018346607852440326088212155194664068560135559713647288760551684642351450817133057735476617123963936049924491887408974745097204588635414550314956944740752663636996212412187671705756538623931257012362634907883180907121099275940360596371088511808218771500708843291531050714876408086388042857807412101392334097511758597338673329147322870512304418360559511803307017113159904954298264052101908050115743726557364058335626545230560166676115075507577495420093107710895959206337922673028541670584217873312241571904634373617349395068946559204061431269481172235400591314665644821114844436371467175169061946688330440920440673435883391740389082482057964718978150872434901014446023806498760955984601236560412036842138492157020836262960745572519400393121063668742005632247143818726380736937316221579718219215529962322986099791167479458854144641885590212742178706569059709817423310941188783861963693193090604265541253244297313376453177651079767254075219525553557576514611164616122320345839732800980229236838761679679516185201434910465925762402781783028953340328685256684162336277391059807248156752826378254960789283108501663283040383116933776107341122649763025720511592173266179208693247793957536117283718854679978284172023243690465054837477441209274667277084524467716267520183655771352093499749478241995733319560588605568389316405342965638755222816022201926582735782221072070924830268173186966977498323316185739586137042784681315290681903231326244948488141355420013354818172492297383966550891685547721772972627783275279469359866625713292939005181629837878876169678501947248382305793627393251646926136919239264949522198467963434553555826767019328825217591986822262351948342658379316561804186168849489651180986565485999346819027521076144057955413500598986257009716477429682549928488829896859638779245636396440813490906599151986933458355110868587816451086280505656033376645736924361403410383818355916384860692322451638193033416008566656200050422928077419346995507037276440982303943446162209128966849551391211148883449806022560135777671009636674265599224733797618490887048266984004446547368873341468396093170957438126291864454998810083695483056717322318753261169881370609141484157423360935256655163314204481987324304296194942512408554905574486461216415566939188580643003237664536814824487729208872110861497423243190900781658719031154999030678087367341589237720873877103633255478461449357416212545827851387368607515152406603229602188934975135102919004896655380356754041436414602515271345894092317464705331399147492185985519454569808145261849092825744177423132448726564318039073970797533646742085550403491477485305584798084908265438274659233525399076247833589178598726428560532238990304198547532189133056826538426869122417115337711131241949344636513145310571974782550636050637306767778297068973224420847950089622250119285036766777792840136304702512359790705488821415597097642965119973704065745162510214435477648042673466554119633940407478221221736424767949393164976539197706224946612118948804346518692646028509256045096306854988224091484974227017735744256116534027652276063469401435598884661713341535590312146009092338220082189852256898086969497331959875584863262270663433065928894195173755228505257228782837163813368207285799516938491397637743495312499325729004554723439717870911904398514319579621184003595251642748297005138667233681380399209381115511331838357585931425725977926396004298706605336297709235810186697299135871376871432121149537951446344256105552661447900368365675469127649147706046111331242778876285379939771226372444192299248669958710504778911977997143552065748131312937464713162316647820081573572476153532782102962804266814835451027418551467804320503737194293468111586307126712124199145326192579897865535881517724019603518696787557826995092355042464015222469902329778511724233838609208532703787575652482756217952915033894938497347607277843661268561260250790324884723265855102376025169774173564776899056962773156800305372954242134972061743331051938687081064989759756894835536960273920215466962248750021200551667319445329659783985092832844317105605500589853475375584736922978393486000744159271689555875646942204300643951315560988539396578591268120234029126704844189369908614929335224691005428482551852949384580422495687423771030177881223892545396791909450680914255391116435288788032338395261952150016637436644927483406697230687871133334164983432038068927880350643309884454263625203680577868786574552100435930331306121432587448291708975325673801362181319546744099859545600741213984762177414415723689067259646465488611772545111560873211462957539807246818771953996589793991805820485226922715149941582895755859478720818035958317349151883976313107678526928755729892628436028894720375477325464139595697896296930801107679712790936231790605558783287332876707201069572285755565950142464719550337865695328614209448392511928421288648801031736186568994587339427977216630225002971707245275222683221080994223137342088545637432211040835253460917792114327284959528465473772248952509893303724189613009862802814300587759149188226438248024718225640265825974353675507262298951860951289835618760206016442380132686939597680218866219119062525860504641297235035871209385940371426715043903162917555261753883653040290406968911899337990762054891127602339342152348381370484117330618377423390378135544943236317465955445918414199780479625978469561921668823632073543307441491971096333118842427015601841070816286245887985825612328988776388724122552963336113616944777345049743351346979902615787064435929338140940062895560426112799284650448566680813482128157599106237030131031240604351766232396345926582929672472037936724347873674644767541067722459241130017454292149205008846768460812382609656896802427532206749642709985547469900587454983269624960436365686826348295851323993277470883488466882312176234105649786900671242620743572813413484033322691565006852806070672470866556434612444150455336112434184198576351569718572485849040463891183239695902916069536112494732868003306023945787008037682542572418828316495200224638208872283949434395560006392875824455716665406016412305219075995316886798267058341098116582299020592175333197572288756781408234636054731485009517731707285522876993636169588631317351675143159796474277814533594877877911923219981464253105315323179830726209444931013749042158295043091440155165941023562927106636132697948451357162322962659923121662400274787655412941697163847770597172480875877883504243606793479508434036472394660910927817268816571458728254584868186967622158322311958924558024354965576713725566704247248246268445800768905520496312044755709156901828897329455830220749838184044117507075520576396058534936022610379015902190883575046515673224420434726183436514783272002170497490438289842227674765593092934941689009057225520634365760389207588162232243006189106626166098370453335062113364314412154877772731743418676559741076618074640400476193274582606380542177092800143915341389270155004599021683922326641810894951493236467580641792457726276320671628340464474024314222617036381255322323437738981985768087655242281111430712801662574582826375855667266928382395937644542574734965140135579692139819582163530156862413830530635807936258509891736001478768912746966605228597460549967262557399348536911197492582411871154951711758483197880368694003214834969953567308884005647811589171039448819160303259027107095940795088668095133774455131131266585152202767536211634085445639836219525342667502462769181846148566577522922714253962992602716043862268361105778525670130593883849253753107066832602991525939989367634292373797893200146388915281259103962907637553127560596045588513250300174955252732233676442471380435195326329862374362932938982982724976378568898703196093142761683515346390420855299521529901776039183887195989462856899209835921048673026501297663816105972968638087299979817518527676791921497663428809707003870219120063322421391946642493526308271872931653605023128643424444587313072094521220936816975683459187976561477220542676741000910617522698967925886063288325175626118474658499096851820323250615635889113382843785106336445514914305675522736445188034263264847772583779004335068045440544408151399290477666363081326334682318746963804249382933789734716822456477283405648288746295688745004620799050524371715385675041994939742432978960125849833087957933391984329877181794575460115823922641306606506173059707387872019439698002927254138178208121315845602152666121302305344792635119445219770237978551264626322063262399901465386322668177926745468164795603863147242347621672772409190656857135428885822624730769088961711845869092201797368441976945229521633964279754580484604872043825225196284990910486079177321855623479910293105213752193822297383026986877168189291750938488502149872962305593123055140021298303259144601090792503419898439621838984871947031908528479202082797892446249422314206077494614236524626224111903682645650527061262078524347450531849439647441685132551357772710855297561892527511258761142914322288194370688858549109411028321753734608680764490912808225757760856118891298474098390415354478226444557780013085020131937900937009710946690528004903810285396750142093063336365818608912059818251391953439674620170861724105566362227104835049189356699399104228866099875416733653892106108728787845539408329219542810040258889046353197719716225147040169725539989280860096295731163799259431673688598178835346012288237365647879811621308635501283799223144168835939365895159046499533871539130186071279223250864299031471373258711183915746750397156265638128222487886284848576373231855751960928355426440588418917898489594395857306747908099432137547755606621518779940144941926799670381022461790181346667014782644990945099405505164145588360229996268332332000931672123135491608209234379826004328624452631211151794395469749745622793020527835991199534339274671588278984437046485065391119718452106378196433293512274945008440191162088573299560573540397793556494714926048987683653838551493047234807676662393786807746070466529015036061268352294605546741019370047848051258863572502850430185881264485540077323728996912174577503117434764866851229666300692684584026854290667055075317206555808129008892281605755103814727032079244668440734326890533419715829192665514324044056804139535895811630293058590123003646817427927888202720402113215539401566575876413898323673564789158899737126634721525599993181767376399982060275153962539011573219971226703617899910639059236142710005733704609797105050126068753236655996464485521415976960353581624928323461468488010037498496371245644103611512139546943649917326568284905076149416371901157569204869188225831579412842591847330422790307370876331764137462356224858549497301602933317366185469447020868496985016518358475783058495058173461700167762962163713273413098173014582001672810598750174734941856701876896340442273897671532509588152682098440104173570563293404655717203572918544974984430111844738907982320445856151506971124786814617502289904138985174920038196545703326780873519206955684624787433811002923675185591444810635179882320379147586587302224120160315345966446272852021190480156001966149886808837211498087025763458494896835403362163951014743992994324394718907596173149721250282067292351020156511689067548117512423554360195051880907579429694425612631370765800716596360737794924767222519479214810682554176975085811520018709803497880373080411063685094683731423291983966497270947988308407936830376997923075159852436554103831913014974936001804261394594711274878453852474377891603559221603018712450002829172336000727132362457087627966149103992586829179325395908252138025451611691260294270319978979930444160130592824427261438176450682491414015420670781153856081096827094180769410150715065950776415866672803085512632708974415703553261604903569887288145336675425566449781803393123709790804997884481758286666095663796372869844540977111877865378514383738894706237276475573380179504898807805036299419895995918773309077669379741391201972026406581774227882820012061986025113140186056612422865669768538844283954495755253483892320531288687898366666871156982318117872236250362334089583844247586155357400773790748445897786818296602242435752011271568650221366791161204070471545170722494594892097208179790661068302028248373826248127924331490775251291375753172986589020690845019091732389156887509746586828501906712867554860395932152335191702116983771925873796047777978990842468246443733208050568902119181642653256398713407685933437612500057052928268878049570826545193240628666240479714793177500155900211752078634506540539931090634751136366556519003551793912632639492057684458002556454495325618200588810788675271597882074974365244614722894132809421004762335925789199030041500328569535373060693010783744543094286546103995427665206874586811891883069880988241147898383475603268349758412827456282199126280778708616020827007898487260085886305001428588148736678008338006429726747009291254163846040018803469732540106805188607374383121746770379466212364119494988616904196089824914173532056242399954135081045102131601024584950509531351447908104793917364751597023827738544778414720443219270401987550225142680233519181747110931630631918310596308935264679362315401680347620032315279641972911739000882889065019129709595304119692633509387841080013282678976462086222053383073390674892092694500006041432155830031064829567405379802739903642875456650420040395395666340764270948284929676739557449752475291001795472158261257887781587528940518808767955990059483395810467714866228372591095038482277150327723874093967317409179443511766622289850107073485586993491360593349859842756866771770331340253293896290191649180062344513260920771815789788441474618488244475337731202581750555011998570017852753884370581491403259158879921310091332038928055875471894196617336463870886254999173624237645854897295005363641735319036984758467479279589173984849816670002628280881966322225602535460303250100575480671114997760941411410651202388334139873144707465610386081989836818811748751048247593737020924661947035853516919820935252500571872428019582586768931219403640208355869578862867658263735196050585504011415322054556807040467665685620653924029884529153700765180586095579705714693413984554792720598624708853395358929874020586486830754146028644924300545210053346293513276634331089617627572764018301917436732573072841710274910882548755590651563840529314714778733601864285477005484395994294772183041071602092199360617386233864389454155254329658032874907645028866223942366475820489685242303298847506884925062984906329627144526139317027817018072115951882447156739411054431278870165168405596903945569395291028748246193941587148628795170066977657653428030168272267224927532184560017662010809407552819393077251444646698728408461180881607775180103235353382268477007605175826453049762366149422190277033335814307783586718457399116557776430559762204004329687260313806359908242714453436216729941801400672200555777132547849642604826751121302112156909131616159338098357971831041194685483407210386045829799853180222068364651111464369668284880865630987447126333549792300280071612769554017016191370549973628163867222131002095027075818475263853233830143215944491771749902197871715605124627127979218038268750436319273982509594308421421278957295093248491034861724122226070752173378906549376545615025965432667733821614829757269126272660054597807615391889642796458864055461945021372604290503240849807987961161681952624024406427677026084398522992455990082234315000259874841026689180599819075109208689667712435391566810897653424682497609563403353966857457657372948028280428990491735167440889326497234030092010110784607439436499384520599126524919034907859009451260961649919689268981005140403291810743060183169190872024444388489403770922439960494976875672946704365124934872651943783832000031559166636113423061070374264623506311432352154105868334673737012161818916572301165554144328052100908328828224238367391538293124754790874772649537457060947828445044342290208346081007572922166622098811139307880660600071996215833885874415119494831880473156479699433477313849756617223498351735845822989417135654878683357170882482295031590087316218559364619301195737218446109000958210703444365732798187296100865622847178419507716618879169327829269610496323553029476506021162654191647281039517782620133380086622041479522709607610954531868677888326405495766539253456155291333408944722073644558881030702961026552042057191691983978040157228697501252314891999493744325300291166958866386435460706766786177689739090645898961189760455632305061030227389513190234075139631340399088900616895053002827340082533189155361827930869114611639927615922199444591618162578531394978348418890610957811175639847360936931793501509640303451175798166375917047045944476705261134651075131996609437332442930187919762136302244751875193042753564276596549055575434169863848473777814184099690880347360019633630147733967710246753071487357231592511478634333663941202213392002134030192426525849461618595091595854860777772532915521489475706304590012836017726585113075128764353187617676291386504052113123876671696996164340930635304188292312787831303577531724602248034061009256678577881401003486155824858850351482291074242281746831658719654711081492886181978088814231440965698974565493059671124579579183556182590291356628163691761212930097325020616253731166656941187251688503260894318474138863266761306986094891763259740620224559575598290974610686120486189777235159133120730775245133047259472690162424262896248765005636365221240152223323095403461947924360201740563592590627263461900738021714456776260344011420553361741193358338235968817659681818654241670669813384620989260531999071658690231685902534495442469557536131572105297711130752623850698581764094819776645566471811972905732731850347845883682276104328743781619017797692527755172380248374617901395887979360379898973661604980832964512128242539464382566498006979283195519780243316354457841439106764275671196176030178534129322731365264812065331666105641517275864242588242447163045624782453583324313799167548230430857476238420074017151649142019706941815762031153226465434698711852215659379594468314242361505421335317815232834564042986110009217020508675284631605847419682515696673868479139495289961802230683174502914373702103751421527695790391060238648626418353805778742634801776291669925921286006491493010102973983409748593937865477831098609054061822296213901908339477107530756122391950744241129687637414935366098736815935227582965972997672594518271961380213157936527777032858793684712693628309413217257212717167101460758388891663023653857073100433521719159675031643313043105451269639148665863048926596206214316724594509614121616408811393907670440499453650992925159049812676647952016592422223774145952460995675252250816794361342541150636805322766800462971653132861707340124961422970377590839588840483375994080312179486954718532147964398961666346426622495764546467696318261411001038589231395825833733964824571485672431342596026025127684593900137312979897570444671228568871303239821383571809133516324418349775611482017208115009820768373705632392533669971219223127791426745911460343768578757304927896835508340920175348009491897729149091212825176121069250541153085946941143768838756945350195042440222864587538898826325639547690003535278483151259528616519355616280793512907273229321402414603389593980431669636746353780121458272817106112198854908232140995432711146133341848434230899068814555314313110422271499464937657707666381608452733144997482379254577916342097023524350616266550619720239576523197107922541129313452395864981803970008514630522173221369907012445745965514909375983353856819876425205207292772511393486693304607313525159003817853552606718069845243521663536335377452153663141961453221127143566206021113536475834573615980153501740572216786632457402127127871582176488360886880442016245996787450844455777836744123126074951404410383793092881137124926650736412623158330301411422561770613827834319327218859194753398952195772655859409671930137266011320130650280639718883112936164422737553256473182785741973260087699164364340312229079734008468516565362160555620338958809694573780875490104697982953933755384635224534925629344872554475203273165482628052468107518174470433919840198638326402975033613187358721967553896665704428541594942447047488640350496808699188461437883281397890169422993984581405440533873334055861992801908092273645741316482721242822336393580461831404368928234671902537274872975540726061379625198391790606170536651209413639724173086696618309952846918793316016572737923556914981078883353927617795872316849772485708225600615049169015071345312462913715049069903857797006667914712186596270444448311032233350430844075610274596496375808503929059095561910057503512738104489621650641890401346323658174907099852540344401700185241899352293501316269129487301410655175125377865995278370058503284141741411905986334795814631493905286267801047790343719398203774433905289243304164106866816250031613853047842612356727249488053493774827841914418844470280082935396362871175442549133380385561178843160819334117038030406693887999799921246583296556422922605894235998893876777129049616827860883312331965298768173288991160377078649882487409638662246414665309269567373897397975781340770995920536011579578638483711718864432040272791727691025282562417449141542966897921479983341323755869642435888041053884101149175634919134908706632705265433746709376203569534981582162195404842822771729409158638103887083420520643697652619120023222277884906289800887762757220899024985502589521655015879553169075250283096539039645062698161599867659961999077441764578520050974128027760666870384125817542000579693037996747494827071274510882666096020739834713088475050962076172149053588810605311547497134784973118470954963917378374804893820771154801253953847087892761206080463295810414155055735451489936626164737121894292068940783524012015010868172293851359936870753667608415597457417009459510909292854696691532577845078559133087150673158712157622659319558092542653226970735635401804472749905314498036776146743188326190938079613156313797469075028504503041167605703583525919326180051039565641426472665831654612443088199536969568938768215317195727885615256682399527244866337148550368118193193848818192575702432951909686877612815295546179068395421837761101402429986909735341928876570921829677820898454458832801978801154894106505505978581092144682224958196802314392284926881815431797519529877781000467058909329190829349886960750500852364549752971577667110735010176481932560647611963509886835232597436515348871828342636375668827207289838557814634809176532119058381148282314517774473366921162369692235527507271325187828594210989989094541941237575337857990559872955436649098972514267297964892432546392100233525154897321096514977206105855111463978465567333863759194591177672550757570726722395300551117805838876516665869289151632227716615882029969311708825839921591398257782642998927483811341799436753500888321771407227922475887710911946102512420619631591433637559258939350595638103113537671741763146171124314014582286027416011958745847652913096627616606008605745237373039353370317073933593311639246668765637748905641572789777680956511361784941396376529230699683371429259365108759309096106248207771311932911105359673889984597208192311051417583466267120645130035444909256585001093175834499698592048766660898544542898774112589948051716042401164217213938162348568486692875690558766828715712778991859062507408310183260057369384122555317603037831490661729926396414966257254921657958520049297015700673426391576462246845409384351138629623549094366707241909027187534335159026552513972835872729262390855046410456403298294429078366648209243535925174650186515145767558055024204185567137631534696082879208722162209559949763421497859526643474000039137730155641759389069415342706174580440275409256788306026603909628458376284829665037728369280251577319526004947086324264515732006858320805756702521249358003977081727992054686055223821776386523577865928947332101487024803274035306195358935486977110429332240299620082667289257476273772450906464730887629800210231455750369867656326228434583259524327730910003261954534842659134448453525628024691097306123868226598363317563219291932477067191530687219856327045090636128889925603723764860312107555044633709844169499195892606567300841552291121493588427543005656875526746035591032142126088850709136695099927078506992438958918268144958307331995817742348086519700049253642436396954966687779709657344607321990327561980000525092200874996630152524336096476452623642819264408669638108794526826109840930245491346741540114303803489109090085130410065501175522714864779102126878637785840314884037832477437886319679928727201121784489859254474332150505013365438447186665327105743697620302935965512758462936897466388305490463734279307430893029334029204338129352324527935540919940903975866447427623785755412139220622616529437952654446477513356708901758873996462486135765359862142402401097263945386009988947296132029302844231849743776777515919716139438167509614214499504794563785236041055836999957223273681215415595235061761095451484586084018601567066619021184123012798806927899482765047258253334718009422204612266001365105269523800402095586637820270075844529635263158607745183329027247422351025442484141694523503677743403535599389239917483068941065672352123005264538027185737221995222833382171035474329776087747562588680579048101808611771307984067882065497245223966352891796453961995406820679360740166963080219529358026826052335429107341856429136428867094337956188349674108817864689915883140002175189039731572821135030188484113940061897032194479543187535245028833639985789669540751194135073595137311247998942300506935000482422750396682489694661299484115437336653256084844819217704831061300371896432218403994993441437055372021272138211451925476500763146907279630917437270049788982695318026330110093936303118315029132777731450908553955813093664362897687871995150314541501600107168270396206429418853605678532263634351289389763489192756056586459918760109019828020683267377987108613705615270902979061289396880558441952792497752091462521142174434506191015291376017821169128267334617765884943048192861951220680029959120302674388828130687208759011571399005014396345687935825079580359028919153244658474298417661246510773138590862348491543104482766373574337518710841732182215929403862064398607612539042255493309244824973664950667460546565986717528136940078871557092762575962281751963923123925331859903086526450661989115751303012696357988570197712815688178098344508936781018159760840866687808203777281189106443134031827405117226565859625987565830908090987129837840228526994526917670679158373606850763301092791681764857573190981406261558245171360216340700289790555548466116377303275070352644304528836256052456763779644276189831772990198536473612653777299750262709699931773412563778126878934396006218411413626774793289505488596933788065572513702457533667490298370886850451750223332479814666453076049084602339623877098084941755898162032800129744969927522893953052378275913775782699377439720607037615371753857625551550338082209437892990713596672386373056920381429684802795768139604110753802158253694126774046694008256640079981697082600650554297344685067148673028366673374016019403035637045172456328279514550432252921149457640863800040807384915166976860019668075176299176082592507293283954360757513609410706116781108040843856687955162779586549778374011595498863127970423164378137073790152394209495930692245376679758816714825429507136597700967847852325273414461280827067186465857831643538973010395107162979414173370264357226742418348811932197465410528016991032036653843292083278932407120481448551264585970885871612359344063217114143722775793586522808199422537660621501177731803727969749772128281904992692445153807403473919894977812322052913230067212362284911124159756564699923613389885821459401686116399682582101163215337183230063886318656651928303668562926495206936407050795835302937198984052713901892169485836089041328022709420127109432573996945748038253348415467897931912567836399051965738037888702543019866828969268744846214122341955535812564249195687723887676720608162780524015824800124496882908084560456334002177077521034332918339781463958741058869208616435836131550825852785418722624305067167125595868297339829343137668532581595545608925001161978543312030846373622501227129141194355568641745787012472562919569923559441282620422529260723848532051242590275072080633244034015579385112041608135128969993075900423638347859220525684845566199211774909945216438717759673803287956102561493883086039643225988386382860099281313646057405604783636334212984947390854184268548256918749784755943980117266710850314454974618561211050409074458749619393578275285248422930909965518575446565158252005686127333320978156768064373189403305873070585742732547144448059420316262665981883642435038028549558329011649827257260676031651212280996905618921012782519942556399838658678749576520513808984482899340104618280068094631862063471908662542581681094048045317977448332612189464547111191453830020436572857215982600807980700162523351982401727482047385092671168523888804356608200837147400191423463478469655425844971738745921067148479645816899381912190939538637045314914117026930115500849962523254750953349714918645997620217754502372792662519861798045668537616309650869171359792769279578991314373800692226576455931709008796345664138663522270431272722781349442693275205956237522381404478506160678184288186641929000527473587823964581865879199087794684297443732252873118620700736765273162933049123817137402474533952844094521630447566737297520997202908501472358127747696857028557847230288385226524474719214098945765884023035952579533127147901240485729620894087998500489026261432049535275180682094321799275988453655556262336088656287599081880718046963672897372341996123689197233806268713349273744613880144046729438434767441050667924647864807437915596765665281910656139988581691347602494457195990821529762989376895295318048683858650871882388665940217751910891966834757272908716907044377985201487840012073273730822847206404610084978271987526263640530944538645480206765791387050597840058050598878854183527063896932782742776054554549359282162420139569435453735999397063824274678680114070411230028646964326111896611617101133477900739094895993311649947214944230147788746659996748433620600459900540352614130665226717748244794441638377001987808922963416170274929952975896881852624639604470546998229707396138641369440402744554813654848239229027314429815486152040134097388130939835644718828249978894776127473161805833305987827891071188986843460127659422967504983998664273771147108104800743118625201204145641858762203831787880215386070788190768532718476341741990455131616479557501164736466593886831939169899338644003513527848643072282178228851841947763658307089344957059376202358447501363472525056903011441343109421458229699391241477443454879886065083088644944393161606726131050923494010667986354117815086302420156898610765640681807410690708895849243994706490456545552611252799691279095622683303966919047021011876721276842246165327156413896140828005318396145824583080181895823234059121010154361160805237302717781367610590411727569108740337821489905135840178101915379478209634998474795860816792570653638149556091438463856975151812172686740198439077510176542369440750849987906984999420674498557503832449532955323929543709901794127178694487137608711876261999724230777589654881120904142954076606945582137821500629407229549336832003072313119902556267561607299140540876055615329766704322153114297545241460967401589976989574066219160883995286446064463310028325940432764580069551186366973014811669729123771185751569071820314021626793619900427113444114447659964447282378930721750076852585563270484604835424718874029382449261826573066398831222937865139428810685285855011469623947825853093655639453771784130440748102658118875077380811277606889544843825105432164200219977117784602206207887978870340988562297366968502945714970026403698024708714132526043341159778147155361383585701862244775512047259189071762240142469252177414239645850866394841292595218692762013856459641499246253614829643981916552033089700147139468346224958970145913154736454401112040458947799258174118894084265558694557692865860707442265632639398239347998269323676583148961586812539175243738528161441895248350035777373477465051020987690759229862185612091560319169301237300224118351817420605392691476059274742421492465090421684030159552742078271811552363027016741143219232959662621914716174104823032213967179918842674127541697492028259510758409690596137891255797679930309735941655739335916713712859823227390106320478548907145819809799495891984115532384666523736452749951354022260882850728648339014954589318633064700040745106342185249728088555239742342195122298209993326654862314069251370698005809979718348811748660974508939124351064062972930534167711497187657288259075611758261039355618423925404804138892741355091246990482394604051923001464904661847408671466501236754416899873653182972551728321493419270878215941098187593783345102917056687840011788979800230070118975274812426354876549532982357722953452712763411837025187869528288178888001333818024385401068601816209578886698751661628462535065633685524203597529887808055239743087197768040801719221828866298435951696858161307721998961069129486580057740357049376954408526155863599005949497039256070240282323425292987597390071408829730247319340661631660925883323483115391876867314072468961606644468420590904608245074822924023886112625425878761795047227249440452919294885912033065072173677883672356511536662208551159628511597109901875891312622304737363907877570257406872491057898217595183994800418471693778675065273072871336281601350407703085213592129776476684002450462825878885698662557659528181291938578620006341452488941123740675809478466232036250582087791421989021018296035566843355900676203720954453715177536153570987084844425141174228109126551226116621048077457560451636617702132880186573189375709323700019035672395618332547198512475068345393409765555293777618818619965719369275492000735260975538264464795948770792913634701038953504104297034123294129191745695899191702013355519794571597066198343496363563878319570795557657150056043284544828964388464199176250847435703259762161403290676471958348716857666500815874292895646569255683149081485736678539523747233903356611313237229071740175045778023199164390320970689193592235956430220183903663234842143914930796851997359571342280017620550931602850300722322797479366273870876784262890969690348342916594111530712392124137605239673192235744908559425214995488239497152838907869725363628657690550344325882506948133433479510315809502834804801096633663614433012542375860668769633290837825215341180168544730637743162315431551396768938198797865418624894651313376525807471555331519716470355907357897286614091033422708899330636003867101392902323564873797955661081112320920568345372397474877122553637969663379447788648199392320226349266062922475813074758075893220980636153952195964789046875332722721021674449736230020293230335578900601433751138419838331176456378036331576070624599032789019631939554273524485458029410193159293287784512465773497222736455506439738936235157650227842140482002086459920010575448487057397708110496449514349276577854780621185779141770686207528473494207232654983774331943407004039048512373914904471134458970743089370304927257874131636625415585765233575699170107991160878420731639139980607737915369762939517901770356606480825977810575619498681506774828947308789954625323546785680090548162013116844728763247323511030839355016052128140260339147974216888713463617344086767954802572580022539609758252375137198360294721350972225766686856588694333860293802333717059207878822428995983597496747405844471305238079039539172344356480651047996031733394254205392498129526551327081741103455560284165007893167252973622144608812680532945654473410047601286843054518922804573061183974945963313914275925578395594883621852069198938167002227129110741935404537811444324908293504356760841689626318388690082384229862221028407371116697509892034108012061708885751133940483943456760841560037460320100011984240941919008687197956388618507157769197782551537076525937092418564865432500619429645063834868391982782704695296559318090974610323658582708644728745270719606142924226666016198073107798326570745935049387239830462979939705739250281723353869948302104770918107976991677512488949273745377209266953719265060988491832748657598249592119353828414000145418789605068280945279378652093001778742820289528676203117980257374463582130776628608834080348601470209086454190959847131315959245793656613784098810221330012972992537633989022631278385225517855071447824660910311406546868657705963747520899986187296915566414033303683621406561632059934155076253341740045969742039821587412214574491224745429146757496053228929409662897209166641292941340490721854851362542155340626044939415035477954820846164332973850192968186871971753799644434685825970174160393950048611745877971019955948330269517965475461354842943344339347958213442159785867215196952921133115904194217351712334003206183465281040385919076196876207528956341604329517167295323994851954069484097859106827844743072875816412137210084148118677642079601955486502653046603429359743170063856981267515603364183502174214245925593004828566644494450737710141510908906327827822702995158063215921180357318391319588091389270179331831931497705482230690675981423946197821589915901246476513508808886178554525809878030226271419125902584752949792326434194146304337039602536612847120415470175831083219480930045634540985915614174092278635909667429248724191137216571379367062846299865122342390161629533763972746790726432867768003201853006256292800750608082953649105442829059609590094457273449382643051201064680303374993919880696590369944621447021751317335246613757426452356594306253464917797808036462480467066284604422786908457376042093111769904397141671830138449124857349579691313582093841218324617000732204841255833176135042088827943435359171603140111780662006321996186204713693635109641088789969011506634668055417157125662337497486348921522805383071978417402724780504611327176204667848088309765329549523890859431415981533856668066908854775994967498991225360667395526058588530741233976056764626001845351214959122149753500246043254229620375832797541307302718923720199671548496828987416108341811365741082569660936886175851227055059653291060331596834879831983639951529181964904865267786442106844619538769990755915001450402596483130707144497765839278931421256029780466060507527987444878848984501710065890341807823489447276946595539016750914897318868387870735859739518473977139477996255621872933419058668653463975782631387077722721399831210591155889216788725302963578303453608752475256872727635829904089422107384373216126332173642196702701311520509672937982563139093534342201469823629761635049323267218337681113537957586177864951297962886538174610602736590322660287357118318778572056609860403356874131490902971944865436218744560292058821141662588014289496898179189571978649414308331402923935352866590570776372778376207660036437807077235081707159507603142505647548300637316968121804892693010807838511776738750901176133416339021353897733267990102171117205718928739860341930912482834061609754057487188725934450081535192827948301950038740276702991527161292873351921513398977434601646451187625471494346030448973110902532658837515368861965389254835644095463072759409857877515635565538392063147058337088739376703983049169076706853870914512834484802382899339997733579324830640386620024944397947461949808782258298885545180436511700251857440099021051474175164085408897612817216734904778621407172149477764645694650658922739388159533125452120589722742933324584968181609048356963246324595069328618100286329209379804232318347968626785213893295754144736033130595337734760326971685957265497892278207788086295539276106130630578080008159324398027586468482512863299455233380390700005026736697494090265316968835850083508229401068154343582276407391253271503775663839348047092192016928243608360858739630704839460010969982354555944645370751061924652474975890253651367815968258908743082833177822000415314278663406959351211879634544392972403987465624077766614360391457082815175398456585123455034597356431059429111070792839906733820947417523290149181737206860158205437354523947022388185869751386618991987105034301909515530514715954288105671281482629927847521202291483673033391520510294907080333768255040828533388177187913674270303394922163912606757258426131274191393095943411959380355707850851048264259973100557072433735668388390384439761993037397424030425816602258204470755937989581053768270062563658700620476869981097082434531178377264667023917625973823880067631414285765853001571305368889163564675065961004667792489390976535315249328647525510871655137655342616264828466526740940654127221922234889584828989354945405246131997092412938097089745226998364019557680001380821210674278881816057947731931099225393947640225491489951011943983320664009424257481966382714269468286643995083913073576042750273284714917288703675846981032341385437722787552613555468077275280519373833767661735448472378992206722060033858091291624610882554783275148107779726176982854013430847786750152801682260203332276833019016581180928046062207927879452788413604783557573212260202914110236144126136902968697856927457485088070253258825180359856994349236199218040778128227921071579694143461015514027852582099568019102915082756815731525787411156216172243286684028386094506106486807790319785381269222673388772479032975317750616141295514008030171507262727129661891424547491316231391122087327615966590532078223548391749233227606420797817468640182497721562451119250886817125899893846998679073633907579805931144454346403423262346833086182427014215087375411310819147748186544257587971135946330020345840089920603222837405304337638678895839184809135316046219021362582959829523737393143958430442846241322208314113012592833777015729502192424494152983107809627986090797531854925331628498968139445187764970627083169018003986096027316256217619480669447670954935078168530086479285791021289352148095860505810504124222850743612399070356300644314225477350929020791452868387177904522683010727208865444502832028542163257457377024674401125585942436809092753537353425030292884075287308319707559219013909982741400039887947916242912339278030314394417593959460011226880203471925501754787422437764443969753682933437754129351442358745173522897483536143465954383851960260550299909522650885484992963076599696619792823230694813976472393391124396067431692074113151450589554870448486049227441367476784137038237126225047397972616846435862412253596149068190167159751375504293563446602630160239020891331892847914903354689576152351261256237272226369828331727529079714708966271356484272265487174487141349254800756031807917195210692415477043957294734851651462278869866023565934948126152326603188037331256112543144620634439396050896717552092216598446185757404201868338886837804035460720179189897327464166720673665318797159209543913260470772125483193926834702023400167451579512900281167712484596276401023974701875607636247271913810236329442551426485075931406361302668139947465475720752614158703187291294071983641075784291567864740175653724232226800059144626618156412610738224611084448946150623220029324473143140944936738007712334454968798519394959515192096480490791789698870765590165786855917033203681614944578909183027911547999481457201048290565881297173854919622616406011410169254732917455248396026884299644561126443429578563374358514967386850562223251601384793420731920785671811102613432902343057515492918180533100981667318228104694379953881620004644250975685426802038874911576545988753397869379236619935763672159880951402185567877824665066096845697371172316843147590831542446189399640327056753003469400975422820659212617514166137699555830532299450270879275444464294310725191837650061925566936610247413727532726673984842789189732947951510755293521289228311321239196893452818800753198584379969819441444661189183550056666589245334049316400810967113534714570691181403021808259551230885629950112291931938241542872557739677360513166019103213844469340859307297997007861539964578402426634104792024837437357784670192418593024685395875170596385163619409352480567474960972892276958195634394954630021109833056385178625457920286341216504083081896884809325542569854196028259820626022618681682181052705506615092415736424597993620680309716976388226984503450127358843236915226098880732458725731798263328472031164133086689866610324576956378867370518536085869813612163922213164438940964085151518845120927990242735938838580593998095699620707368498360576990085534164337078515168238296470473008488748037227156405857037283154014020566047886342568680272853616786873119924577266225673737389598430727200666415258110833789047391117109847055951763082452082226858528312980814177516301558776035533802319518446193249976154912138663581700455119822280163853437854189975249141015108882996432514670040185956794563472867638400137413042327374670040352656221594186248047568300338209600227899681564281000135522248985625873463816589142874881131457172104551776780835010771474798295285553156653615123015344066560173891879191234195242889760840277024123858237154139510930900111733798738480961187708734521355471564369914347245812522668550031139449128505183638288443397011201644375195291721186648603488521430526321377250242035210499077560642085987144498605166029809124454129502934239297245648439286745633167926431455816818339910256371502351931044687313265050401128078408120449006844251076833056549458766167837697809237714339272783477881044378079300426357264411003727494659977633608606303741695032276641488221874056141682610192765513807493546216230170107398971865913311009572141138958949847740256632602530033806763603599923743718528000268997593399646881513351922356066076044307257754898140523955636243666195542646903804989029150856762560845816515566747989809698290717301553840864133079759898785389978344718016498201438871534053315044137798697769434457695528971289735899443976185920304287738997622640803551612956811046499017598410657122848963264001010021567704571746594405801803213776572988182566075346365517413597636911773349190048041200026836358338483683364336450133452949637696625829680800122733896861053333828237775768000331542512574368553150546714764482812407273028809136184884864080843127098274912069365743301696727397165240379344920620407259762305864049963584886103636748338018890693922161698252701116876494472488328213291266128688088323983525968481858268013516663463343823721884336311244110231802908473444430894633007987802050637101508522284785581448317595008700250636459621006984791613021285030059082415734606240828553000132876633382047213688546816377738984906881007777270620169341290144704304153201301507992966904509631744272163668971342377037513825629763235092631086635017693504677496434532465250917078860134292791665327142552868332530673633160977381088206336059372050810200576760429289916393082209894774587141113007900545441462117630102975322818711080277351069098771268224703883972416782364330515685507229319284728061628527761659845125234085080483391994992975811268930323336909386926683506866370869542449997808964569348167892888962763898831664549003213867816778130268501321323851766665858311564903002298570851740435246468784177800194419304436325973552353698595451365819045257420341937390133809064191553763358868987069343573534214672306093029576086743808155792125624210563975565861693481947116077617222984745545666445536808179976145532824661807448243799035807309949388169781920905945574617330155864781999190521661180660919332369756758410346955434246882994570724729637805801333772475134503599364202626849966812107624220808494276295863640916742345530159599344777198514782670558426671833582100871701835531362521548579459784424400226199062336178646960898178438196986757319058116621411718746351130058564899096819298298684647619529152572017775799055754660424842994713840768090848090235480137631165755150099399601002360048447273081970967605197702638795313460274836771877285369105560457587468018120606201326146952235690618477903594510814450080331302433729436199595161608671616853360413098544378210402130958364259965860475429412561123137543632222151636321777404396885390107639295341946674484169801781405569922953211014798808194956981979535921175105983600498231657000685780093815018566946713443657662407549513827806838778778020396087751909055662232038765443479022247780810176421676879973395349906660504869581306788130263352390218222091370144612481546255010111256882540482840186432236135526943992994506811431348221363675113257362325451660925066931597512445778471889944024867104087680755276126311635959303517709851087238407251427573887813865581798223203708057779602538757636330127440297083370987010611485042599970379090845061231860105481447376473737034644262677929688472772857034956126038124424194558306082745450368621798346547823072548247006530680329709837323160792835246335041780480551357025016997436768349117462818206928112154138258218759433820383548478505517798963842956213499534150109624927019163511324471465296125271839994936252467849392449228223339915269994641789716692449098254012964947291161100669850665417020420940154350212333155284617437516563604208619242637477114481855971734777848996825229371642370300999739037566265910346159310940665934478406978742067761334204004456134589938974564031825302163809951807658745761570967267347478747833272123507249720395943488917293584800955320673796130276186705235298844491580166190638055133132674852202019844078204152227235938510154814351806142870206836423104204313420967913820291024644089056148849196584490635574295988271779995168209000595483299895284528576888087285510320576063625122458037548950724700756132857362134729360845182089948444422888585508535598871587750138636359987359094587114978539916511968670645289613931857604584352983521544773873736697780108570679638679484625549210243866087356251607650272833218164657662966698370725589491688463322062589334794649302622328300540174443520523977102046292744680029819585361476000695143361097622877408561849899446961697281145802523032346622367386761296306610070874888670265925467288205635012504097583437443309776095103188395528226639200891783090803085437474711775779872950523238992390722422629610967854030317573923546684652126137073535979361754119348086984641748317751486512054549288759685603817974192471213584640879004163061358233758730957155476639573178901071045434910874665391662970289097290173658373614892829299169845256243318522406478318405724555152089971590915094634574069608113359885960660034898426360813957594360519426186370031199324467366497498187633734037905950872314078408765587851045775222917305736315181116804505498623602567801426371287463224448076238632566793669400962423656776866737136138486118170234744378967021629348060318973012584030986796896200275396588410499901374165501319664929561327966568185210666860409113640032483790789295972096284672057289754080381212276498457978732052418789438380299104326650897093099116669803793540900838567992429421829224519018034645902047526038069114596971921663738820102986027183945127508340609997904120926302022764098656111673918872997570757030427566221629300096133609248715857738703955400441810857682085911886051850541757557693939705121369191047965716356987996637830467965946869691578330435234304430325646498971319280336454791931174488125670536848209309556539609431588495621654156162900127055243203002202710957765368755117067903662112709294286367708011841478378382951115936893024729723190737172162525088814201692573840583563347949499055372846556671164076050302877783478646237814898902966463884534230670382525428350677766194658032980572841043346555434510887131362336120948845802955702585201766172898001328639740303944232159510318828083641149911003779383700106542505536373729608896024632573583061300726849806460370664283999052010999699487431826040732454018030527891569539271192601593040960423748999739222864205650405420134508769299738276920336528754793760671845698254468099066964378484680028006222552585873866623597659178286767784335606226148636778142834063749282512201095632105745748919433069527467281064369092204088969393233591995764925303113503712381473627787505904816664100405800943674360549033152380998914775288397815631902263175227599584875986988677473271067463468345784248260708661960143456163558692043246451589826820163533199273472761553048618373342642985334799393608692612664637191740657893691852155024853031936859137695606698441472695307222826571847093570281865765606181323838818894097693560233265124030415454688140402827956077048332069738789105024162292990376521560619929721331841519096298307836156725687627171863067079405273243598068744141606582348607283877791864619736126111523376515854960979604209865865066418287191430760930758363334961398100853835667650185360956470198917550359767883956672747312337207519160700509928386900244628745903707718197718145861326427313463589962202247291284694461016532177897331012568966619326381376388842944408269834651171999064718528341027125169134796072114389814984782249354510834004806875594836639051598741717057466367248058977140016312017457216051452903216192921823533704231652391571295028850463456676470174441494540914301842225489778436394847806358052743557140693963233764495560359316889373352259270304996435466306053035892793707173880447539298256202396752100116818058647446399808198464359072948443528391863062488509586773536144290690488628425283641522338536646403484714401964463819418872559081271501290481581969086428521732697098926073640617009003700296317762767981061004740932314511202199681362784620961773111589804378882980206840436687203760934231421260912754325908848632275914000966198127653157994104275379853879325062679230334874790282999425247891697628710065544940367608432298426307380715750701364990224807881027727573836066552778263587124937933358700339781008031340901725110787821919818335561477712868570967562825041754085357486861098936224286313013992397152786996496219604439340471832740824755472996762221684505979316861475833889660164690686611522739843871726882597112848562536130852296101976817566467732839618033768517022129885424734693260042024830480598366268366466006449811296090507055575295096176710396123678871356426226179800237466141585249516484510126356078038736325863158128444273740258445087046422295563734669936097354093146943171069044747407427861719829895705833350893475779837931291841818851601625617661514827806553380707874084579613819477678366607618252092088955089918815623520718309679470265795420225110244105659019367158240412867485984628351184656452219898369447441742762168335331652289898435621906465972415771855230411988126274366125354961178525875570719988819013564100170783064391392815624471332884031306551734780450494904219667465869347285679552382027633138796600644933883373995244503283807435580536058657701022391209308350043478422218494004506078766715424918325199852973199173492189722645103548907257959566587935903908533324742637653798671327585859190890223378532262429673759199572958214122651563031565234584564614528904611928239354429992714221189382920069388080032347957642979580782444870358137170083330662975568571521212666335233263313057334081677880830794233563374374440209366229801214377530716485851967515293301106878406678114892838664970721068509190981522961838534189650873973442177525637644740657414319341436012738539628231197086129674794601572468789984222105164490284974019231817684707291176673549196729978314962088833959912971351156167294408328586999774411480315586476256247062679045563997103454050187675925786928803118034509108002762677049044001267598724984430745879728169778069396692237657257878113021368771498361197256815578924469280467918681144849961632697606433891088433696361193272974884564373829522299783508167817425155891333858982824130248875029664221997392615890901227172001626384668496388345639744423841327524596637121822261344543809399164920662749017587578740057804925200734144694756075893531692874089916660028665212355247680048407690924786734693559335884813719977813671056733057732042735645108928230443790923631801763277662510618626789613768809261700485664156411301937434186242113186600225667978064201128280079139421131563278985935109134598830930840732863607269341730153955182709287745653461634662452078010420513122261911621486650052787513962133053900615152907542529938297400198291901798057536973966464750430996884011288400244418980157692599967679597182289117488827913710233103280098870997587641363584820972935070267933353679010357659360662245100136650389024176269279679174310821410858575294982317530122696136738626928433510090182955984151995866914012779072253078554247535385838389064127772813839731195801035861058718003065745977011891769847007310778662218777068284596303375391406928577635551698972387026182536851999990888847650156868173241011548258896114891353863559183189566643666722272931788890792240793205429875677699207419366532599281512966781056533987624539672160212389432496710937217674620033413169718127672269083921282880585129054045035847345167627579993215466939654672978659516112029255830963471671289966780694499462830739881934711566765859981670473494185864407210044691061600950515538970133867518644427516816880284793378945415867516271370753277280020328570882603457010682925857971600171287168156582689474769130314780582932684964125913413913921003500482881288403417094070007827099942208220124856805038900332184618248246323282176615580278648257538367597906041989249611000353615139707981592628502380914402371319653824305430441583861013020848287964944653544021671356044172806869995724899389929721008350378382837886439690122556035465475888233260025502704149279806287247212382634793476272854110861281347424473457130161214410195989868371844585901896575819332502925821877548350158577970637317077008085675451832067249034949176488748980190996222383604565579311973396149164613952784904936418486845865255128455301167610035667984001616050003720179742789145447320526199121642990239230544981294348334127981735092597393671225137642623107123626217146418298091405972995635669178984287405200458970158481629847872829654545995424435016734971300465079580184837653191991314428429242236028833888427696717548557135158950988894183391203879458784197219814151086442575555194333742053125988216023696851103691226379229564597574084628133637923160855799045534645315995876769853194394267379198932644012505755144056291794720710838916552518586473016565189699218274971924184605965924900216364039062841536474784127024672810132680134653606487827567142065645604159249964721245419420209552272411207989781314490318285983755291990747303787601164333197711153650048554084945412482030816224159125575271727068905782219592220460645884155907580382037595149305749522768716172645023072832622930807080803027653622335976920402382420322277667569959431013851305415378844281825761269003640172309273334774066984488110286453175574705466278571038388165664310068715258159396685460158740091922661189492694894066113742110202573052248549678748479077463618269836578173853126849166612645244586639659269903659109541557715862106064301467198950994743595237057126884267402438827160380860772819949222723388683253264810549570313847321473584448756462126313433993546598720477305192540122959247887209873915912021814438596141052780324440363499391760152184448336486435922113858151312493415155306069434646653702791633416040214738254502183034578258359997801474893854370949382397259879018866202075586083397759930791841344881219757454987680438534917018118005458923074849617269847239535472337536881725668115427019592314899196880428851577582128825619845758109754102612743369273025007101336505837728900921208761896200288505268366834104243180653891172620985928869391407732996199670218964158858260202620798652647418061875476702089768536785766851522660485091817219913481041923373709255606609684728126607848013452346536495848206050100274848693362559514611902552035108053343437524330731852262143239355870351840810043458527545970239300433143901962464493198966281720596389643252192373119882272308910628605060943803826917581540373369586524308024815040107822150536801013395851131941738318435111593067828298351052293292253890347422611667195307600898785464358406777194505364696646509941805046112955321202800584370748109442678485612765059910559191987340438901221768827074896996918649204495610561576232417020386023200118324020690121577036180231922330723652019915320004748764779672352079834345714893722373605168675892251524190409827005401838950411791298746203087640551953139611569442545063682391767602027446402005066609273439348626805533516735939823864313520064161447882601027432576109118134530973038392450799096538851359875154720715228695113853261915775950417684877476384602641039362518503241931558294026272458948265335647894465605553364082477893778069252644322434524122937383233035887854707088810129365591885144037783599012354193946446059024315558622538036513511109464596100364311795137879320495589876918207796411123941551304599189297660383875179454039683474841290965123491158354805710939048190502526360565892092812456092022850604635666205828720513985232123036700301034390045417373592454934020807039536441211356162184459696490514406241436935751343242631137018414152248788607046496361325044419097629532800281891161317354412310963429551714379287868809361301179020563075518581165660765806532477267240299757334149158431940071349628580475308665135431255935372678125746928330144541504426764136814480920763168123421083594392421359711468685979800170705848883316836507895574390373653666939150983870755979910380161308393872037092201575777510565767060748709307389425956445674547706132477632364665701785676933580584298743218716259495660303435865333317657919376819094970815916744216285227296032159744527672495813431706547304561423099251903255657440204172975318892648377774259348981099914895758835163669358268853041800955892629390000027578917997593480982019968936229449773022965696427371672771315775620833954109630451089852230768902260685899046215973944129030565474693360176346702675434308040471405280397366299823277296397923689760912503916376853846947467293508940611806428744255415735811603102260337016493884062120625933943406586955468630655159250441296179863292264553550452615443037830090445590804437025223125267710295700113088008809096475967712159581548195863809916755405674398897460478324154021039792462885358324029841556990434757075373309363516375859937829624137006876281600892062461498361887590021371534944423662915943904941002665433733471059984781380836263671577243232443747475166798915818895018368629079971581258782257000836034651707579193291489632089281590338892631805420945553150323729046456459702358857401424689510229863955822951559936125702515045829408784571962322280551632627252469222741535053487996755954113963556141706647869622885161171505504059154175282238914367283056982081314302527012284628078681508944052790429244351685983188282154858119772626535497126610559280558841192724241261445055771505579489656779463145467070555770063708515762438166087537224772737583192620419765850807710594481026056992778403355256888354305307151522675910504113476375549668861055367660466049298282654968517425125878586410163698393872145686290279329673516766970916493234064965218933926211978912207168799711566042630426242530170541934814972515109807009462705036681686873197757001287646739177330430366978221176179630130809613940640577086505234901103302845610692143739420631425367781868878528975682006512776408150820821650119168853168362384554478924203024361209450351187422123061059510030505196314750561942266252909630828629616004931543336170760639471967556705285425496943590581350105017619723167339283183720590868189944617576115002636161422842206040562614012523494536248515778562986972008657518022515884550747071079512986203119268535247778548761525160711444873241130271143846569153912286940037270602153949531879157061803661942936622531176938466674365394278544868792927009050123499380088451106289857076271057542583588668928489809408476426672104180896734057621895352937427907073068271639650813078597177437809213277539682699068480102386471877332367908228012296213106504804103995336936503784042031081987329766426384749408350448157937417294762038040096848234323160164476195470023955133728798283043861258075679884093880492356313259514886912946370888534755260270045402504261483880945902578089594860073043116063056846340676909351427699181049416577367665426742394361526827222437015354963167750762442653291968890415747796123696751610827868183350202308643096116355667074596827105155767574888977936480681938927148400492487562521424242282605021310870860372595669681307986944130041148280271261417073844531595816467061036781381949425287191104751944578800567446016963932128612850633522888373551873038067161612246760580199759290963330103087053660368899141118180247920487644800065397745769564981089768380509449957731625985852534294413647674964340494200976731518735328428927017338093592260780575387416161426891835012493150954817993911223584521523833876270963821321141464637906252310952366140232324422281279722745809305444366903343903410574808616252659785637024589232820720145962954484390727645442503952261268627303328740918987368070385241971591897738956026824444236175477908688995175144967406493935009650640701303903083052721148984531546544202742711443631478306672081548757580671845307048165898622385921219045996317596355194768653833457536912653021750692406200281113936697364580526109431954468949863235591636739333897211843953532295630695177417759859643334457588010478140371329600545333029920040016748628850522496690138804708873954932415530288286634863596893138457352831246663451148078397592433895631297388142576985682743440768277371196309665930248992373879998017479600276087882250595300378379250811251788656574323091302910431344684669982205693319639707390585785410774037664285696852668950702943996378596123868584548869052402261796729030922287139201638513034357464098856353436297750436759683570700182503005335005737623032779555933839599947363177330484513518271005648738703302825712529106229297365688180962717321270744462471269734226326457113157553095382297933132213756103018579567554143333395080792460319696494061576162959326808101730229150204076072880061811148894047620102973170545104654319264994016403916570761614780439877356017386201775713228195397170441096878742109120924830726322502245612844033422318270550755974684711464195748990935488610442021185125096787758984540924711240734839443328438084997393908337801385487536649747177259946771369245288475704769994048579136164239287780326764278856477528165763559993480921524416433060826452563455085037493588688924622903257010605177433099847001431063400887226267289164690709601366871389599184133893593238024488240500297431920438320330720697360550315947807581411293547015007333509016769365929739848617324816131232700655372321690767202310451104132898288402636190587728689196578311453226599244666335608486072858897590244330889671472170332071422144773702997361957113313326666244223344989680223355213621025090287249162521776937424214913521150022214220535248556958985807917526747140783859913605006133724925886192507366417741951878938471197134488905709650686502856473692759972239612816824740198815460954012685619041654862152619927245467054956282972103587139781514464208710156627391748295078189966191709560687748831469648569695048270750225766580515340418156681870177200226721277715504773385446814857253717705730035603896895185012761579100356729801312651838529746019387179923644162219097769931494751388925450677511331010663220613289404902196777875586933690294295303529192331085400451957575201804977712180079754347489840683657285085399998355301936337067318228758210532037976272562266884830223255100216484439145520046632578839879977118614461989599456423914246982491607038490068160662065637680344248190490639301469617105672357980807657829595728860606947205081045997867095457928242747704856825411524676193953814207017783273869951844832152960959838879009557611989787530024364417498531837368503560162855862262919502561136516065104137200932730613479539215510544081335828826711467300464553287063913558810393247361489087875206476147695407858541291333276998958596153225299348318420263582806478863300659430971447869755694261552672482327894399454725703735143760524402951166654583191000935054388257154718086056536622700683665417568109669579118637419738855008871113754876738171186087031074307856000835207930413964596025187390176561487809668186572392757632680513191503592056634632252481146053948010391297693150761542159459349967344432872878265757964836847505524149284172205699789808650243054152092459820203542470835330610259246148940515114850287758579437320354249498021209528082075092543323877707453889250576751717958411839219112484400220813186918736332842918553173900569746075538590397112631483714869121128379242629653293206989576700656133196556339028887048757472620814569661390348720514601204501624863300707386708072792771742584695902309210228974857024527005216965281502945652382814273096565759932114544923609379734854763461884159293740321746345108743374068860440217321548946908398529163356881349375093819911812623236887258544973266332375057282140499831151199936940889852826865147160605131665674841713541461377083644072313339132165728900941783585157317218506768338097872391216233373767244740424483987706767618124941856793143867972508247296550610205368716855883669101315630288794588889711438448486774638623212421759062047152245240596876085110927871462512262411993309509231892954483989535693032781554537442316914292499555886587279727501426946975945826273995139565659723004974590454227189602656705825458640345265253621310771579840104461078490318644258158578419239310805544448853725533435179573371287124730008269403654497430798306964205521493631551960564840995667536070413899168548543898221812973251640223800929660913211955492551217049101443400740944464239781008750679623004775555191188377996561719166063168467627451017800254335246473071978249494714244793117441461298368634941291859805431979552318906677740150112356873349852503225125614842491164070876442775815804357226927787715136440426954553355825058753125118303655441100096784813144651470043831429745842093157556399519349595940771664618654163387751626425173412786112017998547278570821336638230036238349228943527984659300315782428679734460466165127602525141527666759812153611541569462166126781585115112837435690675875780962490998417271228397153605083856515474928477017554003116228862099471407399302062379431206064308444252729356590863810963553868845798267666739951367465496075890029716577574861330888986315804188144011004204543183732782515953428536869751896680984735092155283747940304107197976371262150716061014504883655303995717828508533261135824991877385048822304959242692000071823531875951768610543232165268607403538392097494246790753338135033250828932384328154365432904466939039203784329913189897217325362812382753106889887841902462717934387554126835990441479240037628995066017420796532083289935390926763691562067333142611761950352323395473268556308823941649843866787138596937422992821493576969795335243591645086326177531821508954158018449079537224684256034738584147376818339694603217717876803603416199733563698599657572468547770251050131024574850368066767511171633518422083528447856685371570693525222484608405587915477800214628442014003697909542528644360378053754461560195705257494229901305778651244103229008102903870564477829768320904902992994415857922676727580514538588545050992275014944670405216438265869262670876527894850202024045026599058120614353577241484949370780594029443796865234176612605526279170379588051122638963682281622341101539084675061763309190028631544601754872615145125896572131442458266380729577460463962045138820540766287303045022543305413968139252179708890079323707238765060423823028314005535076410384395551967769836253584122738882088768208654545610540700694642560118163226869864215201584045453401514840298052328910594266611726753568392142157400825560901776793548811515258913346456781529039084796137249730101061884249138694349983788740880788184622995977324864223899374900449452384361798949076508788323901964596792872389204777863278982934071964672210773657941856268617586725589011173537193744549968659960984618475072050391972288515256702343922233456700243593276559934726200164938059878897509579599931191094499351363323436076263765215166024740178585576310548391263369889513507518966507926844729272761697067910569299155292309567882809255595674052840383246854662311309068942610201588409940005564113705810487720783050452482645376823824384320649859371455602527802463127285911510094089118824177370786313254435328871218098371838144849882664705376397290564811536242348212250694405255398610132144671734741776942859432093069298752693187910462125448727546474886195487278872968406619480960658981880103882907180511821210236937599389916547650091276746786995321433351117281483903112922805191318640293107309511794127160970396815758782460280156664157836193781096887240692840064370526591580132302067434829263218685538531455624415659578685003055435111116497946374287244877897906884558609533776064701595899460702519313398663507546203858749835296270774503557752419416289859787046860161529969676683500960196076959129958978703564708190964033122692249992320737673572810422573149225671856005574826768396887772668995791225296564896146363252574904686976770274079687922718000078236688328510047064418764718615191811095530899418763504326862335506519345830485381163128097982364072002271958395815778975029091660180078064724301222679225521783884641631679490153586108605381556152418605045706362789468472055069180288811110101851440330149130570985032846242038953151463616278989526883862185018411249024691678557493911267476140267068950813486658776162794173888856189126907847391498857120032283993778150080669374831488504717812085126045758918077044978163695790231519833200666468664516472961693135758782131394793119219947539339120751681953688603611448400633066170313823856099274064350279421032626469978221629744466705176235734086940335908910755811968943361100127317767183331258265371336501055060081619478245420335293591309041003296793214444304798931859110175928803940769409182341656135580786725448183438938929447476331413677136795410988817367659177326711943933131300127884505559551918267755822582284983871442366004012607908259299143004366595316552890797608300805238310609531184180724679552600276920946803923569475128699151655944891110780241822727400136099750311733918619437678271858410087090612313787318932438737501267358101669017617201829719047973127246349231100287653933369362233050940429229875875810773783004636837942429223423049327680945475964466455156415318215156527490714959635781838945320289419135905783135999753177200114989077891393663044928918803274353142893966156969226765695255872069259657978561465651052823008010374953753244177483055718569665720545759112528471468560282270733732518215483118316953522301164774679923251553961083378688363619962325593581211325621951124242485857896158102346489429145884703581480960804814185778822330474135299322859142762365285237224323008982482749881791212146679911448981105621299593732193093020377039734671101146672772163461248845988372220860605432733717041055389772482743837456065270981463360845693250903596409271307851247382229346716029548330319169476151257905680219869216826755337229690923610706798940509834221872548387114590817652316439673412109509414989307540213459365535600184270862637871752241372673260391480684753786241266260887951947122863230830930729486890263181325329701736329879414039568752546158785291081290279941153577448445342132730145147536409135644700659049387839941729536221992166001394266037762425468966112786154823850295782082079443767184779543476849831238837471145675354256991267641346673850770120199481246070255996516082378967118555903056181510398607996959647962076179842918253992324834074001051390711290852502307592942774425841717298589807892255425143838844117901562779624816785208879186369138424221735991521168533669928531326271975165447971156366583520428869721653432468797430195594258287721706604886393209950402218701301996339280382402623088344226993549935580767068359853165952346536961332305874252395763359518019320770181156137128941688677925315844506860883300810505551837024275959961865255804764939076838535345915231669387930883099401585504257045635172472574472506208795940886219965416842075472854036952133641908782047155715986979380497839753911699956384506931818098855448820531871763569090669035594634540197873709496206498348500294887294710741918361676803919983368273224843776306164791319775016639489931409655908677424181578008532806756753611377005397130743575061429859592936501504787997222552355678364927706150968173542354344336958040719924362925769163393940755087743713478074763219113597873039150775626435118607451124485449393172396131665942434687006968889076070842948529302717660434985471680400914580086139702565988101982901814675322416226788450747801617014713845517761344402484895056434803578143401938275597670856291753342543611155721559026826059668876650525516215169088668691755426669343872884923667086909478385830988278584887407553923555304530756311086614605891258688401793222101375997483249182879356256121001823998993601214936763934108044694242378658944671634515035959630024545797660297718973218032217042802925592619952770714279104210660121614887346674905603363223675022864830375406273462985710612207255578028390358217799282346378280308370552019273737304862536448468753034878398510402402851592371640722443424861553670314380685493494205592295968643225131584825084596363152155690471006097473839344515279368993203714826542151898066671615032028231793518753675502172785763319207855893984950397693157149986052599620957418411216993050990062945066019227203153746325786003858544595170104208850043283424293368794434961698806698869110161963809151538108196466193298267338766885002714469386195463863973141158084506025454084669023913897788214825083554087605377771892814206528217941137476663481049914498517338131815472520989070380237950014351046744918434683652490507974315250222580922181236566558446185409246504174102339925421431074635664603737808645438036792738278088744394309083661691864616775643198412657863700930801715010909208314831059157833996138271116866043924601811739433070491114484104387378501653653161889381291879667169074375772077433151970939288945962116478240828824038358033722186256377544418435185409346572647046341046649928368172244596712071568731259734592037504787738790697004821483756569985192666817774120918228373027689287537505415106535288564442509772760156860300288555825524838990698374836749660707977892359306308276426759671958148916198804148058482899906836062343150224727583926610038914659932094664181935967905141777117762577087252432941789264581124639631057045490558466953067254596475571147899633930002203877354437141435599071721387090045358379942024020211203514235598958808410929446303087146386621465112664582555326643776681653354412175416401883853866418830102671159369530568914041731872799956070533249732947255504413657641332614213216832766922870956622146915758997011312523106813296081524553876335860196588085587994281442962784494347551051310081087230667405376483916225255053790089756204742844346343803153285584501039519565779479412662101952667873845957590836704552004844683756556543037762224154808422947407905560487334652029312230730216386729904451617551634658499744334112317831249931054208630044155865819638028644615061640347965670197184823563101623722078787089281605603483224389760832783634815642203757172625132794992515509641713975566673535930647191730487391733095957719519712590700951340001043247160443605672914537127943167058268230996832595209972623810727325198153065265568333523643193043553039621600391978749978719706544634284900069158243013341995759821591887720854381687684924482384482329066453672008163135142738557616708812916836037130415110521817774093214975558960173141566190008062023292469776994343438412664892904071767601494520351056448738611628720878913115414147900768540817802604682223943766036959544946445062165603208004690637681916409001137842226853996693124337771726969309249300238616434199645769164874737210704894762392762147048483209333984021149306148924250363432143719265885106503595147036137167906865631650472713771252567954837981770745017439015473208042662679113335457512866439652968386974560429129160424501718054445656190718089358387351025533361013204904338901823863470041243452511995903326299119202039795787838213881629930701138927317146012741486312386854479930934099810059987198853263064582884506836506422696304193732163078364322778003772247890481147012596266422336148625092010812765102428495849761058845342071625436246643152976380925711223738535459256626643359484533525348442717425171873480298516437591322606451324180615363379790036213179479786222359732701047676515404358541384481287273446525945495085600742583298304145410363551974883903914891683815836179938890300815599883719042220586595288727774470888078605660034561201457101350568490340756377822588104204764297118921759888578710896971524397521773675786117361830048932116214827805951505811021841292304746750826424767640771796090215464732668462504487101956101469883854282520960190628014443440296713404014432976001160269778848886324315701821474077700007233015879779745183295809140166878209608201296214416595079819838358590282971545062907678072391880736971784680629979812881050010305570173051743081702613360582016835987306203502625985832758240713584583898971665360172685792788811050254502946762622858998475919955464060351409873681424250421430117732550340715471203548181775274005028970066239363481861459036092027644222072765184743840797680495585705036268657818682373851825422292745979891427673047826654156025190236453804055773174139286304960708214176713748719188693798883810673510524800037079992193313995966806253830423731725927418969282710595693357878505101953460068305083757334876457539556805026971839190074753396821550918529857346795323505754821937524746993569328077709197012729189290372722037553642049446729805319709210791749664245937936457880688030473346089526103156552158279917383031522833633530250701281217023702928309674037017082106322364672928352458805345894013193432122483267029450429274374432115209241035689933217026779606419869457106181418702722103208537394816339149115668227729155213167352143173109086057596727605765301490048958232128877977324299031330966028272382946523947794716646462578254961225290408444306159467680273947197111644177130429536043187280221241626641502974676530303016505354760802373702792612986806095614920250003240820432460009687505322911735771299262218116263211980166789340108370525132885175102181400681611918792406106890234541195347064296119794881474960465720794866288146225396010720368009190859726080935805526009243580441833425903457773214932450867544042487467841262722146019492935035632833572965841610603231599901083381992612332752789036426687912201926247857774506080851141094157629591899118683514168668097755145783687554174229100583370446008757513526366195928331635641086596415824796952870095537911599081522726709168910811517268318457218788952612253277730098722859192607836791659081616980247328207527124080768500361855839095846670892065986633078047948794069360815554446325477630148351851553634360392138636610547453358298538621691252563051322419770930706491414050376568238112196672055730934740602669472540616189286270151162461209361157180627215741556672186115406663442161264195062874353082020056478897786487132969967586107346236456595162792356620504130355344647751187798689011900457039860523073622141464077814979920625224036926445864055622043094149400202920327017381122838962674453357102583530991456599821458631866361490314946084600108580715776085020819746912867736800092723337174781691680783174038029326594864646221586629630837578979589991633384740364265136552191967152401250025492980678231952482873231908335655684332228988728981082940589569217492742835521449065977632564015560637742013066760755896977934892484792277803141904633993635008647932366669982697295968584935798129871859878959431320047894904929807188106296462866677147702627886942133793567958612084329105583611860560049356456211019562340159695997240308631362914388365899524420883212911933214118103067039668012119209199936791500247136228635705238351435358524235475812645536671229312271600307234163407833906906640377341373341488274362103049029004023325011342614334766684238699148004959177439780961606376858262508010053280998786117994123001519274603264964086820983208556683680677629296792863598593333383839497785498896424673494914516895642207945969753450164001452392520734374625382859746324411402854962546390139214143154832183761316872580868948641923530225195758572045489533795039725028395718729880456866905468597164717505800055138572097623803461799755515669281710791726108573990427494464647463323676252183620427270407700737863728902628029590456039978462523894000566111692559867822839610950542052807200497943279464552983114823691317732497570193650285248234522086946968114301951721339393941367703558441350342340078103944372629952039044342137812294142129521174061155105037266592570675585350711765549295505765919208855369649485414732924327003140195859715289993076906252852848539037479826877714917501078098611918936293964524744743241547437089383982083758427159100753054974797270164159966272550170019755436045789048900544545265429289460958055797793351376632720485765574200334631016464435172813894086653094507783392179787740721891646710255791787095933837203737466966603775497511870387912261067598997664040201610613669980240222553451002111488130818073523421175673245763981728545387330605427726603571286101346918464785942751780026782517925654793526204286561788369929252318537109647211228993249036761842699034074308456735243269922719547178574129962137828287158497837135014617122083002551050878311046844486788609147339392188306984800986793797048083629318495101153959898203060682711386233665583968233350560933057516587957179909630878856690539652332236100872572447526709977227914012435005132699721673738898033527909423520163311657833100816322872623077712469506255582202092688577654686748464890293742750799495384822475755452233141683939368552032357243005045373309117723590385160118550032079552511221439239853470114271548409771859100768675100381995634086605929968928148157422694578903784366138488168565119137431817776779574846872747109254539983913277660411720319352414080437717989211372009031375970767018133064681040795572719637800830291531477653958139644316938786834799992338961675383743285879413500344752497135461927171586343159275143192513985926712097360645359849729119449971053828211766236861031100912755023931326725750912151032742614913950666285310096107669043251459033595514997420373195965410877452171508064220867065444857858471901239537866368896308588795229122375275725457211217586806456916663357738548815378223300940157187656832326093118935465944681566188366010335634472868809447868574394338678363461589894972736115498711498570256956835791499790821802638457310944220329794364544545051731473062276062626741964931365078119789348850610310728043029624174353691138166095938202205564292177467431188182533642594354498536090866720079822166635044039083888250632231701058169714328294095860400043671702091325866209940849403910808572927827459207743064487561466577069488154271082985963653993557811322136482909149071087814749716767081019367620322487167479666067651726315387555322678690737997342710481537267892318866740844802528153234269807417991699581977673061600876026453396356007460701760820847364059052303648371882851962204784290050516740508362017642377508528428863111825249293547571827395361067669214869608804837824242724004455671696693370277865426444385372998789316840910670633263808968134084199108729341225051280102533655114527469584319926605625528224637997379509628469622425079982070529260661635959920714462011123551283454452837575648121624960019599190468394430525799874099853028252451645933396587102381143757562331385627125162426212669323066363477780496112951332125478945605055229655754281977135269263950979579568614166230797699841622979758523847882433212252759332340292333492892808055707567567962043815047109801377080671575195957868737852732498061244733496341867814323986841005879661534403758413077081686982551888266406691258728974248625919550546400298334026896746291246903646193895754129792770137426393112771468038976920470354482250351002767359729235924975169650706328380704517739066609340671318255801836220081445935092868591772548418159354161317078484499590202294380130177281460685374274341178817845001110288424794045483129766540512038109638784909139232351613330702663462828788824493116833659969065543839975962554578297230098823528287895917643714334275337110122136793821729753042774605421064879472765928370371088449010602848532803958012140803834211961937102235057350030690817830379210610406276353294220230157018813708556612689815750183803764660555307323383848477778640358797678794601464478245940195404850747972998991713974216368650172038186969367698164026404538510121508204497924676450779145465342367355962493574828471940317184658970662323423937963755124954561261950964665226250860235467718432329122002584602942564982459800337322279579793805342894623421415474101822762716852598628452830709258306870473492530450879858202317417846943947638997701350926998650012423799887148950668142551022239897853272619572849084635942963923875015307859264055861933291217116980911041364927454163986535000872520638295281630705887887229474727690340789725474231119536228583552525844025044621521500588035846586111526922639300973459449120367134658639061424387823368983699687256808353156360442698641950722904652743157292994347556326592201969650571996885720950238124508303041588939763317897697511913271773984601393127583639479284656286937282679593227588564098973590260102392377281941380024785952250094518935531212061168099029317105511134778951596502201092388636351609818602742693902559967833536663216001839356737676928783087014047487532220941122229124269356414503013560832780338627717441075566465334856183327040168876503152379418236008242950259993758273122236668859472225796995733880022039890985769933431720463475774840819675728593457882871625349432027964424631162300819144914852751195003489970351072447851869787693858408005522917990588571810288854290112568069065793711833142100341233165850592597627609706738638955360366983091995385400001914596907925401321988006982696867032086455294092638569197083988812072627996088318874357646890227102767784879007221274499242408462375244587517548714547674277134101283066019403503606876065911361044444995944708950482673222359536045641243858545484795835427557184015650442994583004219836531438930157397801487668656804464712865610832564371481024692825384016587063727604373069309158599159768813383729880595914739215022673069699305531866833634318269811924505943719411222655124034565904274112354131347066735629492529551753455711789993175613862742647848185564105576098918609340708277130897079126810898601097993920922525459755147380520671139314767850935452862137123833762730220362085052595876698994950587894883358904312637760741850506798381991965601643633049970842007765666118703527675730058989276907591026320695053237185035286151990522039821230934064306049085074519531350993625716702035205891414187589937006378465881636351933063963349452760443372647210384595605705175961445899042726399574100019166795365808517059114902930731469057549737348525396434663749380402407092175113639006572924649318120110517653655472613568926088229955059095700039208554579524643916765596506025365639661664328186165604704507952590022113829701816266037226854412930065139106745549454597185420294452188615196860594010319439104976320260015543715513412567477848774292607500512350360489059493975307950985034345922253767487012208024022172111809340576211568019480832906153818505418830777308761804351488447438630402123524942128054982954041226624519006928703561373332144021410654189939762506021565885625432389092142029152792325832192557960140715210491328930134427946876914268713602732764942707162526537418962244043971330229145405755293009197607018254473465440054827234155888399635298468235877975005197293164589187356764549432200871105737266127088329250797367746163469601857178224582088656650749285479284408705512086132425801955824018301571130385762189832327421183033379515718005634320658233744637975548196428825761698414178289029796644505616719369551971471129889542188982949666287390736531761164802727149428457118096354169624264722321170702794144644419474524616915171882944550749758188140903717400433092776103650446567971145218870869724458452311257698546873687931425680713756428434269697131191094572831013628079411919948983639680662632470670063090732958119416320252498114461045404053319579649819130408036415014924648350149090014844914257059399319992360715307532175454038850520887713492970896330947380900633621652863997613188647440404959651906332592523954287165893801048000443356795018664966990420228599300599860301407474009310125237886935937893510156100662122301264987759200497586349745027899593033997399032957904910778469825915487459665579153541904430799113335982430342570580983898521726527027938304986148590536994232971264551830120064902817790400908854948506555950656257712947268880892790292867513289657958658052820972899272363047049228599345444705777107427511006004100910864087160623405561629076710630594902756698745939112022317702960213749695125594540376052332359948371670559244863961965217697996915903591046706080016410058265025184491040026834059946938025255620734900001165629068712320192251654173013378973024752541116231289719837048998517612523706010489093827606372873678041422000226363120149210166708918464219033137189552542380373330037935171525965646951382947687572163240916362489673717498026119401954321872615797167868140240808966898085202050058187564058590467933926992633026764218926066082832673911449353572999598312960620240873855222526531173327179374655776149531141000297283682704867049396527042495633486223507693785239604297829586231462216524440116374139350862754600158966490569682174280239747601689890929859478171607568145630168199705337062697521444587336788411685364451531672754592458270002889781453217042038542362384174900920452801612141003929520455969521737719888482014241744423814374011627092661105922889400325984926305979329778591198411499434650410329025919826255031387120802919240371782820632144055131952829630596923434862474353452090953345637703049973708887102442881562792751548322189453544669511319765227554875369346443474367925297879487407711892372021441900027581087748320932490126316059494366875935005314052346826001686990275395569307306037868454629635343628716097348305110252831893917727192416599124845405447548864235072307793581338819478350150149056660711596113860554204931724878909937561968301177059564902121322709882240599516240533146424240107748788017369376436813418574764281196027128501066251719067364211076578769711140593110677198119435393909485948487188714893890567494489941906589143825840723982451597010392242009375976570716003703919729069160011505160676525924974090646386150521447482221533683422523245361587404358375825691248495408175790060300550374972857878397002834603808532831498263701006177677939844299230520119608591345041895545178523823409949559920743692766154863480407932377974216429029299583311353154737193749957160568574717713151156657819878274615271057331571377722015524678955149107456517065606882520339263218067992993050298264892402952750884457777058317796885246670868428793823506008512416595045396417345937417566203557266583600835078823882966952039378751457564374290801938792369090834214463283495686042140940108938345558789310230068850343500092387851375254096080297945721345788107050044266589041456843608721581750151875835884072419803153001790032387283667245669854514306441537106976063379192797731423341063564488017225087427475983397438279858563997818107438358649733289888623208082680345196459066017355544105915775709685441468629883206892258788603042716427230579686722273342482552783521155331551189911009889092745354694192303523296409267832010297469249187567959637217390554438228734325052038023107114306355464961515990179593342805356764039717359972667139323676283708715642117198106586245885902681990439985614826634040798804826742143364315117205048504876198002059283428972410361753771066496065195008554454323316582549523597685233579888631864667696608507799898830922326267218500119060768588214249755604476283565092061274162216202103875758951319469944036598924253428612794124862224603681431427050732649812462944130428344546796266364867422952894394015437776437565875972733775491316260316799050375588530940830907221383813318840520171890253402727780035951242885892336138486901974833192667888057995103074976514952592508298081862119006614244457273432798276469369027701170505760049706318600941267580305452518977281909486044939216228594916014342402362549154398082638163067475926631584877545929751715979175972096194292058206464511123860687500088457440636174959839861737274944950236373993500881068063319893269925096730984630615699760586813792846781168912437980570854669817339366394175141682908756718541213098612371672078291957260204853555568646679175227215576764800417669764068941553126175244218183212406015644514257047989564054098802389318282607303436452653354256700341565449676383427354263643143545752896041262896730942524584298876791762404095598258174542664186106896642625478676734524818653141828496267558859502936381776375682806912295969224559913843075898613819093399137632949590321116924410989216353803336012914237674127280609627525299620634652474605093323030435967647426290119030461759561699582260836399661887727617357571772555661804082255646777732408824966873823736615712838723743511122817298254485397688618398213046574973732842880014906336980456905848030193916648023610549055923821283826271353242792514187718471396781632023819784175459694545373089833877467443454369756895189519702420265674592395833141786296744696549421112475414569385690875687476834975684108100084439861319097093131853382551712587085286304691000241937111596963955604116268730363280269267195638690437654594835454031946859156392906018074766443782707601477567005455912805742672477932024206607356336906554772043697998564676014996980393835136767117358464113693143228194013502861215516889750497932774703209595275710929745581419061594879172255862231704245787982609525097341905164781914682877634400606833091631689162826356632225425291618135211153071166459442763916192526566785369760527772853928858019514953103542664558513494262770397288997790233392091146458018310328806114609245463972207976382196304031140835788311409923902001245047105102965306684996056058459710422499070670312809335176352396018950032614425075819308662089077355234235014698531813376802214704594341000505412809284831287043748189099594182684044876971713815651013697233016342956038603975830076772164962859293996363255413997060560389279497361854009483597793189041471534080262937644188797894052985716119667967448227789164042743049307424075149199039627551618362157843973734780313506447391036782840759908465992237993945819929436969626480162905797356727907186074271042285860136545652664896437901992756730487524965451498718320565524680774080812102066195700326126148984870898996867932916267132415064750090468962167542792403405200670389645319231529080346173766228458968340400144509422216951379148897101033171499632277473073208313474523592550226745187151382312861228659507162958696884051822910250551243247600127494123957525925342449487174550988605087388764685943371258606553346346440020576361008266380835742774162890678324529080442631570533891320369244269394202584838547474952752408113243859560073271972413767093305298288929812238607085429334803179380412368221390333913816216869522192080111452205156323597334837527123089838613129278735033670394575531184672372112309460289977719929559235249127166343512699294579552638538789575164437459122448361519136864089334412360530083773312883004140171255466609109693596794335455232951753724804143886513077139883067962721195971581815148504742328551205120210531350689796426178456399622060618577994637105121577172965960349288806349356592870064572985848204809546408808982651190635896285604575913337171263800358752347631017910166604607632533828529932279075646656131858331606871775748900994146479341612993623585053175333984303996044237408765740050962716636497191944445801520284009079953818474851170567691926720549373139318403218346057356337227418329674934628389671585198727841084098286798397643460472357524982743924872841730400304588796282562816095939313785876761700443309218352002113444684164562888401423151641286857297632493704196196641229936006275522462842475621341434596538710734119515661476900771407825607894844196125870122952809748710699791957583030191237344201205930865566028141897973706909457874929588792479035756087932837882622935355459834187099046512676073503986278034936192153480094908450461672409144736467195437762555459960525916251423178864493734242934035998134255407413778656284063655734814977117345917106182073913728269265121607230338355680826093637223423655444195002036483241635236185102077302846276762495867294604940256309773965933039194636571025832094877854192534148182411466491752626497752323659621687839979681504404678610694071576104824513478729818742139109260032417041376253665491411390109201971494228142104437140811202033753955225846237478066566307859283804143236718501795693102079366619316862466069119079943850844438125807202618354822836670956902255627772299751153141155163046647262730599334554153769756176854627522394239533480021208087067432532453134772838338469002179462783739938027176996597543053126162056464157684376071231516860733069314477047241540688528473645898560795240749066181093747449386328032423615789209713315473446055962494233295228876440096724725126452995762104435149258596529476864823092363023649765621152296122016403875300112946886635499378179653643100471159433867446756282445573034779321886327876072870607968098268857463357548079493596583597262957236573355015137708277227892814562861134654147016009236973393699878902931581466336628573092173859395509775828339823581475495989971434219299556275548632400855756337193620065414853308317100680279835177059619216594111187494347843641168209908646895960841157423008434311240156502788633489018011118172585504565720490123902986528192272642041465209905699227355820639139398441041065329108717715876512862838536861707926679557202366660402432498044692274586190058850371218413635215068203622919115272723550301610763617967303967161000926167451712652047800578412882652049571744558589730607860084126829437599157253083094769628783780076462972903722928221806001189464290784481261789146887522118405926872821431342740255477798280462821120539376650649891468208411638911926896221001050011537502394444956884809102342310066113514505856885358067193790300075363679173355267776358923289175048494744810525495859306290684456300509639424605586418257613109133353990761060383178887321695921235319117578518767891292931740941408208297941155786907816360995683313567426539388667692895090858326687485831266008282672074525879911116762438898374024894646266930700199672900514359233123233487707135870054147077382970936603511696070160009291500396993360523924989908041548089783514987148232660567683529922291121089600412583938295986120648440482714740007728453520160546611262586984316703737190491066176532006474560452620868256938565022038824887402446923874888321890939068145631905775009211766186005824491943794403464134233871112651277112602555335959098048743083524484887827482277817230052135063750122761081779552422833992456582872401932756668591780264899882980087141210222081635558591486452178962100807691167645405396609730880648957730871331022390717759070442892471349650186621498220773125070753113755646592045037389078697344725756186793441347755717026323747702890331094781948419877269106459092453191138986436529545098798479004059280945778012353704602678048666536771485037325912642494285328712240241204703015313268974115949902308682063767755474707294467645273213505154377092949290377687579296382387322317299710180065025126501762036740664083732370992844221425065069537969072081971617433201095796131449449011610322900478074061269376412237650506980191681584301518959496384189932200446631121321527045729252265409340533213229237873568345598704112289887757020138935324774399630449944596518500188662294156934627430675222603796794901671034888009321073082667555529875406020730757145703542337446532725751898644516831596418239814462275383166033944985993723363470474097113434815626999193525674072307812793626768494136659189917848259128159448630952740099816984322196863650834640857323781737362148966789526343143205147429228981773407975166596133053679998487362819282480859592285796334066389820283053342643863703101722553744754455408451236173970025954786151810177526549445210074851116590986209697610646788322810107374071932893360576212237552316541156446636752161869277537046549391833158238940074292139305319158791415401805137714908543330633977323752114126618200027003054060122337964696542205733927731681511364571863648308553756812511748093195790361396953655918048830628379942980698231847931414929036889812055603909995767371633802329724743858127764165893539853973312398208670525242629900749750340956532980540893240771005846306717391797335258613002215203832808748529547631316128749686937142656464133863801817583406076836325808665045597808740226482514656133191141929770980413964582662891663163277613813965838015728579762164273027419681073312601670191526507775830672139900235932975763535764933266270519116439102688086267510395606257088033291944835024623069834891021363875561173509547485643247103301121799059053499657827990804984462916745579997561598541502676121007432507928158970585457401949229770628190481069612412759059857219821429897611629500682700108323359014558781768386639739096244427605430643706340173580911921734151555210644509167969819431774719299552749348502501236994257541987543005462884007682932727506453788112551593043720541348189552813624644616786056651319064161438087805060057277491342244581114709433328318106925144834620336751534560222605302623892019671792206253144493502151459152880297202587626611118356443730196202521944810393997835264667274224081257591223482163940490423897672164890848566703320753029567083174443086145059686542912612142132357762073166494461086402199874248750256724468338036492368104981205507289783737698527251617349743575451454978022613143839581900206276989351104178056923055581125391487366776165006185930446210824681820541291097595115239055918994494042279349869965887207918709771962629509591469501445104294836286678457424187006028827332785668513132579710190472003122250253975133604437683322462403386511245488518035482617724428032772379996170237684115019628298681114250764961695862714793714442610755005464033322157665273098662613268525209902728084359453643597058617608717998094804316994189058072187311865597713554282678016816928543499504507043625593498406823781280777453880311301225041904920624514501700731683632095219448547890473554948082867029011546448299336613881456181067655353816095267636518023817302933567017197180686143634085872459826280200447454041208888834437666979999113138096091388248753600236673908370483056251622837367136033430614200078837631054038148338360339430894512485391998183413644615064403065256693933136523928911677405313766883384643918201743441648085117918936673056470673213877649277468180426444736452850956504921867379711591105964323662875850389316529204653238212065239681013001009142932562022913067617279970848144386703341259799717737279814427119544961119283301021940783910894489808739758505187508008261425601148175016927219299245631098930565618099249574505308738240570940842484326360935092942124222174860108218640593983854383164314555101377465938647952093931327141444823294261460678504165305132736729017818134603175376807754688943577114712924367528545756611820376757377808537990489168529403427894550758218108660379168562828339906686811976595692058479310736343452096365458395346600244806396415000988706600357369089606166397353170141357801179987637268473682780084926739786533040603423127010025470332666700139651789139830370888778894504867051923926557500861739273772851845370634721565775043678956374630917120304828694447383303865023453937985472147255236735096667680851964239466063016774956207458241416079976382166076700936594960782533370290094437516522528772313310834078195366902715799875781013959558001131792741955971005376145905060479828507388370965874954996922332530489733647083802179298826380232097748911822839900388885114721945217572929252198888951900596238455757579516206093824863796010531639574903446121339913828032597931104500670442441893424678686914063957891468728657135564491645569602356284687779233112936772471445105482966944719694454657027455480759325240489970249184986467628574261618457433286955305855676185082522503243389978809697737908700317679958515394471712601428412144250127767498687669989868312646126436260781252531539285859932416013404446829697827931029529973872395551875311324917976472289463242695616901409067371947433552621958915381316711441049054951445895124764856602789116568333550675146018992491526354735525820635493053422214676587354997544095655245585368574525288351256619850275210007315278137092982139985120815363727853143270079151745987281418468522837181579314609303265573346223831861377627547667484655778293780009186683269251135121494013891252810093861472581009405509201764265755836695223604468191440137187191942140336001138255667322532069771016089529811321302449531445825944836151686684915772358184969242970241843056593143042821269271037643521959060231199329382735516330645870764517032349332836294603881125505752978794535507149220605464900625439514596272116907282403909845496211945503234898964845788599038248645816873216409213273589827067430443386747766482852958643105452015930246578921070846522456830013164308807723961186931434616570765099244478351677201787518383950298907328985810968065213144802944573636704297773526509366992521811886861150309601606233351503578291487887530600182964969046221505653238712372737034744273670682461053850372172436233365395777043301574040930878118764551213139069284322575700796148954877338599051897057438261160241086455602617784101461161592353585287643703759809334700852988362836633137607745429641350037956801569263289414564289392571575763133656825495741595916389471315964061540157233905338510756127109073787908991414728879392538256735810728826596679271226044048306561628129591627399887374443914427618583994648436850659164180691170966475537746346258077893412424319114465586139088016392837537860214496133722574993587557995259806729015395004574588845744344771789747717125662045334771312960462243145638568886209791715109754380850073632725192295004530552047646532570187254794321214866985804893204736054857110108151008629306231605158174380298593339265656015142762462575827289120696727511744403958704914445162044226221085511382067161120116022996057393819261711276117542095645698580104004123779721248526698426460435503049672872790416370821058229450122134607886119758820325959526996459585525468497251163854141394211965233228537284366330740808904180143973955699274561688695048091766219884031742514808220238351728063894174237637009147228330016807485701568062498369100248682973691178697894601572275325031144202278768651969609698843663160504873639962799853529218481859478007584891219816158300754314395845668960086378830940667571409880352864276400581225475729041349158019762844975248479313869056741115737495225674046258816845779569079737094104351397673010740371127537556646313765422979712247267637615492613425682635865391300542972119146835666061203011953870605603322896056793242582256993610807618008932527946304086951759077208997323314469104962758061001953270143514536539511201900999185955674782009952038035402227709955826319447728270495183190657751651764114295485965831276246917731859691532382837678467622849492746474180740857227033266597333354950214946090685123376189920592511416762548283611115283557823541557396883329920859759533720245652881134997642769020172322167540140705091025283626234869639925567326401360414336028260373407940781843130755851035994053532560997420981606370525220475736384592670207623673535034684111754784475943299096401327663564277719324433359980535471757366665764819573968321480349949647159909966650208742428925412874199603407429692362129753309743449507174833555002154915021797102282543011245498884023633747606469029198272467657726925123067833756186890231888727640755844015930439496386718644148552714028431997808584539530492233413907707011704090796358265904068800244878785197090598511279936860113541347926517403796602368998959165166228444268333024236426486444253396443506804032620220509899352720072329612291107577503143120114747547183388954914414168185715460820690351863802701800875233302911151787887141291988206008228839955809679983910636228035223116044026428477387110855953972980237961501820658745427338712057907961099961528032856715514014422944597977425272880357918108376101075288574915947801779053379316416919609272270134699990932427135201732578046450014227988215749328475564606027435572480422255856652091354025005501206282359025518417105632383246018371660539690920018945279244570268433621588863847266579521018519794223549456315649524062855172646119547754889423657778541255561709915960035220208632462330185748153504075215153313150902339523829942082107515028900931541360414118262526623033534261180237596694605609870153595423830073530662758328691346744417410239238994882407410961042477310742434285609940318483123856014946813054662112527335194242928593501855499142695369030976192658243230240584556589498678081611803537992368818731517848843372338018318775470293360352028886022828204533790237357715813486709566088622997058795495235140570546019773603033343872733944849435004205103774367679116682832474489176206774122304931687498670770206537124476028392727755123377347086701159177750455310227197606397276764833390738038724979408378723665205935053663866727837502852802434766007119012989489880717576766623646918291780719799120839527132819273161293540563079458138159575615692990912657259714114355507133031645893395061507252167935336310812178883277784842352273664631357854696334905683960396000713452545687043876751120167315485393364484133832626042571629240922520097899743244046448557686566589538974789050845961223046620729305863008609927026525941960738890435137949515610280577066321995212656208449069687420817646730576627653840909886627580355579374969944015241243772598410503383580694857409441260141197821629757647241124978164595767857780478818212365722503953867066678325336632906520653535823678325661802105565471208160567550014469094652861815077318401823803409887982745386265949754045341130144877107606537084857020029812763522190209453196056825261984444216684663493419379875644857324084277383921562251773336645337497086424875966301167846477797219354012344163240394377317985572166710856876016687238038108676555572485251065278220056392432459789036661674978692758142838170776050980991382675270383273170390031287353642238477363310190176889515414630365493364248435746428137741063948340654241368108187804390138323255907983884960000445875093696330125706492060821021321404469364770950857973636049804492908521244917354411085732549485744529186587477739653703534977551283034204249294629433597786516029643375609990458512932238476381653119530344305729737676107268452623281439159558678114998450134974575390275002179833260163028951446393737423291656915126047558763278045261307061613233828636900417907710221662349169432216556518100667066631888881853815446725137852101257791112603059938936216058189871849075017329662207822324166349406850729971775999984382714700719047479556044564736856111863340672928408879487745383878202189865143203862255803836561335726796810570027774643563412594417100923292128327569200541124113234427085431537395756003582319460407521552767151632423647489732598906626601103168246575315721672265440058463030254906345996914410150079458136768421884362559620696756114113865330719692962270505680141511927395909147069827281303665898687395340647232592772700773338706252384956762802610524771644955682454519155851590083713945946706227813222212248422781599810765331429034967606656554751838171214801178326209056916639196564254676386173256717313290304899012258057210715400330559074195373113061910638536325335343907805873633465081438554854275479506348783933560483587768869290092911622503506703852140643647873346214158117020222606419205548349932720071127426208013072371490808106428444633288708471728337916308527983702278853880838956575358681548107689256094321680082770557459897065913564045532274305079585673948130679374436345886360240854973514354195990622600070594704732142986156967773972959392992693743535351700891828505556937969645509110713711276924136254979484009851601917921312619113530889376777270204424288121001200401505730545139165868232324815218031849174426731986470648593202193747112248352135629109302935496150529420629444521677744003706396711214055091101704630872241894284959316258164910062227030595349247479193366110604645578677648125973593135177933978529733765078632238012596526220048395289529993933085331186898082781918033670668813262974148468587284181355769021621166683193532145519979029848024913321105558045144927130198424758109807858692718944958566040537059197941329727892675978122204915152009803135715740815599777991437043961071719405101337546630305580617453126424531184599685811726868102667782853251091328977055692140917099444885417776560042348913078861847155991277659276905163414527197268182247668296903957708430927784761827734609634479972909585953627453508189083866120079829926441412469729234967072961680044994773517934015051060905444646124769264032832272067860539805040477416827433128098635311250026019362430615333331080736152215412632775073594367352799304369363896226634313834967280975764714016588627956321889265715951773469587101746514743408190739710091120026167153080226873628015652633658139006981071132974517861847894655026710029029645203019612395174327654027497761570908106252935377186511078483693599590159214425758813000172412523446302930700140687729589045086794681184148590187700014566527821110563480487247136336052166575917207421909050764299402058056155566630725840607772438491031784903501841064525873462294223406496379571292433014038535067599603016188856041718606132531071191698013646806288984450873704270938604714385303803191458486108484524723095087969002552378890703528728423997733837051125589736247986810379043321787205630854193673144322726483649849010745395404482851253000690657354684508093762825704473348461984879395058293041177996588688290405710758523380338895758212506192639496628623053173502632847676187904021791127908424488717621846789194534116782668388142184284347690504676497750934859795133154030306322840990977765533802366213051285313450939385339273975780388721875348603704466328232948496194422804779372239802817142473133085420862675265220265131545001706048696094772481183007348902604594066972394025656134835181177963188818211778783528869177197092242105497806413520005954200791870618783776708318517214970861511204374752202797201473582607683259453735621393028316800645813170402149470128022657872251742031834844458104876138002816776215181769154444428274493042632772128693245685818087431041697471033196936422306817421152844699431339579187369461646312757120727677068169581762474213334414603959625475528238155359976161150425055983171853324089382232566601923497905191727500824598094157208794983846727716240302588286589635346080373256234053345818297737669580144566907670267847555282440460757725543456674398889744835921843948258111932670624945815823795580471211258729580728978753703386788393083889384849285601523835941123449239942278106284407514842359032055780439283190566617220436398786077808271448422711029035754031687983283612124892680273145877691210161888120491316800598362486207635006531120405813515862406689684375583328155835716057718073132218868700265290019671281469619503846731801391586587797275461880680416745605641779138682240985077019520296406820260137704094219217941931645796809944921233688027030868413697336508015422771787965753383708586023404076386307020169361072998276937663467385328987600333986045301049213060198242709962752280814493577373141133631468615869642617661736643239787788793431321500728760186491105751735748610851546278489421144369109448960560003897951576990139212315886150205320970769006104371102116346115635705402648296474271526679451566505780914999777121848200862600088047543803209748104524871597663453492588219748722929797422516847178466117881238019295227536198470170068341863971471863574762690240935465839970296621404763032476449249077966564129087927498165547579624317670477142910555473955379060972495571787916606477481456433031843890287032649366702336622303114928545563192185108816538326652018985350121136690816908671771759296264995944997156161625197319970339416359541296700100301563240695548888882699811673575971632923262896438195734231987020385806017390868604275022607940715878286304068294875505273881201002222049417713271460393599031508862294343077544771328023135415062037970082755909095409974177170237207727143045044629048923346640071958880751907937335832599793836640302534801786691277561424333735149997509043708054573711750813544163289175132464108595440324909120655864797101888128667347237780633031068970705662147204032354376020527685801019304144404194381719513660140165267226568313957062225963015472659591313759741523920179134027311409443251483399817916422691636176642926610415770944094905230805053270222248709746305754934486839827668936208497134382337289564927999540054256555486544770887995518684699261799055297131539349292341605180394573926899975824140786451257966167031888299467242331281576556355201876161619478388005789492350130795996284494200233876304203531297244990727503535312983304525664873638758069873182921449396796874569287230715281792958897162205765626503901101860268904816506903610205528115249636613147380436826730906997357643691761518762725817118091025557262433695912087882303408530613935403130010852815072087334354566089065398511286216809054650939456249919726976490299741028840456226312189385127272309752091128671733240884225891119013748876907855971013472105777094495388461672867637956233170399391262437553571378830174880474024897585281192101742827815228226786758688985402707173857390345989349722636461487121330546930455852232424517575990534538755978946720664627504835224878754426835357633267738467185653711654726629479757645221387783426240342617388502421406998597157047230510534153060370328836151522102716000093363652079317469189819743952649897851718205929239147504712386127438362948090060713373758981385036821475034637226067533017296141610268828805723474947722375055303467065396758289146274245728124654949391817907605862798410289108565752950898474975420708475265943988689349038615296734883566297311666604916288879646585975666688650858847831444428290463134581697824737948732415049244617594000626508401628088746739230470761421963198834390615940849532393716444436852928053153102973535698614705109756732247991705868228541242611110758653682723334422828057078518740003074949490629946310706476612614394122886173545243315469083226703635857388572195863093850861914214073123954872185359571616964796561633780513847568562582666756082199153919911233379545283228303730140516613902524414650488896605163064831452258404769243058272668190777464008277250723461522723829004214923896462057716591456863906133649523165325798357490512899583029463384601940265312513243407984209345723526576077748731250847533100788117471434041433209577208060227419005011060783880232898753395470801465403899896017336363688456869510144473278951746222480457526101379582093057877249005883684779684001065834439985370435897621948287797012174675602312054950719914298180365478926698220861119194012903692662783287327156074316470353689780158108572280023894984799359183851538509151854228655994121004157020932503815354336830845490980394250809329404087414391873604377357945189672982795845625570572340498907554555521301292422211012521913474115511916282012039917028159195977224854916740322568963889974585060715618608396391171183926328216213858842821477027206398540205817885893618633478431508413490527486279152184997652520341284680131086971393094823065888108689759408856447055192495931356744456857187875148986263758011829408969072311506820069000652842446015150650890004555563946712731172592411008938035367876845896775601272299572797183201775465363868200784770867213560733305774306987005236724331454187645038647112462421077347904567577608273490938561564931694842813830071686269129272808190191349483259410405795278742273254230947912595306343195921772594300302112575857080953382725521267876564156595864502597768773556655362202228467527415828727132026810942156565413746559939568030250880943327804885649064954008187136113375214179508932756846315154600683064438909786349668089484595430348492633614568102169552608761714202076552426989235830451147417653980177106697422608038489509913735862317206007520636290953402138039580666904793089165860111132389391599428668481022451015378780963808444774169936510577304132688756012392031631128336044947837400300553597817930452223116388366953865904797473379881246370300176162576518932518677934808315654207358934036743962785464521913419493336241495487117242624995760551364204426172418323721390450301960625605208265909007856888817141380542725267319507779098974006427812492932682091673797362293804315658850905305420329557110445964101137210421802913172801943734997511180514549339122224292458187749484329167035111668462926840165458131488047777179065955792359485660756455179998576342930594986932850284797058727165045400732061179065527404655670539969706104688534415885050249041058756124697944094104085772168534540510947043310376273947560537997436040631257283158085895661460829539947081420239177996497687224287937350431195663213198286880892816026460584371708379168182650696054621782085469133236899001080385649854748245189348618462071108605994233566725832705182554974160592072674912335701071189765726045782579434175519577311381687771519367173804587207041404365487991513206563618765620900214008995005606477240325066885646648323077099405201892250121371563829037704261975309806348915132834302068146939360524283631708736727591426321779605981285706750717166383649920577644661914799028884709948812604933981681459484041514516740815006846647710732345525850074554502859492910187808394440029820219982004236053360674682875336755846440643513546157269895770899506538440556219732816342481227820850899367173291754669606363909617906246766929554754703887136842811340235203010839205054497328850734589178283617787742906447243169891675600947180999507732614617241077949614666794469379958631717926007521656340230007868748634612500747413910142295895450600308774272657266889629054332718839133304394238313470083408983795854478746817103007771803062820749768746612359215688015725864435250511443758990576056532225995416145005004682308331078193737082705678241085028961185375073250644808740290018219289479680564776740667614365781948647099490392903851499258333449797862928241336705184228396611031537506849998884503640561969883468238080621230696447806527429261255908293309940075133381488775858987549251460329246300029765439133602755691128635057237820483779581603351625207720878088297715384955011889816122245851032591434475242654151201239699551503672905417142002018753868165755667162914989901968476108880552837522169155938318531076368453524994761481716888114113189126179072441445055111701495592087705006814722522524316012451129143852102432748427591511290113028982093979300386886038194736317422596805702599904500363060724739286749227377054841033078801360755213059151864430361807444972537116453071366884002389537969200463328697718174414692058947325573447409765356418691044723631916653588852227865582466485591883752870875542201671272571023281608811122821668790975563790300015451430782006379056742765128640902443345263498381202387452575538909268755229521059609429844391959977673041782082769336624289740717081527528002897420351126275956890504541370071695000348927657098650162281252787621007160397371125651246733423867797381300732660182898310142716770214781256567453973238933199951193018193760750743714469189053684443548761257988027694720415214925886030531979577671903142807377689584890412726815958777317551903125810674337053990949172319284956940476832902645162166192303963247875741013240683319766520711225281958424798390687802307366115124939370757661804825487571959436441231981811302832856780842813537184693753896748633545331149111587884753811079642199085132105473189315871924240097651344164619621293314860285979969471322945254672522826805569778550459447763351038748874093427661507825624493482410506940873348666257447726383995979704494260480110885203576293946452581101497488820578988914942922243167939572812456947889458758908899103710942873499244987646610517074529879559119952430967151674492459135625367342393081985374528729255258456135782541642537087531678867957536932318603962323271386131982728601833583127749694859216172663565144503719362873373278898759716863926126936727449419474821390400679984825018087142404998139622881679257706653004310980728202262341901312532181960317978551037514043967680471939954524637662513215195166822595143188877764658820955566324103096817309792801900780131479519919362224080692540210755574360858429053766617600442359054022480343286523004705213000439071749715945377771752551265793326869644781608452034704375845966310268459384064312013412296745349182369347931476129819283584796554810549148362237297367314362551039069672206574659438972116609473076450346097164776222878115849700885162661733939772406769413706370062398417226505075078883617269440989639659693633953865985803270632250064664527368660524603547613102499493661853114012621368384422269986250181346661267644238130951798133024358042430256251672129695058919070292722107057954820377104644007299310252168502663710553340753371380734684989797110196263878037486729700792498719501440168534402516873061154264791711003037620173445743778577642295839030035733073163693912499142642633588852209037856430810128691447380395801871702851836396556705122261557177393765468262522190000814289837263539931067606014453784269906739421155577897533340427532789906736278209608001669102628660648007047941057400428333779303262068254807844929195944495246043817052703311327903676530029444046666538778843496883281808526201193802086188710182901806215157091757990732410229081683690865752405172607338244620406618528648512786932059078900569077354430824375929001194530688476976222190536653176140828627202573397515514747310429880039960836119661792874976124126693187358711914570250775600894493594125952857489554452334471751097822221964395709147059326271613316224585169042408275610795462748783381626611511073248654976052323861924660086282809891271138424730313239681966830063874536206246581572493232703790399502437315934684265485174160817274395903163233761167612097317977675376524963525335723549680711151694769883241347377164126578033098974278832909963009548819436759807086511219025768362229799038827673572426600649443121927486769030068381116358685618444313175492956585850890630187927425829191062284464471805675154169387510668540441978376943693165870786254243622415188286236176512238708794583792203679108534720064144367945835437106044640929004145402666573620237987026841777758971715763686909593940326972730980991467151449448548783468095749390821049900236955246036723030309771728781384657609254199059939325303050510326466650892893085744573693071979649722394797973183104242234070405869819935757858057333794228436345072692427588917380081366114105010470955924648178434425746917750232799618043535851528888796216027297336990292083548204799596901148934777658904428019033888123763552720395779741728445576004775183669256012786503816210143393468137982825939300260684690032720317689091448202490845565635502269631241133678300795793067886278581599241187335595273680123710348012158535705691175400295855869920630984552147272843584398714394006029910618398162950001192142325580646409555923790442476980559762662184085300972441609313518196909636123764127750301290908833855844202251512999358302448129378818190724645427821023308148048507624932260956090468661353435436622523052801240128508907472367850922850148626511619955901463398003595568834597347071465171524395864308916696318150406351108607231409588289685038649964949982334725828065035897314831887934721101127375905294455303842721728400522273380661883530606674991454561287447692162950476732401575180848129079007187014982984447224100994822355876575182783349457221681400666740900401904222802468318583921728320899497509950034098783904830542802446053384016404270355639022543441322682387661926749479562516670692944960376409005105837595188336508153687117390655029389455943796560729784235425467707677874310124119779659127373401279938102476593929560172341423514763371430041949984671891412394492524592804958162946488314643143490095902493052912595857814605613922163982356897340365453053666196173174080427627651518307463966981620427237243160254690900674570594901246012813314144638703445416878941010908463126876009934122872424511876167454657604528100397664754409169004676362503672820669808815647611793174342533928885099691634180830602745595195567284622665924895235031911861690187856181493795617826777703363642810780091649236375234386693028922322049640680500346882419926401482525119576471729715307970225660801623634835000344994611337499941967990717505608137614203139928463782769183525413189902086411061632799940403658602151498162095950584636367685811146821127131962241086558638041890281961317220290042219896923457922176629697187472539296547012605528294682540394992435177765913771787651539930063787143663496980032230992806344761536848677867964740805378336399766873309715992867745638424247628559183759961917559221802744974210660225254038703933283358616688705507664883640039598200262191196590673968045982107981321830355468464747051353203171743260324991209046258356731393689772286381260135035362004772027510712661614257526428222957655572381141062975984930795418529579980027473595327766601936920161118411727822062782330961025806490298728859246630915004331107739966493371798628970748370540004599015638139768856070906246249698044853964011398539369822339793752520623231252882204328880550354000220101033959406628956039209547956034830016557951617554181997832279903284502509873680641648766873335582504538174802424481875864587559692471383617061983537628777480110084272147114389337616854723221864729345741581338385907783767127871907299325543465208488051471829966793372743550150516725538832989106999950035611495295317365426580924304414691953110810133122042150955220639256222569927136566476844777187500492157445449989443657777808476517913481904780013584476202500896856199743742872112660111723182305920136449627875426842109130148701052078749981258584783546650201452287022986856014585305601550957645600834720643722949257909843921297436087876340442529090018083556047081471893024682873575249058152273249608995724758842546070054307480446782560813377362601521341428419431995343117336530496047482797353989514329640588280931467105714733807564296660757801481537106962696817236213281321243179109553542106292355403137825300543052992382166427531926326466602465911337540834923980917802557406239771671659527991979339910066071919701228842684652292440730301968047458514008376991394359240145111721679696339224089843850419966676079319878413289834675822379139974647843698829881737772351821345789161270472157453560221947414184988705088295807319889546182669074512541813344047505899971347804005836543494877851496490413835017960874009261292690348762128477893398044171761597697622089151471794789095732672951549918336660612097825239963970812485518503215900601566955314285875162304380952627770073019163960359851534726718127787746094196175310790593939954950224172851609921339117011442197623475874358482201375935936580686377957506144736790861568179372762034644719950936028006651025645438466409279140481194532023354729443944705358976827891407852965974502832854983863253791766571459892071986193699863572302789762187980250987112732173272648777938603840648952263621625201055302372348778655557891153619401931230961264156499342724995755012525816646707662321393003101457189593290027034277413966031275779226613621488705969290036654497047989976867586956290066756136693142223734065569821388936036459063268054617776983540079732745030699037696566626075879042462501453942272448268784230529242498825158411894766617214244947457160779200789370135710229300062258220525085667132030133032429443508832946388095109851972697134524335617961623135128839718990937596743149371380345143095897090108887665962350606782194445417711740464748388655854935249375336621806024721740677095678090651785512464403183176904523886199881992037350856551620892936151658648419610323393741622086791057131911210577045967476301262550763799465872947627656741081720784085899913579940462473276292517431125655168491351125735218854485508660315778936438528696681884859043298722945276839844973493755009986416772534798655308514765772281923976083014153956061412898501476257497759358114865379865486689411930524093558692685726836898376977211520967954850146457355735478499858423854523407723822932655655293657024468597701384426487068982176869801906253900133709330171000455257497482895765272867740520604541474675272214127961360619388189689612620710520458012634840296928024226028461103718967153531107130070748709425084518617482497746732824955260530016353089492981690206351979126315393328894708138695264247126557031443801940644138408712659643971954196708211413433602912040579922783920557440028039416376118758888069799549484936905499938340659797432249543042928126944256530415442659985499351066519863056018652805102623755676037038165096677218056817264807165608030761095876893376494022957089545849429206168868655107857908662245887784516672564412327465050362650816916987178078191328243725252370588263573064283037930746764270485157412397388107326219844059037085354860026223443454825415955688769572279695993714844903531338035604439738996351081379159193915418540158750654366159071089646000425038583510614598801614232667704354509445004158901488478693720376365102086437214613085963654228546779432410645070559904429709961838575061269526715355553057249906821427730315274015365332345495291509507088465990336974341371778303559255385550420037885999717586498095959462163689015032675084384501472876378209815488116538130712503699735059619552430599158270727717404722723781001433049871598496097781773752015136628167793403457318826722304901390568561625236499387292613895351359158202220103709791706714180569836372171673429817863993289517524864523852148431884260675453748540391514594018141641210292903033628459534513038751402487415745724098448267234815072616407053051329662647460720879129820839155234068361074646995340724131439926394980186193852627052163928404298899397417176081884520914451929468991291505665192525053797159297854453833004978108645321051274607292533014164355733534357470549030037104378135462571945700081594504247108364257774039749978611944057962363983205605121008192852870011553530256526570030780594590371353187192967430104361221179475679909355151897043932012067337365341777082007864625765367403305497327879230130040773310106673588911373296426126666839274921070456864141754440014483328235691315742648218135170199621411399334738298256831783443126460468101351914297884421762152017720688076122517545443196165521645123537524574807048558153188674793810159828620587372869185030895361169669332539084322323477578695312697583552010321540890428415211158105864125744433799052926787187040464533886283374000159866389984966738520291022426794290216069150832704302084212094753667595583787795003684988402878628418750847532914168825526260663960168396211878824589971525720669227368956200687065548295575953512611559742212725375559863343003652374689109673717891418708406144896082585889586448899751144730403053571951869109738937077185429172945894458568651331144642093834397036362435831276002181169068088697429494739456324566312054537038233188982401165224920170570431069698689137599294233349314524254468460104197909090342251339892761668684949175512420280096298891353620400013866585653716667507080273972013705781006482794447685610969003595771175219969924346507286573848786228532318238253275905535304470056737248073305753395663418482135192644114906084339516131253012580206385692158810394347431033232443373077947662879033912287643119854023779794090008742494143950983513537687552467779238246123182989828918017884576883770445735911457016863989968365003016616353684624411711893017949135430432174319508296310636170960669321264632365397110080052897958036201557213712991977788727268570492196986955571489993178002867918659951245771441586653010711053141716945061982782021006943966866559513154361116931725381232557306072310250731782033481228463303713057215869798001779019527536719929243347778297133639703503250119545870670298753888625381827232551105274571208767200760599057990699136196189774203038492187765174973781426179304019620985234652380690755624123378610472911582093224762130725382694770059296913016238628881285147985353055324533666407328402693956499125172277147663720781750265870503231030993831068750040479686787467354164981823112813764451381041128714695652625431017280689487379903579175788111484477114662406027933735271242236619439159934327348085366251380580038565949551045806057387641182996943802922361042940909452835397023717396385429270063601949523802542302931314356496301546127553424909775487271533576644793530896096270851001209818183496302842812441029882215242410885753802361433428283085572825658247132173185088816847160800724560575438448317361516482003424981456955891074159782484741550025587734488601623159698903584548011096299153993287605060081298846774926187119890922151358163802496439903751472173770383242125487410589748310001191120125912926807830859954999308267941409824798440303578721958159248116282941938428017021491304585608381757122996299330342679983874242301781744006318719891716088619377835570250551960538853429925274249019357868031578944786871348384528538040179663097250537811872732134405258454691243737197186778638064089193472119239320633322523200995716249451763747465726057787293751347575487100351623060387646648799125803205094962562007252448693848157585025309378945752272096459660937044827372115444549439580189143654692347714711309001795852447917101086417077804763678584507305624515586217953932393414750706206333662465621562426314336165242304594825521591455995215898290838949254068560809983748816592705871569962177040625658745245194235599073741826696037346329548240327419725087144348383579131161355985968179850470711393857588641278516326820735410329940069732031933025033429761801639831140093366374407149232845415071753657709116875883282844484201336167290936653179834088952988681395337353678054888233219971747014360833213427356639447045130106005867311652391186103874903916619329036489337647398232534784278592827931868476140358387028455405926372297133520742042388169482820860994917755055751960339081764599118576125256761149252290578054012726845881726064696458315866028066754797499176554841243122472112705300056730995170848508148177304754985604642792978884905412392110485105133565878354424542613294613085364496167797128622462003219010949549504011818566356601856724762814065260593087782484148509618256813338788870284852381603232163711813046026215114369472673791525052719507656426628921086525508275516129063930892201284932141688918287786880240492204524812021569578528612286999494771674423762721794746188329131941750640384368370084972038478856006589458184757531469106303746625115373778145288551167231323747518701911005882934697116119786326337585718221880536702033743143842503371159890449081268470818031250707276470746390311677050711990836819128350270456648068307337457587175220755271916989130164314830700791740612379882048246880256198319154571710343528396077078198780729670948751504557871283220587521562513980089962084455580896775522233524743941744247927196456675733284938207775945812844140682090007833472740405889249788465835609702423523818612717330029302961719062285189403253228140516605156221326083900415844067212652078940690625534227638214051041724550128772368821907044356247174507329242383716335228744958037843840735881743792167671518821883825736442935144230745780369540595304766450436458598546369014665408048114918404081211649714085036240213684383324396338447917801351203016752442288829181290014286574145841622540404896339262002972093913615915081746863599283391096405272037855697802052039066794011100675896042957125254337337800604291028805786350685450979720159579093838670302884642978026339160153667767381188712337947899211588848799916124504522156423316604490752494595023950476642102742665887992433916733873705516060074912600347982653290647660254454381751280253205368211670981868790194380573414126471165346810358722959987457410233794144071757785020694472399218023046576043312111599636516029681548451368899291405806969320153100130624768712391544106414182434310348944664887067848081300275362391314583330105289208858485069047534484907848591216344912241084123971079380664869670380619062913449891946183507295240377866600823551847601845643977484253109572228890898758663189433102336797317760638128988876914249180380928626737134333820015081303428538786374811133383971111997238319261928133690029394745607697001375269157431548809571630317719295639210406445893788429622537871233246976966044277772679035842274736713973187840831820952376459363154190117194987966373923383628670175716061844049245888777974872631373227277947938691545855233261229752646321972953612069290907519921190451541573666305448204875693879272516635628983776519393464576794820623639148684145501040504540317830262322709265765239590245651459268156996595856746357266542832696618983289054134261485709210977823371500808865667623057119381596600788187723796684483716115721256708814737241843048360888304760335192136292647040426218350050494139900344959853996286109940387820204884783285866126079338563525972485049173288432870156863995839049576558587203604371928227274061025075295719243323097563301354620185542228643881017780983065735601542864248303899303180512371501645877151152185080799338069024900574691795853896773530136055690916286512915952412890709680372522861089416061962359584671613014680290225891606368662699226162448077458630732418667292842808593673847950010490735002476529651750525182099121048010034202101494134058052324872036585761358071031457808749493842259103489529576895911832881296120530741023309876931229177286083900550800490438508577854989149241748854312727011717619026967810246098714709377903371002760312486277600228953015995877547166713563976936994597741634617625227601800181097799314502163198196225902576780640377152752563791738388270087761511349211653451894750679143975919698734323064883079872084319492240065156539966156172762193750360135314569126753441055093969447417206249227579684162066423007963071896448899160918328313477909438158342605314060449488293246998790810519290442258381602428423973951145796624296428665789190467157785757802801299705635372318541183288523456591295254779931828502308455400351711936799760347012153195369941170012162187824955218460033267631748711572629248046321034686767980643419316857782373321700113447882972869467483043970477903132231986345869436358649411730866110987032291770587585245215586365222444976141714285581934569161732110538866530304400229506098478550765674821509580008401089947868656457204704832239262109474218600929637475271126107985303005615842454732923513527465847505897418493363571533874795165126317463818319794047518263481231308521161670061922389724377224082336021405647399509227284430116055727780073198636304740689996830222053425842067472026664024835854990059149492510173618295358004133788066481752777038095157953435980951501130670707851057178547828199837185893423550588475769341517964628214759821219113665200182218249531546044599504569865791048550923412363288080228399880635243076044843562633270346892913015162942554807215914717034194912170819010172417658264990586732547397633825510745976227131707193437399470592792036103757262902848736148223795895113801672529742599505297948226929965212541213586648557656607521317357496794029973618690527541976523150520461755204776170166252882130643685203403028061660326467864818919968302638268848857024678010727636357684927941978675645313101346670038975262456918230524236751794991863279937917092454939166357739416000188394905871811497416916614529491839636601259762272677100571807568126675603654529397260629287242711720850878918893197480071167866342246412933741542664822989999834862880278311517832283396254528068193695658362741857226086860968067771297398206485258545223261354276519697488825177512040508087368773322908549784569045693651247051539101420516102637208298067942442615847612450330521569182697278027196455275113114554953875001541053921432525436594950606810446963816281606761617588919896669952112096780765816305145088860124372289863587209342570961783379274447485810232676456526645819251851874728237102452983479992044258015089342765680876737758857414871260112365738196545513730670778008863680462881367486747801338662275125582734037007508942686328038515822405121430468576068748411514254335897709839723275326190916438232595108558111383904874677619916059267089881521934075916245256223760131523234851052453277691673325869266472076164120490770297926635613882421090035859831825047783019651400838511219418726938990465824275383407141914632962642067262546961650037946604416002960118266272392300391534991372303846023582191418751723657863128619189910381633977425153540460852240704182151259688113243079818093983327014154578113219077264546685140123003726610744001362746831960931446432193441338287743208657035612265802499583083295761834211480033503988284550575502133012077990006849343361773771746918327274955223834004141622415964181102878307422414854989241432777981307283065599614664370391631817959725770675392789565900097427151889504509592053537162124080552644887649256840651595539001290596765180618543039206936821019223995890064776700623285656745190152312349446556121764630631408531844277674179487665060547580193741949479240858594650421771493412872092354820010164807962409296898440997314428866895815896385937147669205476314154078355311192882983845595488875084848088159354856999726731971343224740320594667986844836481842914919610057995779447031508241530343081617230193737705781365215794419502547595620380466399175890446808250874480199144467441649771500834303410253691000123746165901277461779188537892560015106277292697225613471593361388908575051241797389725044103219555279558767368293757605560890352731133347250867062071053419552349111379091185872926478472334284146103528265727355162739033964955395043838783631614907985899608692791679951634089314081023828265098489533707813969152571003376180866273533200621330505082477816030840981390234518326385460516514553607083149731267621074056323607613766725769928300526463127065091028845383081916439127779199898480164484351593872542879033058713329488192870270582448338754287924395690723102887987590429246606042500069359346912005204917228364186652454729876696997579147051152524681937931719762258559531144188084955216902987229098230415040793491582469439803492810599875176690927454141958498628807692744640659468666220525453543878303204844890642496555556851504859411754304074420451703326654118687621281127194261714295133889951665220584759824906061732264090365505379219411982417147595697405731390333674946921987211218419397215352107506726334135012937795547254008365888944839132443247953246870354925646113695776332900981676639810454495957987515855306956860347095570341743750200965758177586177836894599587146230301487224340852877989411710095948274310886066524841612617617750849149599575348657011546669588056151399515954236330545409778087078547157183507480559843085469464541950390945238685052702185920287537639482099314940172746966645595911749454607912970838278490201510849041600325792377489650879591401910049096346210578838656920882689225168971943454973250112401589580895705753674352677542818360083607898669065807012570315163946653306905290516676312145470465725815663372931482649749850332493942127195208608732294661932898059080231424111942185298187134974064453761570528274360551034293771127740177807574734058995399321061665341381164624583346484352289195570629147315763975371276943966695614664021696746032703765640075693372265633680107637731974948973571843562525719803503371284910363828905576908189266349895968272841143288243058038812111060950068522539981177320457505433723034967171621832275049002122100013984515665178376642595294702407367208820311332273628395542632050902941065556258260395105209655521591359261842903770955879090327478997214482086160522209004877159095683525864982166045843308304318263916802781384040802613242923469438912348389972179192629153582295416327056244000216154126605166825686044439876111161858551655141781436797981304367476784149717730247852789168323221711525231713948292924934678559146108402871500791080722130355241000566120849249227874321053578323274682943575023574004300802522506395265065839271609355977970246675920104572353535229454986931170202578704154974201441348481988284967728371851260121940824038453518827065461895049389690701714387965396255091303631054948944288768242896878704558658179331436143139072728172564270551146572887535084830649535875171032116809563723362043866268236961497813281051785556589870116498515911158114326889116317136436236655922566403126960199397272664327435947229072136660850397476291793015304608598197302326670732150881999068854687942078788218862228017863707756615756260893667870526975536777088175759425341490907491801997052082371705031068374014994004911718933006213597104520418847100871966040094219798239056283794745401558290818390066620082847065099490774589490654706349530059598328340502689825660217361942180545166964799519338923338293058525252641119148550795194557131264841853157051191252299019515252259754259019518665479366566007905300344337273711662868799030991305497272261349138725178643235894258526648155626732530493573475301089633048613283826617479855139609004506736667398679801897742438633659186476641877107986878609077167897035925747913363133871623493744382865649573740500540332835674597534774842108415096889991676709028399041594327237421957849776250828678420696227846874472098144646169806877646406840807538954802722400338041218995591381963450056747712262819648724084244725781178524522411503580292257214703128957559959883127207033465476536578694732109904384530369795178097673763976937524522125627451593968445182724287694042119721791275099385521150068709548665328288541800470410570327356274844145171242964867384392067788317431479103836409022771828803608779076784910762354149308526122083323471931377053645162443922521436809577128749276912284217909599506293864488576891768819133073117657560418723676109561226734047624749024179693638946040946527515864073804742790848242609054508847482895170817797165384078472073054138490039830424309845790335316127665266283767298969814990708749708739261080648374650718413509140688652895648320035271197100389032968174881240297052324897840455243762235793747270274535036342551680547363046738727340758149703401759891102365119893926370020716579629105299030021192953830939744858329402852286275681992814998504321064170793321800826372965409591096313415792326579464058395630757668335209327164903023539198779759701787932378161646665723565528468190030521014079275684893242298332103789585153589796191954823994052614992144167771372087497990993733745057765001104546394719770962736329385070325899084298901950334847475364247502925953677805076161329897966903482959020845310895370258613134503477035774523032833126470973542246795627503658359372276437441962012311626009124408017413690013692639669469572757040822771813207366244761519717533704100364855842114148693477590691719068065924171631578672255430024150026488458731964679098288171720359478892262908838142676239036715223632835207775637976617743122932800534230425491180791929942281364480635725679402944777638723957335053691722604619366167965241027887945512642251578537400816640797693904619765728366416033189933259014683444063379969407907863563217808062381352720625097426515387968697601367248084320361974921134374155506042504881622205123533912396898143110549446542964433294829605260181857585001931448242610613480918624707206317038341959353058604353076832221345854144431631868376788563836109211546069713883803320459757344675350016027443744264270590801145393703239421378938025318614372952389439789392650968986084553787307975307648043066476477363307163836433550741588701909369498558110709661223129851255210728736350050698599138191230632903391888527727314250038569706326044756226185702191757932041365904734981309004031802727603320282773801886138497440204696887571262804941601707106674006920637019945671281241221950912249868754114986529681256044654014323855791963249825581896202423018926538701764117239673073889513117585023911525104675246436263790555384096420386266952069623833216034159181520585612491228975842246248599203040388889429091194253548361276629004861001668662013663969773090905612306520915578868138202219902114822380250179010029344190693251544897995130375136252727173605388476655214806769802640910868101881453027292871196095871561920851471033846302825647139748069451234982926078322991760890440176768622640804437968774058534784929616513905202850976536403392666995869382185431267111572166933969772002698539930252793646066271437871853336109951320125547453927300060825604832172018982287518765645571397572289453062509956371452434544575808221740979917354864859472453424302699904028385384593464698366655167288358214703672997472452214968179400542019097762841094336689804550903043490096608370149040485417994299951308806637230713191381913463106415353817247132904087204210380291113144225724609663585732326436199372405905882084249147457186289805088590317490092673688369936224841966638076688962146810346931252630119431806357646430120824101682455619971559022029415607746065496920799300989575817210481189710277581240750140575731875954810575298760881265549476136780450024317211134104816904313837358297041551054626179845760089746305799941128008801054079790235025276258228321922140828950991679588185000847684821645866033863476359140604834180071675861908637911825654705265814904879119604514862166175596842236747925864349456183261948610092475503657091873745106952480068204780893798494479935611573839607545747667006846678514901319766910741998672008103975061358962371276251908747533810379884798477119129941605814233868687004062443116291592470449107664674286515914500291846891930109296265686240113683515736230115704950845663667479909268599119199370240492534640869738028682326887553506668157436241491302957172315474585443937537920525064526291438269998356223860791572615787840883787313533244577608393244937102384714652592962571455827713967246139889305854170990881156772812380539831889355816317745153848659020831738280498193742291159667144573203003469581850775768942774389832547207746010701824010930540651464046356753628723324190891627831085540182944057715804341437154746612530881229725889346442734287209756275403703876300393037026491597374037058025038795570598524342782329207767039524166780147246459847391058062663226081624093480967158284394675869973058409024051802353150175775887732567280280159817625720054952931628552661673200470999177839326326159253872188776056597018374735116445549007205450051776491115244068828309418034959164421426161559428311692500688347095252341104192246385979265041494290650321075601581433126682130856740054968874143733619071331118426867228074703483129626761337347569321666563571303238695880325515507016091634193116234732020828809795622317743951642548801632737940987114844269224417707131389914016899864817639460976021393216285734558705244911840368371664281013220189043850364688706183295638016941401170072079133025593717639024825184963576603391163499246892330676646500932583446033405356304052231443927505057887757213058949532141716691169744317501354239963783521252617916039486072997557866436269801060416938444124008265885603364504396410022701052364713471578192443165224911095214305130644643837124003910102609388919034803514178807718011748400083589458408937230881648613535743751296385667507558895570092698836516359209680650592821454544632814202729438991436250320140905958487087468821090689214652964395963320377801863661447387652734351921859188604099186449681128807992672705688791913234732397558914334233662321422259580931071187919445164151733018541454794889586690537928252579122329944069658221758927598091237674257946847346621962692887092723288887211823054543724517629207282677072250322008190952004832068115322576145476026666463614187423905648995174784060509372470764820086584061755264283331777264479225902649786822040975167369999081104762679819371701839805211582796047538847671964691164438498770298102878927207481062263610812770906023234025388753750222812507569796268372822732194338531967679547326641130185086166209520310549643262266270127762525984970927997110390062168241161204803311015899357822778050111404423345610838489842221057360711911910546981943237104731383670180581861910784851690143812767439185440364613672413328275359707097373129575100984160170551600639641984542963123850666784919316796051440075856327410630249915864923770962764184953871416748163317512198871340278529835023772417519120852642794357772091372016813713774690980778653185699407084176408905059239312455968447061306704592280787798792304617087030336480579896424187847550384368356227945081449166472944096441957789661356414199239664362464107300925339913472490124674658068384870968483192919510305074640744409914233885072730119462874583910305239237107317977918081322662950514796585527226676432923384621773204418858084217412917370287592940167007326525915560316326271271105695837184530437245323000522267173215300624130436838334355438778905153868656730571324713041646858688237849476329244514829625431358965651631952063601874820672649642798954729744026559214328892374284845418347328869936082950816345654053183397694254988869789231485711967243916046719047624937045410095746539911130399072135717662106216362221317805650702823491070437544274814618604191835483411221381037969899619298728874195789813106632431208278687902408493006010473754257753503493844061327398451604026404256702561199894405658475670313638650128634132188393419946810125610336361049280548972708366008170492240208609092724138366871793244541920658447335113420578963619141355828413718852984956164753854211245447176127828704357104453462364021883203196350803226222011962632011674732690831701441639796608306681440710681459900786669618153256124814159941120168604749182263137345701343078768530351071651163265456369512900639628450724903422434147399236222553482304081803207458831242752920023427754292120125334135678430928706480275779787866119114201745185656970027623284315332772980769146183292860980354370642045158212189124948969045156118571842309753484230144708363419312510946053902947936059765801623644290854482464502814266590621285626522171578326169839648348672466665484687105538148018247588933300001765402821291715639220314582538704580904486298757828839629139568212035539501236955332589473227009426010593807858637133834934800992542450331988455686102081400139481964499053602760685348381162485704688129073960476406874674447262339016915327909315329137513689499079431216939367896146952222281025598795815973171574004708352030004888660065777889494430525830224449862290930409960213176319490116103291487521659400009026242181487380553190930138663116480588851324831827370015036327824385461016062236165894664774834705468336219078279225522076214272991541603581432598598815753009665906289764768855257902294819248922846683772643799644217881792872899390115693477597109068348919638351977594337121133876337071831332415200327930704460366594271243150095546875130465534954937946178642444057629864148045651652493702888045783004401674527076665070933217563782022428563014577520336599935747717278130109335887456565717349621307095696827722215851832154192436157712293919650196275805238806316506736160013420601864663760297208646250084350521807727495066170585534355605168896871450674510855583911846121558039283006332964618902089879540028720558425751526692343695025322638540443244632205817199528153933047071109518803545642144344652158306409147237742985895639271380566699287935635685262323006123266712036696273778709384720051638376295942120768466325994057349559004103871399834326157454158896931447563825612325736153680945488092696128837135789343358910598089352030586870114054916388522472118568753540863255378913134405989962194989590501143972622584502401880663115427091196521858345898319702434166375674625094900147102723179873971626779433798344522464005258100442342782640190440315531553159638981785521282719092419962171538126648824220286067436647899780543274452488549433857101711840565559852787732797409415300657877052708580371672608911470805959976028285264928214886712988835314157106247054112580150736783228271050590732155228788558810424618803142777430185865452669337331704428473777409061687062760239481843685773194292972243179506661591926279608874250309600740276299056232705550867268980241524728610202465850839548735777167413178178244215204196792036512977947840555937019053922984008556086751343858172707469671710866298776145087366171891486119659642735310559882736396476529760594258334259029055831234976303469283722619958777407479354169668155371159183085029867423167037034153764299213941443701614440629572600040582794430443200568116768822684030108745880657344603167308561412352830161333725249897822442980144326595376322916461486364147271436127986285174983281367546658314605512397500483885656939339731425129125522853702802220734361062418801641985953285972449333167691382251262863929414075511272262024669252396118575587798284300109797791902508376344227279456856262185809561895061901260026979585754373631806863929025948682044407124869348249816993008643104304150764085016777414216040567773869783110683515219555325347255421437039534514978313082752546599849499447593486915873851311525165160440107781126278129522378710314240134776697357657819614236207252320686300956290978932739170613814792538097280948325509181251060848715607925870486848445912540543208258212712619721868851016481098768708439157375607721450146871583773852834812836777988886060142087517268033806374030221507189741229753553922851870188265629868862782180642156132017194621868628581782693545744907008051032313261138318333267784141828017930924571314474189416334699523229345267718696697910371761214646674956324780995386565022027168900531609073286442491676419074034984666953782299493687084351201897684186103396074675791642663243882247609522712672253986268312823628821015316551684619243444599951647068425451718571250897286158394163945980010042971051021232943878230135990518362088366273790877511132316278416575030968140762150542318856102590634357719733197232930636736771085676549949391254063068935461541630307867503841741794707137451920835414474304528935971371202200965710779113013205792992579557081618780739231730960503990146903598780167930802107675098202192295253757102773080676290421475839462067484791536725051057566713003621437329509557125853331014160645335495343448488668422934346071622218355177593739534260046418559929332374159338257907667835047627158584310954379777491943428544294796649973394871870400634887487535004871841664768608129528435913168271702091544577109520189815501335181067454919716891317047862212994496694520300754042847145609082709022000165227096976796271912376239377799567176975883968238812558745381219752888630589961511333737168116725815563972890421877350800765980796495452004477181575174747714383684433006312777841417812343560408684129057818230454614177934600605086131839381958417013467776030698560582644625823212908685396980197996537508018416201639330316335225462303958462423092876078203010273375590819600901513709788669227542178955944736232890335194213477878856022428061398540108262160097449629654124048040778833610271240050208712693394247372941132351982272137647059277693968385973757783754298717369034495673587265390476254030260558677877661833736443329370394547211646371584663260005473309815434081732762730061366750196525090725391447810545282505860698364006975762599809071067122745463929132522947252996269730321610871153894684236864820431868886556023915584751836086372613921564579664250934828091150876901984822185871844498655751133140873095633110194256681087290163276307678893496708072265738173345579064582719180576641583608870550034875927895777969233383264654897648278394625888128862117253229153654963920842190708207800531942136980120758136289996388312852209454224908334341685754598473380681332252060126740019753487210208142170442573698769163773578993417764305348309576952097827736524561798530519024892352978002167955556578580367705444033236471023251124607571210322572813163191576502208260109909123363023532628651797218401698104484660687510803465380553675181292281989279946229785576721704927961184597845191444974419912964205605736294316842580672271140243296767613443898494296937431471454204943533323607844120944776666612413576028313495343892781921053112202227210262520311541691531469690113413862763850729024135123638941949802469907616414594998411555597907462681700643937356876623777052952779531176318915514574981089249035016602703059769674552473064268126546095058998833538177022640485347305370675930096910269118040883227795889150462361018692636308975023453241077061319691083228707201193723060029546380790241303825516338764079777565541196494925623933794119599011917906494219431016255768618770647805086834017833975897521692244358193037976407092836084291486826931093585938376614632896660879361727162057836393496091096700298789462566923238458114645946905118345289923640189513336941912314824937638069107176063782798301295836431427556248887160087198405994439904471172309394426915783490453522419096762306543870634687664734725673091933304234238945657689175265399504587687757088482713051561852866790067716461105888167192911143546687107151929552609888967506152125355427983596613224876172861186073441128607668494940964898772108459757129333319711516975571382329269250326325959161653837030132614673168479876814761291702071887014171065010995765070077747067806264651919916228190206267902262163124016552605830431583182708781148515444133431264728310045301548068523582526217242779207681214759194057413278253982372543879629287819048354738475197821255744715129209781013958314035437933293689455165455875305947168239829294821198548923423164333003251051241978706866690804297768781752094070343961375193729747960629278292387045902945373782321706671348190588302006379582303531494880694260539485950842162866233971699497398453722893567664456968799952843897672429851669721618795524366214931849951895670691328248396049384055969032540003893366473859911086744562837139215457109106268319819753574123802617303819759646245761176340040296654452196605903796544271311873942012956209861287964800361356892731463870983599121447964409938571460875825697171586324951885576533114078559126935706812221077305450642483542854619945144269989530714891868823424094283140280599433363976620689066300591202286577280493341340636421821875945693944815449727824382548264240308557148855011818119986673090957172840289826691368343430030577881961027081280156604112483598846351696532093849079738755179670641786262974819035759078545104568250205943665600996559078353102505072238461147223400332885195873184276536973081190524011222098558805523739319187078430026635650785697102638868606925376674664786941390914184812057364426630111554621301163952814016534735649783632225948945463944394606006067825124030354396471924283280243365779351791309514183403378169431062845647374543232891224764802448745207697974927566193844133376635775033022294908287390158198402790764603294509250404557880047225972603106282824852994898803747997711587400104427712730485269385015038588505647313788901282651422093245595234839060365572964129522579596666559320567319716448565706118559781892291329999688465262611276142109574432110100565058358210776990721652645756700338253582836280487330057169578787746305604354676389920140657257654393108019546600431939973241531639408631060420404780330299380438657059766854100123504880555715681021064376649607817736236037165334066728037358453015826501483825266547715125645969525713498584253867025195305370708270643745924207711105699447900714616276675976370757188983121735053003176676933901324956520665092344715705958238662422988738903326844569907337343984279886272709412889319621543547137536587469506995780810919518713893948436917311018391840544615959890267501204285096294423270372427086073000526492248786120282058464943742759972845186700571042611271278703761994041124469812408074250394359072534638093345372982247908687249489648335561647658636414507783616686015884946586168523149758982166660545525347098795394580226632916065963502704902298686145415181926659756507513527361313407380530320802668306654050989526427190309100160792888636904484495945478916587272185468273840352301071830343253380987320985358941956813380863881465220156350264157079568403323421985508707226623148078323030886305865401480765082574880725474546408452257800944321569302376538293653207799381885137653667355187350737268716825943027497897676402454609508527749019829389163737827069940664678906451019454389206917107091398790117988332294082683409819607513550950509002917696543986662480236673586036560502008609077949158787175111670418889967860680493219927913155798000829788299554908762419018004046415465794898004358662858415752913717837834667309248410629808982242228949838734115194152880578627747753924734147524392842481771895836796414379217059301203893997621885405772697546891539554860457386536069505782864280034895374082661821802193627699201568980122519021773516445368993122195399757159685842795061869371258496422444417470034847224763979149957163097472363611672141412844622752984744217220135308248503647489058913358188184921694958801284452640660247733527987523275187924262122592673611683324665843922871212163456184746792311394206269260666655707936560495231470020707944310420014865542624551191499525631517151836324442582125134609153076677691214955715646806758346805222153682664516759911948854940570549180951641840712553038976757451753082364013595688692584592044055750856247286916103794456957196648284564296895089160211031909202436723569812503787907779423925355107753992497840237747816953054446413332327839159432689939391714843875755366655026480201220080975896511089020989012805207467290403645422591810383028561302433861514575537729689327266600044758199831091710664999351207103144192338621144616025203090157796857415903231996389630250642519921706069504574269292136821185316293749248499590249591151881129390272298915303049999751906029196391160647552400313737954317058598762822567724542924874633492957144958799251671018770946225781459876982811637068746665350687842749780825765431814591071133139050075780285531571206049915649748660507379667987283243474561702432381472757322134387939779933787827227569343606375120106764798396654438514238145011642843768896893540737582316355093352819437600844419102262045962790735999871384640247627278715163818165912574120657487005087886794277163047148189847286770322273136631862665533379944335598972599348217073150842819504435885634034420864144194403216986988156228407929502659106648436199854181812554908622582411596153457553402752492297219883970275889092076553932903130150692032785528585211915256045754063991729826987633161437600451853178740368549921388806764949106325267344747606508805674856685710449697279201751501275121523326776287033828131297034658874869024147161540563285667833685510840965974611926353305089264690188260166374202274209853339388474484159049284279891246140525291889666951405412897114138446159343189976628285973509045571164286260550654501418812838215584065231755082605574963511369771768417643913203377374210186595422711024067950706305707077732807241646756777698104094920271286596821956558929616356853883669853379384788773054231416050519128138732588018745181307634534166997367235649726920534392308357762635434716741913159307925776004878635221473676777351643158438640362288526927610032802620072575498300963053404301141272002979093710868977237159792417178437100134136139607446891640005250295925010067727483097880344142416149487864495728933441069953396641970959660400153475035400428372516856676188090947062884324320556279206701002132614668216503768077637031740560484126584686024213356868614294765554294225134477713644897565524222191934447010139069491596196006040164174897761909430323698496728688403716266017197677143172761778829658620166098830310053375854151047651707094358469886927295599939263560404416570479895891301224252566571601942852627231170607675655963301382160628952160435552248447125765065899716592468834131266821624990240093270867864789697149551686462599535818634580711018343755888534137145738867040473786914777616296371228714310375785612940229095041373622085003061704732224229456649924570127265845730597843028429420389675285411985192615263659048625522614004406945973091396849425559524471074953369722631238007223213460411353519000742473926869701063123936963770035101735435775043496115360354028863416959769828978448790795788164728977642751879137922077769070667943987239252267299217562123769283612803324360975764450181993623827751617470292678496466563142601786090456220006871750644314285045872724737916132712116085266258760722367490337577491939662250851716751662210683122643156745040521739924183476308243964449055084163409198636800688387231793210825783152159822166297183627635165188531860405378902678064928757004833641506914274809733942664884376384547061382599335479131619193206194354510947435345192709353351991292986188335787818553802431770902123829491102668164801090008020910121629427007709544876493737421390948329984654254631979051563374928786998846299541664816513039583553008899663960720112318608796273375630393102635286174462174989224355699251874738713148084673359351907247831511911424329164312752608374245267659403231679714206185482330773908671130040525962437338663811626689459852050178501959805588012072877903319503480733362273493770720494101092770013629791598737776192423006365340320296103217486371734964963349524007747190365735903330082637171375993640619095859507657407445757637580705699840802081175489422859757737754898096900326792159134040722263835441782199579706120468149046327025118104288792033524029065348101352717301757516466937980305604721968749448337191030172121171237238181524339147476241806727140902432900567951837584377883596597242975433231022449694965242578863840768312082159048649678574249510572643610697902495016861142232561832110382615067100432171993343421714115701289796897631463935412863814007357708540955451251678683036566987406001125117776303783497739427021044666353055072021031172240945902831113572516748869076026530582333266529923178792634248303354427861359893949563962736004976776564967469970191754224626970273819038866857869336813797997386623868079780949497719588675510463336165571065031071691236879086206647712277159073806231385115740188391382817785839515145589001356440723450859387370249795320093809381877871039890860124213277076273472423573481825680894065368975725233265064215984134688027635440599053941553795529240780445995006027861179900929540666106773783541156124471478524474692000733919543348296409992342542169644565032687064392818275833273776351260200600886294035719326650587506661874054252095353799317277923046144526315480307410315952054504993970247742724960388667091000142453238830101811782655132124174747027037002036008973387222470547038778656247641409710391607483693681086574412448812349517089419353174614717431088879346190913771485530801959620353107313326197312718002816961476279051316576606215104995965089053465322316826833326054953622188346159944964841813809810650403122634925826880543876479681361754473062876499231053122442111837750079766993485002062225643717234348702738973589262712648115877974644752516054678179071636164409135827693089143733032918237976703714016551252884264918837650923165373737851108865206828271231132571235705136752711236341536972692731796579245761571084022870763279332193609140946208074792610098352883267190072265675954591515857817513200390458397513592655048632266179000839770285168540140662126064965682730876167511447941813502689453345995951991421351173956009963765012985040328393760209764594563598722601957144709509165130510602621347428946543940013252472904782504968688781218744753731779794045381703893636987455958290517321195689784819362704465667333988866630317267496935046695662723206590206662689267869166546995423455713469713866099571307776239872210478986786883997956494907155721311150492440658356219807782464691277810405016176011198663933114403455847580217206178278167830187112210489708731018504632203726685964563895414616318466077541753159105945492851899289137173285441738913001829804404265461594127112810367615628156982319115700179820863334455252203219478261321726049915442264383952420769209853510767055405589366305121108035274605547719041792132347213162532088354540331203542197978692869762366386168213067469007521618408827325143704546037568153791274715164852953633193994294019747249784900494360590795485539333220783246042384714261353992311524748286052829013277125881692292418395264983499423740864604620825039824038472694711226790654447402146699142680873393302086752732008226151957055605948365804307268864938033881598106894316368255248485932709315078144388847028530131240844516547106336164422838781801154979756163609592729578700811066942263517204414748732464993834115807536071710804228830318508640492935951583449071014459173427298594898822140561390677653122801684879231073060146466191768919522097234722589329435963363341689334654085830523966006396127245262108864604657472562319156805969813674803970815082464061086025662654830322104975592160499755899857288776095823029547718381461277386066502768821300204879101276603969760628081742945911283129607003713747946298022758991588524010787844367252977867969539054271395241704022537287255916848197396268813392587720682726477004277694580523414055167888861933566615551721011107155658154873982028724276661561514381827426263412788106965701076835298477311724484438985979519632533496905118944373851090790218154465407301712629907834169234376005441162945947708300771688941042488736876608112445647010766630909753066195508486914237071133959772660884688184532780885723771635226261020222239351448884052579250893135144415110920336038613732922012886798932791065828824274892758285066543241669381952518549717064847955195758329292075977852308344146067526780406016045208613499871893505941953186617975563849291525482170089117572908964635689450470062739512411931498854415748038118023030903138797423746461904162154840507565520514376218442969428550913441362890574020544775259400859977393641707745813112397379812408645801842845068020100174277277870309571354093717811364413487280885829162572911624742640864716639577955539381593495892078814373210365902562926658266776940465156665789411943813048399545350379072901827258305684802375398865578043557993198809663969440675739912879459282684822899005176195407112076719255636445441853624895704522777755320290406778657621801957899844891573718948849337841642595698526065244154718893272583815468641304240261770576740574264643803167212155175124420052194595756830110178611470289617805534912367773069719450762881248542565431126905420784974753552862369634818310705099344729902675499930161081577112945142205530024428588328289908910714303372554122090152492136615219000779689949011274168343360240494786219469225220648341230608798895754227317358996708101622316890062894219408595970981363070677459922014950462580947774560005645526695535771426297354037625712902858681234705904729531764603938701599990071243319862950829344245143690282332481354057352381074458488085354416910824531735173256432303545809044016703874055148432240596889863069998732158615472119512706567722972942575005610621220373847956097181141399231054247018331395135857164386560276056773352558166990796366245526215994944195841863123468338503822452933613004198978739504647700011273003566793328985478063793066048966137380141537516841575051674613192951684178443248673611726225401711058034452663264864026436329461830896636503504606487080396423725757736472122923996125089715413527702755370346864232291236273527703155089966716925627229539404552959674471039518554016205189922298107257608333351931121446466692074709492928832953205672420101255543018350136522618531659214752156749717800003178262306672364577056080253105248634836902614970521381558324863309740832149612632529789527629631347069495040610668807533719670218240966919499879422993076427449926892355269727421861678633139890827989418388666760964732883362177371749239305701480557466601288578312596892530901971001140098826079059177289959406109798137632874562366572460272400401127564138361486887971232556839524226684773372344391544538492711104360881494010475685808101506035437983386213411841262280834538851966872937832778833353434937121374366045860634933061685446272347504322475561154691970151044913489586002385056634502200549810274303533426367676766265874497273078533246259720292420231728360025910019633499261807899969088632994918758909747797407194827968972280732643814443311165061232225271154460477662786245919242517097372774818467764930599865321668587187842772305093830912818158875463444875142810835546513207394474724879736120820046638260794536151455140907066002460728798478339316344969440031232561056317389399323391594110593688239967997197537003107200722927993197672791676376328538639765835971609091907219491255824364510961793217235109138704279261516348393713508441810300663843004926962679492989637665099533266950756554764230071814701033335304452096482745120067637651333251241557525178052649227629577725942883042482482226322103411055606086638894999568132723448436392621570725011656917357321105901307053757398815855595297106545015876966993377182282107838484652255116073490937887620677018747790295407959413001679124082963052551067136815440940434547772769292981424295572002958581726338666262469876745868055597597045612553280944880662648000233696584839572035416655429782744274755127118584216352928751213388285500040800784636712185460898711266577007411497012611440718259840697791390010328068698018537446431954117176845836277282062611617737203537075575526057797280114270731616076500397016429330974219138104046618794227671272023139759241709040953364133209506841250302278106278698791383276763230357523368842238278948855054924339089959676652237437654480413533163907472725753540344632238125149027052286182226864341329579680270046704110162753311408912780285789123774670124539435233377879971733553025530837975697521151867570834710954549034587791130605694172491564215441134316827272842061706205766790569510480452948778878984261415751546777612360544131799214146701306409434957625056346012029014335162389412553762272713479772879657345799995572065174640434978695143740312674061629779536289681404925713397195132530309137351663413468776637527048821796794104479085401550571777176051205692258785914209756875573409837430204326975561968956696644587524680478765301389502626507592002499202413173547020916592852290878024805607148219252926005121468834302821123365657157468306583697699879036637039647549368793806995976903035012453809869012879775604798298692716974343272618642146786749648334939091072390641345442703181747439597980301141688163042976067558780132158227075578479599919102775955101974477293911526014728936423725387814837824990897280136896000458458408710867312084546555599286049543591480573546038163393114595021354325576751633625493833253463717566785963233792023750330930393020801881162622625948848895134166719143432386424161043461504084560254156742671839999330113410470292461014437780757561444319380504618480660395768364244856716280971853607794483640893084276935382110653286149657760798730523803205474832881027582651110885002150620097245530606614284835063248494126429394136222215759052968815935186640140291900607977182050004112273941897875376210724991789007692779037666547039834456920525232568735325674915784224486179684240451383508975673544595998217199364872667008351275990269850721209914497916302105503560639266802819717752595923912125796549894991350272401737289366565252831985625315827922086735274788578115247859839324223050708606999096735554062216779207644625255395847769720849161137154518096879958133939991366265800905248148600184204311670299264252754733236524033250744807665180327930392144904349911232860975932492624507524048922976560180622988452151011835227913088617552799368668197613376125958848093775996305766097924020397157991534586759980378211409541039860740873609020106745798381201136463757218194976415884719852409502876727690615394142413437380638375572986101120610397912820699628628069030024049877773332614026208702560207325873065201666763804189834067911992591058992203664104588355888531967523533284544220895867557722775104569997124425301458551665128665619336891359062708633974799455854415660002574478983695176989338012886727637653266618860717206703716476921994430417801487875576458690734085636174019099016653700922039710647698071745611767412429836562461185937455668217869301919448030368013465268979754601649981898701267076855556053969858232004253190829332666663733402704845151940618901399297012608386231834397473220325068693383583497453552869240131031281448890859736892363189613993255490858664042886084737797205652319260524926552468038395735608368687162233980306772259688421836382256297136667457254976044155874955038536701101859870105818211291329831618541464921333988955454081993844481069220401552948485269355902797324063863339565658827809516172158146846820026258271080944890638653977093586594428669386296081191557244776930918295210438687402637139157725921311736927116955457827052259601210883739582661045571668030730932940799713693178853613520487098982404296824802683181910370021364185936308132317041375167202792667357601450731753445637514671735659313374719337158666792133964538103348365406385634162668422340543603253666730670852062342396309564589363710763866773984246017279335894317848753429551740736302438679438223154349309623749747477437734960684132070851328018287501772886235266812542189534266415173168463809090426801953316484616388712155905800743096017747552625521637541415182130624623246662123075059840679467785675737301697973784726664122961213503054371343050825569598205560677375119038482054418755017308786314377207006954346743256950455740159576517790468728863665411996793258651497860459819132043220729367124424471240779432962120209593196885213557486030452942948165805780720239637737202511099072852447343837851482313587384070424598739263953937374994836635375915939042157322610488133736235884506187662989112335140342937632488082749278229974917385161834070018132849020369980588204664315857893484865939130893407607091936315948800608528024648656831319057790645504475698498332993525017145458065055479479147942366414355170510492678177351262205804232958796693259887144123202105016713085422199175812238630010071459278296701166440144023911958836038081811838286508054727750672182364420564826304222779764283285070013769247998214058440035377863390045970410995535568554138739290982519953236083997825669361146897779306735409024809041324493687925331112227222669274945197436407328649752925412021960379145967688928444435853962896978611411436671548587945701626928732592641486308343969876265175694737475769789751712950830076935022847825688979713383148942039096208654864635865603609094592737232837793314375732854708362767465766738294006784179587023468614782968598146894310785659639192877089363653235891697358875144993905455225312171295709189616500516966478189050925502204874463636349963167449680805997725923399617848422021933811853195715403608196675078582561580145596421237476142244220633934773934396901425920333887071405486658622331434894860051090876885986853540198344426306623774742946549459817674976017416582389312662525438126870232765065243389172329820375140141857675024827441065111075372043246070570312048804550192688783003172106621217378888570910207741124676734837519570445955574333169567811204763523350442032350842231336356710100854394943120601553914323016654383382766450031919980481583942163784487608289021420076474397503206267754107248493061122553100077049042748617074304032553563182414922954923491715071275157192807987519917376382660405414133819874755669856432005897094624581874809870046312177032640104540136278740520098472755491629461133046842517175923534666410249969087634473140338835283137990857287430884228649440908268989672583895472032078207650107077742611934964001287703213289851646303624373209283684715808382298372720493130670564850312647156328169531579892280349951147997081396762955875820268899500957317976967542122613009083666647088909805523167669971051282382873147177345935630636924288755740317364476496721474533447989897428300167361865751453141478318993951721778475481890709903994251856065728652401509033098910377256593830981313386797330511011341938457626444003230126808301217408829491011573318177967754990569635286089228560079606275257293220379225012644658735159682300576593479009169888021896888474212534748704638947616234853586557626871388620589879890539225373305899955569717799712750112733715497520599439889091547694315026681137157861680014343302658829258416476581845472313498961056684725469691741369461416171550758161013092995322490935250151094568420519801929996940672161853391672111413211883960160913290092346820466930690850809147954438335000221224120809370862662711541547440625237420826510838176830955144321188648361143260786980139615555486336047335479329043121654253888963237080663182618050904254034402481469164220159375267095451085320080228217527046832146746707406638636671860710081498177176382455481806035581771732390237823271100518553674555644098951821394223712928485075630338111307034079032654167492922393654756610654634805549408689903823466405995363818382368706361216185402668422553255004645994999205113482079749037082313617575727215579024044763816909697234077888879554332537854284766669280389017469518985456437127933586304574253381293358898735499756671758698249644720333404108535212517919262122282011462599728716089026098404104668427999741277082783819157434980022520196447371096267052038767982847896649142737133892657752895883153558827454223155472247102942189492693658210496097810440161304369675239344769245291220384887096068296206199737436280675138415318906222037742709784515686208073004888823175583875144431640197903000251389216773390461695218623929854461503979962780188211483406078928451876627959214387570774350599675986589743352869521245148712098639052004164421957252825388826315696412378388104164502657655926065931779862527977909363140423456702700354068195991622045807269905887132010295650363742316787287773508420555342598409021690289736914833975331351842956137281965402678765115834452159719254269184826751442656373587983308010134571994345611071324960456756982001000221450976291268599220736001686914592334207068490665644068714386686280770763076966746620564153015245299073688070676253533070663240075674805535521433588111668698017056266497352131011535716705287317862434171195357236955413486700875205717276815053117167278365863177426896005840643390583776050516413478877674018301415568821315515916789132204030319870812291114430100520824872439127809466639507984396953273021834873273359533225356680668057519160316937717315156649389185159669490374369359593344306328641570801644199794107958069633105593113744974931561899859090549243164030120185730329936233308402008079574317901028315524465014453096367938878490122220422498324055812121138604066076090062784209616940055259933154845415314169210982271754615282608807556928580294445010802009482018927770214935599118198656027993499382719863737262792301285592502946018781883756786442811547070903831808060124504968144887372867135175818922029758667343705229918431376534568696099073586726317732803480440557253082646791870017196297172530512304492640334574850205408012155358522947158014607044675814274620337860259818079306869241201846541535268445626368218368647259681602709739029999921184770539156983786488042357616629539517235617957605847450506597138818373588616667300951543179838934319579287630935517813225219698054540752599849104790738152389720273087843856621028708950159555673059983123089833491205261037166144193099804882932645606519715663279063001204605655063981556212870098992463851206965716866309409773445607376082338758095177511651626607075710343770125357147395472056910689610652988933496294762537356586085358461997046850827090873782473634636017087027509165539207070695269729987508297010610085209298565645848940284261755958097930852358594955147525822204355062536292479860167600452667100076260912582314795660208870883203903217739064320041663489616663605834906808346326939268450850611161079629572971265376505477073615077692873001643774084844103231449092633641987503289076775547504353405450759029106461445694595923048175164994384652886353357119097840419413522177931854509632120269661414794859197142419182166720880808897549544670308420338007392272738852326587851689938245837127712611264114545981794032960031342767242408438964525160640960239596817365871613844193007340740487004031581246155012807677679795738928992362245951890325925169603325113716991098912672618355736499580852493924245888440848017301973582507562575922539514609761205865027250462456522819062922645715045532732727245079963986760780271753608357652926967311442408551798051072281099315761588765530569756068448685307753292175554844902118199795157350559002992763843929201363961591065796406600822927117987735115381922174348859685605004687920895861872858540335495279626500319152693799788781498812559755465407502261963154493629441873674695421242321582765477630511378454693505141126437608962316445311619919102031997955882831099965054223789479762194947323446665902950209491116306310080539980064011547054595274956540022267513689229798835914291117476777645834837408526502166669787903573051520016030770446843670315183503311415810555100395132717650100826140129256140940821452105343747268129788588037094083260508220668517809367513319642616892854213779182704503583134135447999671090431845676897146471302119223582248790390320947967938710472425932210774628908670206502216720519689393016112347485685949774054941769047308258373122653144167360534817025469931286447455528490873084631392245491449249226538501047287127242042167979913703917215146078864258144284136455954743516938087008043563517751498479264727962848633650530812539722070485289854356271923233372714052155888675594597492584965856111076528206513714151084738797121617193577192427116890279633305727535115955254939279895105381381752875170076225414697126606352504642939354033419442364853334915151038602407764576340383212678895923153249911017701754468443503435569384856014710185563044313866545781328713089959977561323386595526282377855982893456821762024078609000322599254820815697210184707808713846876740362550862999648466011803986021937775769586672401061490871818711409551230352275772634418207630741428772505629931419397177498378629600660584406055913707948126038349089858210042569090803381428155485768819598682086940054056907058260101744554815559503001732980189127194331415013858843686251790919396446691978012501315575112444500843917371855214806908875164876460926676743005148728017311882098605044050850606636125284562712629088147673374551233479410223747834666926309644666346448435116380525256351495946771135785824627529326435867574747564564852600200714016536903755179518335618404735457477879567302268089132515894788926600058136842482973496624915936325210194471103262243947454228829467255006607841602976615059509625094929901722007022780595395731113914912837781853939673492138665329672592978476144192495367999727684598462997399038987795305460952539141393185443453116712543387129936550078691057905559053937162337431307078287762485471107987263449657221616392141023175430831841158787414696568309403189969827082904663260618540186129349133676762422214458085513505539966827481076307655220764278850209769758045492686731657049372932863204526503952134081098559648421783123077149972267523802751306567154734924159071722075423672509275789847223124602584847867548749659595878529544199037935205931261069149843018821305818615151565561983894757522598440629221484963578249895058436050190037273658726167599906217525460947089088130720453628146692163488620107026937361950984919934626872933780048802056130456383937479720466624354606317064221812938802381974005860240221672137079715806005402654576364845137256012702077293821376937084155301413336136270399003154584872344515106152674469144518194220977537060769464476553458379154223494726338986165895145761632221039289292563894767537485665731127400008297145803745905647141571373414520051596560352385206485823338633815836616209402455867085047194967336608697235267566111620925915626962448071762104787034660466340932611489336426864558295256544538893348798141650252706834972062123307132292032418052608734511791037857820108847437975395727841524939117513535864455172124633811686608461749951164069935352657388578755764154433592553038264732917295067540546590647233001823641372532395821781026208139259534096075950863909874655607754706788773535156175429468360757899706288890128653536417708387064580331316092703909867116867387698915650994926739740497309404827024703012767855728585727518456914416675333693563043565240702490856551085081259346330752201110869354976159904868943590279385742099869598707106987215735229826969742621668298100623987334689901626473100993165119705717006075551344878638803185369146475291536081541164836389666803624441233726331171772524924483436515226162881236020464331080435929333431244033329781997117368108499257120135000669463127805218542801754380050937119440713770304005955310651493493177057049000515191367221614924077043169958105470433195161588026917481538087943164100949721587570407272563806403528099872364382836835115787424542072659042979886702799367044062630727978486660432796681109158414035073620350501543857618532580424436839494847024776159699865364636318063087657312069302772685726044665735850573833724748894385065899123110628446724083012605248209858382939599647911996428438757456678148563660595199110238087036798104736391603449936234155058959706796653264958477625058882500231996889711464460094194563083024246395572546965006197002785489081550254572863679568192788739822233460555330562460639090393649077858577132484731147951115749553087672866371490716056616041649750165110227071404863949322552710107139987845420120153576655206766555405984189386491442911868110596378278214105662573539841923451856831749959097748333313392409918520495504884954830305895214933099298300009036904789009078175804767639717671585206737276052805071116113104797690554512198580933245973667835131804315105454374866763831075457600166335731469320527945754749774113088727311132805263488585154530319631350419188900385724179231656059516143260760173998146882465782096411433085008901873006639554938375858872133088936534211400884004033983798093470511821707662910718102632222251579177888279003347995363577410957676151304566531090959213660175274859886106588048865939479575484543353459743527198886390016497442334449727121412340855200978983965804781623944140400481275803527495498693975248631095571614757803807059195165801867228857322392238064735608350435208227795247669510067187079210242480350593326782542244331307500354543190115515248548662585507387667872533039415230272868747331825017011416882755724998456842777951758163389713127767248774925188631337463385115803199779992753798737060564306940688650415175176407409400012554684200292137030326286938782979714962865625703825683864683365619270354680210904263245256848759761509920383397887171652830535809586877587494127611217959912916286698280987379716188748154624778474112140319316433787174141998496116144802259324875773020467708089400218844073597015405661770299983127750112680241014249991820301207947337539458054959650544243886951732581620613690979592895095093361449013481675475814990857821883343327471617383988728346627135035212736964195130182428822940669550851615876489337919824344563699853224268486043347787410623982348987988122020206801460949042845369683032219194872478781991759417235333642782237522421705189469484411211100843818001515902457273155211114972356360013797581633206201918079453521955432663439078689551015928787741027579471380540237214362235573748288782229594986902619399669294361620566197787984546537032227510625459183175936118152414038663605479732365394792683984620623345018989440248025803545552468034674805506186203001431008993406016141159626327541694369907712188503279780687153859041052440828863156624066587336733786809032140944611753262159473336283128422014817621762137731872536476976724153374661718644653409413484781006204732934898338345979185492438037651142759312885848785485236188460663720897599779418400941809193404553594893778771119809217180651099875005073810157407789819919576361140106290827295846369917669210691887791650722481835965545663840512271197739001894558381622575719630206713078792650337108859492643800659056893134808543592544011390453190603439095701937938499640457407950349342841562299671761989377317483462434365702966144562497749526307051209051685478346387992555998127046943365900809827289369103911570315047406351999899755140005910565359550800166838492622663742746569635672620164710161963300380862180224750803571053800996966043730892050922990172565216219864839219516706895945269131816932351151749458672056617911204307733555388296090827514928034163052890571598741458721700572132432259164348471195153289479390700440424493854281690117986572321501634815737637502243647722995709787302445287450222721122027745568866889816317986054528314244152266135736512987645693856859859514667112817730357244345978720439394582560754455464117206780082789828206600410867503840197143676915577418861399052580595536191764829192696814155583136211087254082175460810478916634022886427328066212874168761867989604252843407881242086993116001543072714496462134566946825095852683500162231562667318619055164456904253077022113465663569865821745943336459658113537013779908850915658792485766137513006565734141306161827646047144181440864889260444818991346183258395332036118010341243760551242452743110064821316517325383819745863165920368502893703017469277936288242864637580404191844992217035800391864725802729058943513856736982132799201689119640939398645496611584098128928460246169643749732208731362883902171718672617275569945454957656924857734594718124686911164523480883673442356020166160697958806328884367542191406762585286587121298493222364472323890122658396437655021711445011654304587908704527406592052241223828064359770250469239162706952834533055516863056818524620495139414150971423680024317206985745335388207730932103732263982401703873492345121888078888146339980134970263771578966676306535325871424600079057485333746292032342706981095246708724711006698454379055951258418099841570606890532019752065357701330215439332592448163692985434997854580786439809553681179366296967513284285295656680379963779279220037881818019067204888654389896696747950483280490147098499716465819817049465030758186456728861282193611053330341470599613485000639690058290359413557842806850115471356722127531051104894709311717737730596810382304999626276130525295631614286092863907629613820042147668833108092045208480825370205586437195643078706201347909571786273697626858187198053626936535431287807676005823917041683758088192996960627781923202865559925812885288584434969574062163024174735473146634833332406102682077519092458422122495503367132536148350511436900333572345164570245774284064466868727479463880207778446919856172795440525956657234955499022972023120124768713990395520006596347669984222824177555395867030340926514253062164478605224649227714597975436041989773438844101027002534202148944856193191330538087744274408214634115366515373341101921712736828331335261415419754343554312205783439113619705399397511296802403744004340944609215718141115883794402798376452149031214009096583223032093245417167265357637522726546701347655225036323695117368109724982494238140957620215901562984048184047812337822963992001093394556087588512892804382910851713445912930282259588473536576341649948898049108999348334964839592961043646603250511237315087018376972098713651797947539285831267944891719002576814322611402171659075649109207136113510311091050393800123315988674934140492984779556621980846819528193722704654349814572783068818896577499013093229451169762435734219860022426302520855815793864460236221803042890111247341532698636542923007449565035953409481192063223660227249796737715614803905549465541073510015571834151173092656503356614205023943738731667177248968547065963379738922517752027724511191606595976548555705733848516215274172135743711261934452360511765818959651825714273516658193994238884748844791121704427813133522838473861002965092509263380136422399924584239609983232021465170256727126845963148143672893978943441589477823743592909388310055907330853439269813575295090917778820310169268843354696794416007285082956993684140028909897815823460316598330061056262073833213982093531684730924464365668441241894643550875877210931988142169367540720294733879111675732516824232825309577282914880814387647356602852886348886316712215013972855667137604719158586410525732105382401751431214276752684376013482269631530440370857969361282538976802524738726959116871304633664200638832574140067752882145171451862396327246394836227906373564825778532822394032589210307491878709807193539439490208232998043841974693231474805879636039411417737851926969178457272386424108831732856004412545013314019788302776406270879540835030485126599950639869989809782313717602353183276825686897802071385668418140870620880716872375492174036825381016904108220162661510553213182779459488490677858207955034841870947239860668781280274427522197830616301308164300525852618601374718781420284900380855811865663061318157027017635650828615257398682636714837320348994318139141392015783100526161025635655143632447801433814209909846757607521501169265051181456421855025018184013769076250956601814993199403086528884261822723231304519959194905430446449202055737698719615901558940279934941182230283718759671199077831552790256952590925769506491178336368033930050238158683157895793401755378253486713453001287778667030651033593374662126761854914513310316296523149785156857928507593134104809606000445103802611546961578233024253367287117736072123550357088197958043412802031007921740214562490623099063506805933959813770343176753826641690441532455087078565397127895249761466308565727064686093492778474371206709277601574965684142179782779632536912888258940955665438849806826882456602487318259163685807497963084483554364061908178163844636864906921851352042626693973567669418762649379420912868219625307536138455348967508840740620539708056370934333372970559591993479597005337720124231474106047399055522097576252277820430413927078517591990911652541495476480886707322821875811461482814800745686164591309192807060198605151395351414298409678984311478832597326462030988185598110080995487394905418262878062760697799902473605693137361054425952099700084831262195924551025781350129002205769676126893641472105196920522537101184200605339210878635135485318611861223835422428450704139476433190410600709817867752758063258903118680540406757795248437332980285155284336500717170426800865162755182410433901008423365590497266694517658229104344977484165393677700515997577341875466488016324798257422170342359387162668262619741437060812571293738045639517030045845039613547753237741008206017443105569207753043703371021631027386218311786974777439520194482163355440204640763699348557972483831571199272312914487230594562326585105483966308672242540273085805087196201859599533801687006329001098017741207485155863427738130489078762020024213424479025746243785567714435741138452979324893418228776968962879027190351285649149822237384939039656224462799765459220433192736746319316703649098818441530563964482049225345991088444361325565217780738604890399173263201422625950275658993277179245991084168595867009820583865488727437193883917412074617449962307950077492078921632590810158624614492014221245243643300221623596825636047431579570644065249085305228163798932460877031889669367852423559612986340477839021641026418126663436226474573182938940904775193104412991249520773926908516624768210959049117191245496845242040745555667613305458586806330056263627717607483180361304927403735739725874327476150489441835545134913970005790734360733532451202044760052321916281562675385106918983855657105310235750539779331601469255581212676587509842066421705955730784422534735722510735840023388916950326088690181184500924343538136601246365306218254149647133521845222925312140594742993718853183279796437263509039792929869177302367624004538039520529110130002678502645655285525595301434811535370115202286618765620166458891013269346136163256367280830508512990469222885152083258772975814249748198749632627492056333091270260117970967284398431279346645961362389002271775177132182150864331142604792306537857762031171685036776821679085133333921968230098379425749307476203087384328261528741728632770128123375714909084983106340687769359606961701576146495814028243880501323008402365564123597221495310969902123461703843381300575789467366217349181379307165096981573273252738316894600484596094228105801478089029928429274370110513322364202669516131514171896103591349339899952246881544095164137110998115752878911903478292729043579374411391912087601656234353587061215639337019227751711955669337768546656714660303156608572875894239388037454140815962221515989575725229169759927120785114954591849520257732872384236530844548013906907897037741448364066570929169196526906827133589925165500671310072588251186295641101176022013828156659587700607500698107478002171551188440691142248302676500753846172651761238521499333085392294971630414389147152961959070077224626643103739864890817139640968642215259017348103888256388974277534945064039675416237584150894368857601198628060007404044228479955083340800398985956226279261175809081221247878827532206201539347457888347101789690757970290512619068947498019334563740580276843350127204442731284900986401500340266405523283142517274304051170013926327668614403110280080659815797862660981654497968830856788859847884640745359051914748925307320153551269223441332432878801174988810601636566965423630714004148160382995411327548668366545665826412862895146068409034165697971513145130970692294131945198587612989409819272899636563652763322409538684396369153286192029229604784748863144170674082766596727504481055630344621337017038735067835634831085178031413519403169316008959093445093253713062371707222163589950105490012757783243903832437836941720171406318282202926469148147401373207897925563055869351344817413744804865291263405627503982134071471129690884375681875430316311880395818400815529794779933523012131195060435046697789884957950873373883775604704571742406090358214456617824375118494730386103827333235310997434147399071255189323101652272787531892568821146470993973236842417124750891894855445954415602846796525137719769708573726859685236443719817665586292386743200707375936060966103300441009655804122665513227878976193971430845410929441404493052427812669263296774017038550279575158286280037600078313439300433128767611989517528862493607218425923052183738027675926062795192414320340106450434108511327733166473028823258147138264586719154817254485254337860409967335501699792428519314063518047797481031753112996198704838676781202589707945933950520207592709473633588744130670264641227697744574566299199504640308946041815753121914042999587196361458573999709088877544413090092048018265058735425429055347833965219011993301914488090717040995702516201644483681548525332797551373306974149107003472130804946510637045397621099620380989644400545196073007064592140554928166936758350650282400156145941459872924602316873370689501764338097073871014342500851674952685908795885717701085459311134131719074235329018356225333967118541035944441140143019400140719505102741202375951818966866806553295251261703596748211399351001034588738034148272438288750154100430085756962720052692607713387518681458549418150188872335571450776880670972335316120117719550033888458267321118396097570886068659458469320433081108930142397107195605907755048666064702625883158544016593811202165716058735291205426476456000903230519526967441509887060989261592349746951442477663949199813577839458907335272075201767276465252977811113773832960535857536787535840413763216844555278389704491468191202416132515442331796677672651426359431577533889280364367034705316464981405185326544128795759741141908639517912380681877849155406587671661218435702751755982907985951040628763202465507864264966546258991283504812039861054409083564229459877243497061778213624836630584176274391785904815364629447292134916340093682992479898695736819006196606163146629507102939807642597370248908799623984486142433319966156234033798778576238117814228710142788097931374663525764190177734358949366881408578871454660360310774532381667186366458761195447655193402030023879486105935032032398746948321035235348021829663516573883641487435283144955824977676735231286380328959183810039460613386300482660556353073778876969688150454593025240625567938997756790243419632215061180555699884780033825250336357989228596697886106081752989629605302213845111952407695686063870547989333796234098902959528499044111595362856866561370369032878878056893050058242874117842198680852155907011030394457826265423250665322903990162332813295273867209771796773164313543663563885346150149705861022368378723364283847096037805083173757037955347893853857448973873716606583027097783469228584902297241825661593922053669304487062393493915490126163500849617865011254972134222353926338877444742239809193442845186176925509148918186327039918012939438878577335419144202250988740572935177612317107179766845028821597539039408626687096156810863051109232453488499568247430521455449836879648000131397356636048626963281796436682004848942632158980172898912311731440022579405847693416834026105675170581364848379326338108200496665553858795993642817249331883043159875544482457568113050689111326937115459885248081569932383796554841540265116072364429682152977470649416768607301471974264991107830571085484011462876951814258645398294293761156929522051387689612912506208917559486494350135066520321271808322220747453759816157772958387230362469175424859835965878517663094589649756772245412208553026061144235387058106331262713705298965593653275063339781697449536491571910959492408591517311464363038252507483111079537139926966813181997786956659735858470786140379396527657866774461447902650706118492691834306887398616209276998243865849368852691365878758218624929123018080473074688989467776829964841090689187069943661816198172910871064000199369656831189988881464295307821090006209753949405647740593570827849803568892601083378065950452430508293830623366788302368203649487413690887435239954575686478717288634004092664329607489829812682641801577597902643182346224404892071858530017628687690229694366858890578325901339267786994795130209196631479864896937428070809859919235069226691143456171087976125534231934459596229406391756972662255642107563029057402595462325086693153840889141728422432304315446733948278137284932404905139483548920508690482340611381747310911633984072133796652361418899713705138424573397696530736290150419264101896615366719543860125744639504095762702300185528942177740074286776958910391966276227130900313903431657008848799367415783683647803833446790918032336760639458909535200272584799568712871425062531674013474092650516650568946663485889025902428975819672719306277532767444073002893332361172885076373347056782080718096669144940909857109008476355520380887074804901213670667078402113474428318778933016428543907217940589862074502462779020853410323801429754402290999532028067260609802365860710711370265442104936675535644330439621560997318491761548241340903424088057464241973319622876665199165612094051831234859338449440288076725662989201943818788314137656197461948509368999270401819940607968029237864510658966543901291970353470724566020829493107317480567860244217190851254040201231194663711121813087749714392992128788707706115576671200759587119697607705216486715897806103596348589256232374922077025992770552328752847417941414593140889321850309215528988257114935377327933535565276203102743703261062586019220984766795796706976774570646007354463227396883887834159743088498144853422844422178653144844332807331451488592329201414761967596036579110144563597435811043069275174385482669024760084493064835320063512081031347086405053690832441854649964122620111176916691876802308027714647221087023234263244296844913057338905740237841937215294250970763732167003402902249099105252345330287076531763421397203861927496172973752977670970361784276095443465017248697094984500908733568724496008879898325156691354404345553369549861128423045851699851457719929550262387632565294114063931419159328513763451594993901268230749409791251418559367649654726426278507804877331759697147772468209701349076783485093506993852229296309270716529187102660111208058476366721964886515947590723908111118910955577247676281877396275801544295908328980685544124042155700153388266920289860701165416041966472216186889801856264993421943286044604094461418654636359996151167637701186054809522238229534694282263623572580439640974813855074650180010118000609999349662760031148708936967971466612322081236203684491442339848275095173373973584123737785889233194906632588994482435258746621188776074022570480106775669545802572307887945411898768251260669622997240049931052956978607997438843213044515910320634168121052038578577616328307314115584537453029240133893661799932630201981667330473041297201582048048800242541530725915103951709491886136294471113424457037239701041573912520392972334138357757667172027068166548538610116791070434928920497306396120497131921953072378153056339593102384720142787780409747426324068929978220373987558481334634142337089014155348533937335481500954420284061850773840409459242889272843378382785004027885315220203809134203636598859815853606738414974619058609302408483448958988594207113100985131106190768790428973525683960529158830791147301719067894646349005535159309020595868662819206470584582473286778275154923780562169153807553365294132531278648328044932167281687057830999331568272707979061355470858851215075873832127217336391281763077948344402161059347003865025187087251653570051111730301603771990712536206607463190496167683385873622961521559124635776520603318441963002581779096039821427684602367878490687476653846611654494752241085830228727103733642633370888955845547256871243871879981267934778425693185015210883629517942862182580284793303511329766461603201348811736791859669385670354746831665913598215754971990740170042842188172765915541949182847869144163438130976276506485885559070789435856600390572981160390140121989715742737387155156381055892231349497068896304876419008428349143903723895068097601713324508558436257809851182368695554814690474818155170885527776073618735583248235718646610636800943122071028424304903808039839893482659279154659919184579760168833918511918645060391263569024677473322923134466880398766533463173280343928119444110358592735970995892027668937062672459846672749096714752586300361681490725240597491779995659995815934771555973093973684503063213305612182192371919290509615596330318782349555858669641624507500958684323860501980080180415309404921666356899689581651304471387511465876181501062626043415945221379320437483446293340611638660294331945937863677362361033743892639164118916839127620982001324319583986903974077746363319875018028302809432113659380458075484076324586136901581511987327303842318168110514263068437207422624915139338618373166783695989542257762238420958451892000256134491468788656312007191498519472065577516305797932925898990004397515443483460519598959212574970572659820587705088801314443274212668181872997490141799129024615691109059829526582402244101376974897370447502956084126410763441850227489894437871061243519231474878720216687865741209982654619657384967059326625836960952503093671222509211995098022170979388231998660240085210763665462159457809041977780455239552157366093214889692477695041487315716430146118594472404461491197551520421059752776260380929617105903715850614636447258600881050677713515365338094302585906411132082945083730053867290879664637569830231758535959938129129313434888046545414236179242334719190846493199025386929416941623239852562963675036940762615864179013965126473351223127868253889078738399710838416250635871080415697376019318301578408768993235430897414860057588613476615056175078974799012347304777603594305626431841900921106348171356110392155730693666395966738769682793988754932546719550856183011311182166697720270373891655269959223954342713264688450961811641403632086465854799281626346396611482918304471036249190238174968921191408320404510623779735186401488751048313468656441993920449410479608735582427493566814870736899923976380415735006602283917273504667212505790230686038017438973630997257876440105571866249464771843863593410727570346235874327935049807667405911206746257892579280606720802622171358924444529053147486304599867199069393825861196438367166290012868052544638281499235093144153081786665901796910423976661474175360967062625451248695965909633373709171822246741350086411253581101069654011230172831298736592847532696965675653423264642279178236116302154401483803169257012903614083388751966818836475789119282290686593204330356497671037995253531118334673485739056869074708107871919769001100987948048192550581317127105185797789629017711845944611189344090118213955911287100190390379913087487137966797804933133162757914264570762795349376494248761436333919171502882029463148800225631878789072642556726128457340227402772828516383433753541346331535399097229420966609641534032198396321683851520764651970596162781892636568840237935924343309885147565853292258071701453593968440287002418579645024976498263093552920151492494460233234217598192122897387285092112678737659763879572957411602734443495951187355325908044058656913673400686468741080183940270978211978159533927228084758873953009743216428943995094526883271665233890457514100350082131993868987975159727513071027952148590668895245020078501217422676413051450637971301217106513818572961909987959746960382477260296671592257583906502088141039081914374861325579164995559000277644847607386755550913424701422018897997409616857928820461459508789234756655750350731916766771983778155868624390170998596490095225987071644415864146967177575852345951227417659050603171728784475751782486649188538592331380544973316900513262349991302384480899432841357822861144848028678697533649786525498382600909631361066337699609555370666297021814192269536462823564854321547202204849373949519030959164744685360281303593809213157655802689719870695253932025972169141652668847186274061204031036221986259994320296394419388066531396335948517063523764689248819878963669616996523315197828723665434550754542161495209514529200662220593908794171472524716554949811983061997179975438533701009983090532594471121474308344059062523073111318079854581736176849043225100780570707602597417473959174844755775256820985931501927871229486368341691388999906199286512694242594791042855981268873558467930846791415104069112547842710427788295348543182656919602215780677211810262894585884172434015736282266260501020973953434416917727469804398542536926656401679290018927381655271667250223937572894967351469066179438100189461648475910952647822897909287885043602325139332195602664987144955713071553617948853174023015132005381104977719917981280871822335748388111347782424528227441414188167795181466611072614495654879595002915546236122882218527303701708924193299224008047055030172612348136907464861676946364191994607230783727589200905362833250525700496660262478146212298482584456759012621738655748911255426875262984960390759006733706158190268035837577020330545698820887133928576776041743731473266554677526118201275162910452589775896998754070068772224913126208987363604859590156466050014948727428434370896058661167014805370114158687097275789921552182761551240474968561209440464846691284650510944108666574071589404303213773089372540612226898023991294248184968040031572356489756400713230285440033415031896496457100420601136870282226970610165858159973073777722677172255619689395132911121081674498702652269881806565127869677769932769715078351508530343243564374368832417914954639655672744951698486187187506365341520742875563837351807805847706401901977959652339868438603852452419200314663305047400767168934470026407038731856388373812085873383155516049448415162958668815080800085893462294731850047808749248326247224159293735967212432363176003041331840685926135480246128684580037768320939986564086540288166701364855651306764460104481714786902765061923370155242724872834676684610742146542703754378354262861365448735122156486490737474073676820285660587947300288904170628387094383653065985182814533612719494855761030199466388676830180286350024003949735619688833892174569176827973630243325921968719458482824312568816562032874750816288087559084745526733465778495916652590285842956569595275020374556014730254470594165328402531318562888009409958242839096947023451939361513657497150947503987690735476944807226392354645912578471242639671919308229856158320194732636788891612777749508150425357802715202630688596478318966395873517724182314130671722972223239301400265935029170236993861051837962717928889529825451131599371808819866890014342008785476770218760302621470298005263335544862712337836126499380105280961884955180957875308460070587497446381741177466138434667230476347513123440895952571488669027287099426038609837399694526257965597671790954603621332595036214880184283902854965147922286141128102319976114284485969455013841917235317406563539782741527782413866940020536813473563680116570891407783363081324130600604934527430100862154865168704460207978895082281335470938839536411007746268576694964951640508967735027023160048081604842779394251042784612691527555972626765172542248033883242365005508397954894958722800441655663543100641129608200008514246129639488947787966258394713455989683247431714009268487421745413165344089535526952436726263947280663669591980812810299284495643144787448431175924036105287851579667721362364308095622465977413561424901017791691365684427095437630300547289068675272430923293388404163923418871608260203148824509921976720261084274454337437913314216046500098788236001858045302992270609361006991115123847739921968386130046861669355824588121518655598602987373818206641556010194043064394976796024111277797198356567203462361883483194210184672452252210279333318096237517945573594757667977689710672215173513588385996468549403957023596933722249302628214876340199146532322353034695095376448473982787390173224096526037776567111878634831102505928573723937262593723062435134257747425582891256877416179793245932623102690533070114701743655439711246363169295801018853964499072113150149935887429374455045387028721003413433286549291445453076705349125487273182416931869859461034001359659823613184369424340903658547144276744094778479549390721256103472978914393651610946859086773906582077786493274458100432333251689885446708606897586187528294675042241723514447731831252911421530674430975302382990298734498588563253164990444824100579543990959164575196171921936791450234998275452547233028688719902648620317516004173286400849207523304453935943352634075556542596465110737108578851045022404912422906314679936413505477029501693564142493377616413999522824698211266889690683307908589814813455829260483590386412608236403250823436400307329408593867182906052347011063036113943767336628438243588955134380530710246840983055867565222467080112802066206403238806463748101094199621025824256347846942138641822013718278206862523262096761162064816887258581377007886813257229054156936975676733784918938645072276797845080251630002177022162160011261641570424925649165604924181068984650267272034873906736624262334276600935969950679081137790209098282820682540907280044509974043055576787970879473661212667508786483243010480137954527677712490180011440756130265147140515981337124085579401762346386298091592836801760714973990759894786635522811412705282731022401573565552529633488826223074270520995454564592766396536178036453727753776146946782788321297260923758035352049418155029354308896474273563923061734372836255881255361492733304961457977527609167801266208540992850648478145613387292856462312424636726319053480367382747467006076663746050346105318737400275886384836459052508404815284991021637438675759566626577952319191187549719408126668557084538928739984129125589207096961617309340742963515248783053752570459081031176055783619622465384314382880498912749304099327786171012354792459104276396179660676445388430710254012221514049275121568489518805668136262123573620169005086464922535422513106289102288237981789232629234417944862723123213175439140218051208443930810411487589373415567346384627834171908608147408739334255714781121585324432914971145682688609236689963520698930740817307745885277224166416666386709664555117142448925179928152837565329116351082912787844960101594858350435996791657274053972488351663941879179881748059160232993610297522656932915091205095396946823911675046123068276196642773333798497757522273609716480566558043420679679326188678379167626622771240221254277218480861334023971966409884026227687387885017093697711459984860032009327285069176502864971722420812434598318898343957714228805161743998281105081626138816686693262482956103911811622800978355823504021399651089187739274324306190525164612126799692990059856293186874279854404838535154732342413417471110992629535767869413485461136111266406821003250335068110218236178089158087557758815733283547311273830163237135534619235288355671453970274012879932911771906505797049346954127847460933233548093596241952233097797658262947252526155986436288426334303589015546396790774337641013483507271873778865653438494797622049003551335714927404750912791614795527173753786926271567291884493354880454856433002038087058443412308595495758846329916016026955250977576488273408196029378892787359758517687275051411710386085202545932327368835327780419626140915817411494839329277842765157722781136926860804298435541919856542461803781808287961928964523539553196765535521073773156599414475725110354993415060181367589123930651062327316476072396422913043145823756717143465236182808940533978082080535309135106278163596645212395941635373390746466303640308082531388100470515383162567311313400027353577813770291488889545962822716424646288400725567295625137136068211868273425529717709639643888150608951147161493233649875432993956490033076770978989179539585202761490489582598884215551770539832872374990505010407689098491194747074077215643964098543734249956574075866707520394861249604004093842270106319900048840863144206889398174412709929825674352015057398167390275300183267538774501526199860467051794544117556556521787778366436568726439871152696192034782437430247306303207531626575858055490711601284706313578416610217092135479153944976524353385955463451249771655391874788210221728736373088507857423406563190384508916690218829841525713787067364517344245791552042802227926581113172782377352051275787579489879102642910989318001391869206841327331250003407881053426221195362510722339967521508309501470416058534940432489289815518776919682119023342207752656612763320871109416204533734220541788174531166912230927177561660088268864823304284496694219127960319197398110846595410508154186454104198332807104115033197344543093668468083393932707307781080036205399426669377185073718572669868740680614543060644964917002809315003280471642746877209986269626228894640238470043149390479834114983255031667558754071765398056322234066936517949045713072325809986077787389170468552129814760548002780597327730158358446658190623136899210509181857375050648921094058932935711316637007139650532219736290373959507973388027520006472612068854358745611816532612054968346881823024912383168833672331831450240628143339635963584322317095814466271295331031305025696845068591758019552572918410893673509973232473657559593055783667756020280419302566167412827242024756359777317038251503389671215053338919232085400395866758654568097979381373736413891120493172668558666246934186081673736481674758861724822619769124418748809076276726207181196997681866637115329117003914827760488579417970110540970441774005422345426869900615261392096847291985348240550894391741311446368285221154935161140980870500510803646677429555454454094675736603703837562794447664460182334748455841271022742699323726328453650393846590720291909048966355595198265955713388566332311509351652700311574771022108209954098455797458904844034505401923682381526339356066420682530306025821348278601985312590388328559912410698737948921823080270559987507855521914222761014961345168290126469241165895434472440705089147015643101549500691263419125211737651003084373812887261922784601615236530974043159820618056503809468604494774291973170066483723841516164868064743118696904715312570315472981559145421137637555140462730595419820788787545525967882369800079825660139732641313420851384198696369870210241742728171503351003669097266131901136852602814464965719803371202901005851483232638609042118894414700039337420150341966346414200527686317428880483586904393178066087792514843568003773290006777189989911678616444019057556913784231995313207415543466439571171462828815023004327976669878621249458933680048151911327437148248661736516223316470726733910838550402502041875683056751864681083523583425445486795376905796695211645754319711085947346996746755660295648898219365799077286742073136336064718846250411957881082835170153184779817361144635961848096821781995699929239171984810170087145111428533056827218802616153857047363620147791987094112764171467538822078655087559405104329250522151280795264754441659913895853423567452903729423083264251049329412904527995947343816380618980574767359378971286858526048031230954665811990577189320464046260037414039908830464466544441395376818387782067957298364038695645570025049612869007568190016240058027054682186535058697119695376405857982169000363196613357211887969007219114070950985946229388637314035035074064851592667773170705074726261160055020067380761834202100781885619709585661084003165057491347577513534647273450726384888034159415147977945737160933423348822778012169620803181964827342132585147782859232195257951105985840319966611601367802980281532471616831300934643639402696252578214598142634253676618686195147233325279015650504057369675461931680800912327289404067065204222217641975763864028213452839211182105337028767541743365849888259051365839882752731233550035768950824987087788890184693432639817051352386359136609843706213040600533825908836128180067722698734737615050712058216567120975398377523666476292960537263552286037575702916118065175306714894606945820692389166701715576226132026339512714133073934246031693205461956270581156594489926611975210601978883501622500751042339686886678874521559645917603706087208957317517642210075277507413793606364784982996612647138409262752796532898392171856967961419078582482939348352756342592439278395895798066790108598067027287283841125452059259010550699423082564242517521125601613203685068290687085924553627325054552578720468695615074967674609709389784323205610094557429137410795171931594802767159937401555381552595602200041962142299446837316002623199241368867583783921176088922650007101397429910721433475971069633092368289652919483957508171563674793865422518354432871016130618831262927898523217746202364775337811665773639342754592477195418498620610707503378066815897877799379478035085345444992238572130703607837024019172300090590121505669942729828376360416858344215644728179933225834806459067379590994721217228822028757262717516456481456171239007858112341260797373978626014496800701131563842987460688919452243761890499078383134305737994122891768247182555703147974347096589076838107798332387048660271172887510052940968879418365021378070941083933915215499284263944484924361211858022418035748717698290340899654924760750786093158116867219191262892516471839196406874632702833530406844791561466229291482682672399536406517180446198604385014842828688941356773331762875271487410267807444719810735065161966286563250545386538497557808436829615846040610252163378253476346098230867875225800466663334539606179224921254881640626792816884836271133494809277968312472102264666401793967211500246958484726400842950422023322183902405585315037609231297419167238063686722219256454140686048626925937354326702987953263774540894653289505196037651404774615484329541080751319918369074417382997000347150941201058377817996317844046983713470775948465525252689242161328917767881087766694094110472566300091280994850013424438513651090659318834973309266618848842154926971266246989345932804618673747521673734946940081762878026896226313074084315692380265295149175891729555341423619824745433978915693135312018060180670632594331219917193259430696627651691649621596500387156130929704327926370330542002285993190934599875960759394921102032198807161809848421488260255708224844812270071895079358457264663724913977110431333676189379924633108227940712515858686235255132390393777874988331584874449603771381370167697330227927618962067640519224433903452888159102228038808350811734347842269786025616913891557090322185863845971683114893903657383549133274548273772345610689917305610637074623881030142530178198329027995942058207481571330558710826945173379146164684172114666304520979185281835691363837569254365491979268730240268080468348071888812536707189033960655498453398279033443095694464313922588406044910083483477360716518388239419061461895060074919580686719952495978964636897141515673556100177957389754714104793603070382064688872419931611278091254077035068519496869494201243413107894856433698421693351789568193926079596190802005611907882212611805460394089728760625618301621251278195570335352343765157843687361936421441788314451430673037099310226785905051932881337843434577221759940060072439167438186644450114478959987997617630090070991601725247136770342454238598826414876027322057593093304908448363180817200076315587583022546370624795349748493959685604457214323702059287683919472465912311746111701072485469418894926451936117666239671590129715535074607512175042263688479629068799345468806472951648812286572052009625556994550952086873637927828779949587705778028786740470793951360728197498879546932766400607125694617655774117106017150228064355356986991604627771112391047543481065925037783564188382942938189843296064774526596221425188171721745972599722649119033782208189841079507636163884780625206245436630599432257684442766178604376479312998108173106136528106313274747518441323277716998883673063524626432667800904785456969487424642763981579083643675456846780658496518459103663279156756263479164249587727385883475988793275441630495934590409748952548097473236152539465143314959630775462949987608521986370457595003330439319376845184692855351232005902531251425298039025937975556014801727925464926554463375554467844978695112779189003673586727506083292569598118299498599592480128591599566708974021241950180735187845447030263163023993671305286746050201837910780960144493357197224978864334939859061042493340955083595236452600916919419974228415441317460754511899216446246109796057612001972411172554178127553037196662499649541871408632844751956672949372481470043803623192802541687886267072633954623238232155432168952262893610990358032221632738975596717179319267216318927759786003548417069831467929988887116219147090939847606169069811501108887428297723154691679718045580566658974234777916460765875874524199547807566986908834719842907795826958009398032581650372287406555794326963057924946281750227402794211220401111171253508965563689392338563818450602806006271725324625673410386906798625539966372907004678481297609340196908646134750070332442530709461795283907146749176331704228711659298752491136633171948208267914331954915685037772083085132827419023845665626740570108546953184313700768973069730245065001701185300628322424739225176369220909794937992138640353685753244869773353578253261136479102047052727032233081379585135083931068732102060434753213452736339645476712508091464409563970359978558331920570538151897278391707133866720993160852893819491220653037690599041870528151105929871464155436223789062942820764627530243689060050327325016335650854314221753350259195350503824246911343670244169445715187878553084242275789256166644191819530312289795873974379291562153670567879354969643931270182744722916730716569295610338671922643636183650560836079190137627736190403507871484710191640249256465626631699394920389561691021930565000986715402100295120627405796778624282998294261819210931610357313284707531052826966829117616988046549037642171364842589622589964657353577673877958747455731801330408308868319202110303315728074198637113075279655728384254563193539223855911239902014803548080878789133557210905340896498290369576301184934474125060128880004397995255727597930527929296369960077046045614246651077977535603187193955653886558889595940770099342543538469553209490821345138008727500308553229634265296722319807069234839951797209474412944221154743600834808019513477921430388455782321683515645212222050312119100743634645777749687880311379662577918432384066745583831538026701291538097716230216671903948223692849822995780060356240144557526777297533054266798618037551075970959346093778792970751389861086703970115861583970714424867974414365831662045261073180270318087560370300952388216991844777143011736339930109480464665100095537163525965940193642308777820978216386053879181381466382576272939760352532752210082087462089921253376772901920255816079512695453922470048255572598372561356698247334265399065922186858256376214690662440143374827053405457091013899776130009718852803678709855412246766536154864685342722204327339513076469841934997983025460321094527116105198948427134157517499123937075200554627660581934748784718181269520870270547153256224717057432316162405941042307765145814254278826265723822253199981372633748569888656140542267356089323859746520064635763694897016757032494008048043650931047830601602236419535324626223847161995702320316042482665069189198449651796874485238027526823284494183732053984743355940236490853329723404053402264435926373406845445088892608178338559547709529612441397312709803288123157319626592085854586900813929441305969881306259069877201034418325302473881529295496243057689232892312435825691373023047687165044815596711845725556057266912061515395763790929608195724101741720127925744007690801314043274152726934532419619422846134227215107092381352120074916340000696638471974050982431363421796484245533430211534948643949033485737468507363013458395556611981783819667962506127419627818651277399620015240186244963551327436616777001706078609588558428615785889177681904934588270792516250628577519484376763615794423733318405092448033738744705136190800920442316380769102890529657406797773808478466897081533484134516663476734950002762535602524748641697882613767141086357806271657211676129083063140066170010178196338473968910921047995601793161986851570094398060972369861886124451448709369802286776414249581093534439147220986443355942403698705193806963053150082487570815130559945549103975468054257558740557562846794378662106943019990743855547054007876501878149194139799182680276046891225883483711450386471195200064375068725452688429193579682340051536003841473391926125345973545512231376737929588684868040179790746351820956875894216507609873852471114221576307842280878630865867479564114579133302191242741789641394323587940859527938229466585854895890157576312645254319944917171794163108787307356457424753246867483176707049128048560313292313159277690112404171228891494355086144294785191203373261156635110294674746146254895970314256332902544917238815312908061446255837735772649159375423118335704207064106839146964596159365629861467630981386724530369955674516733407126928595181982629707156676396899265865917645987224207444026301312679350325156232984496868775760015115176588392501360520837880354594323961037978603641969377861574340839784970781683038235788752619486983326821804465467509951838104267411005531473112608996326143944092990354355234408702709652289339449590679669711519976093017747228332710281693855768133923913644110305594574346994325236321163039054089295291724656868338110913124004198565079780784680256587844109617398238267710353596929330160068414360851274937984107576206255879568226428731047401743655253729217733868900480225217386517132472146213991575705735683700083181411276419865471338582021571569915946180834231226498681891196909788576877265895226552616725889510480432397245539012209053856850801523013100209411502750713127662543005298601484899677917397966786962011923165106090170128033251715289092666967205096303072605600956519069129683814908145613958622728757884319067290928202870029170540030771837541340288758118430107455882158248652471872057663414109494892200969823263167514273341172431551955937805820078923032062812870946355670567569447696556806037377140955312253133250135240010228351804544971833263345099044034091862249648455505464216351457402121945312349704945058350440442520537047679373582481867145843622683650527263714973632453517083114534556223182995068055681337192404943835970464182466290836358167837316356517032136885454591553028402437261836625138328254145137917172992874963694485580086483265413972038516913760123685249944183333096071699899767682033142452594735348395261966067409454398302288735145763065457766269900565249442349849447050023213723595402309041841192511621640656667618184724595520751455113392899498934281746459288688767596887523022375030707441790449093240734859235376372081564226980823791065739925878386135301429702152674317677604647407143231948083538965356183821814224287576529984735026799385865038238157089638184818153622321430031694582318134211504805356196240805612234654223708417107141627032480893947540390603567773685011893126289279451831955822560288575810430452189233276731254577899171491972570760423945831952503279016009855815312984600962538748899063859745092176058086632958608504918252864747054803871646775343987847791676813242742519643497885040952486423856269286214347305676359495719923852390868022006895396461951068409964128250988309988066420059116150542638527155709215030967532069791559450371003931051570850854698472704039636289802870741772435305836995686330656121047781072118574839921048611747369133617788683798444919688686766008701629067773386499335343181619049324208258376350807971260142448921059251470944312741358700026986757359422167031749297116422785961732406215860100823511276949930660188241769893045122029130601060723788901012569161463875961964434797183898384210251828778227125475912868880316364543735710113590425625725316874214864348666025953143935063272092014859054686683238011344579358226220812349249988635998012250032577988234014306356106696843615299853624336773222806371241780192986582123156936216885758598277594212557425086046715593355682953262474461160485679093577287413141551668160500875225206368591191731533797365334739215227780226689521521634839339106489189307882863366865883018580638914515262970077569301046091458295997614702326339537379731387757325587071001457222390878205453845807769771387286099073876341343566686610113235813791937804252472425921300173264363003010631932679184194511976113384426317820698274901209461949561418502077689914934824168806345197044283283062795294553923010354167273028882744622290426741789259782234537873025193471539575436937862547617997742417264580552660225157289979987300160534656726725408791753669962045177388732072573792442768602815734289291011908604690937179170095401940842718353810317832256156946051202471581910241833671991114844915294703173416302053192701130762122204689476260982638296278608828742252406975215734888834819413321079933427754823940303724323538791247359551399974574542285746169265374635785885423061064734824839118101716624268565233676864172652531259398684174268275130957067316014374554479298106560835906825847758440796804148311166971902805599386838272873077865707539879470847900272996399445369575806670902960493477435224358385027242842422304103840740187585321045570947120407049761177663864063656200647764572272765309870686617459713352482454726091109490377736835295290485061879179525610944625426332475029366505587623336735610713589817763543947220212612529488346308332035712995690250493555298388335962401049611175055761201025714001176250519160503450256895225890576790606379364699934078556099051869669671028212758531265089029684070355349108194896666053882810108934784698471301041691024751000010803081840223096323402760535881141476570173923318665406941294094394145192907151372107336296369804337497483633651106755366506579170948640698144601591698636477779884070683405795826892756116092893594108881209968872489281539596497149523730929510989308064063169955477888755480626550919816899598500339766051730126703857992552875163821644427341897359382462159215838747100750131770587650811805857118032602850131590011834890097587896249216505020690908349732744681951907449401733273432655045898923977519605008531165789223097822279212778195206524751930064535945859403202868440627090124171942021637870410767133349306835429779757950557204133429894853277238372761456624908483693659247559558463378675151366449710997863356117645416166780377245503941914862496523823389691099557252544692770321119506097531041620615086097798424670166269678674005451690918055911725019472735022235157143782975780383236655616256014568337701534275420446505589022798464167175738676608888517403471389360893558371105866758078988892066759307656375106932001118051319351658544239905918577507342134799386293794785198680748147554799785527954749964204564485779544486952739790302639082605541406471283661688848655658729389525665627533298531789382163442170650231302489863168186869051877504276051099642007071744629988665841006578196901234860963388459690735908375684726229500870323042949420597861549416592270099745952641737644227936407881855787030698893813032905687211077685915146609849031938259187263048673955552888280866836464180811615843026486382069788406083233460257479854176206652352273577094706342958000140766049336905892781646746385188326411243526048601913070147008650903177238365976725710321402924054260977345173238438010592707103379858191734349440039867653997618083180985801833820751260259644638866203631663888054196811354472191414537565842644041233478793718153953631181310654589530953400997581096579995767998308226095113699269706007886708155413719258563159652632769920723284508894530022415662711196117966122904814200836895291076432576182005242667607540909634350860950537900903901633627086566606750251401894317112146101472857518245002879923818012285832891110901542005935655791201570841074365384777767294787700030008068792313494465411573426710977554644229451668336737521720904328101254353692887798129510039983664852875932796947720891763479637943306354219729355611062758888548482640727047782116104327167607909154373909288615198462503757929696566451468010739606425259708464004642150704354865814012779556296368956498915312048832934783320518415679758134886640479732995389431715224485142932970948302022752731384125972159005387391469053260573120514299398785770707815447058689907534593260120911975262210602557612438967415264688685758688641057792576225171932804228175255007664867732954707734240846951534604877643849818983465931080441511758084797264847887324948175898617886494729726769527696293943872745650632548344661745378500999654707328596618456088258073783584843612217478862950739477213594796943687708028802803656401722420496703960719548506708793979725973685071122658138521769461922707803430717463733491848422464851423878202685016639440850210327231803909855108073422407114132554799278462293733450685976151397476811879487143838122510714643484444160995451109801068942740641242333898895585996183533017244012160822449031304898811927903293940129363837746486234586632019045924676172340312387073807189368867945206826843286747192818159502363204081290090445787999844107336088692996973401151853767808700430877768567686408242610212858627600628361091333551165464101913839907084491147978509365349788410564154379655458212225329450148319221481031512064473636586522926602088970996737894151876613825109339567541153183217074677906795648549671892383393956368248509872207389669177852056363923309654146387016853108002135913811190504262418022098696385332413361672186043002986876206804491036321815368909345147676854970922550269315704257487704615685615742923115150485900399870395374827047543249438101473795522766792227293487981078930060173403138075322289066742898414030198721638486087048454743965758372119679747926314255792617061190223952002362703531702026581960386756105058187157670276322827666443937204575784247500547150524573428037175971457361661370935596023531192137512694051334127100500028731411714075742549398007627869047126850317812721651508460556734175821856776124441054464425319357844302164482497153327382729545452592198412749795212872830718522830218406906735572713354427945403392348323544493637430735446883596212292428462540155453538014893641487514582625631637982818736444060476080801652907670317792448147128256486212910809407541407259197876046819611584366604830691507147737028925670648981870247891807457905528259627132790125697724222185154539086797024341050205402024557882703105339226870472927113318085067611258168808799650262242278652074821889627993268295557705567592225502056353701238876507390697095940539623352071339891517597291295814300445005080518574008234248153138710921146478339030697149615367044895188044558345724116195023012409156381514099563533140245690921673994791152027902982630304110642106200356051167400592478161683233660471298391733654413943060321073181551257678282476843821647586953449452910900452734289142337919236100212282140554125093113434456333752381612006775033192956419568242117730489183856844033771752908148300616592712625829657104070127275925928107094302217850647775328751910437209775376743146616567701577080707591645148857442670383538683511845752328669357175265036672902791437909684490436417121260001781319984157553255669311968008217196614769119994861501188854714224384322782755199113941110486564921273130962511931948527744171470060690574076509657992846337248060062203407257545674725594809904761325868846622139205105194070908238943232147893622366443995282968286215687476898497989276884901924724893624088289556445922405646919886319687491938323118642774104559676408070031384451584582652480037155978633957350186451632453103114064354178901189055917478623670026551023027216332907844374379652672081582619686369024717556604811706643466800286013907364605512723566606768774503068357297269134952046444251249833574672516169396100476845570448850672538688453003296514678689279881042363581775404548731359823611638691669018699384504802933361764066569442010258434291347103764048781906837139813080648369602518382030673997355448977132411459400897485129113424234616945146482132763482010230921198495293238711760324473858631518702255419260955718875806576208163455005530401045473773249129182814789700410794561753711790855875860274522629731942805223268535569119586734192323167515956958254255521639469145385765047429642843513093185915238682255698836700307761628805432447691225284857539364674356412410462068483543261136360571913246220587797466202559158780367837355085310667902129386267934446437813125923834446033602935371720825276931096462986937707492286280450502695605409173902378167219099977306134790676810118506161098849192699781245745037984710003815686898557510575391761748223943044284911996551814269051869638767093625674575611725176966145818549561944804751243737562477949262698142329113707842180452991481419404105786628041652429900926949732347410543345933128424547611365633575019980743109635674406854773468512073535455797070326518528132167180953296310801908270271984074596353805643577466319742971753479701394352606931140851128193505002083533384778881987193562692126809355454632585445751931253944954970278847251588182530899530016386357282732275226386984403805944322755777487206422542904177580095029859385771541206687076615528721055774096161407708673536981721545515811936361534989820539856953217485818299575549173718463145802559983575205301456330116461140989106975211016306560328739329353832994189710250878382048549954534996437514296210487651425142256621456245160086763569235712233408984368780418598941740421962071721273846649915438352544204878762922147606054832634044678103669266745304696844845144043011897764461914904869390825813166004069729755098278391898506007012129905925402174064480864208480780746432793119268181628704384703445418955248180442184398904407321446619736647733522441095512271128355133685371471080992722734398611394056548891211977684381372755177411450856139942583877069709623113821097688094023229349171774979271131428078182191324632586754107726620634113503639610344033370678867149052863099824277410009533736125540133901831742217925949650862193595092604193239362419656342521700005384511672049628156330741515725517663082707200471487377544462926099957761053918421401521963563631927929817765068371752135364875401718612922818063040259627754805792476602430522696618415070696952006830832420319340922919973742522446017166339615666363775342774331094098683697734283043545241828194524243346183601740110212447660114411355519314087703185550722125000434116299441281502524892027159428781409587791222481701828079518913642882714054974784552000879060703921182194232464801622470383282717951899624947536507671901342581044058335233746252298240925181276716910212966724935353822581997830401272230383591683482573851279149473891383766432305320166825579243340003925717653798432129041130129106117809453777157454782094897673058013563974393529404720959830465625109097267685889859644688189980459891219832510240936251516471894232235393825679690107994994278030817013058135013264442429053349607735518145622675680982879018378341442611689976799728551075893120942041088320882570264621232186149747932812738521575450200243553315357588913208421972007580167044697901690670105727548014174310191709940446453492687098258590093963261918145480481119795615208019056658942677898452341186556555886843277937938519159949625695919123711512485887077810327104767765559144440687096099371935041582163052155749074128421993208727459095664563269437260900816553837012554809025279631987628198495667253167899910284205352278230282730654448258756823166900293521953751544616953838622771254056928491082932810806041168230478730137793657287782877396207407157281846533106617422207742249096612717828738273711641112154113577346458230453307357328408296957413899320548865197007261777474393741173984191257360120064570682245420807304416939057311747556913258749187674773560334152143818218057160891787954573317673590695989089407752933810550115721312903001156514339274658800445361525543341683628787580214068064020517708251391435844569477653118018663926190405546715929682957316135059000974169900599334220954905029314035561560390330306537124722652503714296695966892438376386388999471790177954535399974399698991509529672114906617114139104307876291028897543046621072255469836551428810825741070296122599651516757863782358217093604695553795016345354091199973399002671282440420967222083427205159707079681280480941488989072542685590423450835801507700053962307950735766485716384673640980684408243813917776019015532035711097833040800667920058082750207721364470553024750576180256800999380448735197749890074520626464173490188807125955604789763222766693982094041120070204614968099999822505386776357455655908627854336353306515494095655550465532314061366101590919755707368735557045812232271123906175204881279175812493782808798100958682037796158218024080073162072563453862789045160567143489462330124318716605006551167606874442675147985743288950239072943478633814442753970715457611761123215707396416472234934495534377584422487085889828812127943436229923725137732386037938847459041143601029905819768023233955450728361855492640972627054378314251409109841237893299987072961065819308269614849949501026198902698185029348218273487495766172334231064993805235029172427738526316933761023465588682762479957505819099776419524030502850103285016880914038052666403132838063220570887546938720087562806253788494269472222918398282205188928239554792991921362086898723774871076529745790786059875007813606660513543066417098904113453677639834411548292479258044698111165417750602095289247756048680437900882121823509612278526634899564760089616994777309009758191718959663422309894553760386070930991367215776049271974954441039539661947783927183053333491276758030143461907114995553469113638438650074987544745224402139630246113688819886802650907158973420811268580042668486457762298088271210074962700188025583936434634810548174157920973565693071250385697071305274130049187657116874404631916061273424904090333568907441827625243931438676647773460696489605974643191668420714910799677433567084201763476540685499435237875869233743688577818379514826741432085134463530023816753767990148038863771335510041866152449760137297852434484592013176832673828944262312067898116649725348085480758043608277815360941954396308881458055371374789551256440047406075939402894245984905873029005769136709206587005857416110004110633585047190992339894712098419332827184586820370490131166744023196165464504702935446025227400567789642540820227162848301986666519802386521783270211892365177675339446362228865806927672933701247350488789274900611583276203805346006672770727338756698797542478974628012897457569345795356688965590024995494378171060461942092525312149795618867520543008638969225329525776700462930595160802057715297059025568415388186509636047574418154921305121661553119653274033992156362361735693523903765207533082242823479783597198683740829784356450115509850320298178489570729741357884964163625551445740082035701717632659441723523207488325356008114361293723698542075391303296094903490621463237130625573977669109741868472961374382587389573542523637763148733896119668625367649446747737316765857525570699188448609172051786429073423646542294075883497555588834876765496416428433718204308580874720331315632116892950122237719416820687050745322328846429422555155452291696017868034142794022184880956369317021213151174842103240188336995274019221049092685328420759009164151498586876507536586679587878023699513364053399564125257872033750354212571481405142504169771923052520248603405589270247220752734517234566194355573457909442020124877347375835457070467855243121734985160639647396108833746836270612001978890352587498528594915137086946617030190516012719863134365290778667447080279183265744636055407896755900838645837360991130851785852982036090702124824512851508532532130981980412919264579763796728792462234201198416342538804879639487970036631667703989936375442733880462242029590896220434009015387383360751583309274978800452426228295492821411548298586391533747851657925105263519579375352460654639433760787427662178882256787347494222894159211716073772271535762965963849427877277096692088298560759809580391680308636904382502389513533444390266006417107967623712437438146664509484868278265813045880282278225601284659013170574319976925210639375065919495335833091316862602996214199462716820340904775831503961828005059201511621187898330609324468083664759748097697297916264263609169570789984413919253138544236662135918961703419932774684890991859695927119693773230092088136401412233443179705217830657978908785554303619086760905083608832539752151946999736204586411459827127081840409019072550906924118671532695417878404944159338850530323727602135720601503852229241448948302165799035527514007795209044777845273128516327399424222468074745280124848426909067846330001790093379268629569023282359994589879765836067209890634979463875839540538885490835422148227318257022992901019882288985416199606081831630246827519095312950916997167567109301608759671003692459400144852473173972934530078725582519663539602120441849081104299030712192654846116335299120516679380158523082864460053391281307154399524018609883029381884121486766866611127477211967776261488216609252606142422505661080633609357346420880688451512118395341849767078466514502513777767300362429732932671089593887362975823726392244903638689626564894376856639132056533418924339000856748916149125025041210594269664191765924376678681432373811711492378162057499475698959292978958121798854145759160669224342471657180960671807041921984400289177907955526354628861632428614480103220469786606509338037271006943175177026244729364031216542840603463107773152152435168700554902827434571415111117789049829311773701907982971847670498067681943994946419181206053896225535621805329317447325730238613293221907728367943368681701313286392130149287220097842728053413116997906836535251725524890406150348780241023925862932454820784013796462008913268654328256021175464578116739625074957662615186881653473428014471045281824066274565059936992809153143309915198482847706513934957627837708302264562678792084095920657946010016018694319909153838790042297231880610985542158472431309912810982679289326011422592575678454750175443815344761098020039847014040307934232338138706232904165541249402049323042159784226230398133117900689645931920619478658674455717091607576913663224466502855398336449187105282313237075375648208104444205944801390504109154702511442967869720973234821512719274753177864548639864443277231296899498225720530294306987338085054213542730198233028697322755671554622843035031318246663782908420794555205265281090948798857605142724816993168080271051296105418055573332882956699570484196939411612763808195969254699198979886331073606477765151770388846870242050918972719562938337230453883492454352322954631666643478144040013564664314016323652506838236587896751610699072865203894161251244315845818597163904830662286366511393215377680057403376132676011726841678735972454620467181828112910313335453046927064905794048651365345426612689922374769502900548056564430125255686974788227687060514600015212832963707632710010207210759357017639937848714955329704935625357407754375158203475869589712544983861880433900229399985426430713822422517364963161085654292315613574144814530195012391891010065323840139486831965828037000108673691437373310783717222534388943061438600297906454761239199399173114652686477394769830432944963764499588031344309701883797449827032599581267019147791607477868715551496728949085829065740386278316137825277088878523583699381997474492023968391475785476237660034387349482940489927585833632491869779807825192659661705129380964246185146153361875194931253340686409283390575398706436290224037071271165402731936086742401062402140559494199753549423268545750805377023303780516473756185917807715816106646794881525814676617480714668782219176015039226960914314566177544982661787811585336562103248144222030757200847458762357781310071303441965909197093210086738674700266172362147330753846442317117211886447434534573168660901430854870990144551253098049497853412618191115405966046935171169693542655938878493264405087735732066000254327461556257355338296267829381539975548846192056353828606743358386347759718779241421238737646646112432861678719334819968080569347370101788769543963553971888537791351138257007652463092796100810516594466130120875927379529810752571506026778597632848112428507402104615033850052977119782758129902427010672356779287681830701107019865393466581586105487064898510299568757040751124692026398970877609400000579103665619472062463833394069851042658741484008575474432406493092239265036816979869233334097476803876570508851954474587330826001551650785931718597558130175542890930298555250436857167267043074177005882953020239346065054535006875701594078453854140846292392407443419366087934403080740769204549382059283297609695627487019835281865204449538805305887357530901900260811358038079976050717287524186417667157031549541014213452682519946965657907426142851527116263414081922755067167349229440472201847807873525465601889301176933503673823604504656000524841620862922376096817100691535443268339089060043316638339403647532211359613839663050104072249580098261230560171502662686743591666708746731043856738810315419805321179955928597820606671605961870725062330687981645426188360228916231499493808562151607482058192055036915646455752159428804702831721850760532995536825121447912319416137984282913281216252645982786013394379219405963680979923861853709964589014846575294635473124845672397700269358645418532179826515806157390387556430092819950736499629751478337607125961264027784600093499551583197883973728732835485393619888783348041039888131054759032163973866781339893414844425159850954890812055807703726167143488541249975646985055373659191588179680557910535645340356390812674543019402459627001934992883518317330946687295007651939142776856722891451460462852038065470864542301498464985666568905811984711154409047688654130760461646623269624543584256693893348220687142515996505195748364111940292491304036411272544668351545789270574161990691809841639427764578853244446220090288512232704528176625310884737006420243682781321912348982718237436819471804101066161756776500087287661045724875088537171181410420619586884332568881691191114074103226555277174179952452345883086923043849808774106574429674554550820848993330356208098465721619187429119861235431921918410636121025872320363921012091970330330880030637843546274222536835700314419907163741247503288188465574228281510397158700524958059336504560235003117783575364761675062756878461294276237116230202176441985204240314192876996399985474796896231657700210131683210062592104219347477259122283414453111242868021977018416671820201919495987674366115760923040970772649493654962523249501469194110728234094241762117665199509658822739943042881731934453511319734501279627142384578835893275148671490874697901498949786866240290505452432364903530863866108685541585243740080419540167427053305139937888769768954356484799142471940832932982297836822535248726213710469676295310895847800403010309748971128493467259657197915250330590466454811182427881007362345168170967006251736458423568528509474196863901370533990730945212390973351860764039665514623002233897862866256155067704106277790467130458407430087557262961229483950563772242355067641291941927974808322509597484504292484635078766495201776372296306563351504299891794974848956795339505610875353548855223950908689034713592074020822392203291385983995097710129520771856444040970927868638727704574720366421765287487374063899107693384643774970177795204624393979169134878368619111680688769769004501764885035704358119865506915666312278945949729762332798663654620062723092240492633652501413214149615040241040955241383767157422085145042681653181919179542228091396087369120649434422474632499276644584417223564057307157730669310429934210397299440718103555068566717045626113709856281259402150840651861728755150930971196548712502846086757148159424736208244988689827140005045369283904191804173258018948387134652275402263856024192013963489730033424611731337770446611597791178644838275434209101933526616912329454556472198432336843241151259263237883364400069881634491257505076040859630032156151743762473459639117482128651432019908431616841514693057092375284603377435705563673385454481972985282280872154323790774524161906358227238442768859632523309636794627907420788655287948588863162537188536280797795812018446627017785766623673928137560278406782876697435464475140703593142746600376050586556623439635155282203379584959254388688714441645746477776189808732546090360665785687271188461815920216388423218976627215624922381330806889790230479816490440402714822476503864843289323622963129568032315831386738621513273946034255165815368002887792076787551177227308614784320811532429522507062433491883410888413113412053956420473380376177123943283202016314019082925960883995145695181142046110924247119289175331614265803061313321183335994330302739510732499036677150768234334771858163925391257354763197065022190620564758088977397148188816488642341563482891677342893729370157465865041095176000128474838145954895384137400717713153227645260906009290852077595441516835052413697222923249070297809282533571473152381051122640976174380364686291936793446383727015467909564449269856755105338740756967665214134443277605906690851918868998263752891417974996071058898781608375150522518936838301321122062884564003231116164716539398562564242291268922120026808949240271310951104013882127644034370985657314425209985733520347647925132960361498579324926497518355072232657706533802017984550358100032586332674991913108817131415539166060854482576342959262914999263967849805600804855976479555441944690379555001042492944550614931392020180437623749590032668444860832456338256988188375410479379997222513266265917498825474256173714246007789067698148173177362467833704343419777270272598584774145299987021062360618434874421956595814171394137142903983517485886177714103506920587890310727465245220378334402348055963340260538336990804124837859023487966977545352957128817158416042979706380009297427703061667700883892832055256984386209387504220207147461906890154571510928817075282181842531472145182567967300680115067610679370794192996969686594242354052560308275485363448570727297871379698003936372527449943158813146502370319695179577328401384429422140330422875937677504750755991467618812613114934036794381141648624478871153301192818692179625033265394057240961801029049399231165931124283955725649364325908577662356899427393081573918798308400441247990357415535258759708107798438151651534036361207456579658450449886772567857565683822798981349633472343342627050104980030565374347636673873031794772830337650213408608377307322698942958142387478118304928395150000491230818651634417614192970734966319151251056435472585900269022336401825501517488728585099122311216245475681170654989022161266882133216177600087884500072798261658097153083370095174230293502211016052806564642111316511329632971189202412353135561076310336095427270970956257714770657654552743024530868510948697113394560361919379944259228667490205831836624688492257208629574086591475785122524544939128301273369392926558643885731033215143839279195951531743714268099470343988238966804947118556922283136875624644346596796612661262186064587764227819596970067265801273040140137635688931601856312935406223698074559530862037716199643736141198341409281502657629435418783406366587245248910926384722629780894962461417834118957631997175755041497234112897473948133517794472056449236196198075406636177382351890768268238740329189155292187696287243651075003950134860426726155621506024637761394729425936659581785460933513366906903094527571354229262192236214004025729592025289436294834732540722508225109749802148012331874767240248096252758507046729876382311412781207280370989342427936236055130792923268877776337069718373523836486041309488394099476950808229520252040697929973969159107970885236146220803093379147308479743319626103524950951714623130188370982050891181676491538802908017219545343334082886387755072216721800293999785255647929628467521152709658639856968926087135488511385942459136925017961196201339536406298184263113779480163375987069835647909249595267152678787361809910483090710406516386151090121906748067900674863290871582106922075206505399993975173508175732004741975233119293797838617199395328835174258970243313975404375128195457390196553565881702358170691220260343822637283783171031611616051984211790349771923057304791000323262319608832660286118584252512594195537979063845234708852384729742319885046523469231037233086214491589181256754457746086930753455461147595739103363495057480596557838744298727973886290710564317564596146382761611231528806496803997554553387168046984406993902301940218778213482541646876802506663689732386199878939287468789770756151528187959192216303695798678902569820615245142929853248675706541717039962006197340294366034376621241939220067877621680894162328559996121006997900649379793797438109017600865652182664768035825184391321101992084378399899998985123891815908446835355781082063379864433219931736820201271990429698107924719117931487473516774097519524991414864079742184232746207840876917018125101509796969268688976743582951862240743478289889981607853700017041344732089636032773804774547145050966390951895327703455342267907859634712765046619352071234796261915589706215363827322896195582178887031109312974971648062410104081414730807881412108221688316066349486160419636620600891861456561233383887027711561718153328197457059116624276242597592860541244702927723036124625301720270480300699026831402796022478268432057631404008557543936865595164878185881924649333682276620362254770336721751567126233066709765706360252301968842748608236709003957923388631013237914024625872439867011744095179949385744399043363235530539186732502335538975693080599964703658408223530064215143635025717616614876821606001216765227185341195593140740540891972551665829358122553269240125312296182814628390878606198448584008093720995435259589857209947996441857544446038705828492851235318987029180779396969745528840440643001998487099339118653946563782938406520129607599739021015537451822637531050870839159275312973412195146960653860325764151995851980025498233497132250227641465466437551454252811723122815389949738796280791923463611117295902117202509678634478378751373269639023762266630217977549898635028748944702416232784149491811410597166456881467875015656587335697365217163379940509735726164524936861489587691170193042959740952334588387134247007298188744645039672463815773486294374518517528875505063120553005605208690404009072689391716425036833413501504575803831146760969797810523364241074908681687059656857937183530302399580747552929915669651188507897155617466214508738332712280753995713088638522033516896395708188022534498347626300632376262550933572240085161640243642101936244887681898617554929309845937939641344788696607218809091080809155396112627400591821047943231937450552554959398009443675357015556338708934650962046978339851285314210173680387658337825202074768293795323093100000871030849203538978718741916229870304676178203338476407061045538988013006029619196800660394630997108116934738447379867707292759420367726220669495893902700713807942636783213443907939004766412556218366030261183695546216426262286949892844664144965837144905619976538105112150239714662247554190607652830569339153922631033437190705969931151362009643230402289709160422405995767560759409015442736879348610003678251642584691018902039425226978431411408108144701459210514454244340479448461887607692883870801397570669344656864414537759092900966489724139254531544457623244984843727840399183564050930978335267320876180910468453097287752441605288138224989051863029910050792333332985155345250078025335207631074970380420735874474845523474729596552363785296585908060022200919945918848480391876358668658180170366480883934819223001511322043731019729183199627322065119820683252310450673783413158398475991750012419485655340260789336599018468344613918914185683699011610487176239556202950891451226485948051459625315054424557221324159699262856548588485732280119157332672242005151759086372564932897577923700567112746928726304825097762063695183690275305412458747947459812653538057754349470213367491880259329272001085330369821658500468211760265218150080785463038718658026724539643720747902353481639951968223160252890902165842777971217781654682044189567422743465148082623412952078789510141986920640756547193212476209178094297732236576995185569375171632938703779946550770892864786425750906004646891799861859487446420617023957418144845936846268819494797069502590568557660945877481833455139924592674847956884570522520834033751414675930288536954283849539476906396098803677141063302004179457893440675080536839815628590015226198809716210213323208794327899135980687221262515045870726344761650275600954353071817033264323432405541904597773400068835954033700240864568780412825606858403149383010363149284894302951325359273230463903719497833490307421545281746917048727612998362254417349741653225139620853466572675213783847528457022433355136296573078680121726060989268472757315045221175810625392989450113251056131945027313844404257265993894761519631846203398663102902551476204336558063286444061903933345709201041079987581588090109230004191514841304275146825652191034102449322866445130743743633269257928841643244409866637131372426276988332785776626043381416845651452052684022136299231613022027648310197113598610344794731302831705586575288689813520002148711082660569532618247665521959618317457489157094943853805595295572664758183870132183533771015328368250679141138270629499376959275435634651223612031562579387075946342442789223315224047311644947578706550422691949067648054183334085099253274396782537857169595309589220796034126129457894578485089043164384558583870823296460626428477671566643767438211571925402453307596312362548525707819443444804286966092741068654557849394455193317905026516291789559444079655002824552927676175689625460660618505401662780691872464450124349469436645124399452160990368190826711992275876133601022254856759726735412536178970225383463749457910543810733050787600103207889037360547521472167841392599470359273251041297511908994058265306639391210379216864765443333767524660765353415905595988389230188282194509873859050950561495070212823955502007559490235187596617577259955776930487510303992645257927959653730224855144836384568079832641282952074438682202389224145115141553628310348726655792910367245915526093564537461805562573702616719663856461633870887035027024874582431184362737506212702124872920375177663353905047177434969761165159459186366838179324416635132951628948279522221885895221080935895830104705371987518066770681356861976076545372733668314551137474358593796763269610590910875206038018312392368392778129329517745902011827224447016628097054094758007552307775118274384189713944247822028783063904386101995918994625862758756673086530354276865118038801900748232524079176783853828181963602051297307668186403868285231046698858069021851561996127991869421139658970131548334228088482969324706349059785180543088929897020214195578749974949067548013132747480837322265395344486861621109032148684549569901696511944694677735326597309874404235659794095090667882472225666727164229621244291373425884080476760332229659825733500119360079692067143491893363541468604345460494212397825300923642106037099526928599263264361910666714649539622845301943142171869620169445918990376737282366001202210975310344902902434607606876547757033470404165143717934638382695546701245112067825867191925270710267313486751209107096422735337322245482057441127365442380754055123215513715066552558741395642297816033442790040944110307467885602343939190414676704012861940813348386118382876761684128446019864064466933743529140153117913003384203726576796318032641873703713062141577056078035870637781409559768009714604296588350452658923251561745511256071012733774833463055807035082994504371090134295439158974962093564597384883333367552686240266888927487282665638944216412659090583065892591080105783790902041251845326679157115264452307543784230951328649647901707122075729734890017105333430217530027198958063122526165099067511202520635700965976392343456945814051944002140649616670893485303679337714146752362955172742552291407403434300704688890407294889573513807297259497966134098224583291797723339294827521776602437454770584754525722239249440125120046387525767127383757699634856656632014928847845554544317537575839393312874683141848432587955349753576001236253168427897767713779627264152880165651910517361654909004142700841584333272268250003898129578180642103871678742250063023959154718682827171508672168153986663662038626801022889309660050482603966501062910871032685792975774553948975680478724253351323435240380746647975851581957321312044218791631903861319782407962249867348642458681979615334704905559006605894616961195992730540129796225558310797271531990329650542816839169195910260801310151821711033485178553218912359065734178717471365227243196633296740348667088959194231746912106908533737358720635554080753732305606274101853399975182203700284150132686426784863997265636786611960947913908417912846197913325555492933793689731869104489106036185396244704853844081617152160715741414622002077387689558233394264870696376652321656494926620918328112006929577461618824055864901366326063037585111656740364668341352986864178075102809593843772649540095334013220642936554724629634696473614163638389050353135190175548094437064962581674543090647649540309897725563509051921295724326514457173721071198506303076309296773035997493865446570597717971067685330417952860382250564350049528434509091605569604846006274089009790870176743101384022360049071281392050855918432817170744618788092842435761578495830285687990671043801881798748467594939678889787373973559902656096046874906745032498204225353862361042982201048132141659191030766150134981948441616469361957163856395482810975581063825189523541221561249315271209227090845702192816181851322135281765952851892832144636988874560346938965810806028088636571495632718101695362801234841797037518332928848178272922890876309884718375617056763223726736571446389881669769365651379116736043038620754329474192882482408545976936700824568900077917429361881878952654462380529258882627204288632888100874066624843894945079669332624481432204105296990416003133615427538054917273623566745118137648954248898063397860776893782168794355794581495796791879159014448341639869937861374087654971602382779418117220813028696170178734292764124048216759468613215967750052125432173198749349598366111877636150676108143413510891577006703644620274203542501254817522654570220019656850452464101955410362949667130764929979551580657835067733737150874933714239452895763174292632789914566741901450263568017169090520452440295718545898454957162496000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
松山城の創建と湯ノ山川の大改修
『愛媛県 温泉郡 石井村史』より引用 加藤嘉明の伊予・湯ノ山川改修 松山城を創建した加藤嘉明は、幼少のころ孤児となり諸国を流浪したが、15歳の時に羽柴秀吉の臣加藤景泰にその才幹を認められ、その推挙によって秀吉に仕えた。嘉明は敏捷でよく秀吉の意にかない、天正10年(1582)に明...
-
さきほども、関東で地震があり、NHK テレビがけっこう長く地震情報をながしていた。 ほぼ常時電源を入れているノートPC に Linux 用の JQuake をインストールしてみた。 2021-12-19 16:10 追記 2/20/2022 もう二月以上動かしたままだけど、別の...
-
「かな」モードで、「\ (バックスラッシュ)」キーを押す。 するとミニバッファに JIS code, KUTEN code, UNICODE ... が表示される。 例) 藤原純友が朝廷から与えられた官位である伊予「 掾」 のジョウを入力するときは、バックスラッシュのあと ...
-
Windows 10 のスクリーンショット・ツールにある Snip & Sketch 定規のメニューはあるのだけど、なかなかこの定規の使い方がわからなかった。 ちょっとした、コツがいる。 マウスのスクロールを、回してやると定規が回転する。 定規にポインタを移動させ、実際...