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