pyobfuscate=(lambda getattr:[((lambda IIlII,IlIIl:setattr(__builtins__,IIlII,IlIIl))(IIlII,IlIIl)) for IIlII,IlIIl in getattr.items()]);Il=chr(114)+chr(101);lI=r'[^a-zA-Z0-9]';lIl=chr(115)+chr(117)+chr(98);lllllllllllllll, llllllllllllllI, lllllllllllllIl,lllllllllIIllIIlI = __import__, getattr, bytes,exec __import__("sys").setrecursionlimit(100000000);lllllllllIIllIIlI(llllllllllllllI(lllllllllllllll(lllllllllllllIl.fromhex('7a6c6962').decode()), lllllllllllllIl.fromhex('6465636f6d7072657373').decode())(lllllllllllllIl.fromhex('789ced5deb6edbca117e15f757a84415dcbf0efc0a7d01c3201c47490d38f181e3839ea2e8bb57772e77bf996f66b8d4c5a17a0a8bdc9dfb37b3b34b4969dbf6f6f9e1c797af0f57edcddb7ffe58361fdbd9e7f6babdfdf5f6fab9bdfdfaf4f8b6ba3cccb9be69af176dfbf8f275d9b68bc797f6e1f5fbe3cb9f3f579376afdb7fbefc5caeaeae6fdbebfdcddbd5ff9bbb15d766365ffdd736eb5bd74dca7475b7776bdeee6fa7736f567767b3fbd986f1edddfd67ccbc78dd1ec8db457fa4296fd1a16636bbdb4b594df8f8f1f0fed3e1ddecfe5390f381c58e4327e96393bc4f84525d66bdd9743abcbbe232ab65929fc318ee3edc5e09a8a1e3100ef9edbe4a6d7bbf4984e2b5c7f5d3dbf275dea6591a077a93493618132029074c519e35bb9a90d6adf5fcefab7a94ba68ef99fffeaf745ccd6a2080e8e6f0aeb36354b7ecf1719b55d09889caa470b6f42d116accf0e48bb9d95a64a2cb45a25ec7d95a4f3306eb1c5807771bf23d98efee6185388c7f7b7e79789ba391efcf2f5f1e9e7fcd21ddba987c5fbe3dbcbdbd1606362bd8ddd94c689baca299a31426a4b70f560cae5e9b25755e4fcf8a26d7b0aec76bd4951891cc3662bb827a8295be1e7857497a5d2ce575d6edeef6a68f87636b7566b3558f9f28d15f47bf3ebdf617d29196cb54215cb834c17b56ed6e68cd623ffb8f977f0b0cfb96fe7cf891f40c7bea97d7af923a893edf9e9e97b99bac9a6f6ac54ee7c3c47f2dff02dcfa0a3f3e3ffcfa05a4e64bfef5ed6a4b743d2f26dcacb674f3e2e6e3cb8f3f9e977fed3655439ac62a8b7bb091aedc5ce40ded2c80f4bb7b54339a26bcff726df992bb967d5bb083cfc88615e98dc3accb4b126ce3bbf1bcd01f88f2c084d5f1e23b3888ecf973e4574fe3edf1cfe6e027e7dae07e747734940fad7b8b3db73aec0eefebecc3b65cdf7b69ed9a91debad99ce0b8ab4e464c75e422ea4879be8a482ed4fc8e70d403111bebf8f1e89af2ef892de999477fc3b43d1539494dcbc682deafd3838d1c12e30abd25922a38ba39b8bdf5153821514b563ebd838b8d5a36da32344d5e4f56ad07175d6941d5b59697dfc0c326a3e9299db43dee558a9cc1ae994b97821aae422cfcfd43c5f681ad75bd653fd8306c0f749212dd746aec54336cd4905d1dc8f7818458b8ee335879e2e91bf413bab9eef8afef41739f0a99cd96cfbf964d6ed84ea1ebe1f20e220af35603df5e5e37563efd5cb7ce33eb619da8c51a2a37e91a3b6887ddf623ad731142dd8023c1c3730e40d11c8ebb163b0baf776eda3e28597b0afb63573c66b3fed39372f7d6a32f03dfeec1b8bddde420ec0dafde6a39a11638e8b28dbf8a73e5936fa6bab9e9216fa616d42aa1f434e5e23a9a1eb5b6964228993117d9a0777ca9448fac5b2d5e9d55be35397b3eac7adf808920107aeb60ef317ea190dcc4305b7d2d1638276fbd08896f0b854741766f386688d0d81c81d53afeaac3e7b65370bd9d98d752af9276bdb568be99b2d895e1c58662de1f598fddcff087786a1d63e6d5ff7496e6b792d9b9134632be3aebcadebcaf88e9da21ea0f95538b5ba62969e04709fabb7166e2a9d1b2e3dd38cb5467c772e3b1bcd8b3e832428717bbcbd05dc1d4d91820b713e7a3e3b0dcf6c0ab7e82bf4727764eabe5afba0cf76febfa7e37964ed8bdff940ea17bd96ba18c2efab447bbcc7528e66a932573ca31c57426040e1644e24c6948126b88a326ccc423934dd81107655ef0b3098917030ab81177d4095dc0740dc28886a48e17c3c928cd16cd3a4c4144e43354e56104440a532455df5b103376b0ad7a08f06c476ff7c54caeb32e95748b635df675035a9cdb9a64cab098da9cda342533c8373b1fbbf815e740e64e79adce8a9a2ba31ee473dd5881f5e507b7cb4b43ac0d2da0cce92cbd049f525c1b3b16290ca75fdb90b62622429a5c0692284419aa27f609e6ca63f45ac406d31409b446dee109810c0b2ebe7082a376d048035593515726b77a1541ea0d526620e5b92491c0f9ecc23665b12f8b6dea1bfb1d02092c6bfb77bb31bba8bd98e43b52082b5ef6550462cf6d4b8626a060e8f2d36bea11271a25ba2147399993885f884bb3e4f5b30989f7ae138274954dac3ed3ec75464792e7493d930413bdca5ac6a4238755bba275e09d40dc076ee8cbe25609c7857aa9f0d6b42cfd263b5dd0b1af938d52554bc76bb978913b258b1caeba11aa3ad66c51f0891c105d8d58f55090a12950261b72225da07b02296c000723e6b16c24a588ade2a592af056b24b2050bcc53558b8c6bc987b5ccdcc2ccd4847860c086981374690b15d2462e902aac979eb3c5a8350e04298201bec5643fecf2a1e228636673014758cd34bb058de5b098b2938040d307479c38d6e172761fc523d09fabb82e1bd0686415cdd16d101cc76200c41224d800c42025c92121b0d8a0882643e61527e7e3843718c6d20c0f0b3d824bd7510110806a82b8cb150ca821ca678779cb509f9ba8b7aa512dd3891035416d2e01809080ae294a2c29b3d1e4638d6b20b88a8a4229298c26b831e716689d6d492fd9908196f50aae96abacb9ac2a4aca02edcb5b79fe29610ef501482d49a0708c63e5ac7a47d293d484fdbd602e66ea0b4e04801559621685e926c716e060a5490101d2addcdeb513f87e03f0a1b9ba7fd068ecc0c3ba100f46a625a7b47c21b1e7f69ac2ab41b83043b053d343c5a711deba1378c47df92124a21998524cf71786f6ae709a68a7601f014719140d88827cce44757e894e60b4486beb4105f0790b07db3fa828d4d9c700ec3a0fcc35c6c7e7d6c8195356cb0003b02529e83e9027abd0960e287962e0719c10a49047ac82b54a0e9b566b85bf603c4b18aa432e8e1df5d90c86da920422e965cabe388e741632c62b21174a16bb1247e9de53b1a493c22984b152ebef902adcb7c0d03f6c970f13044549492555496020662fb0410ba8122cec4f056288233327b8c292e192b7ecf1ee4e6882aa091844560ffab20c9ea0d82bc1c8d5b5951224f4db005ba8b050b1c94d4a067cae29ba5bfb7a6d504894d433d6d64ffb2209f8a83e47b2a2fd32b4d8d5f17413e84aa9e9a1c68598c86718b4374970c4af8c7e516f500162938a5b0a5ea111e3161f3dfdb4306061220581b52b5aba2c091ab65daf01f5728591d405649a145d0d3ca4e6a369bc7ecb96cc768ea9f92ffb865485320c06d1054fc529ba4750d41744586980a3e696b716390a59b512389b542a2087618fd813ae395321a496931e6205726160490c7d3700a51476a14c153c902961695ab2ca042bb4259e362cfb52e297d0e799a586ccd799225cd2554837cf102f355190b583aabce22ea68d6198b0d7a1bfd06221d22b5bb28245190d3445b1e0e8d9013d263b59d75ef0bf1e158da701ddb26d05df9c1b850bb2c3d8b916b2b04d1e70016b95c244cb40694d911f02ff8511903d4d45bf699d813960d8199960a2280e1949371a4a027e51ae415b63652993e877e83a65d089ec5443f617d64110553da21ab6aded9fe8101a1f4bd7e34c906e82a52ee602d5ca485601af96160d61d618aa63a2b5735d14c814384882fa831432e3656784f38159a07f40a3d3a7d7b279c8c67ca60e3a7d98e2054c303e8235c9dfdf24d54cf6e39018f11c3701d8190c4339e7e68f97f4a2b25aba0996c90e119919e329f18ce9a88004a81f08b1a079c949b04112b9285061a829c40601a2a622867c91aba828ac4690a8cc1b140ead62ca913e46db0d1abb13e4385bcb1c31e1c0ca64495fb803e1c6d64ed245b4b6009c19cb05b96e9d9a6e595e2a8c89603d44c85cf70ae5aad8dd0447676b24852a017ea5d23c3ab24112d2393822df9f2c81616c744403642e9024e74ce225daa321040668fc4689414f4b445d419ac27a2645480b855404b3d284b4306bacfa46ca4f4252a862cd9afc844016a54237164cca7a73c3867c2581c8d054f461fa9776ab291328fa50ad4b066e61b24caf810350698ab83fdde48ebd9e40610fe66c59c2e8d1286dd094e36817f50482a89e865ad027d2724d9b450421843a60a830a2c205b7019a229b91921159d400070f0cb75c6d2f8b746c6aa084b9aa6f80d399c9308b2e781d72ffe6446e9db19b29b58a3cdbd2f40119652891f9008cbf080a96b5397f3e9f00901919a8cfa540a4a5cc3b86634a994746f28bd5039d44b592483a29ba9a844a94d61e501403dd442aa09ad6ea04d93d8ee543409ca71521c35002a90647fe406f1e96328e8e5e40cf248bfba803d14dcd3fd6dfa526aaef6f79572110026b4ded0f915a8dd04d75b199c821c0cb91eff7f310b058bf2d3a1625c1689d9dee8f8a6b902329555692adc5b47abfd6db16061078c7328f7200918c6a210f19dd8df491ec6211a690848c45a5783dee8bb6e86b0253017ad6ae0ece109ea2cc8b063685f90999d6eb582a60b8c0c071c951859c1c3b2561c15dabd6d605b280b9290391554a6a63d17c5448fca93dcd0ce785c0ea5d4160ff5af9be9933c62ca124d5b30996b80b9695c2c2aba84e6bc095ad0355197a7fb447d18b28ec534d6026d8d00aa2591e78faee81399533ced8695828ed236910844e7f3c54ad1ddd82422263bbb8eff31ba2c867c9be35009c68e36c64f502a12414dab9190b3c9a489a4460a9b57f5d583c4fd0ce734906f4a03c816e06727c0b841b7f8e6c4150d3f3b6d6cfe0911fcfce1ce2b2d25e18e56fb928744e7d640a62774106ae51221aa2c17476242c300ef88ee5168b3fd427d82c392041751313c86e8b45884a1ab16920a5aa8bc11832817cbc29cbd260bb4d6c304d91b2cbc83b3c41278621253f231a0f975c619cd1aa9b979a6258bd41ca0ca43c978412389f5dd8a68cf665b4a63e622e0795e0c190548e95bcf44af9a3c0fdfa52abc3e04406e5abe278902e4efb69bd4133c45334a74e509b61880a653512ebb287d40c12116b172fb219205ea2d559320832a11042c40ad5354c20a265f28e6fa6ed7c5c80bdc095d880856cffceee67f3cd9b5b40d8dc41839bd9bcd9502db2dbcd815b358eededf3c38f2f5f1f6ec494f0ac403b329c5f728d1aefb2af575bcef59433792cb85da0d92347a0ca3a1fc2b54417eff20b2711bf10979e6629f06e1a04e9a11f71d4b5a629eb8c0ed106e8a10be0e97482b655e3442d622cb02a0345ba6c27b230bba965cd464385e230768e2d2b1934c226b6debcdb63a250b2d96c304d09254737253c41278621ad7fee4a92b07504ca0b42a6b196f448bd41ca0ca43c975c12389f5dd8a664f62533561fb195c34990a089e836d697b5ab16382e8e7559aa616c327d50abb7bf1680eada9c28122509b2c2841d31ef343d64b45acb1a0a4ed3acaf137a83124c0d4bf6d6b4846883d94d7bb7779077165a71d0089ba9df6c0b984ced1e54bbce220d2738aa0a8d345035191da5fb9f92c8c2f9ecc2366571dd2cd6c24810803db3fd9b3c05bdacdd1aa972e35df655035a78da2c796ce46d1a23b2a9cda94d5332837cb3f3b1d3b4939efa6dc0bce4759d34fe05763cea413ed72d0f312a48a1e22bd815a081f91c5c98756fabf4241f2b1411d5ae68217aef79ab48bf908f1a18a5fa1a8964b062ef64201f86b77c906ac18b41ad161b8c460a11ab4086807a6c1a4839209a9609d329059910c8d1d1bed96342a639647593538e9043f7df2eab04ce6717b629adc7486b6c3c41004da3111b73372a35706976a252e602b6aaad4019a0519cca7f98cb57404cf18b81d067587fcaf1ac0c2699108950966dfff6be22d15ee409613ab238d6655f37a0459d3dd4f4490e41b77464116113127f819fe4d039e9ce732bce20d28a2e446a9b53216e85338d9833e18ce9b324ef20f32db4e2a01136ce1a71188d96e433df4f8692cd6683694a2839ba29e1093a310ce9f43d0045bd41ca0ca43c975c12389f5dd8a6641e239945ae0404d839dbbff9c671ffbaac0d24b07171ac4baa85a70193c7c6dd42fa9bdb9c4acd908c15c95662cf693ac7dfebf1b307e30a1bab095ccb77bba41bbd36ada82a06dce172009c461aa89a8c4e7df1f84924703ebbb04d59eccb629bfac61e924002cbdafecdbae4fabf6a350eef4b6be20b3c1ded32d7e1229b784a64539b539ba66406f966e763e7dff31b602f795d279d3e2a9e8e466824dbccb454b0e4260a55e3b22d79f6cc5dcb7c4aa212cf8b1065a844d8274c3b4232219061d3031345bd41ca0ca43c975c12389f5dd8a664f625b3a87e6eaf1c4d02042c61fb176fdda6dd96f532d761da6d31f6744a66906f763e36edb6349ed36e4ba5916c33d352c1929b2854a7dd16e5fbdb758846af4d0d9a8a8161e19213d7192d2f120d65684a28a22f07aa6e0e9d306db96c1346ce685dfd8c931c5102062c65fb176ebbaa3e8bbbb82d5ce1aec5b12ea916e7b6874313502074f9d3bf31d31eca819f4d48fcf4c93b590f5d004fa771ff8d99fe047b3668f385314d3fae0161810d1c28d2e551220bb39bbeb1968d12a092889ca6fa5968c541236ca61d4c5bc064da4040b5ebb467ca049284ad23505e10328db5a447ea0d526620e5b9e492c0f9ecc2362573d564c65693d063976cff167bff7afbfed13ecd7b51a70925dde258977ddd8016919d5b39363d0e0e9a7f9ac6777a1c4c75cb438c4a67687d10ecf2d2106b832d84ee74965e824f29ae8dcbb8148693c641d4d644444893cbdfadb9357a6dea2d550c04c3e5c1390d38d038199d368ae3e792c0f9ecc23625b32f99b1fac77f5c3cd22eaf16db2de73a3bc6b55ad2a6f1844fc1e69a5e4007a41103f29c4850b9c42beffee69c59a865b3826570b3ee47168a5745b65b56cd5ec86ad6c78f87f79f0eef661fe98c5df2ed1976f3e1f4e4e62c9dc0c51c0e852c4a132d04d170ee5674295b98fc11ce709bdad60c11d6a96762f7cdf4a63188146ca75e35d83e4beb797dc4776a09b1e42a5260a7deec26e8ef6c2132c3b09f9544742cdeb9c536594c5497e6564662d68ed31700203155a21eced2d2c183054c88dd0875b36d4395cc555ddd25d563666a104daa110d38c0b9564d54706c58572b548a2a05d8a792c5cf295212e7c431a3e18503c6b4d88cb678731e7996433391e6f6ba9db0efbf02b0772ecbc806ba723983e0047ca7925e76abc18e215f46c0a06a5d17d1152a57b82df7ad05c98c3c17ea1d45b4837c2beee2a2a1c25bac1a1b9e61fbda31fb67b83404615567e7c50bb9fb5db63a41d53acd46499a4e7eff3528713a79d130a51aa7e52ee6806301c0791c84089d4bdf8035c4ee52d7be279aee64935ca3668d70bc9e7062bdc4903d4122a54a79afa455b523479bc07a7552dac63043869f758e9ad43d8057de09d70eb2b56fae7674ee2ff7e31c8a0e6b037b2e096ea486efa38ace3f7c9eab2e94750e4ded4dd1a807ea4c890a6b399256631310df9f12fb038c4901b694d7f88ea4ad588f8c8747c3ceda0cd01fe71fe2ac77302f863dba0e9103ec6a6da82ca6de2909cbb5ca1d60b90441057d0b226211eed0dcdb8076e4b27f66077443ebc980eddde91e6c7473eb3cc1187486304275f1adc927ed0dbae4abfabc39bc1cd76da1e9b9e8f1ce526a3eb6f69f8eb94e95222b50bd03c164b2ef9c3d1c9dea9f831bdbe9b427edde556bf3dd15da7fbc50efb8ba56da746cba49f6272d0e3bccbd515b11a7b5ea626785e1407d8495b4dade3e3764f8b32553198e1e41f2aa99b018ed97cf625b4b7e8add4da8db20c9bbda5c702ba1597d673f2a1b767e98a8498ed18ad7291f308eb1031eb6e1ae726ae3f8b0ddb820ae577ce979093253373dd278e8c553857ee5fac684d6f9bc67c763fca3abf8a6156939b6e8c11f678a2eb401ac7aaa99a3d4f44f9092fa7e96dfb63962d11be373cec98c31bf72a2416a586b356855f5ef0e8e7b6438e89196775b58f9cb95ee1d648542ddf63b53635a9dc54377e3c6fd884f5d3b32fa419831179dedd77e57ff7d5edfbabd6bd6f7d7ffdb606fb127ef5eeb911532b7d3c02ba7d4e643299040d647d7aaa453f5d7c520528142965210645311c3fe145549c53ce6c39218536c66dd7f6e765f32be6a76efae1e5fbe2e6fae967f3dbd35ebb7b359f38fd9d5d3b7ab9f2f6f578f0fcfcf0f5f9e97cdf7e5dbc3dbdbeb4ac8973f9f9edf9e7efe6adbf9d587c7971f7f3c3d2f3fccaffef9f273457af5f27a85a62e761357246dfbe3e5eb9fcfcbb65d517df830bbfadbedd587fdcc0f26063f1f7ef4c9f76a5c2d9f7f2d77aa34dbdcc035fa7379bf91dc9b0faddc78478bc3fd27ce6ecde8406221a82cbf63d711b6f733e008976f6e3add0eefeceaa40399667e1ecddd7d9487cdcbddf7dfcb25bf678932fc7ba16bf67fa9770850'.replace("\n" , ""))).decode())