.....................................................................................................................................................................................................................................
    ...........................:..........:..........:.................................:..........:..........:............................................:..........:..........:............................................:...........
    .::::......::::::......:::::......:::::......:::::......:::::......:::::......::::::......:::::......:::::......:::::......:::::......:::::......::::::......:::::......:::::......:::::......:::::......:::::......::::::......::::.
    ......:::::......:::::......:::::......::::::.....::::::......:::::......:::::......:::::......:::::......::::::......:::::......:::::......:::::......:::::......:::::......::::::......:::::......:::::......:::::......:::::......
    .................:..........:..........:............................................:..........:..........:............................................:..........:..........:............................................:..........
    ......:...:......:...:......:...:......:....:.....::...:......:...:......:...:......:...:......:...:......::...:......:...:......:...:......:...:......:...:......:...:......::...:......:...:......:...:......:...:......:...:......
    ....:......:...::......:...:......:...:......:...:......:...:......:...:......:...::......:...:.......................................:...:......:...::......:...:......:...:......:...:......:...:......:...:......:...::......:....
    ...........................:..........:..........:.................................:..................................................................:..........:..........:............................................:...........
    .::::......::::::......:::::......:::::......:::::......:::::......:::::......::::::......::::..@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:.::::......::::::......:::::......:::::......:::::......:::::......:::::......::::::......::::.
    ......:::::......:::::......:::::......::::::.....::::::......:::::......:::::......:::::.......@#####@.@*###%-%#####@.@####%=######@.......:::::......:::::......:::::......::::::......:::::......:::::......:::::......:::::......
    .................:..........:..........:........................................................@@@@@@@.@@@@@@*@@@@@@@-@@@@@@%@@@@@@@..................:..........:..........:............................................:..........
    ......:...:......:...:......:...:......:....:.....::...:......:...:.............................@@@@@@@:@@@@@@#@@@@@@@=@@@@@@%@@@@@@@...........:......:...:......:...:......::...:......:...:......:...:......:...:......:...:......
    ....:......:...::......:...:......:...:......:...:......:...:......:...:.@@@@@@@@@@@@@@@#@@@@@@@.....................................*@@@@@@@....:...::......:...:......:...:......:...:......:...:......:...:......:...::......:....
    ...........................:..........:..........:.......................*@####@.@@@@@@@.@####@@.:::::-.-:::::.::::::-.-::::::::::::.:@#####@.........:..........:..........:............................................:...........
    .::::......::::::......:::::......:::::......:::::......:::::......:::::.*@####@.@@@@@@@.@####@@.:::::-.-:::::.:::::::.::::::.::::::..@#####@....::::::......:::::......:::::......:::::......:::::......:::::......::::::......::::.
    ......:::::......:::::......:::::......::::::.....::::::......:::::......=@-:::*.@@@@@@@.@@@@@@@.:::::...............................+@@@@@@@..::......:::::......:::::......::::::......:::::......:::::......:::::......:::::......
    .................:..........:..........:.................................@@@@@@@*=-:--:@.........:::::.#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..................:..........:..........:............................................:..........
    ......:...:......:...:......:...:......:....:.....::...:......:...:......@@@@@@@+*#####@.::::::.::::::..@####%-%#####@.@####%+######@.......:...:......:...:......:...:......::...:......:...:......:...:......:...:......:...:......
    ....:......:...::......:...:......:...:......:...:......:...:......:.....@@@@@@@**#####@.::::::.::::::.:@####%-@#####@.@####%=######@.....:......:...::......:...:......:...:......:...:......:...:......:...:......:...::......:....
    ...........................:..........:..........:.......................@@@@@@@@@@@@@@@.-:::::........-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-................:..........:..........:............................................:...........
    .::::......::::::......:::::......:::::......:::::......:::::......::::..:@:...+.........-:::::.@@@@@@@................................::::......::::::......:::::......:::::......:::::......:::::......:::::......::::::......::::.
    ......:::::......:::::......:::::......::::::.....::::::......:::::......#@####@%.:::::=.=:::.:.@@@@@@@...::::::......:::::......:::::......:::::......:::::......:::::......::::::......:::::......:::::......:::::......:::::......
    .................:..........:..........:.................................#@####@#.:::::-.-::::..@@@@@@@................................................:..........:..........:............................................:..........
    ......:...:......:...:......:...:......:....:.....::...:......:..........#@@@@@@@.:::::.........@@@@@@@...............:...:......:...:......:...:......:...:......:...:......::...:......:...:......:...:......:...:......:...:......
    ....:......:...::......:...:......:...:......:...:......:...:.....@@@@@@@.........:::::.@@@@@@@@*:::::%@@@@@@@@.:...:......:...:......:...:......:...::......:...:......:...:......:...:......:...:......:...:......:...::......:....
    ...........................:..........:..........:................@#####@.::::::.-:::::.%@@@@@@@=######:@@@@@@@.......................................:..........:..........:............................................:...........
    .::::......::::::......:::::......:::::......:::::......:::::.....@#####@.:::::-.-::::..%@@@@@@@=#####%:@@@@@@@.:::::......:::::......:::::......::::::......:::::......:::::......:::::......:::::......:::::......::::::......::::.
    ......:::::......:::::......:::::......::::::.....::::::......:::.@#####@.::::::........@@@@@@@@#:::::*:@@@@@@@.........:::......:::::......:::::......:::::......:::::......::::::......:::::......:::::......:::::......:::::......
    .................:..........:..........:..........................@#####@.-::::-.@@@@@@@........@@@@@@@.*-::-==@@@@@@@*................................:..........:..........:............................................:..........
    ......:...:......:...:......:...:......:....:.....::...:......::..@#####@.::::::.@#####@........@@@@@@@.@####%.@@@@@@@....:......:...:......:...:......:...:......:...:......::...:......:...:......:...:......:...:......:...:......
    ....:......:...::......:...:......:...:......:...:......:...:.....@#####@.::::::.@#####@..:.....@@@@@@@.@####%.@@@@@@@.....:...:......:...:......:...::......:...:......:...:......:...:......:...:......:...:......:...::......:....
    ...........................:..........:..........:................@#####@.-:::::.@#####@........@@@@@@@-#:::-=.@@@@@@@................................:..........:..........:............................................:...........
    ....:......:...::..........:......:...:......:...:......:...:.....@#####@.-:::::.@#####@................@@@@@@@-:::::#@@@@@@@@.:......:...:......:...::..........:......:...:......:...:......:...:......:...:......:...::...........
    ......:::::......:::::......:::::......::::::.....::::::......:::.@#####@.::::::.@#####@.......:::::...#@@@@@@@+######-@@@@@@@...:::::......:::::......:::::......:::::......::::::......:::::......:::::......:::::......:::::......
    .................:..........:..........:..........................@#####@.::::::.@#####@.......:.......#@@@@@@@=######-@@@@@@@.........................:..........:..........:............................................:..........
    ......:...:......:...:......:...:......:....:.....::...:......::..@#####@.-:::::.@#####@.......:...:...@@@@@@@@#:::::+-@@@@@@@..............:...:......:...:......:...:......::...:......:...:......:...:......:...:......:...:......
    ....:......:...::......:...:......:...:......:...:......:...:.....@#####@.::::::.@#####@..:...:......:.........@@@@@@@.+-:::-*@@@@@@@*....:......:...::......:...:......:...:......:...:......:...:......:...:......:...::......:....
    ...........................:..........:..........:................@#####@.::::::.@#####@......:..........:.....@@@@@@@.%####%.@@@@@@@.................:..........:..........:............................................:...........
    ....:......:...::..........:......:...:......:...:......:...:.....@#####@.::::::.@#####@......:......:...:.....@@@@@@@.@####%.@@@@@@@.....:......:...::..........:......:...:......:...:......:...:......:...:......:...::...........
    ......:::::......:::::......:::::......::::::.....::::::......:::.@%%%%%@.::::::.@%%%%%@.......:::::......:::..@@@@@@@%#::::-.@@@@@@@.........:::......:::::......:::::......::::::......:::::......:::::......:::::......:::::......
    .................:..........:..........:..........................@=====@.:....:.@=====@.......:..........:............@@@@@@@......=@@@@@@@@..........:..........:..........:............................................:..........
    ......:...:......:...:......:...:......:....:.....::...:......::..@%%%%%@.-:::::.@%%%%%@.......:...:......::...:......%@@@@@@@=%%%%%%=@@@@@@@...:......:...:......:...:......::...:......:...:......:...:......:...:......:...:......
    ....:......:...::......:...:......:...:......:...:......:...:.....@#####@.::::::.@#####@..:...:......:...:......:...:.+@@@@@@@:######:@@@@@@@....:...::......:...:......:...:......:...:......:...:......:...:......:...::......:....
    ...........................:..........:..........:................@@@@@@@........@@@@@@@......:..........:..........:.@@@@@@@@*===-=*=@@@@@@@.........:..........:..........:............................................:...........
    ....:......:...::..........:......:...:......:...:......:...:.............@@@@@@#.............:......:...:......:...:.........@@@@@@@.:.....+@@@@@@@@.:..........:......:...:......:...:......:...:......:...:......:...::...........
    ......:::::......:::::......:::::......::::::.....::::::......:::.:......%@@@@@@@.......:......:::::......::::::..............@@@@@@@-@%%%%%+@@@@@@@-..:::::......:::::......::::::......:::::......:::::......:::::......:::::......
    .................:..........:..........:.................................#@####@@...:..........:..........:...................@@@@@@@:%#####-@@@@@@@:.............:..........:............................................:..........
    ......:...:......:...:......:...:......:....:.....::...:......:...:......@@@@@@@@...:...:......:..........::...:......:...:...@@@@@@@@#::::-.@@@@@@@..............:..........::...:......:...:......:...:......:...:......:...:......
    ...........:....:......:...:......:...:......:...:......:...:......:......................:...:......:...:......:...:......:..........@@@@@@@.-::::%+@@@@@@@.....:......:...:......:...:......:...:......:..........:....:......:....
    ...........................:..........:..........:.................................:..........:..........:...........................-@@@@@@@.%####@.@@@@@@@.....:..........:............................................:...........
    ....:......:...::..........:..........:......:...:......:...:......:...:......:....:..........:..........:......:...:......:...:.....-@@@@@@@.%####@.@@@@@@@.....:..........:......:...:......:...:......:...:......:....:...........
    ......:...:......:...:......:...:......:....:..........:..........:......:...:......:...:......:...:......:....:..........:..........@@@@@@@@%%%%%%@-@@@@@@@..........:......:....:..........:......:...:......:...:......:...:......
    .................:..........:..........:............................................:..........:..........:..................................#-::..+.......::@@@@@@:.........:............................................:..........
    ......:...:......:...:......:..........:....:......:...:......:...:......:...:......:...:......:..........:....:......:...:......:...........@@@@@@@+@@@@@@%@@@@@@@+.........:....:......:...:......:...:......:...:......:...:......
    .............................................................................................................................................@@@@@@@.%#####=@@@@@@@..................................................................
    ...........:...............:..........:..........:......:..........:..........:....:..........:..........:..........:......:..........:......@@@@@@@%@%###%+@@@@@@@:........:..........:......:..........:..........:....:...........
    ....:......:...............:..........:......:...:......:...:......:..........:....:..........:..........:......:...:......:...:......:......-.......@:::::-.:....@.........:......:...:......:...:......:..........:....:...........
    .....................................................................................................................................................@@@@@@@:@%%%%@..................................................................
    .................:..........:..........:............................................:..........:..........:..........................................@@@@@@@.%####@..........:.................................:..........:..........
    ......:...:......:...:......:..........:...............:......:...:......:...:......:..........:..........:...............:......:...:......:...:....@@@@@@@@@@@@@@#.........:....:..........:......:...:......:...:......:..........
    .....................................................................................................................................................#............:..................................................................
    ...........:...............:..........:..........:......:..........:..........:....:..........:..........:..........:......:..........:..........:..........................:..........:......:..........:..........:....:...........
    ...........:...............:..........:..........:......:...:......:..........:....:..........:..........:..........:......:...:......:..........:....:..........:..........:......:...:......:...:......:..........:....:...........
    .....................................................................................................................................................................................................................................
    ......:...:......:..........:..........:...............:..........:......:...:......:..........:..........:...............:..........:......:...:......:..........:..........:....:..........:..........:......:..........:..........
    ......:...:......:...:......:..........:....:..........:..........:......:...:......:..........:..........:....:..........:..........:......:...:......:..........:..........:....:..........:......:...:......:...:......:..........
    .....................................................................................................................................................................................................................................
    .....................................................................................................................................................................................................................................