57298470943091557207223862952262967997084406968056929642086247890375499388178983723526105688836775654728338055416440654524303202111807308628179177950609529955696163360735405464287355087683817110914043452755715151802984326615302906114626216172562821450502363873623885136275940492781682368343824674115196136680757649908137466168838934027255842872991824678144952437700970787306402108976315196959841477985078547958234877831251417979216757724786342160132399891324255230899752869345309775646588619858718528721597905672525177412778741944436194526473147744222076725423105202294013042123210231865331814623237480959483337624506795548580676656833948946073765399123839918162572796469904459679448795867065325004775651175887892458981227642034071145067877763518849711564676896783129768681476840873834652527093498773124918848421572177357582334854502474172910891392629938368098797776291927641865346003839812235435217740826565939866053134445586251383413596632730883856669613546555168583204632548115463666799913869612161102567865042068908884595653353295765694464495281316704474201556762582105325748233213150880089955592446598622898685079011601156423315377935355346215291231219056412582774393129117153158528849982666269436155508999327393141036107657534039365782598369833440853078928932910288207644330679407824492208226563153772682855186854859590554539474390575444552331211148915569234664633873350766217351792216519025718706758480261334128015934142215493893414173602597342393133386197677946559097170760189679302920158769784704320240639837263870694434278025323259413994315203161731473575278468582823315212649725857768174838624332058328394542081185531565186166064823177894095388227640117012690920211275827131228255121088655092632427525530862549776325133866234512633927036975293370344821368560242837357755931136049885750409917305986557938125305652539598945310348552565676204803199844801175144765517031176969084577827734909366639633579766665134227923521123171169738945178503664362957276067503994379135367559992957519834522738295829412538309999475412485821178340976672634277404405826230982663319948247094571512848868398982305227420525226952119108653786620469530404589457978593862954851655117057804624800023053766212536351119180292879265830770728586180588266047278204757879822807564697896207868761241192857925787308144534102971635988425214787190076508185282986927613487281153101343325337580485665897811777933641326075727527119602577970624932175203356087827139834772616205385079738273816811267392108235109567567689787811352282229513802380622507548240409520264226810482755099439207325903100624777687248427581320523032605786549085964962424910499944164682758659358500546018591572114774267774301213924171119206541169436862732667367460886476793359424086558793630041085635857729970661640089456169208624415083841100977309333790740928351283391015966118964151845534121269238788799992569940888859169157785335570871611269910807268189498292984640741364041995958047409129803223674041194086524838114615972829448833915690954410181503997124883385351116547711736165299231952375283544569917867094970929199528640035258724742993302272598388299210852041314986303883829444653680388067410757049683347665366995772249448713414970144296881165278536142172719559379273125686559844743844462822176193261903251834394376187221584309490485372470218163086462940981088498045574330884186821910489096862786340999058336241953535741828775518592067417643206374177233043134198048492616610810657562969119243309488246611085502903535558136273395957096537352966245912756406255447310704168324390373512936553294914836477384939078015560677732661148237415796773834898147963705303888680671906982845208491554714582373659816306366622537475379917526835220427965532256342680662049821771803502333433526781790425081949858688911662710755589899022855830147727669578571375529458962136678251942471140141265645547016614913090173097915167295375096333568775545964362077206600161681322521439575921047948601803884057739446125184193526734432253761249472477942708214630476065118301421593854543953474165474131828675269689836591057588769638047118623572366426640666257521159463371863746273792077810697709779319086729571042656713829459484255461254727417867392117626794120229766337081766927633267504641881924105188667632922448481835950452026221416378879172832676709872390033283532884114818403596654826400901398876938966744438434246099727403751814458929895220516844984621993869622516875177605170696321831647977857749323699071322224487928543401666615093282184837136308634448518433492335758740404754028478193419516151825595845243895596167997950878804392684528389756029504749364915169735279110039630703681678284967785716377118021544012366460046917639948875948895429045446969902433956722392265303299129915048402808076033010506560945573993148648785917993358165995452293298540098162614781579427390569765769291438918869856973728626424115980767697578815336408261984074822780531056772670923921329690887342898337209965381227567297349618701297826343218281195379355713909829326247513728368052833436973817963727421624432158544894670672179659983925757774942446679628854599711487380960665425046785866451309807089181731819902138718606417297470947819205462935709545471171474542741506576527946068191478850649743588109814269707483145523610630019735202877459025381403716506348139740081677137853110004916710066941614367754646548813448118026650027883159956945861829638836650584618166653886173635088252723050407493105139717293061323318082733720415322427255631914703661944766075121898884942506924683063979024931291486333964719961669357154462655393338056583674148690781988749130950086054972878939413580885898692676735321345976759859010614375081550132132673396229576977363634483876385997891384949121724545049088985675347483834389346884988465308452985579771983801542908918176909921251822890593494536093470833663505331325224963755242271756014213062884561