.,..                               ..
                                                                    ,..,,.     ..  .,,::,,...
                                                                   .,..,,,:,........:;;;:,,.............      .,,.
                                                                   ,,....,:,...... .,;;;::,,,.....,,.,........,,:,
                                                                   .....,,,......   ,;;;::,,,,,,,::::,,.. ..,,,,:,.
                                                                   ..,..,,,....... .,;+;;,,,,,:;;:;;;::..,,,,,::,..
                               .......,......                       ,,..,,....... ..,;++;:,,,,::;;;;;:,......,....
                           ..,,,,,,,,,,,,,,,,,,..                   .,,,,,..........,:;;;,,,,,,::;::::,.....,,,...
                        ..,,,:::::::::::::::::::,,,.               .........,,,,,,..,,,,,,,,,,...,..,::,,,.....
                      ..,,:::::::;;::::::::::::::::,,..           ................    ....,,....,,.  ,:,::,.....
                     .,:::;;;;;;;++;;;;;::::::::::::::,.        ..       ...,,,,,,,,,.,,,,,........   ..........
                    .,:;;+++;;++++**?+;;**;;;;;:::::::::,.           ...,,,,,,,:::::,,,,,,,,,,.,,,, . ..,.........
                    :;++****++*+++*?*++*?*+++;;;;::;;;:::,.        .,,,,::::,:::;;;:::::::::,,,,,,......... .
                   .:++*****?***?+??++*??+*+++;;;;;;;;::::,      .,,::::;++;;;;+++++++;;+;:;::;::,...,,,,......
                   .:+***?**?**?*;**;++**++++;;;;;;;;;;:::,.    .,:;;;;+++++++++++++++++*++++;++;...,,,,,,,,......
                   .:;****++**??+;+;;;;+;+::;;:;+;;;;;;:;:,.   .,:;;+++++++**+*****++++++***+;;;:..,,,,:::,,,,,,,..
                    :++*++;++*??*??****?;+;*+;,,:;;;::;;;;:.  .::;+;+++**++*??******++++++***++;:,,,,,::::,,::::,,..
                    .:;;;;;*+***+**+*???;;+%*;+;::;+;;;;::,.  ,::;;;+++***+*?%?**?*****+*+++*+;;:::,::::::,,::::,,,                          .+*:..
                      .,::,::,,,,,,,:::;::+?;;+*++;;++;;,,,   ,,,::;+*****++;+**??*********+++;;;:::;;:::::,::::,,,.                        .;%%?++*+.
                       ........,,,,,,..,,,,,,;++**+;++;;:,.   :,,:::+******;:,;+**???*****+++++;;;;;;;:::::,:,:,,,::.                       ,+%%%%%*:.
                  ...........,,,,,,,,,,,,...,:+****+++;;:.   .,,,,:::+***??***????%SS%****++++++;;;;;;;;:::,:,:,,,,:,,..                   .+?%%?+:.
                ..........,,,,,,,,,,,,,,,..,,:+*+*++++;;:,    ,,,:+**??????????%%SSS%??***+++++++;;;+;;::::::,,,,,.,,,,,                    ,:*?;.
               ..........,,,,,,,,,,,,,,,..,,,:+*+*+++;;;:.   .,,,;?%SS%%%%%%%%%%S%%????****++++;++;;:;;;:::,:,,,,:,.,......                   ..
                ...........,,,,,,,:,,,....,..,;***++++;;.     .,,:;?SSSSSS%SSS%%??***********+;;++;;:::::;:,::,:,:: .,
               ............,,:::::::,,,,.,,..,:*?*+++++,     ,,,,,:*SSSSSSSSS%%??????????**+;;;+;+;:,;:,:::,,:,,,:: .,
                .  ........,,,,,,,,,,,,,,,,.,,:;+*+++*;.       .,,,:+??%SSSSS%%%%%%%%%??**+;;;;;;;:,,::,,,:,,:,,,,,. ,
    ..           . ........,,,,,,:;;;::::,,.,:;;;+*+;,          ,,,,:*%SSSSSSSSSSSSSS%?*++++;;;:::::.,:::,,,,,,,,,,,.,          ....,,,,,...... .....
 ,::+?:.         .......,..,,:::;+*;;++;::,,,:;;::;+.            .,:::%SSSSSSSSSSSSS%?*++++;;:,,,:,..,:::,,,,,,,,.,,,,   .,..,,........          .....
