,,,,,,,...........,......,,,,,,,,,,,,,,,,,.,,,.....,........,,,,,,,,...,.,....,,
,,,,,,,..................,,,,,,.,,,,,,,,.,,,,,...............,,,,,,,....,,,...,,
:;,;:,,,,,,,,,,,,,,,,,,,,,:,::,,,,:,,,;:,,,,;,,,,,,,,,,,,,,,,,,:;,,:,,,,,:,,,,:,
-------==;;,;---;::,---;-;--;==----;----;;,-=--;---:;-;;-----=-=-;-=;--=,;;-;;-:
-:=::;-;-,;,-;;--;:;--;;-;;-;--;;:-----;=:,---;;-=;::--;-;;:--;-;,--,--=,;;---;:
,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,:,,,,,,,,,,,,,,,,,,,,;-,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....
,,,,,,,,,,,,:,,:,,,::,,,,,,,;,,:,,,,,,::;,,,,,,,,,,,,,,:::,,,,,::,,,,,,,;,......
;---;::;;;--=;;-;-,-=,-----;=;=--::;----=-:;:-;-;;-::--=------::--;=-;-;=,......
-;;---:;;;-=-;;-,;,;-,;;:--;=-=-;,,=-;;;-::,=;;----,:---;:---;,::--=-:-;=,,.....
;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....
,,,,,,,,,,,.,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,.....
...................,,,,,,,,,,,,,,,,,.......,,,,,,.,,...................,,,,,,,..
..............,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,...................,,,,,,,..
...,.,........,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,..,,,,,..,,..........,...,........
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
:::::,,,,,,,,,,,,:::::::::::::,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
????*-,,,,,,,,,;=+**???????****++++++++======++++=====-,,,,,,,,,,,,,,,::::;;;---
%%%%?-,,,,,,,,,,,,::-+*??????*****++++++==++++++++++++=:,,,,,,,,,,,,,,,:::;;----
%%%%?-,,:,,,,,,,,,,,,,:-+******+++++++++===+++++++++++=;,,,,,,,,,,,,,,,:::;;----
%%%%?=::;;:,,,,,,,,,,,,,,:;=++++=++++++===========++++=;,,,,,,,,,,,,,::::;;-----
%%%%?+:;;--;::::,,,,,,,,,,,,:;-======+==-------;::;;;::,,,,,,,,:::::::;;;-------
%%%%%+:;;-==-;;;;;::::::::,,,,:;====++==--;:,,,,,,,,,,,,,,,,,,;;;;;;;----=======
%%%%%+:;-=+*?*+=--;;;;;;--;;::::;===+++=;::,,,,,,,,,,,,,,,,,,:-==========+++++++
S%%%?-:;=+*?%S%%*++++++++++====-==++++=-;;;;::,,,,,,,,,,,,,,,-+++++***********??
SS%%??;;-+*?SSSSS%%SS%%%%???%???*****?*++++=-;;:,,,,,,,,,,,,:+*??????%%%%%%%??%%
%%%%%S+;-=+%SSSSSSSSSS%%%%%%%SSS%%%?????????++=--;:,,,,,,,,,-*?%%%%%%%%%%%%%%%%%
%%%%?S*;;=+%SSSSSSSS###@@###SSSSSS%???%%%SSS%??*+=-;:,,,,,,,+?%%%%%%%%%%%%%%%%%%
%%%?SS%---+%SSSSSSSSS###@@##S##S##S%??%SSSSSS%%S%?**=---;,,,*%%%%%%%%%%%%%%%%%%%
%%??SSS+--+%SSSSSSSSSSS%%%%%%####S%?*%SSS##@####SS?????*-,,:?%%%%%%%%%%%%%%%%%%%
????S##%=-+%#SSSSSSSSSSS%%???%SSSS?*+?%S###@##SSSS%????*-,,-?%%%%%%%%%%%%%%%%%%%
****S###%**%SSSS%%%SS%SSSSSS%SSSS%?*+*%%SS%?****?%%????*;,,+%%%%%%%%%%%%%%%%%%%%
+++*S###%?*?##SS%%%%%%%?%%%??%%%%??+=+??%%SS%?????????**;:;?%%%%%%%%%%%%%%%%%%%%
==+*S##S%++%#SSS%%%%????*?????%%??*+==****???%?????****+;;*%%%%%%%%%%%%%%%%%%%%%
===*S###?==%SSSS%%%???******?%%%??*+==+*******++++*****+=*%%%%%%%%%%%%%%%%%%%%%%
---+SSS#?-=%SSSSS%%???*****??%%S%?*+=-+*?*?**++++++++**==*%%%%%%%%%%%%%%%%%%%%%%
---=%S%S%-=%##SSSS%%???****?%%SS%?*+==+*******++++++***;-*%%%%%%%%%%%%%%%%%%%%%%
----+%SSS-+%###SSSS%%??????%%S%%???*==+*?*****+==+++**+;;+?%%%%%%%%%%%%%%%%%%%%%
----=%%S%=+S###SSSSS%%%%?%%%%S%??%%?**++*????*+++++***+;;=?%%%%%%%%%%%%%%%%%%%%%
----=?%%S+=S####SSSSS%%%%%%%%SSS##S%?*??**????**++****+;:=*?%%%%%%%%%%%%%%%%%%%%
---===??*==S##SSSSSSS%%%%%???%SSS##%?%SS*+*?%??*****??+;:=*?%%%%%%%%%%%%%%%%%%%%
=======+==-%##SSSSSSS%%%%??????%%%%%%??*+=+*?%%??**??*+;:-+?%%%%%%%%%%%%%%%%%%%%
======++===%#SSSSSSS%%%%%?**++++*****++=--=+*%%??**??**;:-+??%%%%%%%%%%%%%%%%%%%
+++++++++==?#SSSSSSS%%%%*++====+==++*+------+*?%???????;:;+?%%%%%%%%%%%%%%%%%%%%
+++++***+=+*S#SSSSSS%%?*++=====-+++**+=;;---;=*??*??*??;::=*%%%%%%%%%%%%%%%?????
*******++=*+%#SSSSSSS%*+==+=++=?%%??****=-==---*?****??;::-*?%%%%%%%%%%%%%%?????
********+-*+*SSSSSSSS%*++++*?+%#####SSSSS*++=--=*****%?-:,;*??%%%%%%%%%%%%??????
********+;+?+%SSSSSSS%*++=+*?*@@@@@@@@@@@#*++=-=+***?%%-:,;*??%%%%%%%%%%%???????
*******+-:-%?*SSSSSS%%*+==+*+?#####SSS##S?*=+=--=**?%%%-:,:+??%%%%%%%%%%%???????
++***++=;,;%%**SSSSS%%*+=-=+=?SSSSS%%%%%?**+=+-==+*?%%%=:,:+??%%%%%%%%%%%???????
++++++=;,,;%S%**SSS%%?*==-=+-*%S%%?**???***+==--=+*%%%%+:,,+?*?%%%%%%%%%%???????
==++=-:,,,:?S%?*?SS%%**==-==-*%%S%%????****+=---=+?%%%?+:,,+??%%%%%%%%%%%???????
====;;::,,:?SS%?*?S%?*+=---=-+??????%??*****=---=*?%%%?*:,,+??%%%%%%%%%%????????
===-;:,,,,,+S#S??*???++=-;--;=+++++****+++++=---+**%%%?*:,,+??%%%%%%%%%%????????
--;,,::,,,,;%S#S??**?+==-;;;;-======++++====-;;=***%%%?*:,,+%?%%%%%%%%??????????
-;,,,:,,,,:-+%S#S%?***+=-;;;;;;-;;--====----;;;-***?%%?+;,,=??%%%%%%%???????????
:,,,:,,,,,:--=?S#S%?*++==;;;;:;;;:;;;---;;;;;;;;=**?%%?+;,,=???%%%%??????????*??
:,,:,,,--;:---=+SS#S%*+=--;:::::::;:;;;;:::::-;;-+**???+;,,-????%?????**********
::::,:*%;:;-----=?S##S?+=-;:::::::;::::;:::::-;:;-=+***=;,,-*??????*************
::,,,=%-,,,;;---==+%S##S?+-:::,,:::;:::::,:::;=;:;=++*+-:,,;+***?*******+***++++
,,,,,++,;;,;;----==+*%S#S%*-::,,,::;::::::,,::--:,;-=++-:,,:=******+++===-;--===
,,,,,=:,:;---------==+?SS##?-:,,,,:;;::;::,,,::-;,,:;-=;:,,:-++++++===-;:,,,,,,:
,,,,,,,,,:;---------==+*?S##%=:,,,,:::,:::,,,,,::,,,,:;;,,,,-=+==--;::,,,,,,,,,,
,,,,,,,,:;;;--------===++*%S#S*;,,,,,,,,,,,,.,,,,,,,,,,,,,,,::::::,,,,,,,,,,,,,,
,,,,,,:,:::::;::;;;;;;;----=***+;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,