fork(3) download
  1. #include<iostream>
  2. #include<stdio.h>
  3. #include<bitset>
  4. #include<vector>
  5. #include<math.h>
  6. #define N 10000005
  7. using namespace std;
  8. bitset <N> bits ;
  9. int primes[N] ;
  10. void precomputation(){
  11. for(int i = 2; i < N; i += 2) primes[i] = 2 ;
  12.  
  13. for(int i = 3; i < N; i += 2){
  14. cout << i ;
  15. if (!bits[i]){
  16. primes[i] = i ;
  17. for(long long int j = i * i; j < N; j += 2 * i)
  18. if (!bits[j]){
  19. primes[j] = i ;
  20. bits[j] = 1 ;
  21.  
  22. }
  23. }
  24. }
  25. cout << "success" << endl ;
  26. }
  27.  
  28. /*long long int exponent (int base, int exp){
  29.   long long int res;
  30.   if (exp == 0)
  31.   return 1;
  32.   res = exponent(base, exp/2) ;
  33.   if (exp%2 == 0)
  34.   return (res * res);
  35.   return (base * res * res) ;
  36. }
  37.  
  38.  
  39. long long int factor (long long int n) {
  40.   long long res = 1 ;
  41.   int count;
  42.   while(n > 1){
  43.   count = 0 ;
  44.   int i = primes[n] ;
  45.   while(n % i == 0){
  46.   n /= i ;
  47.   count++ ;
  48.   }
  49.   res *= (exponent(i, count+1) - 1) / (i - 1) ;
  50.   cout << endl ;
  51.   }
  52.   return res ;
  53. }*/
  54. int main(){
  55.  
  56. ios_base::sync_with_stdio(false) ; cin.tie(0) ;
  57. precomputation() ;
  58. cout << "success" << endl ;
  59.  
  60.  
  61. /*int t;
  62.   long long int n ;
  63.   cin >> t ;
  64.   while(t--){
  65.   cin >> n ;
  66.   //cout << factor(n) - n << "\n";
  67.   }*/
  68. return 0 ;
  69. }
  70.  
