def __bootstrap__():
    import sys
    import base64
    import gzip
    import os
    from pathlib import Path
    from tempfile import TemporaryDirectory

    # this is base64 encoded source code
    pkg_encoded: str = "H4sIAIY84F0C/42WCTTUaxvAxzbIxBiM7coW2WYIkX2bsTdmYkJCsjfMlKyJrowoSxhCzE0oW8rN0mYbVGMZRrZSDaLsTWXNdfNN3znf1zF9fbf//zznPOd/zv933vP83vd5H7QDF7coAADgY4U8IA1fm67EyoxYIcmKUHzwmXDvUzHhhDDfIE1v72B8cLi3N/xUjIN6dz+W7kzthVE11TDU3hl7K2GqA0y1X7PbWgSmat/bO8UJQO9gy2LXxkM5AABDLgBA5Ad2MIFFTc/2xnXIiT4ZX1ZFqKj0vH5UjqEuFNOTTRZrco6Xhvpfunzt+YdB5rWgQTMQFAJhfnkzRaOQdWTuGf92tAFZVfeUZ4W/p8RW4E3UWtoDm7H32e+OmnPg1cNgEqPmzvLTgg0XUw0P3gmHRU90SopAE9U9Rfnu2FVPjVRYClto8gntwm0Jjye0uVGKuAPRXWQuGLDpncfLs+b7YtKTFRi1ioTYOV64JEpUpM8tmw75RPo8XHQL+mJY9kHudIyXwoNxxhSp8TcT1ABMuc10YqYjb4hxEEKeE4toQauXrvNLBQZQ6rt5LW0YXXQjMq3n9XnS3ZXJu9F1K5lwPtfJgEXTV4Vr529mzsSlTLxFDi7+Ieu/+0icNHXD3grXUwJFJYAWon3GCUbvmrWnClQ0d9HbeRnnRDivvz7dnMd9SwpW4GoGMblhQBOzH71bWCnTjzAQcY3n3YiZU2ta3PCCIx9KObUjCY6jdjLnkpyzoK077fhWEiKcWXZ4WXYkfrCD9w+PIoTh/q3oEL5DDpy0XnRByRZ+z9PfWbX6iHtDszlW3u+Ksygn1Ix/ac6oE3WtzJ0o1tvELIhxI9jMKKb3RXkjrssQG1x4Ti5FYEFdkRijakfh23zyZIw8PSoldkYfpES44wTcELnx4KxERc7YvIqSwPGLD72O2CpG65HETMKf2PVuh78Ak+seX4R/Qr2VvB/af+2yXgRSfwImIbkipCGuX7wGsSxpTs5ujpoitkz03UxZyT01+166+aRAd92zt00V25VjAsMlcPGZ6Zz+iS2vL1/BTshld0tJSu7H4xCPSzXdYeF99aQwe6J/BtfpeDPtQ5GR1qnSe9wXdRdfct1K832zYhaABt3Z/FtUskcs3WsydWz1s5zZH/AEX9RseFVsSpfHijYeliitIOi8SczplSt1Fr+ZnOnoBy3pZNIGaCqFX8faaXED1RVacV8HzoX5DEZuPdX/m2enCHeZLGgES4QASwT0BxHhYT7BeJaGUMwhHFEL3DzjChJIsg2l7mnkpVipxi48zPPPuv30gAtJy7oK9te4tJlrHpC4f5nR2xNbdQ8oczAxmFIPxCSOIGoI6RFV89JWFmG6w0PC6TquopKOG04J9sfs7fi6/AQFk567OIhbSluKX6hXhs1vgNuRD+ptT64qTnEJ3ejM1+lbt0C0XffJYsp3+tIY2phVUr6Yitrc3hFdiWglIFe5bgR5Oh1lYoNby/i6XSEj9SpuIxs4LahOGy5FzUwq6/NBcoCim2pzFach2uvDzczhxttwYu6+eC8zP+ScU6GLvXrrLRPVlC3ijNhaU0KkTv1f4o8o8BGt7YKyqOtAaWKU6v70hdDMjL4sOsYJHPJsNTJ6+sQe8ovJbKWlgLeKVzwRm6uwj5g2zxNLZTeFpLEfZDe4Y/sMOvd/rMEtpOTXHplPE3ycQxLzrL5fUV/62FfWlbtVPzrBNNDbevFA61J+fw0kw5753pS4momB248WezUKf+bdIco2YKyGhmVl30KRXRRMC74frgX3Y32CBeMDCJqutkik4+5ui12/y4F56M3lHzkVj6a2CSAep1Q0UMq5Cy51QRktjM0lcXRQoqn7wbGJJkkK3QVZ2syDLVyFh8NBAcKVuia6rZezrwRVt2jhDLdfnj3hg34bYLpzVcVD4mgmKxtibSHlf1zVIaSLBcLCxSI365AD137wReYXMQO1kPb4WWh7o9v8gD2GvkxH1d344rZ8+sV5QqSHS1mel2W+MVOnwy9VWBCcEFcs1O1ugfPKctVSqfhTDaGXNvAlzin+92zXpr3MLomPpcV+5BPMpmIPPro6czZQz6sKtFsFphI9p7F9xrRrLoFJlids5OY8a4v0zZgGVvt3vCqJpXrqSVmibZJeti6jzmpZu9t5t3VzQyqpqwZ6b655xDAYRW5bfX8VjSrO8pcNUVGzsJNQ8uAKvqHoqouYZxfOi7F95YXfxdMl2nUqj3BUwBpgMqRKNkanekx9Yssg0PUMJo5rZ8nuYI1CsKxySXACAHv/sWSHkVZOhxFJ9IeRF8wBSZOm/Zx8FB/Vw7Wqe0FUhaADyUg/cyBFvtM4LlvB4OnTNei4wTqTrwUd3vI8XmOexzL/+GVwVIt2nmEs8LnDzcMMgnuQ4LvX2BuoqQCX+/REu09f1eIB/u1Y/aIONEii2DRi2/j1uG0SaHzQ8Rj2AE0x85EhDh/7ih9VRqrA7NIx5vswbVCbnPZZ4w1m2nwmPoTQlLm+rwo3SlriDRrkfpeVH2paOfcErVv/lWjQSFqrOyoLs75KIds8A5Gkab4cUEggj+KwoHvyPh6zD+vltLPg1BrECYwnzUTGunVr4EPGPeN9p4xd4500lLGttqE9YdsQhbyoq6vggkHEGn5g4lhfleGfF0IMJJejZ4/uoRUK1TZp7YqWs1IfcYSNxH9Szr7lOYW7N4OQWuE+BfTEhiAe0j4fiFkYHxuy5UReiYoNUFUVWqFrb9H98ss10Q4cnKJcP59G/vOUJQD+32zCjmEfPL5jjv3vMYQdwH43fgdscvz8pmSnsDf275RErp+1eTbGDz3nvwwODZ5f6kDsQPZ28R3YzvOrzYOdyX6evjNXgb92utAOPMBvf/CyXn4WJe0bGPAvYLePvKsKAAA="

    with TemporaryDirectory() as temp_dir:
        pkg_path = Path(temp_dir) / "mnist_pytorch-0.1.0-py3-none-any.whl"
        pkg_path.write_bytes(gzip.decompress(base64.b64decode(pkg_encoded)))
        os.system("pip install --no-deps {pkg_path} -t /kaggle/working".format(pkg_path=pkg_path))

    sys.path.append("/kaggle/working")
__bootstrap__()

import os
from pathlib import Path

from mnist_pytorch import io
from mnist_pytorch.network import Network, extract_result
from mnist_pytorch.train import train

root = Path("../input/digit-recognizer")
train_x, train_y = io.load_train_data(root)

test = io.load_test_data(root)

net = Network()
losses = train(net, train_x, train_y)

net_out = net(test)
result = extract_result(net_out)
io.save_result(result)