.;??%%;.          . ....,,:::::;;++;;+;;;:::,,::::;:              .:::*SSSSSSSSSSSS%%*++++;;:,,,:,.  .,::::,,,,,,,,::::::,,.
 .:??*;.             ...,::;;;;;;;+++;;;;::::                     ,,::;?%%%%%%%SSS%S?+++;;::,,,:,    .,:::::::::::;++;:..             .,,.   ........
  .:,..                .,:::;;+++;;;;;;;;;;;;.                   ,:,,:,,,,,,,..:*%S?+;;;;:,,,,,::     ,,::::;;++*;;;::,.           ..:+??;,..,,:;;;:,.
           .            ..,,:;;;;;;;;;;;;;;;;:.               .:,::,::....,:,. .,*?+;:::;,.,,,,,,,.  ..,,:;+***+;,,::,:,  .     ...,;?%%%+::;*??%%%%*:
          .,         .  ....,::::;;;:;;;:;;;;;:.     ,+:...   .,,,,.,,  .,::,..,:;;;::,,:,..,,,..,. ...::+**++;;:,.,:,:;,:+:,.....,:?%%%%?*?%%%%%%%%?:
                        .,  .,,::::::::::::;;;;;,   ..,,.   ...,,,..,. .:::,...:;::,,,.,,...........,:;+*+;;;:;;::,:;::;;::...   ..:?%%%%%%%%%%%%%%?;,
                        ..  ,,,,:::::::::::::;;+;:...,,,,,,,,.,,,. ., .,,,,,...,,,,,,,,:,,,........:+**+;:::;;;+++;:;:,.,,.      .,:?%%%%%%%%%%%%?+:,.
                      ..,. ..,,::::::::::::::::;++;....,::,..,,,. ...,,,,,,..,,,,,,,,,,,,,,,,,,,,:+*+;:,:::;+++;;;:,,:,..,,.    .,;*%%%%%%%%%%?*;:....
...............        .,  ,..,,,:::::::::::::::;;;, .,,,....,,...,,,,,,,,,,,,,,,,,,,,,,,,,:::;+*?*;,,:;++;;;;:::::,,,,...,,.   ,+%%%%%%%?**+:,.. .,,,
,,,,,,,,,,,,,,:,,,,,.....  ....,,,,:,::::::::::::::,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::;*???+;;;;;;:::,:::::::,,,,,.,,...  .;**?%%%%*:,.    .....
                 ....     .......,,,,::::::,,,,,::,,,:,:::::::::,,,,,,,,,,,,,,,,,,,,,,,,:;+*?%???*+;::,,:::,,:::::::,,,,,,...... ..,;*%%?;,.   .....,,
                           ... ...,,,,:::,,,,,,,,,,,:::::::::::::::,,,,,,,,,,,,,,,,,,::;+?%%??**+;:,,,,.,:::,:::::::,..,,,.. .....  .,:::,.  .,:;++++;
                            ... ....,,,:,,,,,,,,,,::::::::::::::::::::::::,,,,,,:,::;+*?%%?*+;::,,,,,,,,,,,:,,:::::,,,..,,,.........    ....:+***+;:::
 .::. .:,                   .....,,.,,,,,,,,,:::::::::::::::::::::::::::::::::::::;+*?%?*+;:,,,,,,,,,,,,,,,,,,,::::,,,..,,,,,...         ,;***+;::::,.
..,,...,,                   .....,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::;+*??%?*;:::,,,,,,,,,,::::,.,,,,,::::,,,..,,,,,,,.      :+?*+;::::,,.,,
  .....,,...                ......,,,,,,,,,,,:::::::::;::::::::;;;:::::::::::;+*???*+;::,,,,,::::::::::;:..,,,,,,::::,,,,,,,,,,,,....:*??+;++;:,,::::,
       ...,,,..              .......,,,,,:::::::::::::;;;::::;;;;;;:::::::;;+*??**+;;:::::::,,,,,:::;;;;:...,:,,,,:::::,,,,,,,::::::+?%?***;:,....
        ...,,,,..            ........,,,,,::::::::;;;;;;;;;::;;;;;;::::;;+*????*++++;;::::::::::::::;;;;,...,::,::::;**;::::;;+**?*?%?**+:....
          ...,,::,::;,.      ........,,,,,,,,::::;;;;;;;;;;;;;;;;;;;;++*??%%??****++++++;;;;::;;::;;;;;:,,,,,::::;;;+??*++++++;;;;*%?*+:..
            ...,:,;*?;.       .......,,,,::,:::;;;;;;;;;;;;;;;;;+++*????***+++;;;;:::;;++**+++++++++++;;:::::;;;;+++++;;:::,,,,::+?**+:....      ..
               ..,,,:,.         ...   .,,:::;;;;;;;;;;;;;++++++*****+;;;;;;;;;:,,,,:::::;:::;+++++++;:,,,,,,,,:,,::::,:::,,,,,,,;**+:,,,,...        ..
               ....... .      ,;,        ...,,:;;;;;+++;+;+;;;:;+++;::;:;;;;;;;:,,,;:::::::::;;+***+:,,,,,,,,,,,,,::,,,,:,,,,,,:**+:,,,,,,..      .
  .,.            .,,...,,,   .::,      ...,,:;;++++;++;;::::::;++;;;:::::;;;;;;;::,:::::,,:::,,;***:,,,,,,,,,,,,,,::,,:,,,,,,,,;?*:,,,,,,,,.     .,.
,,,,,.....,:;,.. .,,,,,,;;,...,,,,,,,,,,::;;;;;;++++;;::::;;;;;;;::::,:::;;;::;;::::,::,,,:,::+**+:,,:,,,:++;,,,,.,,,,::,,,::::*?;,.,,,,,,,..  ..
....,,,,,:;+*+:::::;;;;;;;:,,,,,,,,,,,,,:::;;+++;;::;;:;;;:,,,::::::::::::;;:::::::::,,,,,,,;+*?*;,,::,,,:*?;.....,,,::::,,:++;??:,..,,,::,,,..