345854087674473896175356700195868940579402260980429989454500836932036235344103852186671222971628979136128260499258034990926114728868865103668514931309895830844501648832393482271665127103753086216184494617489992668436372808558435473775911924895585229225024740540162638218525408142243890965675438383132791644159681188835182023666439967217929667898082128838614031648759635677598476527667562623944567775061987378023149139264333732292457128715767118841804902847992182611018176640205078352006328497787488979890954989204200144047352132724377619719697267721322564666133432168938853758514142878783640974161578455418571616991364639051470525526995979917073074109069556576384492186115554878355646592942809706208831913196332423431455125286445478770760399223809256128565719487771234752980419272747427283132777861785668551016835869578785836051962101697468824217048341200817636845494430336119602187179892764491594259610973322307177894396464764615744217030582173701881732025301554383785216011373224817715161060931785633544751078402290484594458654336585765291015333533544863177928579289235588411761006378121884538694793115562059966112544698042163103896471293312816747994523113490909044016387899408701744772013088678058345884382705763304866128162368434126173747353598521813722455051946780281123251655522856125701565376523675304653232754267911878909426641288647420683681827644260782814990043653013342231457784203512362329765821103446922270695749270565606948917109266602623567986541926708432672223304218322137796294488884712191294087106353797630184486201519428736551822860176053888367564653343994512552156361538459614098446754411405453911169884995842066763541810028142722627218705340262055946945574378236240875961396928262772935538517569857868270008483655723784234611183093737757728314220768862669143521589888482917201731525852247726698074325457533476214863562791449286800409669409184873287436469242551358884811116413775851582229820365279334469624747362113434668416817137392303822665598488058015123632675878852365767485051877198041832718983383432568901342899242969495283332828417929423429039739986445295791357875797691555883567345373065168127774593379476714262566385866272036097823798839882336538264634043174570475777141515968928478504391568003180977759515451129889908523893448483535724888411966267546901323034115141763459362070216343548735802982552241482651317863274474659111313462419131800347829219090884088328032241444875891464437717025934538882697130223052117197445653185349119567064649779084675243198847176212369327777038330245844699546476787477270482514430496542536765403314016510415282879478706200976871545048651823838790968047296935289989633659852427039353862132413085399554270288626363418380957306569660186042873729427515846711759905660266998163560171837547331884173184449777769158911637395277575229157334219804652132522969948097112347714724978317910065643540200852563345164357465032685015727257635508682538010394909300552343976244836882064605645113995376860596753383891327690489254533281985349504477260880584224678286347679617401427871294204714902496189777973878634439079004975168582743337578345198241193157558651652643368226742751574701802970914360565644368971515183699019147100271749354208796756825477746657867387036132495573504466509892696080489139525892877043724787738038887377148453525195369084268180105912738931108993717586981487505937426268658676881453245164107672156969222643202532017182222355239568697947631907753998246289703188119196623238141331583478622995700933074526233985321304269523917201751609955480472114522890841488076782803740105324114890151481802096176280207164179602218051217915454626108462873579626847326679418024337682951884375222455178788167012005588951060499140245227510525434671331252547551777242135494781125183168873093393730224154221130427388584413284391037119883597215902479618983768140470759512946865266765769149515399478310764286304469283107659772641748379913309718889350212539438157569865483631875086993474456628112653831083998993549692821135521615285774916587336011449213322198917923435465179807654891564832185927728854879489719445960473584973179957397706938570997173110406583082370881983073231935408752911082345352495516174084607744854916769844654034986669553692342457148172198450182502964273376320659622719538677063433945119443129294165060622774225351395896426591191603280624964031617979976041921812855728786378649379111311857112235994177618424827132622741444637174508925285673013322033434909798222403371297553119800332762016699885234441724678555464168476557493012599085476999727755785561762256573726793023560766846339374212671104079354062672901250377981827332117859190187289237276678553849262771677912275773196483411287809989689636927205721276596142639172812378425267091822777904786372255139317080547275374628526221796501248172653752588178195309419987783768263878447579207960669293583375514585217419776719944225133503523910147711676867118874329182046015840902119233347167787217029557826038702997398734028743601650570272956300230119247733834836759536278910938079042759333401515810761429315868015532733414425592339821668093788462764814153994860153663294711390114883474839865007728213519877178791679771161909351914967868580920159412921213862429255850391357751410767409685386564691508756863939334645083234239591673637745505447394508470317983131403259560203297300957429789974654544645498847349985399964856114680314187585764692013436894274634607867329117003302573095587501379522202938298058992031267392107628337641019635756014895776134681450511101843733163672375359152912890626051961785569945337508721592227986535314744675371646791323465924370241578984859884972384769903462605413601899934448368889827161194499955085893066476452670590424993507577215242143190585844121848711692994561836150125748897911033265958341316724361968332032149134082461778486189977897529755937238053155420197938507379271831