::;;:;;;::;;;;:=-,-,,----,,,,,,,,,,,,,,,........,-,,-,-,,,,,,,,.,......,,,,,,,:=
+//////::////;/;,      .;;;;;;;:///////;-      ,/;;;;;;:=,,,,,,-=..,.,.,/;;;;;;;
///;///::/;;///:,       :;;;;;;=;//////;,      .;;;;;;;:,,,,,,,--......,;;;;;;;:
/////;/:;///;//:,       ;;;;;;;=;//////;,      .;;;;;;;:,,.,,,,,-......,;;;;;;;;
///;///:://////:,       ;;;;;;;=;//////;,      .;;;;;;;:-,,,,.,--......,;;;;;;;:
;::::::==:=====:,.......=:====:-=:::::::,......,:::::::-,-,,,-,--,,,,,,-========
=-------========:::::::=-.,,,,,,:=======-,,,,,,-=------=;;;;;:;:-......-=------,
-.,...,.=;:::::=====:===,      .--------,      .=------,;;;;;;;:.      .,.......
-,.,,.,.=::::::-==:==:==,      .=-------,      .:------,;;;;;;;:.      .-.......
-.,,,,.,:=:=:::=========,      .=-------,      .=------,;;;;;;;:.      .,.......
-...,,,,=====-==========,      ,=------=,      ,=,,,,,,-::::::::, . . .,,,,,,,,,
;:::::::=-------=-------=--------,,,,,,-;:::::;:::::::::;//////;-,,,,,,-///////;
/;;;;;;:-,..,.,,-,.,.,,,-,,,,,,,,  . .  ///////=://////:+$$$$$$+.      .%XXXXXX%
/;;;;;;:-,,,,,,,-.,,,,,,=.,,,,,,- .... ,;//////=;//////:+$$$$$$+.      .%XXXXXX%
/;;;;;;:-,,,.,,,-,.,,,,,-.,,,,,,, .. . .///;//;:;//;/;/:+$$$$$$+.      .$HXXXXX%
;::::::=-,,,,,,,-..,.,.,-......,, .  . ,:;/;/;;=:;;:;:/=/%%%%%%;.      ./%%%%+%+
;::::;::---,,-,-========:-------:::::::=-,,,,---::;::;:=::::::::=::::::=::::::::
//+///+;,      .:-------=.......///////;,      .;+////+;;//////:///////:/;;;;;;:
///////;,       =--------.......;//////;,      .///////:;//////=;//////:;;;;;;;;
///////:,       =--------.......;//////;,      .;//////:;//;/;/=;//////:;;;;;;;:
///////;,       =--------.......;//////;,      .;//////::;;;;;;=;//////:;;;;;;;:
:-=======------===:::::=:------==-------=--=-=-==-------=========-------=-=-----
-,,,,,,-=,,,,,,,://;/;/;=,,,,,,-,      .:,,,,,,=,      .:=;:=::=,,,.,.,,,       
-,,,.,,,-,,,,,,,://////:=.,,,,,,.      .=,,,,,,-,      .::======,  . . ,,       
=,.,,,,,=,.,,,.,;//////:=.,.,,.,,      .=,,,,,,-,      .:=======, .....,.       
-......,=,.,...,:;;;;:/:=......,,       =,,,,,,-,      .::=:::==, ...  ,.       
:======-=:--:-:-:::::::=-------==-------::====:=---=--=-=========----=-==-------
/;;;;;;:/$X$$$X//$$$$$$+:::::::=://////:;//////:+$$$$$$/,      .///////:;////;//
/;;;;;;:/HXXXXH//$$$$$$+=-:-:::-;//////:;//////:+$$$$$$+.      .///////:;//////;
/;;;;;;-/HXXXXX//$$$$$$+=::::::-/;/////:;//////:+$$$$$$+.      .///////:;///;//;
/;;;;;;:/HXXXXH//$$$$$$+::-::-:=;/;;;;/:;//////:+$$$$$$+.      .///////:;/;////;
:======--;;;;;;==;;:;;;:-----=---=============:-:;;;:;;=,,,,,,,,=:=====-:======-
-......,;//////;:=======-......,-......,-,,,,,,-=,,,,,,=://////;+$$$$$$/-,,,,,,,
..       :;;;;;;;=-------,      .,       - .... ,-......,;;;;;;;=+XXXXXX;,       
..       :;;;;;;:=-------,      .,      .-  .   ,-......,/;;;;;;:+XXXXXX;, ......
..       :;;;;;;:=------=,      .,      .- . .. ,-......,:;;;;;;=%HXXXXH;, ....  
-......,-======---=-=----......,,......,-,,,,,,--,,,,,,,=========;;;;;;=-,,,,,,,
%%%%%%%/;//////;;//////;=-=-==-=:=======;;;;;;;:-,.....-=======-;;;;;;::::::;:;:
$XXXHXH+;//////;;///////-.,.,.,,--------:;;;;;;:,      .=-------///////==::::::-
$XXXXXH+;//////;;//////;-,,,,,.,=-------;;;;;;;:,      .=-------;///;//=::::-::=
$XHXHXH/;//////;;///////-..,.,,,=-------:;;;;;;;,      .=------,//;////:=::::::-
++++/++;:;;;;;;::;;;;;;:----------------=:::=::-, . . .,--------:::;;;;-==--=-==
:,,,,,,-=-------=::;:;::-,,,,,,-:::::::=::::::::;;:;;:;=:::::::=========-.-,,,,,
, . .. ,-,,...,,:;;;;;;;,       :;;;;;;::;;;;;;=:;;;;;;=:=======::::-::=.       
, . .  ,-,,,,,,.:;;;;;;:,      .:;;;;;;::;;;;;;=:;;;;;;=:==:=:=-:::::::=.       
,. .... -,,,,,,,:;;;;;;;,       ;;;;;;;=;;;;;;;=:;;;;;;=:=:===:=::::::;=.       
,      ,-,,,,,..=::::::=,      .-::::::-:::::::==::::::-====-=--======,-.       
+;/;/;/:=,,,,,,-=-------=-------:::::::=-=====--:::::::::::::::=:--=-==-:=-====-
$HXHXHH+-       :,,,,,,,:,,,,,,,/+////+;=,,,,,,-;//////:;//////:=,,,,,,-=,,,,,,,
$XXXXXH+,       -,,,,,,,-.,,.,,,;//////;-.,,,,.,://;///=;////;/:-.,,,,,--.,,,,,,
$XXXXXX+,       -.,.,.,,-,,.,,,,;//////;=,,.,,,,:///;//::/;////:-.,,.,.--,,,.,,,
$HXXXXH+,       -,,,,,,,=,,,,,,,;//////;-.,.,.,,;//////=;///;//:-.,,,.,--.,,,..,
//;////=,,.,,,,,-,-,--,--,----,-::::::::--------=:-:-::-=:-::=:------------,----