+++++++++++++++++++++++++++++++++++*****+++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++********************+++++++++++++++++++++++++++++++
++++++++++++++++++++++++*+*+************#######**+**+++++++++++++++++++++++++++++
++++++++++++++++++++++*****++++****#*###*#*#####****+***+++++++++++++++++++++++++
+++++++++++++++***+********+****#####*###***#####*****+****++++++++++++++++++++++
+++++++++++++++**************########*#********#*#***********++++++++++++++++++++
+++++++++++++++****##*******###*########*#*****##***************+++++++++++++++++
+++++++++++++++***####*******##*######**#***************************+++++++++++++
++++++++++++++*################*##**#**************************#*#*******++++++++
+++++++++++++###########*####***#*#***###**********************##**#**+*++++++++
++++++++++++*##%%###*######*#****#*#**#*#####******************####%****++++++++
+++++++++++*###%%#%#########****####*#*##*####******************####****++++++++
++++++++++++*###%###############*#****#####*######**************#%%####**+++++++
++++++++++++*##%####################################*************#####*+++++++++
++++++++++++*#%%####################################****##*#*****####**+++++++++
++++++++++++*%%%###########################################*******###***++++++++
++++++++++++*%%##############################################******##***++++++++
++++++++++++#%%%#############################################******###**++++++++
++++++++++++%%%############################################***#****####*++++++++
+++++++++++*%%%%########################################***********###**++++++++
+++++++++++*%%%%%#########******####################***************###*+++++++++
+++++++++++*%%%%##########*****#####################***************###++++++++++
++++++++++++#%%%########################################***********##*++++++++++
*++++++++++++*%%%##########################################*********#*+++++++++++
#+++++++++++++*#%#########%%%#%##################################***##+++++++++++
#+++++++++++++*%%####%%%%%%%%%%%%%%%%%######%###%%%%%%%%%%%%%%%%%##*##%%%*+++++++
%++++++++++*#%%%%%%%%%%%%%@@@@@@@@%%%%%%###%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@#+++++
%+++++++++*@@@@%####%%%@%%%%@@@%%@@@@@%%###%%%%%@@@@@@@@@@%%@@@%%##*+++*@@@#+++++
@+++++++++*%@@#++#%%%%%%%%#@@@@@%%@@@%@@@@@@@@@@@@@@%@@@@@@%%%@%%#**+++*%@*++++++
@*+++*++++++*@*++*%#%%%%%##%@@@@%%%%%%%%%####%%@%@@@%%%@@%%%%#%%%#**+++*#********
@#++*++++++*+*#++*%%#%%%%#######%%%%%%%%%#**##%%%@%%%%%%%%%%%#####**+++#*********
@%+***++++*+++#++*#%####%%%%%%%%%%%%%@@%##*##%%%%%%%%%%%%%%%%####***++*#*********
@%*******+++++*#++##%#####%%%%%%%%%##%%%#****#%%%%%%%%%%%%%%####****++#**********
@@********+++++**+##%%#######%%%#####%%##****##%##%%#%%%%%%%######*++************
@@********++++++#*+#################%%###****##%##################**#************
@@*********+*+++++*##**############%%%###*****####################***************
@@#********+*++++++####%%%%#####%%%%%%##*******###################***************
@@%********++++++++*#####%%####%%%%%%##*********###########%#####****************
@@%********+++++++++##############%####**********################****************
@@@*******++++++++++*###################*********########%%#####*****************
@@@*********+++++++++#####################****##################*****************
@@@*********+++++++++*#################%#######%###############******************
@@@*********++++++++++#####################%%#%%%#############*******************
@@@#*******++++++++++++##################%%%%%%%%############********************
@@@%***********++++++++*#######%%%##########%%%%%###%%%%#####********************
@@@@************+******###########%%%@@%%%%%%%@@@@%%%%%%%###+++++****************
@@@@******++++*********#############%%%%%%%%%%%%%%%%%%%%###**+++++++*************
@@@@*+++++*++**********##############%%%%%%%%%%%%%%%%%%%##***+++++++++++*********
#+++*++++***************###########%%%%%%%%%%%%%%%%%%%####***+++++++++++++++*****
++*++**+****************####################%%%%%%########***+++++++++++++++++++*
+***+++******************#################################****+++++++++++++++++++
****+++********************###############################****+++++++++++++++++++
***++++*********************#############%%%#%%%%%%%#####*****+++++++++++++++++++
***+++++**********************########%%%%%%%%%%%%%%###*******+++++++++++++++++++
**+++***************************#######%%%%%%%%%%%%##********++*+++++++++++++++++
**++***************************####**##%%%%%%%%#***####*****++**+++++++++++++++++
*********************************####################********+***+++++++++*+++*++
**************************************############*******+***+***++++++++++++++++
******************************************************+**********+++++++++++*****