Runtime error #stdin #stdout 0.18s 43144KB
stdin
1
100
stdout
3579111315171921232527293133353739414345474951535557596163656769717375777981838587899193959799101103105107109111113115117119121123125127129131133135137139141143145147149151153155157159161163165167169171173175177179181183185187189191193195197199201203205207209211213215217219221223225227229231233235237239241243245247249251253255257259261263265267269271273275277279281283285287289291293295297299301303305307309311313315317319321323325327329331333335337339341343345347349351353355357359361363365367369371373375377379381383385387389391393395397399401403405407409411413415417419421423425427429431433435437439441443445447449451453455457459461463465467469471473475477479481483485487489491493495497499501503505507509511513515517519521523525527529531533535537539541543545547549551553555557559561563565567569571573575577579581583585587589591593595597599601603605607609611613615617619621623625627629631633635637639641643645647649651653655657659661663665667669671673675677679681683685687689691693695697699701703705707709711713715717719721723725727729731733735737739741743745747749751753755757759761763765767769771773775777779781783785787789791793795797799801803805807809811813815817819821823825827829831833835837839841843845847849851853855857859861863865867869871873875877879881883885887889891893895897899901903905907909911913915917919921923925927929931933935937939941943945947949951953955957959961963965967969971973975977979981983985987989991993995997999100110031005100710091011101310151017101910211023102510271029103110331035103710391041104310451047104910511053105510571059106110631065106710691071107310751077107910811083108510871089109110931095109710991101110311051107110911111113111511171119112111231125112711291131113311351137113911411143114511471149115111531155115711591161116311651167116911711173117511771179118111831185118711891191119311951197119912011203120512071209121112131215121712191221122312251227122912311233123512371239124112431245124712491251125312551257125912611263126512671269127112731275127712791281128312851287128912911293129512971299130113031305130713091311131313151317131913211323132513271329133113331335133713391341134313451347134913511353135513571359136113631365136713691371137313751377137913811383138513871389139113931395139713991401140314051407140914111413141514171419142114231425142714291431143314351437143914411443144514471449145114531455145714591461146314651467146914711473147514771479148114831485148714891491149314951497149915011503150515071509151115131515151715191521152315251527152915311533153515371539154115431545154715491551155315551557155915611563156515671569157115731575157715791581158315851587158915911593159515971599160116031605160716091611161316151617161916211623162516271629163116331635163716391641164316451647164916511653165516571659166116631665166716691671167316751677167916811683168516871689169116931695169716991701170317051707170917111713171517171719172117231725172717291731173317351737173917411743174517471749175117531755175717591761176317651767176917711773177517771779178117831785178717891791179317951797179918011803180518071809181118131815181718191821182318251827182918311833183518371839184118431845184718491851185318551857185918611863186518671869187118731875187718791881188318851887188918911893189518971899190119031905190719091911191319151917191919211923192519271929193119331935193719391941194319451947194919511953195519571959196119631965196719691971197319751977197919811983198519871989199119931995199719992001200320052007200920112013201520172019202120232025202720292031203320352037203920412043204520472049205120532055205720592061206320652067206920712073207520772079208120832085208720892091209320952097209921012103210521072109211121132115211721192121212321252127212921312133213521372139214121432145214721492151215321552157215921612163216521672169217121732175217721792181218321852187218921912193219521972199220122032205220722092211221322152217221922212223222522272229223122332235223722392241224322452247224922512253225522572259226122632265226722692271227322752277227922812283228522872289229122932295229722992301230323052307230923112313231523172319232123232325232723292331233323352337233923412343234523472349235123532355235723592361236323652367236923712373237523772379238123832385238723892391239323952397239924012403240524072409241124132415241724192421242324252427242924312433243524372439244124432445244724492451245324552457245924612463246524672469247124732475247724792481248324852487248924912493249524972499250125032505250725092511251325152517251925212523252525272529253125332535253725392541254325452547254925512553255525572559256125632565256725692571257325752577257925812583258525872589259125932595259725992601260326052607260926112613261526172619262126232625262726292631263326352637263926412643264526472649265126532655265726592661266326652667266926712673267526772679268126832685268726892691269326952697269927012703270527072709271127132715271727192721272327252727272927312733273527372739274127432745274727492751275327552757275927612763276527672769277127732775277727792781278327852787278927912793279527972799280128032805280728092811281328152817281928212823282528272829283128332835283728392841284328452847284928512853285528572859286128632865286728692871287328752877287928812883288528872889289128932895289728992901290329052907290929112913291529172919292129232925292729292931293329352937293929412943294529472949295129532955295729592961296329652967296929712973297529772979298129832985298729892991299329952997299930013003300530073009301130133015301730193021302330253027302930313033303530373039304130433045304730493051305330553057305930613063306530673069307130733075307730793081308330853087308930913093309530973099310131033105310731093111311331153117311931213123312531273129313131333135313731393141314331453147314931513153315531573159316131633165316731693171317331753177317931813183318531873189319131933195319731993201320332053207320932113213321532173219322132233225322732293231323332353237323932413243324532473249325132533255325732593261326332653267326932713273327532773279328132833285328732893291329332953297329933013303330533073309331133133315331733193321332333253327332933313333333533373339334133433345334733493351335333553357335933613363336533673369337133733375337733793381338333853387338933913393339533973399340134033405340734093411341334153417341934213423342534273429343134333435343734393441344334453447344934513453345534573459346134633465346734693471347334753477347934813483348534873489349134933495349734993501350335053507350935113513351535173519352135233525352735293531353335353537353935413543354535473549355135533555355735593561356335653567356935713573357535773579358135833585358735893591359335953597359936013603360536073609361136133615361736193621362336253627362936313633363536373639364136433645364736493651365336553657365936613663366536673669367136733675367736793681368336853687368936913693369536973699370137033705370737093711371337153717371937213723372537273729373137333735373737393741374337453747374937513753375537573759376137633765376737693771377337753777377937813783378537873789379137933795379737993801380338053807380938113813381538173819382138233825382738293831383338353837383938413843384538473849385138533855385738593861386338653867386938713873387538773879388138833885388738893891389338953897389939013903390539073909391139133915391739193921392339253927392939313933393539373939394139433945394739493951395339553957395939613963396539673969397139733975397739793981398339853987398939913993399539973999400140034005400740094011401340154017401940214023402540274029403140334035403740394041404340454047404940514053405540574059406140634065406740694071407340754077407940814083408540874089409140934095409740994101410341054107410941114113411541174119412141234125412741294131413341354137413941414143414541474149415141534155415741594161416341654167416941714173417541774179418141834185418741894191419341954197419942014203420542074209421142134215421742194221422342254227422942314233423542374239424142434245424742494251425342554257425942614263426542674269427142734275427742794281428342854287428942914293429542974299430143034305430743094311431343154317431943214323432543274329433143334335433743394341434343454347434943514353435543574359436143634365436743694371437343754377437943814383438543874389439143934395439743994401440344054407440944114413441544174419442144234425442744294431443344354437443944414443444544474449445144534455445744594461446344654467446944714473447544774479448144834485448744894491449344954497449945014503450545074509451145134515451745194521452345254527452945314533453545374539454145434545454745494551455345554557455945614563456545674569457145734575457745794581458345854587458945914593459545974599460146034605460746094611461346154617461946214623462546274629463146334635463746394641464346454647464946514653465546574659466146634665466746694671467346754677467946814683468546874689469146934695469746994701470347054707470947114713471547174719472147234725472747294731473347354737473947414743474547474749475147534755475747594761476347654767476947714773477547774779478147834785478747894791479347954797479948014803480548074809481148134815481748194821482348254827482948314833483548374839484148434845484748494851485348554857485948614863486548674869487148734875487748794881488348854887488948914893489548974899490149034905490749094911491349154917491949214923492549274929493149334935493749394941494349454947494949514953495549574959496149634965496749694971497349754977497949814983498549874989499149934995499749995001500350055007500950115013501550175019502150235025502750295031503350355037503950415043504550475049505150535055505750595061506350655067506950715073507550775079508150835085508750895091509350955097509951015103510551075109511151135115511751195121512351255127512951315133513551375139514151435145514751495151515351555157515951615163516551675169517151735175517751795181518351855187518951915193519551975199520152035205520752095211521352155217521952215223522552275229523152335235523752395241524352455247524952515253525552575259526152635265526752695271527352755277527952815283528552875289529152935295529752995301530353055307530953115313531553175319532153235325532753295331533353355337533953415343534553475349535153535355535753595361536353655367536953715373537553775379538153835385538753895391539353955397539954015403540554075409541154135415541754195421542354255427542954315433543554375439544154435445544754495451545354555457545954615463546554675469547154735475547754795481548354855487548954915493549554975499550155035505550755095511551355155517551955215523552555275529553155335535553755395541554355455547554955515553555555575559556155635565556755695571557355755577557955815583558555875589559155935595559755995601560356055607560956115613561556175619562156235625562756295631563356355637563956415643564556475649565156535655565756595661566356655667566956715673567556775679568156835685568756895691569356955697569957015703570557075709571157135715571757195721572357255727572957315733573557375739574157435745574757495751575357555757575957615763576557675769577157735775577757795781578357855787578957915793579557975799580158035805580758095811581358155817581958215823582558275829583158335835583758395841584358455847584958515853585558575859586158635865586758695871587358755877587958815883588558875889589158935895589758995901590359055907590959115913591559175919592159235925592759295931593359355937593959415943594559475949595159535955595759595961596359655967596959715973597559775979598159835985598759895991599359955997599960016003600560076009601160136015601760196021602360256027602960316033603560376039604160436045604760496051605360556057605960616063606560676069607160736075607760796081608360856087608960916093609560976099610161036105610761096111611361156117611961216123612561276129613161336135613761396141614361456147614961516153615561576159616161636165616761696171617361756177617961816183618561876189619161936195619761996201620362056207620962116213621562176219622162236225622762296231623362356237623962416243624562476249625162536255625762596261626362656267626962716273627562776279628162836285628762896291629362956297629963016303630563076309631163136315631763196321632363256327632963316333633563376339634163436345634763496351635363556357635963616363636563676369637163736375637763796381638363856387638963916393639563976399640164036405640764096411641364156417641964216423642564276429643164336435643764396441644364456447644964516453645564576459646164636465646764696471647364756477647964816483648564876489649164936495649764996501650365056507650965116513651565176519652165236525652765296531653365356537653965416543654565476549655165536555655765596561656365656567656965716573657565776579658165836585658765896591659365956597659966016603660566076609661166136615661766196621662366256627662966316633663566376639664166436645664766496651665366556657665966616663666566676669667166736675667766796681668366856687668966916693669566976699670167036705670767096711671367156717671967216723672567276729673167336735673767396741674367456747674967516753675567576759676167636765676767696771677367756777677967816783678567876789679167936795679767996801680368056807680968116813681568176819682168236825682768296831683368356837683968416843684568476849685168536855685768596861686368656867686968716873687568776879688168836885688768896891689368956897689969016903690569076909691169136915691769196921692369256927692969316933693569376939694169436945694769496951695369556957695969616963696569676969697169736975697769796981698369856987698969916993699569976999700170037005700770097011701370157017701970217023702570277029703170337035703770397041704370457047704970517053705570577059706170637065706770697071707370757077707970817083708570877089709170937095709770997101710371057107710971117113711571177119712171237125712771297131713371357137713971417143714571477149715171537155715771597161716371657167716971717173717571777179718171837185718771897191719371957197719972017203720572077209721172137215721772197221722372257227722972317233723572377239724172437245724772497251725372557257725972617263726572677269727172737275727772797281728372857287728972917293729572977299730173037305730773097311731373157317731973217323732573277329733173337335733773397341734373457347734973517353735573577359736173637365736773697371737373757377737973817383738573877389739173937395739773997401740374057407740974117413741574177419742174237425742774297431743374357437743974417443744574477449745174537455745774597461746374657467746974717473747574777479748174837485748774897491749374957497749975017503750575077509751175137515751775197521752375257527752975317533753575377539754175437545754775497551755375557557755975617563756575677569757175737575757775797581758375857587758975917593759575977599760176037605760776097611761376157617761976217623762576277629763176337635763776397641764376457647764976517653765576577659766176637665766776697671767376757677767976817683768576877689769176937695769776997701770377057707770977117713771577177719772177237725772777297731773377357737773977417743774577477749775177537755775777597761776377657767776977717773777577777779778177837785778777897791779377957797779978017803780578077809781178137815781778197821782378257827782978317833783578377839784178437845784778497851785378557857785978617863786578677869787178737875787778797881788378857887788978917893789578977899790179037905790779097911791379157917791979217923792579277929793179337935793779397941794379457947794979517953795579577959796179637965796779697971797379757977797979817983798579877989799179937995799779998001800380058007800980118013801580178019802180238025802780298031803380358037803980418043804580478049805180538055805780598061806380658067806980718073807580778079808180838085808780898091809380958097809981018103810581078109811181138115811781198121812381258127812981318133813581378139814181438145814781498151815381558157815981618163816581678169817181738175817781798181818381858187818981918193819581978199820182038205820782098211821382158217821982218223822582278229823182338235823782398241824382458247824982518253825582578259826182638265826782698271827382758277827982818283828582878289829182938295829782998301830383058307830983118313831583178319832183238325832783298331833383358337833983418343834583478349835183538355835783598361836383658367836983718373837583778379838183838385838783898391839383958397839984018403840584078409841184138415841784198421842384258427842984318433843584378439844184438445844784498451845384558457845984618463846584678469847184738475847784798481848384858487848984918493849584978499850185038505850785098511851385158517851985218523852585278529853185338535853785398541854385458547854985518553855585578559856185638565856785698571857385758577857985818583858585878589859185938595859785998601860386058607860986118613861586178619862186238625862786298631863386358637863986418643864586478649865186538655865786598661866386658667866986718673867586778679868186838685868786898691869386958697869987018703870587078709871187138715871787198721872387258727872987318733873587378739874187438745874787498751875387558757875987618763876587678769877187738775877787798781878387858787878987918793879587978799880188038805880788098811881388158817881988218823882588278829883188338835883788398841884388458847884988518853885588578859886188638865886788698871887388758877887988818883888588878889889188938895889788998901890389058907890989118913891589178919892189238925892789298931893389358937893989418943894589478949895189538955895789598961896389658967896989718973897589778979898189838985898789898991899389958997899990019003900590079009901190139015901790199021902390259027902990319033903590379039904190439045904790499051905390559057905990619063906590679069907190739075907790799081908390859087908990919093909590979099910191039105910791099111911391159117911991219123912591279129913191339135913791399141914391459147914991519153915591579159916191639165916791699171917391759177917991819183918591879189919191939195919791999201920392059207920992119213921592179219922192239225922792299231923392359237923992419243924592479249925192539255925792599261926392659267926992719273927592779279928192839285928792899291929392959297929993019303930593079309931193139315931793199321932393259327932993319333933593379339934193439345934793499351935393559357935993619363936593679369937193739375937793799381938393859387938993919393939593979399940194039405940794099411941394159417941994219423942594279429943194339435943794399441944394459447944994519453945594579459946194639465946794699471947394759477947994819483948594879489949194939495949794999501950395059507950995119513951595179519952195239525952795299531953395359537953995419543954595479549955195539555955795599561956395659567956995719573957595779579958195839585958795899591959395959597959996019603960596079609961196139615961796199621962396259627962996319633963596379639964196439645964796499651965396559657965996619663966596679669967196739675967796799681968396859687968996919693969596979699970197039705970797099711971397159717971997219723972597279729973197339735973797399741974397459747974997519753975597579759976197639765976797699771977397759777977997819783978597879789979197939795979797999801980398059807980998119813981598179819982198239825982798299831983398359837983998419843984598479849985198539855985798599861986398659867986998719873987598779879988198839885988798899891989398959897989999019903990599079909991199139915991799199921992399259927992999319933993599379939994199439945994799499951995399559957995999619963996599679969997199739975997799799981998399859987998999919993999599979999100011000310005100071000910011100131001510017100191002110023100251002710029100311003310035100371003910041100431004510047100491005110053100551005710059100611006310065100671006910071100731007510077100791008110083100851008710089100911009310095100971009910101101031010510107101091011110113101151011710119101211012310125101271012910131101331013510137101391014110143101451014710149101511015310155101571015910161101631016510167101691017110173101751017710179101811018310185101871018910191101931019510197101991020110203102051020710209102111021310215102171021910221102231022510227102291023110233102351023710239102411024310245102471024910251102531025510257102591026110263102651026710269102711027310275102771027910281102831028510287102891029110293102951029710299103011030310305103071030910311103131031510317103191032110323103251032710329103311033310335103371033910341103431034510347103491035110353103551035710359103611036310365103671036910371103731037510377103791038110383103851038710389103911039310395103971039910401104031040510407104091041110413104151041710419104211042310425104271042910431104331043510437104391044110443104451044710449104511045310455104571045910461104631046510467104691047110473104751047710479104811048310485104871048910491104931049510497104991050110503105051050710509105111051310515105171051910521105231052510527105291053110533105351053710539105411054310545105471054910551105531055510557105591056110563105651056710569105711057310575105771057910581105831058510587105891059110593105951059710599106011060310605106071060910611106131061510617106191062110623106251062710629106311063310635106371063910641106431064510647106491065110653106551065710659106611066310665106671066910671106731067510677106791068110683106851068710689106911069310695106971069910701107031070510707107091071110713107151071710719107211072310725107271072910731107331073510737107391074110743107451074710749107511075310755107571075910761107631076510767107691077110773107751077710779107811078310785107871078910791107931079510797107991080110803108051080710809108111081310815108171081910821108231082510827108291083110833108351083710839108411084310845108471084910851108531085510857108591086110863108651086710869108711087310875108771087910881108831088510887108891089110893108951089710899109011090310905109071090910911109131091510917109191092110923109251092710929109311093310935109371093910941109431094510947109491095110953109551095710959109611096310965109671096910971109731097510977109791098110983109851098710989109911099310995109971099911001110031100511007110091101111013110151101711019110211102311025110271102911031110331103511037110391104111043110451104711049110511105311055110571105911061110631106511067110691107111073110751107711079110811108311085110871108911091110931109511097110991110111103111051110711109111111111311115111171111911121111231112511127111291113111133111351113711139111411114311145111471114911151111531115511157111591116111163111651116711169111711117311175111771117911181111831118511187111891119111193111951119711199112011120311205112071120911211112131121511217112191122111223112251122711229112311123311235112371123911241112431124511247112491125111253112551125711259112611126311265112671126911271112731127511277112791128111283112851128711289112911129311295112971129911301113031130511307113091131111313113151131711319113211132311325113271132911331113331133511337113391134111343113451134711349113511135311355113571135911361113631136511367113691137111373113751137711379113811138311385113871138911391113931139511397113991140111403114051140711409114111141311415114171141911421114231142511427114291143111433114351143711439114411144311445114471144911451114531145511457114591146111463114651146711469114711147311475114771147911481114831148511487114891149111493114951149711499115011150311505115071150911511115131151511517115191152111523115251152711529115311153311535115371153911541115431154511547115491155111553115551155711559115611156311565115671156911571115731157511577115791158111583115851158711589115911159311595115971159911601116031160511607116091161111613116151161711619116211162311625116271162911631116331163511637116391164111643116451164711649116511165311655116571165911661116631166511667116691167111673116751167711679116811168311685116871168911691116931169511697116991170111703117051170711709117111171311715117171171911721117231172511727117291173111733117351173711739117411174311745117471174911751117531175511757117591176111763117651176711769117711177311775117771177911781117831178511787117891179111793117951179711799118011180311805118071180911811118131181511817118191182111823118251182711829118311183311835118371183911841118431184511847118491185111853118551185711859118611186311865118671186911871118731187511877118791188111883118851188711889118911189311895118971189911901119031190511907119091191111913119151191711919119211192311925119271192911931119331193511937119391194111943119451194711949119511195311955119571195911961119631196511967119691197111973119751197711979119811198311985119871198911991119931199511997119991200112003120051200712009120111201312015120171201912021120231202512027120291203112033120351203712039120411204312045120471204912051120531205512057120591206112063120651206712069120711207312075120771207912081120831208512087120891209112093120951209712099121011210312105121071210912111121131211512117121191212112123121251212712129121311213312135121371213912141121431214512147121491215112153121551215712159121611216312165121671216912171121731217512177121791218112183121851218712189121911219312195121971219912201122031220512207122091221112213122151221712219122211222312225122271222912231122331223512237122391224112243122451224712249122511225312255122571225912261122631226512267122691227112273122751227712279122811228312285122871228912291122931229512297122991230112303123051230712309123111231312315123171231912321123231232512327123291233112333123351233712339123411234312345123471234912351123531235512357123591236112363123651236712369123711237312375123771237912381123831238512387123891239112393123951239712399124011240312405124071240912411124131241512417124191242112423124251242712429124311243312435124371243912441124431244512447124491245112453124551245712459124611246312465124671246912471124731247512477124791248112483124851248712489124911249312495124971249912501125031250512507125091251112513125151251712519125211252312525125271252912531125331253512537125391254112543125451254712549125511255312555125571255912561125631256512567125691257112573125751257712579125811258312585125871258912591125931259512597125991260112603126051260712609126111261312615126171261912621126231262512627126291263112633126351263712639126411264312645126471264912651126531265512657126591266112663126651266712669126711267312675126771267912681126831268512687126891269112693126951269712699127011270312705127071270912711127131271512717127191272112723127251272712729127311273312735127371273912741127431274512747127491275112753127551275712759127611276312765127671276912771127731277512777127791278112783127851278712789127911279312795127971279912801128031280512807128091281112813128151281712819128211282312825128271282912831128331283512837128391284112843128451284712849128511285312855128571285912861128631286512867128691287112873128751287712879128811288312885128871288912891128931289512897128991290112903129051290712909129111291312915129171291912921129231292512927129291293112933129351293712939129411294312945129471294912951129531295512957129591296112963129651296712969129711297312975129771297912981129831298512987129891299112993129951299712999130011300313005130071300913011130131301513017130191302113023130251302713029130311303313035130371303913041130431304513047130491305113053130551305713059130611306313065130671306913071130731307513077130791308113083130851308713089130911309313095130971309913101131031310513107131091311113113131151311713119131211312313125131271312913131131331313513137131391314113143131451314713149131511315313155131571315913161131631316513167131691317113173131751317713179131811318313185131871318913191131931319513197131991320113203132051320713209132111321313215132171321913221132231322513227132291323113233132351323713239132411324313245132471324913251132531325513257132591326113263132651326713269132711327313275132771327913281132831328513287132891329113293132951329713299133011330313305133071330913311133131331513317133191332113323133251332713329133311333313335133371333913341133431334513347133491335113353133551335713359133611336313365133671336913371133731337513377133791338113383133851338713389133911339313395133971339913401134031340513407134091341113413134151341713419134211342313425134271342913431134331343513437134391344113443134451344713449134511345313455134571345913461134631346513467134691347113473134751347713479134811348313485134871348913491134931349513497134991350113503135051350713509135111351313515135171351913521135231352513527135291353113533135351353713539135411354313545135471354913551135531355513557135591356113563135651356713569135711357313575135771357913581135831358513587135891359113593135951359713599136011360313605136071360913611136131361513617136191362113623136251362713629136311363313635136371363913641136431364513647136491365113653136551365713659136611366313665136671366913671136731367513677136791368113683136851368713689136911369313695136971369913701137031370513707137091371113713137151371713719137211372313725137271372913731137331373513737137391374113743137451374713749137511375313755137571375913761137631376513767137691377113773137751377713779137811378313785137871378913791137931379513797137991380113803138051380713809138111381313815138171381913821138231382513827138291383113833138351383713839138411384313845138471384913851138531385513857138591386113863138651386713869138711387313875138771387913881138831388513887138891389113893138951389713899139011390313905139071390913911139131391513917139191392113923139251392713929139311393313935139371393913941139431394513947139491395113953139551395713959139611396313965139671396913971139731397513977139791398113983139851398713989139911399313995139971399914001140031400514007140091401114013140151401714019140211402314025140271402914031140331403514037140391404114043140451404714049140511405314055140571405914061140631406514067140691407114073140751407714079140811408314085140871408914091140931409514097140991410114103141051410714109141111411314115141171411914121141231412514127141291413114133141351413714139141411414314145141471414914151141531415514157141591416114163141651416714169141711417314175141771417914181141831418514187141891419114193141951419714199142011420314205142071420914211142131421514217142191422114223142251422714229142311423314235142371423914241142431424514247142491425114253142551425714259142611426314265142671426914271142731427514277142791428114283142851428714289142911429314295142971429914301143031430514307143091431114313143151431714319143211432314325143271432914331143331433514337143391434114343143451434714349143511435314355143571435914361143631436514367143691437114373143751437714379143811438314385143871438914391143931439514397143991440114403144051440714409144111441314415144171441914421144231442514427144291443114433144351443714439144411444314445144471444914451144531445514457144591446114463144651446714469144711447314475144771447914481144831448514487144891449114493144951449714499145011450314505145071450914511145131451514517145191452114523145251452714529145311453314535145371453914541145431454514547145491455114553145551455714559145611456314565145671456914571145731457514577145791458114583145851458714589145911459314595145971459914601146031460514607146091461114613146151461714619146211462314625146271462914631146331463514637146391464114643146451464714649146511465314655146571465914661146631466514667146691467114673146751467714679146811468314685146871468914691146931469514697146991470114703147051470714709147111471314715147171471914721147231472514727147291473114733147351473714739147411474314745147471474914751147531475514757147591476114763147651476714769147711477314775147771477914781147831478514787147891479114793147951479714799148011480314805148071480914811148131481514817148191482114823148251482714829148311483314835148371483914841148431484514847148491485114853148551485714859148611486314865148671486914871148731487514877148791488114883148851488714889148911489314895148971489914901149031490514907149091491114913149151491714919149211492314925149271492914931149331493514937149391494114943149451494714949149511495314955149571495914961149631496514967149691497114973149751497714979149811498314985149871498914991149931499514997149991500115003150051500715009150111501315015150171501915021150231502515027150291503115033150351503715039150411504315045150471504915051150531505515057150591506115063150651506715069150711507315075150771507915081150831508515087150891509115093150951509715099151011510315105151071510915111151131511515117151191512115123151251512715129151311513315135151371513915141151431514515147151491515115153151551515715159151611516315165151671516915171151731517515177151791518115183151851518715189151911519315195151971519915201152031520515207152091521115213152151521715219152211522315225152271522915231152331523515237152391524115243152451524715249152511525315255152571525915261152631526515267152691527115273152751527715279152811528315285152871528915291152931529515297152991530115303153051530715309153111531315315153171531915321153231532515327153291533115333153351533715339153411534315345153471534915351153531535515357153591536115363153651536715369153711537315375153771537915381153831538515387153891539115393153951539715399154011540315405154071540915411154131541515417154191542115423154251542715429154311543315435154371543915441154431544515447154491545115453154551545715459154611546315465154671546915471154731547515477154791548115483154851548715489154911549315495154971549915501155031550515507155091551115513155151551715519155211552315525155271552915531155331553515537155391554115543155451554715549155511555315555155571555915561155631556515567155691557115573155751557715579155811558315585155871558915591155931559515597155991560115603156051560715609156111561315615156171561915621156231562515627156291563115633156351563715639156411564315645156471564915651156531565515657156591566115663156651566715669156711567315675156771567915681156831568515687156891569115693156951569715699157011570315705157071570915711157131571515717157191572115723157251572715729157311573315735157371573915741157431574515747157491575115753157551575715759157611576315765157671576915771157731577515777157791578115783157851578715789157911579315795157971579915801158031580515807158091581115813158151581715819158211582315825158271582915831158331583515837158391584115843158451584715849158511585315855158571585915861158631586515867158691587115873158751587715879158811588315885158871588915891158931589515897158991590115903159051590715909159111591315915159171591915921159231592515927159291593115933159351593715939159411594315945159471594915951159531595515957159591596115963159651596715969159711597315975159771597915981159831598515987159891599115993159951599715999160011600316005160071600916011160131601516017160191602116023160251602716029160311603316035160371603916041160431604516047160491605116053160551605716059160611606316065160671606916071160731607516077160791608116083160851608716089160911609316095160971609916101161031610516107161091611116113161151611716119161211612316125161271612916131161331613516137161391614116143161451614716149161511615316155161571615916161161631616516167161691617116173161751617716179161811618316185161871618916191161931619516197161991620116203162051620716209162111621316215162171621916221162231622516227162291623116233162351623716239162411624316245162471624916251162531625516257162591626116263162651626716269162711627316275162771627916281162831628516287162891629116293162951629716299163011630316305163071630916311163131631516317163191632116323163251632716329163311633316335163371633916341163431634516347163491635116353163551635716359163611636316365163671636916371163731637516377163791638116383163851638716389163911639316395163971639916401164031640516407164091641116413164151641716419164211642316425164271642916431164331643516437164391644116443164451644716449164511645316455164571645916461164631646516467164691647116473164751647716479164811648316485164871648916491164931649516497164991650116503165051650716509165111651316515165171651916521165231652516527165291653116533165351653716539165411654316545165471654916551165531655516557165591656116563165651656716569165711657316575165771657916581165831658516587165891659116593165951659716599166011660316605166071660916611166131661516617166191662116623166251662716629166311663316635166371663916641166431664516647166491665116653166551665716659166611666316665166671666916671166731667516677166791668116683166851668716689166911669316695166971669916701167031670516707167091671116713167151671716719167211672316725167271672916731167331673516737167391674116743167451674716749167511675316755167571675916761167631676516767167691677116773167751677716779167811678316785167871678916791167931679516797167991680116803168051680716809168111681316815168171681916821168231682516827168291683116833168351683716839168411684316845168471684916851168531685516857168591686116863168651686716869168711687316875168771687916881168831688516887168891689116893168951689716899169011690316905169071690916911169131691516917169191692116923169251692716929169311693316935169371693916941169431694516947169491695116953169551695716959169611696316965169671696916971169731697516977169791698116983169851698716989169911699316995169971699917001170031700517007170091701117013170151701717019170211702317025170271702917031170331703517037170391704117043170451704717049170511705317055170571705917061170631706517067170691707117073170751707717079170811708317085170871708917091170931709517097170991710117103171051710717109171111711317115171171711917121171231712517127171291713117133171351713717139171411714317145171471714917151171531715517157171591716117163171651716717169171711717317175171771717917181171831718517187171891719117193171951719717199172011720317205172071720917211172131721517217172191722117223172251722717229172311723317235172371723917241172431724517247172491725117253172551725717259172611726317265172671726917271172731727517277172791728117283172851728717289172911729317295172971729917301173031730517307173091731117313173151731717319173211732317325173271732917331173331733517337173391734117343173451734717349173511735317355173571735917361173631736517367173691737117373173751737717379173811738317385173871738917391173931739517397173991740117403174051740717409174111741317415174171741917421174231742517427174291743117433174351743717439174411744317445174471744917451174531745517457174591746117463174651746717469174711747317475174771747917481174831748517487174891749117493174951749717499175011750317505175071750917511175131751517517175191752117523175251752717529175311753317535175371753917541175431754517547175491755117553175551755717559175611756317565175671756917571175731757517577175791758117583175851758717589175911759317595175971759917601176031760517607176091761117613176151761717619176211762317625176271762917631176331763517637176391764117643176451764717649176511765317655176571765917661176631766517667176691767117673176751767717679176811768317685176871768917691176931769517697176991770117703177051770717709177111771317715177171771917721177231772517727177291773117733177351773717739177411774317745177471774917751177531775517757177591776117763177651776717769177711777317775177771777917781177831778517787177891779117793177951779717799178011780317805178071780917811178131781517817178191782117823178251782717829178311783317835178371783917841178431784517847178491785117853178551785717859178611786317865178671786917871178731787517877178791788117883178851788717889178911789317895178971789917901179031790517907179091791117913179151791717919179211792317925179271792917931179331793517937179391794117943179451794717949179511795317955179571795917961179631796517967179691797117973179751797717979179811798317985179871798917991179931799517997179991800118003180051800718009180111801318015180171801918021180231802518027180291803118033180351803718039180411804318045180471804918051180531805518057180591806118063180651806718069180711807318075180771807918081180831808518087180891809118093180951809718099181011810318105181071810918111181131811518117181191812118123181251812718129181311813318135181371813918141181431814518147181491815118153181551815718159181611816318165181671816918171181731817518177181791818118183181851818718189181911819318195181971819918201182031820518207182091821118213182151821718219182211822318225182271822918231182331823518237182391824118243182451824718249182511825318255182571825918261182631826518267182691827118273182751827718279182811828318285182871828918291182931829518297182991830118303183051830718309183111831318315183171831918321183231832518327183291833118333183351833718339183411834318345183471834918351183531835518357183591836118363183651836718369183711837318375183771837918381183831838518387183891839118393183951839718399184011840318405184071840918411184131841518417184191842118423184251842718429184311843318435184371843918441184431844518447184491845118453184551845718459184611846318465184671846918471184731847518477184791848118483184851848718489184911849318495184971849918501185031850518507185091851118513185151851718519185211852318525185271852918531185331853518537185391854118543185451854718549185511855318555185571855918561185631856518567185691857118573185751857718579185811858318585185871858918591185931859518597185991860118603186051860718609186111861318615186171861918621186231862518627186291863118633186351863718639186411864318645186471864918651186531865518657186591866118663186651866718669186711867318675186771867918681186831868518687186891869118693186951869718699187011870318705187071870918711187131871518717187191872118723187251872718729187311873318735187371873918741187431874518747187491875118753187551875718759187611876318765187671876918771187731877518777187791878118783187851878718789187911879318795187971879918801188031880518807188091881118813188151881718819188211882318825188271882918831188331883518837188391884118843188451884718849188511885318855188571885918861188631886518867188691887118873188751887718879188811888318885188871888918891188931889518897188991890118903189051890718909189111891318915189171891918921189231892518927189291893118933189351893718939189411894318945189471894918951189531895518957189591896118963189651896718969189711897318975189771897918981189831898518987189891899118993189951899718999190011900319005190071900919011190131901519017190191902119023190251902719029190311903319035190371903919041190431904519047190491905119053190551905719059190611906319065190671906919071190731907519077190791908119083190851908719089190911909319095190971909919101191031910519107191091911119113191151911719119191211912319125191271912919131191331913519137191391914119143191451914719149191511915319155191571915919161191631916519167191691917119173191751917719179191811918319185191871918919191191931919519197191991920119203192051920719209192111921319215192171921919221192231922519227192291923119233192351923719239192411924319245192471924919251192531925519257192591926119263192651926719269192711927319275192771927919281192831928519287192891929119293192951929719299193011930319305193071930919311193131931519317193191932119323193251932719329193311933319335193371933919341193431934519347193491935119353193551935719359193611936319365193671936919371193731937519377193791938119383193851938719389193911939319395193971939919401194031940519407194091941119413194151941719419194211942319425194271942919431194331943519437194391944119443194451944719449194511945319455194571945919461194631946519467194691947119473194751947719479194811948319485194871948919491194931949519497194991950119503195051950719509195111951319515195171951919521195231952519527195291953119533195351953719539195411954319545195471954919551195531955519557195591956119563195651956719569195711957319575195771957919581195831958519587195891959119593195951959719599196011960319605196071960919611196131961519617196191962119623196251962719629196311963319635196371963919641196431964519647196491965119653196551965719659196611966319665196671966919671196731967519677196791968119683196851968719689196911969319695196971969919701197031970519707197091971119713197151971719719197211972319725197271972919731197331973519737197391974119743197451974719749197511975319755197571975919761197631976519767197691977119773197751977719779197811978319785197871978919791197931979519797197991980119803198051980719809198111981319815198171981919821198231982519827198291983119833198351983719839198411984319845198471984919851198531985519857198591986119863198651986719869198711987319875198771987919881198831988519887198891989119893198951989719899199011990319905199071990919911199131991519917199191992119923199251992719929199311993319935199371993919941199431994519947199491995119953199551995719959199611996319965199671996919971199731997519977199791998119983199851998719989199911999319995199971999920001200032000520007200092001120013200152001720019200212002320025200272002920031200332003520037200392004120043200452004720049200512005320055200572005920061200632006520067200692007120073200752007720079200812008320085200872008920091200932009520097200992010120103201052010720109201112011320115201172011920121201232012520127201292013120133201352013720139201412014320145201472014920151201532015520157201592016120163201652016720169201712017320175201772017920181201832018520187201892019120193201952019720199202012020320205202072020920211202132021520217202192022120223202252022720229202312023320235202372023920241202432024520247202492025120253202552025720259202612026320265202672026920271202732027520277202792028120283202852028720289202912029320295202972029920301203032030520307203092031120313203152031720319203212032320325203272032920331203332033520337203392034120343203452034720349203512035320355203572035920361203632036520367203692037120373203752037720379203812038320385203872038920391203932039520397203992040120403204052040720409204112041320415204172041920421204232042520427204292043120433204352043720439204412044320445204472044920451204532045520457204592046120463204652046720469204712047320475204772047920481204832048520487204892049120493204952049720499205012050320505205072050920511205132051520517205192052120523205252052720529205312053320535205372053920541205432054520547205492055120553205552055720559205612056320565205672056920571205732057520577205792058120583205852058720589205912059320595205972059920601206032060520607206092061120613206152061720619206212062320625206272062920631206332063520637206392064120643206452064720649206512065320655206572065920661206632066520667206692067120673206752067720679206812068320685206872068920691206932069520697206992070120703207052070720709207112071320715207172071920721207232072520727207292073120733207352073720739207412074320745207472074920751207532075520757207592076120763207652076720769207712077320775207772077920781207832078520787207892079120793207952079720799208012080320805208072080920811208132081520817208192082120823208252082720829208312083320835208372083920841208432084520847208492085120853208552085720859208612086320865208672086920871208732087520877208792088120883208852088720889208912089320895208972089920901209032090520907209092091120913209152091720919209212092320925209272092920931209332093520937209392094120943209452094720949209512095320955209572095920961209632096520967209692097120973209752097720979209812098320985209872098920991209932099520997209992100121003210052100721009210112101321015210172101921021210232102521027210292103121033210352103721039210412104321045210472104921051210532105521057210592106121063210652106721069210712107321075210772107921081210832108521087210892109121093210952109721099211012110321105211072110921111211132111521117211192112121123211252112721129211312113321135211372113921141211432114521147211492115121153211552115721159211612116321165211672116921171211732117521177211792118121183211852118721189211912119321195211972119921201212032120521207212092121121213212152121721219212212122321225212272122921231212332123521237212392124121243212452124721249212512125321255212572125921261212632126521267212692127121273212752127721279212812128321285212872128921291212932129521297212992130121303213052130721309213112131321315213172131921321213232132521327213292133121333213352133721339213412134321345213472134921351213532135521357213592136121363213652136721369213712137321375213772137921381213832138521387213892139121393213952139721399214012140321405214072140921411214132141521417214192142121423214252142721429214312143321435214372143921441214432144521447214492145121453214552145721459214612146321465214672146921471214732147521477214792148121483214852148721489214912149321495214972149921501215032150521507215092151121513215152151721519215212152321525215272152921531215332153521537215392154121543215452154721549215512155321555215572155921561215632156521567215692157121573215752157721579215812158321585215872158921591215932159521597215992160121603216052160721609216112161321615216172161921621216232162521627216292163121633216352163721639216412164321645216472164921651216532165521657216592166121663216652166721669216712167321675216772167921681216832168521687216892169121693216952169721699217012170321705217072170921711217132171521717217192172121723217252172721729217312173321735217372173921741217432174521747217492175121753217552175721759217612176321765217672176921771217732177521777217792178121783217852178721789217912179321795217972179921801218032180521807218092181121813218152181721819218212182321825218272182921831218332183521837218392184121843218452184721849218512185321855218572185921861218632186521867218692187121873218752187721879218812188321885218872188921891218932189521897218992190121903219052190721909219112191321915219172191921921219232192521927219292193121933219352193721939219412194321945219472194921951219532195521957219592196121963219652196721969219712197321975219772197921981219832198521987219892199121993219952199721999220012200322005220072200922011220132201522017220192202122023220252202722029220312203322035220372203922041220432204522047220492205122053220552205722059220612206322065220672206922071220732207522077220792208122083220852208722089220912209322095220972209922101221032210522107221092211122113221152211722119221212212322125221272212922131221332213522137221392214122143221452214722149221512215322155221572215922161221632216522167221692217122173221752217722179221812218322185221872218922191221932219522197221992220122203222052220722209222112221322215222172221922221222232222522227222292223122233222352223722239222412224322245222472224922251222532225522257222592226122263222652226722269222712227322275222772227922281222832228522287222892229122293222952229722299223012230322305223072230922311223132231522317223192232122323223252232722329223312233322335223372233922341223432234522347223492235122353223552235722359223612236322365223672236922371223732237522377223792238122383223852238722389223912239322395223972239922401224032240522407224092241122413224152241722419224212242322425224272242922431224332243522437224392244122443224452244722449224512245322455224572245922461224632246522467224692247122473224752247722479224812248322485224872248922491224932249522497224992250122503225052250722509225112251322515225172251922521225232252522527225292253122533225352253722539225412254322545225472254922551225532255522557225592256122563225652256722569225712257322575225772257922581225832258522587225892259122593225952259722599226012260322605226072260922611226132261522617226192262122623226252262722629226312263322635226372263922641226432264522647226492265122653226552265722659226612266322665226672266922671226732267522677226792268122683226852268722689226912269322695226972269922701227032270522707227092271122713227152271722719227212272322725227272272922731227332273522737227392274122743227452274722749227512275322755227572275922761227632276522767227692277122773227752277722779227812278322785227872278922791227932279522797227992280122803228052280722809228112281322815228172281922821228232282522827228292283122833228352283722839228412284322845228472284922851228532285522857228592286122863228652286722869228712287322875228772287922881228832288522887228892289122893228952289722899229012290322905229072290922911229132291522917229192292122923229252292722929229312293322935229372293922941229432294522947229492295122953229552295722959229612296322965229672296922971229732297522977229792298122983229852298722989229912299322995229972299923001230032300523007230092301123013230152301723019230212302323025230272302923031230332303523037230392304123043230452304723049230512305323055230572305923061230632306523067230692307123073230752307723079230812308323085230872308923091230932309523097230992310123103231052310723109231112311323115231172311923121231232312523127231292313123133231352313723139231412314323145231472314923151231532315523157231592316123163231652316723169231712317323175231772317923181231832318523187231892319123193231952319723199232012320323205232072320923211232132321523217232192322123223232252322723229232312323323235232372323923241232432324523247232492325123253232552325723259232612326323265232672326923271232732327523277232792328123283232852328723289232912329323295232972329923301233032330523307233092331123313233152331723319233212332323325233272332923331233332333523337233392334123343233452334723349233512335323355233572335923361233632336523367233692337123373233752337723379233812338323385233872338923391233932339523397233992340123403234052340723409234112341323415234172341923421234232342523427234292343123433234352343723439234412344323445234472344923451234532345523457234592346123463234652346723469234712347323475234772347923481234832348523487234892349123493234952349723499235012350323505235072350923511235132351523517235192352123523235252352723529235312353323535235372353923541235432354523547235492355123553235552355723559235612356323565235672356923571235732357523577235792358123583235852358723589235912359323595235972359923601236032360523607236092361123613236152361723619236212362323625236272362923631236332363523637236392364123643236452364723649236512365323655236572365923661236632366523667236692367123673236752367723679236812368323685236872368923691236932369523697236992370123703237052370723709237112371323715237172371923721237232372523727237292373123733237352373723739237412374323745237472374923751237532375523757237592376123763237652376723769237712377323775237772377923781237832378523787237892379123793237952379723799238012380323805238072380923811238132381523817238192382123823238252382723829238312383323835238372383923841238432384523847238492385123853238552385723859238612386323865238672386923871238732387523877238792388123883238852388723889238912389323895238972389923901239032390523907239092391123913239152391723919239212392323925239272392923931239332393523937239392394123943239452394723949239512395323955239572395923961239632396523967239692397123973239752397723979239812398323985239872398923991239932399523997239992400124003240052400724009240112401324015240172401924021240232402524027240292403124033240352403724039240412404324045240472404924051240532405524057240592406124063240652406724069240712407324075240772407924081240832408524087240892409124093240952409724099241012410324105241072410924111241132411524117241192412124123241252412724129241312413324135241372413924141241432414524147241492415124153241552415724159241612416324165241672416924171241732417524177241792418124183241852418724189241912419324195241972419924201242032420524207242092421124213242152421724219242212422324225242272422924231242332423524237242392424124243242452424724249242512425324255242572425924261242632426524267242692427124273242752427724279242812428324285242872428924291242932429524297242992430124303243052430724309243112431324315243172431924321243232432524327243292433124333243352433724339243412434324345243472434924351243532435524357243592436124363243652436724369243712437324375243772437924381243832438524387243892439124393243952439724399244012440324405244072440924411244132441524417244192442124423244252442724429244312443324435244372443924441244432444524447244492445124453244552445724459244612446324465244672446924471244732447524477244792448124483244852448724489244912449324495244972449924501245032450524507245092451124513245152451724519245212452324525245272452924531245332453524537245392454124543245452454724549245512455324555245572455924561245632456524567245692457124573245752457724579245812458324585245872458924591245932459524597245992460124603246052460724609246112461324615246172461924621246232462524627246292463124633246352463724639246412464324645246472464924651246532465524657246592466124663246652466724669246712467324675246772467924681246832468524687246892469124693246952469724699247012470324705247072470924711247132471524717247192472124723247252472724729247312473324735247372473924741247432474524747247492475124753247552475724759247612476324765247672476924771247732477524777247792478124783247852478724789247912479324795247972479924801248032480524807248092481124813248152481724819248212482324825248272482924831248332483524837248392484124843248452484724849248512485324855248572485924861248632486524867248692487124873248752487724879248812488324885248872488924891248932489524897248992490124903249052490724909249112491324915249172491924921249232492524927249292493124933249352493724939249412494324945249472494924951249532495524957249592496124963249652496724969249712497324975249772497924981249832498524987249892499124993249952499724999250012500325005250072500925011250132501525017250192502125023250252502725029250312503325035250372503925041250432504525047250492505125053250552505725059250612506325065250672506925071250732507525077250792508125083250852508725089250912509325095250972509925101251032510525107251092511125113251152511725119251212512325125251272512925131251332513525137251392514125143251452514725149251512515325155251572515925161251632516525167251692517125173251752517725179251812518325185251872518925191251932519525197251992520125203252052520725209252112521325215252172521925221252232522525227252292523125233252352523725239252412524325245252472524925251252532525525257252592526125263252652526725269252712527325275252772527925281252832528525287252892529125293252952529725299253012530325305253072530925311253132531525317253192532125323253252532725329253312533325335253372533925341253432534525347253492535125353253552535725359253612536325365253672536925371253732537525377253792538125383253852538725389253912539325395253972539925401254032540525407254092541125413254152541725419254212542325425254272542925431254332543525437254392544125443254452544725449254512545325455254572545925461254632546525467254692547125473254752547725479254812548325485254872548925491254932549525497254992550125503255052550725509255112551325515255172551925521255232552525527255292553125533255352553725539255412554325545255472554925551255532555525557255592556125563255652556725569255712557325575255772557925581255832558525587255892559125593255952559725599256012560325605256072560925611256132561525617256192562125623256252562725629256312563325635256372563925641256432564525647256492565125653256552565725659256612566325665256672566925671256732567525677256792568125683256852568725689256912569325695256972569925701257032570525707257092571125713257152571725719257212572325725257272572925731257332573525737257392574125743257452574725749257512575325755257572575925761257632576525767257692577125773257752577725779257812578325785257872578925791257932579525797257992580125803258052580725809258112581325815258172581925821258232582525827258292583125833258352583725839258412584325845258472584925851258532585525857258592586125863258652586725869258712587325875258772587925881258832588525887258892589125893258952589725899259012590325905259072590925911259132591525917259192592125923259252592725929259312593325935259372593925941259432594525947259492595125953259552595725959259612596325965259672596925971259732597525977259792598125983259852598725989259912599325995259972599926001260032600526007260092601126013260152601726019260212602326025260272602926031260332603526037260392604126043260452604726049260512605326055260572605926061260632606526067260692607126073260752607726079260812608326085260872608926091260932609526097260992610126103261052610726109261112611326115261172611926121261232612526127261292613126133261352613726139261412614326145261472614926151261532615526157261592616126163261652616726169261712617326175261772617926181261832618526187261892619126193261952619726199262012620326205262072620926211262132621526217262192622126223262252622726229262312623326235262372623926241262432624526247262492625126253262552625726259262612626326265262672626926271262732627526277262792628126283262852628726289262912629326295262972629926301263032630526307263092631126313263152631726319263212632326325263272632926331263332633526337263392634126343263452634726349263512635326355263572635926361263632636526367263692637126373263752637726379263812638326385263872638926391263932639526397263992640126403264052640726409264112641326415264172641926421264232642526427264292643126433264352643726439264412644326445264472644926451264532645526457264592646126463264652646726469264712647326475264772647926481264832648526487264892649126493264952649726499265012650326505265072650926511265132651526517265192652126523265252652726529265312653326535265372653926541265432654526547265492655126553265552655726559265612656326565265672656926571265732657526577265792658126583265852658726589265912659326595265972659926601266032660526607266092661126613266152661726619266212662326625266272662926631266332663526637266392664126643266452664726649266512665326655266572665926661266632666526667266692667126673266752667726679266812668326685266872668926691266932669526697266992670126703267052670726709267112671326715267172671926721267232672526727267292673126733267352673726739267412674326745267472674926751267532675526757267592676126763267652676726769267712677326775267772677926781267832678526787267892679126793267952679726799268012680326805268072680926811268132681526817268192682126823268252682726829268312683326835268372683926841268432684526847268492685126853268552685726859268612686326865268672686926871268732687526877268792688126883268852688726889268912689326895268972689926901269032690526907269092691126913269152691726919269212692326925269272692926931269332693526937269392694126943269452694726949269512695326955269572695926961269632696526967269692697126973269752697726979269812698326985269872698926991269932699526997269992700127003270052700727009270112701327015270172701927021270232702527027270292703127033270352703727039270412704327045270472704927051270532705527057270592706127063270652706727069270712707327075270772707927081270832708527087270892709127093270952709727099271012710327105271072710927111271132711527117271192712127123271252712727129271312713327135271372713927141271432714527147271492715127153271552715727159271612716327165271672716927171271732717527177271792718127183271852718727189271912719327195271972719927201272032720527207272092721127213272152721727219272212722327225272272722927231272332723527237272392724127243272452724727249272512725327255272572725927261272632726527267272692727127273272752727727279272812728327285272872728927291272932729527297272992730127303273052730727309273112731327315273172731927321273232732527327273292733127333273352733727339273412734327345273472734927351273532735527357273592736127363273652736727369273712737327375273772737927381273832738527387273892739127393273952739727399274012740327405274072740927411274132741527417274192742127423274252742727429274312743327435274372743927441274432744527447274492745127453274552745727459274612746327465274672746927471274732747527477274792748127483274852748727489274912749327495274972749927501275032750527507275092751127513275152751727519275212752327525275272752927531275332753527537275392754127543275452754727549275512755327555275572755927561275632756527567275692757127573275752757727579275812758327585275872758927591275932759527597275992760127603276052760727609276112761327615276172761927621276232762527627276292763127633276352763727639276412764327645276472764927651276532765527657276592766127663276652766727669276712767327675276772767927681276832768527687276892769127693276952769727699277012770327705277072770927711277132771527717277192772127723277252772727729277312773327735277372773927741277432774527747277492775127753277552775727759277612776327765277672776927771277732777527777277792778127783277852778727789277912779327795277972779927801278032780527807278092781127813278152781727819278212782327825278272782927831278332783527837278392784127843278452784727849278512785327855278572785927861278632786527867278692787127873278752787727879278812788327885278872788927891278932789527897278992790127903279052790727909279112791327915279172791927921279232792527927279292793127933279352793727939279412794327945279472794927951279532795527957279592796127963279652796727969279712797327975279772797927981279832798527987279892799127993279952799727999280012800328005280072800928011280132801528017280192802128023280252802728029280312803328035280372803928041280432804528047280492805128053280552805728059280612806328065280672806928071280732807528077280792808128083280852808728089280912809328095280972809928101281032810528107281092811128113281152811728119281212812328125281272812928131281332813528137281392814128143281452814728149281512815328155281572815928161281632816528167281692817128173281752817728179281812818328185281872818928191281932819528197281992820128203282052820728209282112821328215282172821928221282232822528227282292823128233282352823728239282412824328245282472824928251282532825528257282592826128263282652826728269282712827328275282772827928281282832828528287282892829128293282952829728299283012830328305283072830928311283132831528317283192832128323283252832728329283312833328335283372833928341283432834528347283492835128353283552835728359283612836328365283672836928371283732837528377283792838128383283852838728389283912839328395283972839928401284032840528407284092841128413284152841728419284212842328425284272842928431284332843528