++++++*****+#++++#nzWWWxxMxnnn+`.,:i;##zMMnnM@@n:+@@@x:;i+.,;:i##;,,,,,,,,,,,............,,,,,,,,,,,,,,,:::;;*+##########zz#+++*;;;::::::,,,,,,,,,,,,,
*+***++++++++++++#nzWWMMMxxxxx*`..,i;iii##nMMxz;,;xWW+:,:*::ii#z;,,,,,,,,,,,:.........,,,,,,,,,,,,,,,,:::::;;*+#zzzz####zzzz++i;;;::::::,,,,,,,,,,,,,,
**********+++++++#nzWMMWMMMMxx+``,;;:;;;;;;;;:,:,,;nx:::ii::*#z*,,,,,,,,,,:,:,......,,,,,,,,,,,,:::::::::;;;i++#zznzzzzznzn#+i;;::::::,,,,,,,,,,,,,,,,
+++********++++++nnzWWMxxxxxxxz,`.::,ii;;;::;::,.,,;;,;;+*;i##+,,,,,,,,,:::::,,,,,,,,,,,,,,,,,:::::::::;;;ii*++##znnnnnnxz#+;;:::::::,,,,,,,,,,,,,,,,,
##+++++++++++++++nnzWMMMMxxxxxM#,,;;:z**#*::**i,,,....,;**;+*+i,,,,,,::::::;;,,,,,,,,,,,,,:::::::::::;;;ii**+####zznnxxxn#+;;::::::::,,,,,,,,,,,,,,,,:
***++++++++++++##zzzWMMMxxxxxxxMz*++*z*ii;::;::,,,....:;+*#*;+;,,,,,,,::::;;;:,,,,,,,,,,,::::::::::;;;;i**+++zzz##znxxxn#*;;::::::::,,,,,,,,,,,,,,,,,;
iiiiii****++++++#+*#@WMxxxxxxxxxxnnn#+++++++:,...,....,i#+z,i+;:::,```.:;;;;;;::::::::,,::::::::;;;;;;ii*++##zzzzzznxxz#*;;:::::::::,,,,,,,,,,,,,,,,,:
iiiiiiiiiii****++#zz@@WMxMMMxMxxxxxx#+#####Mn+,..,.:``:i+#+`*+;:::.`,,..;;;;;;:::::::::::::::;;;;;;;;i**+###znnznnnnz++i;;::::::::::,,,,::::,,,,,,,,,,
****************+znnWWMWMMxMMxxxxxxn#*+*+++xWW+.,;*#,`.i##,`*+;,::.,:;:,:;;;;;,:::;;:::::::::;;;;;;iii*+###zznnnnxn#+i;;;:::::::::::,,:::;;;::,,,:,,,,
********++*+*****nnnWWWWWWMMMxnnnnnnz#+***+WMxn;:zz#i``*zi `+#i:,,`,:;:,:iiiii,,:::;;;;::::::;;;;iii**++##zzzxxxxn##+;;;:::::::::::,,:::;;;;;:,,::::,:
iii********++i***znnWWWWWMMxxMxxxnnnxxxnnnzMWWM;:zn##.,z#` `+#*::,.`,:,.,i****;:::::;;;;;;;;;;;;;i***+++##zznxxxn++#*ii:::::,,::::,,::;;;;;;:,,,,,;;::
iiiiiiiiii*+#;i**#nnWMWMMMxxxxxxxxxxxnxnxnxxxnx**n#*+:+z;  `+#+::::`````,ii****i;;:::;;;;;;;;;;;ii*+++++##znnMxz*i*#+*:::::,,:,,,,,,:;;;;;;;:,,,,,,:;;
iiiiiiiiiii#zii**#nxWMWMMMxxMxxxxxnxzznxnxxxxnzznxz#z*zz.   i#zi;:::,..,::;iii*;;;i;;;;;;;;;;;;ii**+++####znxn++**+#+:::::,,,,,,,,,,:;;;;i;;:,,,,,,,::
iiiiiii****+#*ii*#nxWMMxMMMxMMMxxnnx*****+nnxxnnnzzzx#z+`   ;+#i;;;:::::::::;;i;;;;;iiiiiiiiiiii**+++###zzzz#+**++#+:,,:::,,,,,,,,::::::;i;::,,,,,::::
iii********+z+ii*#nxWMMxMMMMMMxxxxMx**i***nxMMMWn#z#x#z,    ;##i::;;;;;;::::::;:::;;;;ii**i*****+++###zzzzz##*i*#z*:,,,::,,,,,,,,::::::::;::,,,,:::::;
***********+z#ii*#nxWWMMMMMMMMMMxxxx*iiiiinnxM@@x*n##z+`   `;##i:::;;;;;;;;;;;;:,,::;;iii***++++####zzzzn##+iii#ni:,,,,,,,,,,,,,::::::,::::::,,::::;;;
************z#;i*#nxWMMMMWMMMMMMxznn**i*iiznnxMWM####z;` ```:#z#i;;;;;;iii;;;;;;,,,::;;ii**+###zzzznnzzz#+**ii+z;:,,,,,,,,,,,,,,::::::,::::::::::;;;;;
************zzii*#nxWWW@WMxxMxxxnnzz**ii*inxxxMn*#+z#z,`  ``.#zz********iiiiiiii::::::;i**++##zznnnnnn##*iiii**;:,,,,,,,,,,,,,,,:::::,,::::::::;;;ii;;
************#zii*#nx@@@WMxMMMxnnzznz**iiiiznnxz*i+#zz*.`   ``*zz+iii******+++***;::::::;*+##zzzznnxxz+*iiiii**;:,,,,,,,,,,,,,,,,:::::::::::::;;;;iii;;
************zzii*#zxW@WMMxxxnxxxnnnn**iiiinxxxxWn#z#z:..    `;zz+;;;;;iii****+++*ii;;;;;i*#znnnnnnn#+iiiiiii**:,,,,,,:,,,,,,,,,,:,,:::::::::;;;:::i;;;
************znii*#zxWWWxxxxnnnxnnnnziiiiiizznxxzz#z#z,..  ```;##+:::::::;;;;ii**+ii********#znnxxz+*iiiiiiii**::,,,,,,,,,,,,,,,::::;;;;;;;;::::::;;;;;
************#z;i*#zMWWMMxxnxxxnnnnxzz##+++xnxnnMM++z+,..  ```:##+::::::::::;;;;;i:;;i*+#zzz##znn#+i;;iiiiii***:,,,,,,,,,,,,,,,:;;:;;;;;iiiii;;:;;;;;;;
************##ii*#zMWWWMxxxxnnnzzznnnnznxnnnnnnMM##z:,,,`````.#zzii;;;;;;;;;;iiii::::;i+#zzzzz+*i;;;iiiiiii***:,,,,,,,,,,,,,,,::;;;;;;iiiii*iiii;;;;;;
***********+##i*+zzMWWMMMxxxnnxnnnnznnnxxn##nnnz#+#z,,::``````+zz+iiiiiiiiii****+i;;iiiiii***i;;;;iiiiiiiii***:,,,,,,,,,,,,,,:::;;;;;;iiiii*iiiii;;;;;
***********+#+i**#zMWWMMMxxxnnxnnnzznnnxnz+*zzzzz+##,,,:,`````i##+;;;;i;;;;;;ii**ii**+++***i;;;;iiiiiiiiiii***;,,,,,,,,,,,,:::::;;;;;iiiiiii;;iiii;;::
+**********#z****zzMWMMMMMMxznnzzzzzzz#nxn**+*;+z#z*,..,,`````;#z+::::::::::::ii;:,:;;;*i;;;;;;*+*iiiii;iii**i;,,,,,,,,,,:::::::;;;;;iiiiiiii;;;;;::::
+++++++****zz***+zzMWMxMxMxxxxxxnznznnnnxn+**#;*+#z:..,,.`````,zz#:::::::::::;+z;::;;i**;;i;;;*++iiiiii;iii**ii,,,,,,,,::::::::;;;;;iiiiiiiii;::::::::
#++++++++++#z***+zzMWMMMMMxnxnnzzznxnnnzxzz+*##z###,..,,,`````;#z#:::::::::::*nz*i;i*iii;;;i;i+*ii;iiiiiiii***i:,,,,,,:::::;;::;;;;;iiiiiiii;;;;;;;:::
+++++++++++++***+zzWWWWWMMxxxxnnnxxnnxnnnzz*i+##+z*...,,,``..,;zz+;::::::;::;+xnz*;*iii;;;;iiiii;;;;iiii*******:,,,::::::::;;;;;;;iii**iiii;;;##;:::::
#+++++++###++++++zzWWMMMxxMMxnxMxxnznnnxnzz*:i**#z:..,,,,````.,nxz*i;;;;;;;;izxnz#*i;*;;;;;iiii;;;;iii*+++*****;,,::::;;:::;;;;iiii*******i;;i#i::::::
######++zzxx#+++#nzWWWMMMMMMxxMMxnnzznxzzzz#iii*#z,..,,,,````..#nx#+*iiiiiii+nxnz++;;;;;;;iii;;;;;;iii++++****i;:::::;;;;;;;;:::;iiii*****i;;;;:::::,,
zzzzzzzzzzznzzz#znzWWWMMMxxnnnnnnzzzznznzzn+i*i*z#,,,,,,,``....#zz++++******#xxxz#*ii;;;;;;;;;;;;;;i;*++++****ii:::::;;iiii;;::::;i;i**++*i;;:::::,,,,
#########zzzznnnznzWWWMMxxnxxxxnzzzn#zznzzz+*i;*z+,,,,:::......#zz*i+##+**++zMxxz#+iii;;;;;;;;;;;;;;;**+**ii****;:::;ii*iii;::::::;;;;****i;;:::,,,,,,
zz######++++++#####WWWxxxxnxxxnnnzznzzznz#z###+#z*,,,:;;;,.....#zz+ii+##++##nWMxn#+***ii;i*;;;;;;;;;i;;i*iii****i;:;iiiiiii:::;:::;:::;;iii;:::,,,,,,,
nnnzzzzzzzz#####++#MMMxxnznxxnznxzzxxxxnzz#ii#+#z:,::;;;;,.....#zz+iii+####znMxMxz#+**iiii+;;;;;;;i:;;::;iii++***;;;iiiiiiii;;;:::;::::;;;;;::,,,,,,,,
##zzzzzzzzzzzzzzzzzzzxxxxnxxxnnnnzznnnnzz#+::++#z,,:::,,,,;+###nnn#*iii*###zxz#MMz#++**ii*#*i;ii;;i;::::;;ii*+***;;;ii:;;;i*i;:::;::::::::::::,,,,,,,,
z###++++++######zzzzznnznxxnnnnnnxnxznnnnz#i+#+z#.,,,,,;#xxxxMMWMMMxxnxn##zzz#zMMn##++*ii*+**ii;;**i:::;;;i**+**ii;;;;;:::iiii::;:::::::::::::,,,,,,,,
xxxxxxxxxnnzz##+++++++#####znnnnnxxnzzzzzzzz##+z*.,,,;+nxxMMMMMMMMMMMMMMxn+*+##zMM####+**i****i+i**ii:;i;;i*++**i*;;;;::::::::::::::::::::::::,,,,,,,,
xxxMMMMWWW@@@WMMxMxxxnzz##+++++++####z#+#####z#z;,::+xxxxxMMMMMMMMMMMMMMxxn#z#++MWn#zz++*****++*i***i;;i;;i*+++*iii;::::::::::;:::::::::::::::::,,,,,,
xxxMMMMWWW@@@@@@@@WWMMWWWWWMMMxxxnznz#++++++++#z;,:zMMMMxMMxxxxxxxxxxxxxxxMnzzz#xMnznn#++***++#+*****i;;;;i**++**ii:,,,:::::::;::::::::::::::::,,,,,,.
xxxMMMMWW@@@@WWW@@W@WWWWWMMMWMMMMMW@WWW@WMMxxn#z,ixMMMxMxxMxnnnnnzzzzzzznnnn#+***#zzzxz##+++++##+****i;;;;i**++**i*;:,,,:::::::::::::::::,::::,,,,,,,.
xxxxMMMWW@@@WWWWWWW@xxxxMMMMWWMMMMW@WWW@WW@WWxzz#MWMxnxxxxnnnnnnz##+++***++++++###***+#nzzz##zzz#+***i;;;ii***++**i;:,,,::::::::::::::,,,,:::,,,,,,,..
xxxxMMMMW@@WMMMMMWW@xxxxxxMMWMMMMMW@@@W@@@@WWnzMMMxnznnnzz###+++++****iiiiiiii**+#+ii**znnnn#znnnz+***;;;iii*i;i****:,,,:::::::::;i;::,,,,,,,,,,,,,,..
xxxxMMMMM@@@@@@@@@WWnnnnnxMMWMMMMMW@@@@@@@WW@MMMMnzzz##++************iiiiiiiiiiii*****i+xnnnznxxxxn+**i;;;;;;;;i****;:,,,:::::::i**i;;::,,,,,,,,,,,,..
xxxxMMMMM@@@@WWWWWW@MxxxxxMMWMMMMMW@@@@@@@@@WMMxxz+++****************iiiiiiiiiiiiiiiiii*#znxxMMMMMMn++*i;:;:;;;;****i:,,,::::;;;****i;:::,,,,,,,,,....
xxxxxMMMM@@@@WWWWWW@WMxxxxMMWMMWMMW@@@@@@@@@WWMxz#++**iiiiii**********iii;;;;iiiiiiiiiii***+nW@@WWMxz##i;;#;;;;;i***i:::,,::;::;iii**i;;:,,,::,,,,,,,,
xxxxxMMMM@@@WWWWWWW@@WWWWWMMWMWWMMW@@@@@@@@@WWMn#+*iiiiiiiiiiiiiiii*+iiii;;;;;iii;;iiiiii****#W@@@Wxxz#*;;#;;;;;;***i;,,,,,:::::;;ii*i;::,,,,,,,,,,,,.
xxxxxMMMM@@WWWWWWWW@@@WWW@WMWMMMMMW@@@@@@@WWMxn##+iiii;;;iiiiiiiiii++iiiii;;;;;;;;;;iiiiii****+M@@@WxMz+;;:;;;;;;i**ii:,,,,,::::;;;;i;;::::,,,,,,,,,,.
xxxxxMMMM@@@WWWW@@W@WWWWWWWMWMMMMMW@@@@@@@MMxn++*iii;;;;;;;;iiiiii*+*iiiii;;;;;;;;;;iiiiii*****+x@@@MWMzi;:::;;;;i***i:,,,,,,,,:::;;;::::::,,,,,,,,,..
xxxxMMMMM@@@WW@@@@W@@xxxxxMMMMMMMMW@@@@##Wxxx#*iiii;;;;;;iiiii;;;;*+ii****;;i:;::;;;;;iiiii*****#x@WWWMx+;:::;;;i;****;:,,,,,,,:::::,,:::::,,,,,,,,,..
nxxxMMMMM@@WMMMMMWW@@WWWWMMMMMMMMMW@@@@#@xnxn+*i;;;;;;;;;;;;;;;;;i*+ii*+z+;;;:::::::;;iiiiii****+#MWWMMxz;;:;::i*;*++*i:,,,,,,,,:,,,,,,::::,::,,,,,,,,
nxxxxxMMM@@WMMMMWWW@WMWWWWWMMMMMMMW@@@@@Mnnnz+*;;;;;;;;;;;;;;;;;;i++i*+#x*ii;:::::,,:;;iiiii*****+nWWWxnn*;;::i**;i*+*i:,,,,,,,,,,,,,,,::::::,,,,,,,,,
nnxxxxMMM@@MW@@@@WW@xnxxnxMMMMMMMMW@WWWWnnnn#+i;;;;;;;;::::;;;;;;*#+*++nM+;i;:::::,::;;ii;;ii****+#xWWxnn+iiii*i*i;***i;,,,,,,,,,,,,,,,:::::,,,,,,,,,,
nnxxMxMMM@@WWWWW@WW@MMxxxxMMMMMMMMW@WWWMznnn#*;;;;;;;;::::::;;;;;*z**+#MM#;ii;:::::::;;i+i;;;iii**+zMWxzz+iiii*i**;i***i:,,,,,,,,,,,,,,::::::,,,,,,,,,
nnxxxxMMM@@@@@@@@WW@WMxxxxMMMMMWMMW@@WWxzznz#*;;;;;;;:::::::;;;;i*z**+#WMzi*i:::::::;;i+*i;;;;iii*+#nWnzz#iiiii***i;*+*i;,,,,,,,,,,,,,,,:::::::,,,,,,,
nnxxxxMMM@@WWMMMWWW@MxxxxMMMMMMWMMW@@WWxzznz+i;;;;;;:::::::::;;;i+#**+#WMzi*i::,,,::;i+##+*iii;;i*++#Mxxz#+iiii***i;*#+*i,,,,,,,,,,,,,,,,::::,,,,,,,,,
nnxxxxxMM@@WMMMMMMW@WWWWWWMMMMMMMM@@@WWnznn#*;;;;;;;;::::::::;;;i++**##xx#i*;::,,::;*+++##+*i;;;ii++#zMnzz#iiiii**;;i#+*i:::::,,,,,,,,,,,,,,,,,,,,,,,,
nnnxxxxMM@@WxMxxxMWWWMMMMMMMMMWMMM@@@@@xznz#*;;;;;;;::::::::::;;;++**#+nz+i*;::,::;i***+#z+**iiiii+###Mxnz#*iiii**;;;++**i::,,,,,,,,,,,,,,,,,,,,,,,,::
nnnxxxxMM@@@WMMMMMWWWMMn#nMMMMMMMM@@@@@xznn#*;;;;;;::::::::::::;;*+**##+z+*i;:::;iiii**+zn#+*iiiii*z##nWxnz+iiii****++++**::::::,,,,,,,,,,,,,,,,,,,::;
nnnxxxxMM@@@WWWW@WWWWMz#*+MMMMMMMM@@@@@nnxn#*;;;;;;::::::::::::;;i***+#+#+*;;:;;iiiiii**zxz+*ii;;;i+z#zMWMxziiiii****+#+**;::::::,,,,,,,,,,,,,,,,,,:;i
nnnxxxMMM@@@@@@##WWWWMz#*#MMMMMMMM@@@@Wnnxn+i;;;;:;::::::::::::;;i****++**i;;;i*+*iiiii*x@n#+*i;;:;*zz#MWWMx*iiiii**++#++*i:::::::,,,,,,,,,,,,,,,,,,;*
nnnxxxMMWW@@WWW@@WW@WWMn#nMMMMMMMM@@@WWxxxn+i;;;;::::::::::::::;;i**ii*+*ii;;;*****iiii*M@x#+*ii;::;#n#xWWMx+iiii*****+++**:;;;:::,,,,,,,,,,,,,,,,,,:;
nnnnxxMWWW@@WWWWWWW@WWWMxMWWWMMMMW@@@@xxxxn+i;;;:::::::::::::;;;;i*ii;iiii;;;i*iii*i*ii++MM#+**i;:::i##nWWMn#iiiii**+*+++*i;:::::,,,,,,,,,,,,,,,,,,,,:
nnnnxxWWWWWWWWWWWWWWWWWMMMWWWWWWWW@@@@xMxxn+i;;;::::::::::::::;;;iii;;;;;;;;;i*i;+*i*ii+#xx#++*i;:::;*#nWMMn#*iiii****+++*ii:::,,,,,,,,,,,,,,,,,,,,,,,
nnnnnxWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@MnMnxn*i;;;::::::::::::::;;;;ii;;;;;;;;iii;iz*i*i*+##z#++*i;::::i+nWMMn#+iii;i****++***::,,,,,,,,,,,,,,,,,,,,,,,,
nnnnnnxxxxxxxxxxxxxxxxxxxxMMMMWWWWWWWMxMnxn+i;;;::::::::::::::::;;;;;;;:::;;;;;;i#*iiii++i+#*+*i;;:::;+nMMMn#+ii;;;*********;:,,,,,,,,,,,,,...........
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxnxn+i;;;:::::::::::,::::::;;;;::::;;;::;i*+iiii+#++#*+*i;::::i+nMMxnz#iii;;i*******ii:,,,,,,,,................
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxnxn+i;;;::::::::::::::::::;;;::::::;::::;*+iiii+#i*#*+*i:::,:i+xMMxnz#iii;ii*********:,,,,..............,,....
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxnxn#i;::::::::::::::::::::;;;:::::;;:,,:;**iiii++i##++*i,,,,:i+MWMxzz#*iiiii********i;,,.................,````
nnnnnnnnnnnnnnnnzzznnnnnnnnnnnnnnnnnnnnxnxxzi;:::::::::::::::::::;;;;;;;;;;;;::;i+i;;;i+#+z+*+*i,.,::izWMxnz##+iiiii*****+**i*,,................`.````
nnnnnnnnnnnnnnn#znnnnnnzzzzzzz########zxxMxzi;:::::::::,,,,::::::;iiiiiii;;;;;;;*#*;;ii++Mx+*+ii;:,,:ixMxxnz###*iiiii*********:,,,..............``````
nnnnnnnnnnnnnnn#nW@@@@@@@@@@@@@@@@WWWWWWMMxx*;;::::::,,,,,,:::::;iii**+**i;;;;i;i**iiii#xxx++*i;;::::+xnnnz##+#*iiiii*****+***i,,,..............``````
nnnnnnnnnnnnnnn#nW@@@@@##@@#@@@@@@@@@@@@WMxx#i;::::::,,,,,::::::;****+#zz*i;:;ii;i;;;ii+MMz++*i;:,,:innnznz##+++*iiiii*****++**:,,..............``````
nnnnnnnnnnnnnnn#n@@@@@@@@@@@@@@@@@@@@@@@WWMxni;;:::::,,,,:::::::i****##xz**;::;**i;;;ii+xz#+*i;:::;i+xnzzzz##+++*iiiii*****+***i,,.............```````
nnnnnnnzzzzzzzn#n@@@@@@@@@@@@@@@@@@@@@@@WWMxx+;;:::::,:,:::::::;*+*i+#xWn*+;::;i**i;;ii+n#+*i;;;;;i*nxzzzzz##+++*ii**i*****++***,.............````````
nnnnnnzzxxxxn#n#n@@WWWMMMMMWWWWWWWWWWWWWWWWxMn*;;::::::::::::;;;*+*i++xxni*i:::;ii**ii*#z+#i;;;;i**zxxzzzz###++**i***ii**ii*++**:,...........`````````
nnnnnnzzMMMMn#n#x@@WMMMMMMMMMMMMMMMMMMMMMMWMxxzi;:::::::::::;;;;+#*i++Mx#;ii::::;;i*+++zn##*i;iii*+xnnzzz####++*ii****iiii;;*+**i,,...........````````
nnnnnnzzMMMMn#z#x@@MMMMMMMMMMMMMMMMMMMMMMMMMxxz+;;:::::::;:;;;;;*z*i++xx+;ii::,,:;;i*##z#+**iiiii*nnzzz#z###++**iii***iiiiii*+*+*:,,,.........````````
nnnnnnzzMMMMnzz#x@@MMMMMMMMMMMMMMMMMMMMMMMMMMMn+i;;:;::::;;;;;;i*z*i*#zn*:;;::,,,::;i*##*iiiiiii*znzzz######++*+iii+**iiiiiii++++i,,,,..........``````
nnnnnnzzMMMMnzz#x@WMMMMMMMMMMMMMMMMMMMMMMMMMWWxz+i;;;;:::;;;;;;;i#*i*+#ni;;:::,,,,::;i**i;;iiii*#xzzz###zz++++***i*+**iii;;i;*+++*,,,...........``````
nnnnnnzzxMMMnzz#x@MMMxxxxxMMxxxxxxxxxxxxxxMMMWWnz+ii;;;;;;;;i;;;i+*ii*+#i;;::::,,,::;;ii;;i**i*#nnzn####zz+++*******+*::;;;;;i++++:,..............````
nnnnnnzzMMMMnzz#x@MMMxxxxxxxxxxxxxxxxxxxxxxxxMMMxn+*iiii;iiiiii;i++iiii*i;;:::::::::;;iiiii*i*#nnnzzz###zz+;**+******;:,,;;;;;i+++i,..............````
nnnnnnznMMMMnzz#xWMxxxxxxxxxxxxxxxMMxxxxxxxxxxxxxxxz+**iiiiiiiiii*#*iiiii;;;;;;::::;;;iiiii**#znnnnzzz##zz++++*******:,,,,:;;;;++++:,.......,,,...````
nnnnnnzzzzzz#zz#xMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnxxxz#++********+##***iiiiiiii;;;;;;iiiii*+#zzzzzzzzz###z++++*******:,,,.:;;;;*+++i,,......,,,,.`````
nnnnnnnnnnnnnnz#xMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnxnnnnnzzzzzzzzzzz###++++#+*iiiiiii**######zzzzzz#+##++++*******;,,.,;;;;;i++++:,,.....,,,..`````
nnnnnnnnnnnnnnz#xxxnnnnnnnnnnnnnxxxxxxxxxnnnnnnnnnnzzznnznx++nn##zzzzz###z###zznz#i;;;;i*+########z####+++++++*******i;::;;iiii*++++i,,,........````..
nnnnnnnnnnnnnnz#xMMMMnnxMMMMMMMMMMMMMMMMMMMMMMMMMMMxxMMMnzn#.+#i:;;ii***+++####znn#+;;;i+++++##########++++++++******iiiii*iii**++++*:,,......`````...
nnnnnnnnnnnnnnz#nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnzzn#;+i::::;;ii**++++++znz+;:i+++++++##+#####+++++++++******iii*++*ii*++++++;,,......`````...
nnnnnnnnnnnnnnz#zzz###############z################+##zzzzzznz#+,,::::;ii*******+znz*i++++++++z#*+####++++++++#****++*ii++*******++++*,,,,....`````...
nnnnnnnnnnnnnnnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznnnnxxxxxxnznn#;,,::::;;;iiiiiii+znz#+*+****+z#*+##++++++*+++#******iii***+******#+++;,,,,....`````..
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnzzznzzzzznxxxxMxxxxxxxzxxz:,,,:::::;;;i;;;;iznz+*+*****+*++++++++++++++#+*****iii****;;**+####+*:,,.....```````
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnz##znnzzznMMMMMMMMMMMMMMznxzi,,,,,::::;;;::::iznz++**iii****+++++++*****##+***ii;iiiii*i**+zz##++:,,,,...```````
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnz##znnnznx@@@@@@WM@@@@@@@xzxx+:,,,,,,,:::,,,,:;#nz+**iiii****+++*+******++****ii;;iii*+ii**+###++*,,,.........,:
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnzznnnnnnxW@WWxzzznznM@@@#Mznnz;,,,,,,,,,....,,:#n#**i;;i********++********i**ii;;i;i*i;;;i;;+++++:,,,,,,,:;**++
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnMWWMMMMMMMMnnxxMx#nxW@@@@@WxzW@Wxnzzn+:,,,,,,,......,:##**;;;;i*i******+********iiiiii;;;i;::::;;;i++++*:;i**++#+####
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnM#zzznxxxzMnnxznzzMxMWW@@@@@W##nzxxzzzn#;,,,,,........;##+i;;;;iiiii*****i****iiiii;;;;;;;::i#::;;i###z############++
nnnnnxxnnnnnnnnnnnnnnnnnnnnnnnnnnMzxMxMWWWnMnn+i+WWWWxMWWxW@@WWMn##+zz#znn*,,,,.```....,+##+**;;iiii**z*iiii***ii;;i;;;;;;;::+#;;*+##############++++*
nnnnnxxnnnnnnnnnnnnnnnnnnnnnnnnnnMzMMMxMMWnMxn+nW@W@@@@@WxW@@WWWMxxzMMxn##z#i,,.```````.,+##+++++*****#*iiii****i;iii;;;;ii;i*++#+##########zz##+*i:,.
nnnnnxxxnnnnnnnnnnnnnnnnnnnnnnnnnMzxxMMMMWnMMMMW@@@WW@@@Mx@@@WWWMMW@@@@@@x#zz#**;..````...i++#########++****i*****iiiiiii*+++++#############+*;:.....`
nnnnnxxxnnnnnnnnnnnnnnnnnnnnnnnnnMnxxMWWWWnMMWWW@@WnxWWWMxM@MWWWMxWW@@@@@@Wxz##zzzz+i:.,....:i*+####zz##+##+++++++********++++++##+++#znx*;:,........`
nnnnnxxxxnnnnnnnnnnnnnnnnnnnnnnnxxnMMWMMWWnMzzxx@@WxxxMWWnx@MWWWxMWW@@@@@@@@@Mnz###znnnnz#+;:,,:**+#########++++**********++++++#zznxMWWM;:,,........`
nnnnnxxxxxnnnnnnnnnnnnnnnnnnnnnnxxnMMMMMMMnz;:*xMxxxMn##n#zxxMMWxxMW@@@@@@@@@@@@@xz####zznnxxxxxxxxxnnz#+###+++++*********++#znxxMWMMWW@x;:,,,,......`
nnnnxxxxxxxnnnnnnnnnnnnnnnnnnnnnxxnnnnnnnnxz;izzzz*++iii+i:i****nxMW@WWW@@@@@@@@@@Mxn#*++###zzzznnnnnnnnnz###++******++++#znnnnnxxMWMMWWz;:,,,,,,....`
nnnnxxxxxxxxxnnnnnnnnnnnnnnnnnnxxMMMMMMMMMxxzzznnnnnxzxxx#;xWWWxnxMW@WW@W@@@W@@@@@Mxnz*****+#################+*****+++##zzznnnnnnnxMMMMW+;:,,,,,,,...`
nnnnxxxxxxxxxxxnnnnnnnnnnnnnnnnxxxxxxxxxxxxnnnnWWWxxz#zzn#;xWWWxnxMW@@W@W@@@W@@@@@Wxnn#++##++++++++++*;:::ii;******++##zzzzzzzznnnnnxMxx*;:,,,,,,,....
nnnnxxxxxxxxxxxxxnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxMMxxxz**z#i;xWWWnnxMW@@WW@@@@@@@@@@WMxxn+++#++++#+++++*;;ii;;;;+***++##zzzzzzzzzzzzzzznxn+i::,,,,,,,...
nnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMxxxxxxMMMnzn#;ixn+;xWMWnWnxW@@@@W@@@@@@@@@@MMMx#++#++++++++++**ii;;;;;****+##zzzzzzzzzzzzzz#zzzn+i;:,,,,,,,...
nnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMxzzz+*znx+;xxznn@nxWW@@@@@@@@@@@@@@WMMxz++##+#++++++#+*;;;:::;;**++#zzzzzzzzzzzzzz#####z#*i;::::,,,...
nnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMxnzz#z#z*z*:+#zn#WnxMW@@@@@@@@@@@@@@WMMxn#++++#++++##+**;;;:::::*+++zzzzzzzzzzz##########z*i;;::,,,.`..
nnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMWWWWWWWMnznnxxnz;#i;MMMW#@nxW@@@@@@@@@@@@@@@WWMnnn++#+#++##+++**i;;:::::i++#zzzzzzz#########+++++#+i;;::,,,....
nnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMWWWWWWWWWWWMMnzW@Wx*z;;@@@@n@nxM@@@@@@@@@@@@@@@@WMxzn#+#+####+++++*i;;:;::::*##zzzzzz#######++++++++++*i;::,,.....
nnnxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMWWWWWWWWWWWWMx##z+z###;;@##MMWxnWW@@@@@@@@@@@@@@@WMxznn++###+++++++*i;;;;::::i##############+++++++++++*i;::,.....,