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