~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!!!!!!!7777!!!7!~~!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!!!!!!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!!!!!!!!!!77777?YY5YY?7!!!!!?J77!7!~~~~~~~~~~~~~~~~~~~~~~~~~~~!!!!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!!!!7777??77??JJ?JYY5GBGGPJJ??77PJ?YJJJ7!~~~~~~~~~~~~~~~~~~~~~~~~~~~~!!
~~~~~~~~~~~~~~~~~~~~~~~!7777!77??77?JJJJY5YY5Y5P5PGBGPYYPG5Y555YPYYYJ?!!!~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~!!J?JJ?7J?JYYYYYYYY5YYY5PPGPPPPGP5YYY5Y5555PPPYYJ?7!!!!!~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~!!!7777???JJJJJPPPP55PPP55YPPPPGPPPGGGPP55PPPGGGGPP555J?7??77!!~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~!!7777?7?JYYY555YYYY5P5PPPPGGGGBGGGBBGBBGPP55PPPPPPP55JY5J??JJ?7!!~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~!!7????JYYY55PGP5555P55Y5PPPGBGGBBGGPGBBB#BBGP5PGPPGPPPGP5YYYJY5YJJ7!7!~~~~~~~~~~~~~~~
~~~~~~~~~~~!!77?JYY55555GGPGP55PP5PPGPGGGBBBGGGPGGBBBBBBB##BBBGGGBGPGGGPP555YYYYJ??J?!!!~~~~~~~~~~~~
~~~~~~~~!!!!?JJY5YY5P55555PPPGGBGGGPPPPGBB#BB#BBBB##BBGGB#####BBGGGGGGGGGPPP5555YJ???7!!!!!~~~~~~~~~
~~~~~!7777J?Y5Y5555555P555GGGGBGGBGGBBGB#BBPGBBBBGBB##BBB#&&&##BBBBBBGGGGGGGPGGG5YJJJ77!!!!~~~~~~~~~
~~~~~!???7?JYY5555PPPPPPPPGPGBGGBB######B##BBBB#BBB##BBBB###&&&#B##BBGGGBBBBBBBGP5YYYJ??7!~~~~~~~~~~
~~~~~~!7?JYYYYP55PPPPPGPGGGB##BB##&####GBBBB#BBBB############&####BGGBBGBBBBBBBBGGGPP5J?7!~~~~~~~~~~
~~~~~~!!?YY5YY555PGGPGGGGG##B####&&#&##BGGB#####&&&########B#&&&#&#GB#BBGGGGB#BBBBBB#GJ?7!!~~~~~~~~~
~~~~~~!77?JYJY5PPGGBGGPGGBB######&#####BGGGBBBB#&&&&##BBBBB#&&&&&&######BBBGB#####B###GGG7!~~~~~~~~~
~~~~~~!!77??YPGGB#GGGPGBB#####&&&#####BBBBB##BB##&&#BBBBBBB#&##&&&######BB##BB##BBB###BGP?!~~~~~~~~~
~~~~~~~!!7??5GGGPPBBBB#######&&&##GGBBGGGBB####&#&&#BBBBBBB####&&&#BBGBB###GGBGGBBBBBGP5YJ?!!~~~~~~~
~~~~~~!!77J5PGGGGGGBB################BBBGGB####&&&&#BBGGGGB#&##B#&##BGBB#&###BB#BBB#BGPPPP5?!!~~~~~~
~~~~~!!!7?PGGGPGBBB#########&##&&##B##BBBB#####&&##BGBGGGBB#&&#####&####&###&##BBBBBBBBBBGPJ7!~~~~~~
~~~~~!!!7PGBBGGBBB#######&&&&&&&&#BB##B####&#######BBBBBBB#####&&&########B#####B###BBBBBY?7!~~~~~~~
~~~~~~!!!JP5YPBBBBB#####&&&&&&&&&############&&#BBBBBBBBBBB####&####BB####B###########BBBPJ?!~~~~~~~
~~~!!!!!!7Y55G##BB##&##&#&&&&&&&&#BBGBBBBBBB#&#BB##BBBGBBBB###B##########BBB##&&######&#BB5J!~~~~~~~
~~~~!~!!!?PBB###B###&&&&&&&&&&&&###B###&&&#####GGBBGGGGGBBB##########&################&&#GJ7~~~~~~~~
~~~~~~!?Y5GB##BBBB#####&###&&&&&####&BB###B####BPPPPPGGBBBB###B#&####&&&##############BB5?!!~~~~~~~~
~~~~~!7?JYGBGPPGB####&#####&&&&##BGGGGGGGGB##BBGPP5PPGBBBBBBBBB#BB##B#&&&###########&##BP?7!!~~~~~~~
~~~~~~!777???YGBBB###&##&&&&&&#BGPPPPPPPPPGGGBPP55Y55PPGGGGGPPGBBBB#B##&&###########&#BPY?77!!!~~~~~
~~~~~~~!!7?7?PBBB####&&&&&&&&#BGP555555555555P555YJY55555PPPPPPPGGGBBB&&&&&&&&&&#&&&&#Y555?7!!!~~~~~
~~~~~~~~!77?5BGBBBB#####&####BG555YYYYYYYYYYYYYYYJ?JY5555555555YY555P#&&#&&&&&&&&&&&#GPPBBYJ7!~~~~~~
~~~~~~~~~!7JYPGBBBBBBBB#####GGPYYYYYYYYYJYYYYYJJ???JJY55YYYYYYYYYYYYPBB#&&&&#&#&&###B5YYBG5Y7~~~~~~~
~~~~~~~~~!!??J555PPY5GB###B#GGPYYYYYYYYJJJJYYJJJJJJJJJYY5YYYYYYYYYYYB&&&&&&&&####B#BGP5YJJ?7!!~~~~~~
~~~~~~~~~~~!!!777JYJJPBGGBBG5BPJYYYYYYJJJJJJJY5P5YYY55PP5YYYYYYYYYY5#&#&&&&&&&#BBBBGPPP5YJ??77!!~~~~
~~~~~~~~~~~~~~~~~~!7!77!7JJYG&#JJJJJJJJJJJJJJJY5PPPGPPP55YYYYYYYYYYP###&&&&&&&#BGPPPP55P55YYJ?77!!~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~75GPYJJJJJJJJJYYJJJYY55PPPP55YYYYYYYYYY5#&#######&&#G555PP5555P55YJ??7!!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~!7777JJJJJJJYPPPPGGGPPPPGGGGGP55YYYYY5B###BBBBBB##BGPPPPP555555P55YJ?7!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!?JJJJYYYYY555PPPPPPPPPP555YYY55GGGPPPGBBGGGGGPPPPPPP5555PPPP5YJ?77
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~JYJJJYYYY555PPPPPP5555YYYY55PPGB5555PPGGGGGGGGGPPPP5555PPPPP5YJ?7
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~J555YYYYYYYY555P5555555Y55PPPPB@B5555PPGGBBBBGGGPPP555PPPPPPP5YJ?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~7YBP55PP5YYYJJJYYYY5YYYY55PPPPPPG#@@G55PPGGBBBBBGGGPPPP55PPPPGGGP5J?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!?G&@@GY55PPPP555555555555PPGGGGGGGB&@@&P5PPGGBBBBBBGGPPPP55PPPGGGGG5YJ
~~~~~~~~~~~~~~~~~~~~~~~~~~~!JG&@@&&B55555PPPPPPPGGGGGGGGGGGGGGGB#&@@@#GPPGGBBBBBBGGGPPPP5PPPGGGGGPYJ
~~~~~~~~~~~~~~~~~~~~~~~~~~?G&@@&&&&B555555PPPPPPPPPGGGGGGGGGGGBB#&@@@&&BGGBBBBBBBGGGGPPPPPPPGGGGGPYJ
!~~~~~~~~~~~~~~~~~~~~~~~75#&&&###&&B5555555PPPPPPPPPPGGGGGGGGBB#&&@@&&&&#BBBBBBBBBGGGGPPPPPPGGGGGP5J
!!~~~~~~~~~~~~~~~~~~~~!YB#######&&&#P555555PP5PPPPPPPPGGGGGGGBB#&&&@&&&&&##BBBBBGGGGGGGGPPPGGGGGGG5J
!!!!~~~~~~~~~~~~~~!!7JG####BB###&&&#GPP55555PPPPPPPPPGGGGGGGBB##&&&@&&&&&&&####BBGGGGGGGGPPPGGGGGG5Y
!!!~~~~~~~~~~~!!7JYPG####BBB###&&&&#GGPPPPPPPPPPPPPPGGGGGGGBBB##&&&@&&&&&&&&#######BBBBBGGGGGGGGGP5Y
!!!~~~~~~~!!?JYPGBB####BBB#####&&&&#BGGPPPPPPPPPPGGGGGGGGGGBB###&&&&&&&&&&&&&############BBBBBGGGPPY
!!!~!!7?JY5PGGBBBBBB##########&&&&&#BPPPPPPP5PPPGGGGGGGGGGBBB#####&&&&&&&&&####&##############BBBBBG
7?JY55PGGGGBBBBBB##############&&&&#G5YY5555555PPPGGGGPPPGGGBGBBB&@&&&&&&&&&&&&&&&##############BBBB
PPGGGGGGBBBBB##BBBBB############&&YJJJJJYYYY55555555555PPPPPG#@@&&&&&&&&&&&&&&&&&&###############
GGGGBBBBBBB####BBB###############&&&BY???????JYY555YYYYYYYYY55G#@@@&&&&&&&&&&&&&&&&&&&&&&&&#########
BBBBBBBB#########################&&&&&G5YJ???JYYYYYJJJJJJYY5G#&&&@@&&&&&&&&&&&&&&&&&&&&&&&&&########
BB###############################&&&&&&&&##BGGGPPPPPPPPPGB#&&&&&&&&&&&&&&&&#&&&&&&&&&&&&&&&&&&######
##################################&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#####&
##################################&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#&&&&&&&&&&&&&&&&&###&&&&
&#################################&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&##&&&&&&&&&&&&&&&&&###&&&&
&&&###############################&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&##&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&############################&&&&&##&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&##&&&&&&&&&&&&&&&&&&&&&&&
&&&&&#############################&&&&&&##&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&##&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&###########################&&&&&&&#############&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&