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