:===----,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,....,,,,,,. /M###@@@M#M+..,..,,,.,,....
:====-----,,,,,,,,,,,,,,,,,,,,,,,,...,,.......,,.,;@##@;,--/@#$,,,,.,.,,,.....
:====------,,,,,,,,,,,,,,,,,,,,,,,,,,..,...,,-==/%M###$--..:H#X-, .,,...,,,,,,
:===--------,,,,,,,,,,,,,,,,,,,,..,,.,=%%$$XH@M####M#M/;=-=%##MX:........,,,,,
:====-------,,,,,,,,,,,,,,,,,,,,..,,.,;MM#######M##M#$-:/%H#####/,.......,,,,,
::====-------,,,---,,,,,,,,,,,,,....,,:M#############@+/@#######; .....,..,,,,
::======-------------,,,,,,,,,,,,..,,,=@###########MM######MM##M= ..........,,
::::=======-------------,,,,,,----:::--H########################/-;+/;=......,
;;::::=====-----------------,=%H@M##MMH@##############M#MM######MM####M$,....,
/;;;;::::====------------,---+MM###################################M###M=,,.,-
++//;;;;::======----=--------$#M#M@@M##########MX+%X$H############M@MMX$=.,,,-
+++////;;;:::==========------%M@#@HH@#########MM-,;%$H#############MM@@H. ,,--
$$%+++//;;;;::=========------/@MM@XH@##########M@@##################@@X/ .,,--
XX$$%%%++/;;::::=======------:$@@H$XH#######MMMMMMMMMMM##########M###M%-.-,,--
HHHX$$$$%++//;;;:::::=====--=-:+HH$$H#######MM@@H@@@@@@MMMM#MMMMMM##M$:-,,,,,-
@@H$+::=::;+++/;;;;;;:::=:==:==:$H$$X#M@MMM###MMMMMMM@MM####MMMMMMM##%=--,--==
$%+;=-=--=;;;;;;;:::::::/;:=::::/X%%X#H%++%%%$$XXXXX%%%H#MM##M$H@M#M#M+,-=-===
. -;-, =%%/%#H$HHHHHHHHHH@@@M@#M####MHMHH##M#@=
.=;=. .+%/%#M@$$$%%$$$$%%++%+H##MM#MHMXXM#MXX$
-;:, ://%@HX$%/:--,,---,--=+X+;$MX%H$+%HX:,,-.....
,:;=. .=/+$+/+/;::::::;:;//%+- =%/:/%==,.,= -. ..
.=;;= ,;;;=,,,,,,,,.,,,--:H$ .-,,=/=- .=,,.
,;/:- ,-,. ;/. . .--. . , =:;.
.. ..,.-%%/- ....... . ,=.,.. . ,%M#;.
======:;/;:==::==:::::::======:=::::=:::================+%$HMX;. .,==
.... ......, ,.,,,,..,, ,XM%;;/=