320954354963369580059018457221694554830688641476251254382548037964802568392747533349813103222919809605762861566961396635943440992114162569898657455863948290932948502645931704586783505656460729371026739556815096261211193909701876781911245081994805039766584066582413753457795227689480231963643360513251799768432288256519291217788172672398994135704170016986457797130606812669744198308241283017835077485374687466164042410448046206430740845399873495003876410179601345418544122264078920211708842247823836762105044313470386137869385479882946814380727225253665514153925674251552802487830955841213800352854315237761308652125877262491208548697417676785546522979963338937563547611976429300597284324387132908815995699371078063895407818323308899963288958449439534322093955759096426891068223941941262528098899932055441388277996759434309491197792408917245277527159444398772027798211386001560523160565699746126405643298688892956991439053277456356014424744338963392830975210667975773534086662121830629449157626260415362315623018291769225731978781412293502646707729463011989035602212767281400596675754874547643879926618946052363755219790915284918131112529341667567110172868374111075786425217476691648804609923469277938652197596869796004438641662157714552306527928124644455854801289748071517466939055703688130379404238547022801730557685094614817551859585815867095638068664891519975930765712718995014822521176794947506523158517501796449449882664668626573469179212231615421414414375613213618498902499677522493318657037130242672507872152554785235575973288471411752052482700739157377327148351096201384242126938465815094299468732418920168116577459850633334716394306566106681689644684344371448752951493532342063369094631548158649141638348297496336043389911444964117805620434331844032271967849695262238612715995964720240558723474298739227441150278604120413236708468133051003098665765125206919956033260426991285823623462213638452951605775430291612175284963979961542842143239476311974396984120929634357638752891860821927379161632335713335464603954133515670382967032413534155981616526939649826316849267142899274672486200859743732826549929062644834188238627855955993955612619982037635977830369826393224239049189168540388091304052471730919933861712662672871969568876782843171294252179701573368987773547803315090772249428826649710502796703183915323939891846558789957144714156113531421099798328166914682346461655099927888727446796037525962942981981329984712209059727920970243843326783929260337767919504260975552111548539631477452423097778149145735477214173781869610937187926947472300854522577953650584616748054632332511812101473285197832945727720335190946093324343788573510758354672168674346598054681316220614229661978481822149220289324752807719467295005554669449719350043151503499871549844654744334542729378491434553227156929889342864249210555830791443562967976450174499842133747714427099411578683306131372874750404052855008807519857583795958153555277987284718878743128496472741242475521835739570696841378336285107736797096308004174126557911556433481039844725751080508621627094997412877379692492844245341172127792933787506766694389772196165174656718762025126187695517565235267264575616535775561963929769094695350150588335059876120441467189095338705822871894368506231572030804076531299800948964706697267674684443256836077321052719086484344516540984302256599856403582121120113915773527887918516082950248483194255163643576865283299863466078823280346614891755611390773985688758649137638859423030290034562982060408726543915389411415396175032146458123430857208114929755647542516288287251297964822025267978620127983830468985224194269993042524268974934897768138226099362608557758711514322842080718541122265493031729494377735136130701447038141182443233112253891886575177954163607859961931288697247347737458230391060139418056904468471924541490698932286420253952210650127855107627186858167752195222334815269689062356956548495213930042119282523796395742941697160247231025958297425983578822627607897940842238728994349394087543287558622548548531346228293214812885018892876963355441811237531569627894854120566081701063890603834411038151583691138903143923534360296110111697274180906324891620326228141246145650616427026067539302318582445189383154229848931856886935048737633332429303564630469936879941126994641824411046899475737714036362996091042855885884939906177772654507536898156186949933183357129849874705584741121173955194991389092469465653269151476225113885456214252417737692879027436719290589723309249733660977753729174612459486107903742543499783067069449101018299158771012930593868669292755208106366747808625386048958877273947066802972969195595127631392797615394693962657632949708928544873285924193323607338481821249307645802056471816110666952877649750884374103537939537767422202641055798405463898724223534555977568486465835278668937918576342822096229454674341317401511562085712936660233381911621410508871647868849447782423118818904340082949806494010587297325721349498999777542864119629905617873074688381570412443641781747917374110524566381528526772936930726364898795131498258248631149261784745757178212385962052918098033952602874354874411695064995224815062769568497298339047347836682154836898413289229875703099248718632129302564145197466502525700317028126932588144935371027001474883395269711766965261054446190984317861110186933365368997981745125574848081376783233974311781933792825762257492129288072638376581958028132743768053447589133861045960427377761323760714453236372537279496642784853335656749924122656646558748984369365451696855554948210268413730250669918882478830498478308277491093904528492370660744887637503246413721304788836126098680903221436535342011034935936462119245317438636591026582293223117390104576203930259776856723674161811969942591334327277489319826062341912682778460429965374123941979751932366442017910455839508833545622542077869719767776672381110825835429757162773