iMMMxz.......+nnxMMWW@WMxxxxxxxMMWWWWWWWWWMMxxMMWWWMMnz###++++###zznxMMMMxxxMMMMMMMxxxxMMWWWWWWWWWWW@@@@@@@@@@W@@@@@@@@@@@@@@@@@@@@WWWWWWMxxxxMW@@@WWW
,xMMxx:..```..*nnMMMW@WWxxxxxxxxMMWWWWWWWMWMMxMMMWMMxn##++++++++#znnxxMMnnnMxMMMMMxnnxxxMMWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWxxxnxWW@@@WMWW
,+MMMx+..`````.inxMMWW@WxxxxxxxxMMWWWWWWWWWWMxMMWMMMnnz#+++++++++#zzzxxz#nxMxMMMxnnnnnnxxMWWWWWWW@W@@@@@@@@@@@W@@@@@@@@@@@@@@@@@@@@@@@WWWWMMWWW@@@MMWW
.,MMMxn,.`````..;xMMWWWWxxxxxxxxMMWWWMWWMWWWMxxMMMMMnzz#++++++***++#zz##znxxxMxxnnnnnnnnxxMWWWWW@@@@@@@@@@@@@@W@@@@@@@@@@@@@@@@@@@@@@WWWWWWWWWW@@@WWWW
..#MMxxi.`` ``..`+xMMW@WMxxxxxxxMMWWMMMWMWMMMxxMxMMMnnz++++*++******++#nxxxxxnnnnnzznnnnxxMWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@WWMMWWWW@@@WWWW
..;MMMxz.`` ``...;xMMWWWMMxMMxxxxMWWMMMWMMMWMxxxxMMMxn#+************++#zznnnzzzzzzzzzzznnxxWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@WWMWWWWWW@@@WWW
:,.nMMxn;` ``.....nMMWWWMxxxxMxxxMWMMxMMMMMMMMxxxMMxxn#+***************++######zzzzzzzznnnxMWWWWW@WW@@@W@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@WWW@@@@@@@@WW@W
:,,*MMMx#` `....``+MMMWWWxxxxMxxxMWMMxxMMMMMxxxxMMxxxz#+**************i**++++###zzzzzzzznnxMWWWWW@WWWW@@@@#@@@@@@@@@@@@@@@@@@@#@@@@@W@@@@@@@@@@@@@W@@W
,,,,MMMxn,``....``:xMMWWWxxxxMxxxxMMxxxMxMxxxxxxMxxxnz#**i**iiii******i****+++###zzzzzzznnxMWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@@@@W@@@@@@@@W@@W
,...#MMxn*`....````nMMWWWMnnMxxxxxMMxxxxxxxxxxxxMxxxnz+*ii*iiiiii*i********+++###zzzzzzznnnxWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@@@@@@W@@@W
:,..:MMMxn,.,,.````*MMMWWMnnMMMxxxxxxxnxxxxxxxxxxxxxn#+iiiiiiiiiiii********+++###zzzzzzznnnxMWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@@@@@W@@@W
i:,,,nWMxx*,,:,.```,xMMWWM*nnnxxxxMnxxnxxxxxxxxxxnnxn#*i;;iiiiiiiiii*******+++##zzzzzzzznnnxWW@@@@@@@@WW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@@@W
*i;::*Wnxxz:;::,.```nMMWWW#iznnnxxMnnnnxxxMxxxxxxxxxz+i;;;i;iiiiiiii*******+++##zzzzzzzznnxM@WWWW@@@@WWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@@@@@@@@@@@@@@@@@
;;iiiiMznxx;:::;:,.`*MMMWWn,:znnxnxn++#zxxMxxxxxnxxnz*i;;;iiiiiiiiii*******+++##zzzzzzzznnxMWWWW@@@@@@@@@@@@@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
,,:i**zn#nx+;iiii;:,:xMMWWM:.,#nxxx#*ii+zxxxxxxxnnxn#iiiiiiiiiiiiiii********++###zzzzzzznnxMWWW@@@@@@@@@@WW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WW@@@@@@@@@@
..,:*+nxn#xn:i****i;:nMMMWW#,..xMMx++*ii+zxxxxxxnnxz*iiiiiiiiiiiii***********++###znzzzznnxMMWWW@@WWWW@@@@@@@@@@WW@@@@@@@@@@@@@@@@@@@@@@WWWW@@W@@@@@@@
.,*+zn+zxzxx*ii*#+**i#MMMWWM:..i#nx*#+i;*+nnnxxnnxn#*iiiiiiiiiiiii***********+++##zzzzzzznxxWWWWMW@@MMWMW@@@@@@@WWWW@@@@@@@@@@@@@@@W@@@@@@WW@@WW@WW@@@
*znnxz*#Mxxx#**++##i;*MMMWWWi:;*#xn*z#i;i*#nxxxnnnz+iiiiiiiiiiiiii*****+*****++++##zzzzzznnxWWWMxMWMnn#zzx@@@@@WWWWW@@@@@@@@@@WWWWWWWWW@@@@@@@WW@@WWWW
#zz+**zzMMxx#+#*+#+i::nMMWWWMi**znx*#+i;i*#nxxxnnz#*iiiiiii;iiiiii****+++++**++++##zzzzzzznxWWMxnxMMn##nz*M@@@@@@@@@@@@@WWWMWWWWWWWWWWWWW@W@@@@@WWWWWW
+#z*#z#z#xnxnz##+*i,,;#MMMWWWn#xxxM+++;;i*+znnnnzz+*i;;;iiiiiiiiii*+++##++++++++++##zz###znxMxnz#nMMMnnxz#WW@@@@@@@WWWWWMMxxxMMMWWWWWWWWWWWWWW@@@@WWWW
iznz#nnzznnMxnnnz#+***+MMWWWWMWMMnz++*;;;iiizznnz#+ii;;;;iiiiiii**+##zzz#####++++++######zzxx#z##nWMWMMMMxW@@@WW@@@WMMMMnnMxxxMMMMMWWWWWWWWWWW@WWWWWWW
;iznznnnn#xMMMMxx#xnnz#xMMWWWWWMnzz#+*;i*#*i+#nnz+*i;;;;iiiiii**+++#zzzzzzzzz####+++#####znxMnnnzMWWWWWWWWWWMMMMMW@@WMxnz#nMMMMWMMxxWWWWWWMxMM@WWWWWWW
,:+zznznn*xMMMMMxxxxnz+zMMWWWWMxnnMx**i*++i;*+znz+*i;;;;;ii;;;iii***++##zzzzzz###+++##++#znxMxxxnMWWWWWMMxMxMMMW@@WWMzzzz##xxMWWMxxxMMMMMxxxxMWWWWWWWW
;i#zzxnxn+nxnMMx#Mxz++++MMWWWWMMMWWM***+#*ii**#nz+i;;;;;;i;;;;;;;;;ii****++#+++#++**+#+##znMMMWMxWWWMWMxnnMW@@WMM@WMxzzz#z#nxxWWMxMMMxxMMMMMWWWWWWWWWW
znnnnxxxzzzxMMMnxM+i*#;:nMWMMMMMMMWM***##+iii*#nz*i;;;;;;;;;;;;;ii*++#####++*****ii*+##zzzznMMWMMWWWMnnMMW@@@WMnxW@Wxzzzzzn#zxxMMMxMMMMMMMW@@@WWWWWWWW
xxz#nnx##znxMxMxxM#z##+*xMMMMWWMWMWM***##+i;;i+nz+i;;;;;;;iiiiii*+#zzzz+#zz#+*iiiii*#znnxxxMMWWxxMM@xnxWWWW@@WM#xW@Wxz#z##z##xMxxxxxxxMW@@@@@@MWWWWWWW
nnnnxnz+#*#zxxMMMxnzznxWMMMMMWMMWWMx#*i+##*;:i#n#*i;;;;;;;iiii****ii*###zzzz+*i;;;i+zxxnxMWW@@@@@WW@MMMMMW@WWWM#xW@Wxzzz###zM@WMxxxMW@@@@@@@WWW@WWMMWW
nxMxznxzx+nnMxMWMxnnnnxWWWWnxxxxMMMMni+i*+#+;;#z#*i;;;;;;;;iii****iiii*++###+ii;;;*+nnnnnMWW@@@@@@@@@@WMMMWMWMMzxW@WWnnz##zMMWW@WW@@@@@@@@@@@WW@@@W@@@
MMMxnzxxxznMWWWWMxnnnnxWWWWxxxxxxxnnn**+i*+z*;#z+*i;;;;;;;;iii******iii*+###+*i;;i*+zzzznxWW@@@@@@@@@@@@WMMMMWxzxW@WWMxxxxMMWMMW@@@@@@@@@@@@WWW@@@@@@@
MMxxMMxxMMxWWWWMMxnnnnMWWWWMxxxxxxxnn#i*i;i#+i+#+*i;;;;;;;;;iii********++###+**iii*+znzznxWWW@@@@@@@@@@@@@WMxWx#MWWWWWWWWMMMMWWWWW@@@@@@@@@@@@@@@@@@@W
WWMMMMMMMxMWWWWWnnnnznMWWWWWxxxxxxxxxx*ii;;i;;*#+*;;;;;;;;;;iiii**+++++++##+***iii*+znnznnWWWW@@@@@@@@@@@@@WWWx#xWWWWWWWWWWWWWW@WWWW@@@@@@@@@WWWWWWWMM
WMMMMMMMxxMWWWMxnnnnnnMWWWWWMMMxxxxxxxziiiiii;*#+*;;;;;;;;;;;iii*+++#####++***iiiii+#nnnnnMWWWWW@@@@@@@@@@@@WWx#xWWWWWWWWWWWWWWWWWWWW@W@@WWWWWWW@W@@@@
WMMMMMMxMxMWWWMMxnnznnWWWWWWWMMMMxxxxxxiiii*i;i++*;;;;;;;;;;;iii**++#####++*iiii;;i*#nnnnnMWWWWW@@@@@@@@@@@@@Wx#xWWWWWWWWWWMWWWWWWW@W@WWWWWWWM@@@W@@@W
WWMMMxxMxMMxMMMMnnnzzxWWWWWWWWMMMMxxxxxz;iiii:;*ii;;:;:;;;;;;;iii**++###+++*i;;;;;i*#znnnnMWWWWWW@@@@@@@@@@@@@MxxWWWWWWWWWWWWWWWW@@WWWWWWW@@WW@@@W@WWW
MWWWMMMMMMxxMMMxzzzzzMWWWWWWWWWMMMMMxxxn+;;;;:;i;;;;:;;;;;;;;;;iii**+++++++*i;;;;;i*+znzznMWWWWWWWW@@@@W@@@@@WWWWWWWWWWMWMWWWWWWWWWWWWWW@@@WW@@WWMMMMM
WMMWMMMMMxxMMMMxnnnnxWWWWWWWWWWWMMMMMxxnz+i;i:;;;;;;;;::::::;;;;ii***+++++**i;;;;ii*+zzzzzxWWWWWWWWWW@WWWW@@WWWWWWWWWWWWWWWWWWWWWWWW@W@@@W@WWMMMMMMMMM
WWMMMMMMxxMMMxxnnnnnMWWWWWWWWWWWWMMMMMMxz+*;;:;;;;;;:::::::::;;;;ii***++++*ii;:;iii*+zzz#zxWWWWWWWWWWWWWWWWW@WWWWWWWWWWWWWWWWMWWWWWWWWWWWMMMMMMMMMMMMM
MMxMMMMMMMMxMxnnnnnnWWWWWWWWWWWWWWMMMMMxz+*;;:;;;;;;;:::::::::::;;ii*******iii;;i***+#z##zxWWWWWWWWWWWWW@WWWWWWWWWWWWWMMMMMWWWWWWWWWWMMxxxxxxxxxMMMMMM
MMMMMMxxMMMMMxnnnnnMWWWWWWWW@WWWWWWWMMMMn+i;;;;;;;;:;::::::::::::;;iii******i**iii**+#z##zMWWWWWWWWWWWWWWW@WWWWWWWWMMxMMWWWWWWWWWWWMnnxxxxnxxxxxxxxxxx
MMMxxnxMMMMMMnnnnnxWWWWWWWWWWWWWWWWWWMMMn+i;;;::;::;;::::::::::::;;;iii****iiiiiii**+#z##zMWWWWWWWWWWWWWWWWWWWWWWWWMMWWWWWWWWWWWWWWxznnxxxxxnnnxxxxxxx
xxxxnxxnMMMMxnnnnxWWWWWWWWWWWWWWWWWWWMMMx+i;;;::::::::::::::::::::;;;ii****i;;;i;;i**+z+#nMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMzznnnnxnnnnnnxxMMM
xxxMnxMMMWWxnnnxnMWWWWWWWWWWWWWWWWWMWMMMx+i;:;:::::::::::::::::::::;;i***i**;:::::;i*+#+#MMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWnzznznzzzznnnxMMMx
xMxMxMMWMWMnnnnnMWWWWWWWWWWWWWWWWWWMMMMMx+i;:::::::::::::::::::::::;;i*iiiii*i;;::;;i*++nxxxxxxMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMn##nz####znnznxMn
MMxWWWWWWMxxnnnxWWWWWWWWWWWWWWWWWWWWMMMMn+i;::::::::::::::::::::::;;i**iiiii***iii;;i*+zxnnnnnnxMWMWWWWWWWWWWWWWWWWWWWWWMWWWWWWWWWWWMxWn#z++##zzznxxMz
MMWWWWWWMxxxnnxWWWWWWWWWWWWWWWWWWWWWWWMMn*i;:::::::::::::::::::::;;;i*ii;iii****+*++*+#nnzzzzzzxxMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWxMWWMz###+##zznxxz
MWWWWWWMxxxnnxWWWWWWWWWWWWWWWWWWWWWWWWMMn*i;:::::::::::::::::::::;;;i*i;;;iiii*++*++*+zzz######nnMMMMWWWWWWWWWWWWWWWWWWWWWWWWMWWWWWWMWWWWMx###+#zznnnn
MWMnWWWMxxnnnMWWWWWWWWWWWWWWWWWWWWWWWWMMz*i;::::::::::,,,::::::::;;;*+i;;;;;;ii++++**#z##++++##zzxMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWWWWWWMn++###znzx
MxxMWMMxnnnxMMWWWWWWWWWWWWWWWWWWWWWWWMMM#*i;:::::;::::::::::::::::;**i****iiiii*+#+*+#++++++++###nxMMMMWWWWWWWWWWWWWWWWWWWWWWMMWWWWWMWWWWWWWMMz*+##xz#
MWWMMxxnnnxMWWWWWWWWWWWWWWWWWWWWWWWWWMMM#*i;;:::::;::::::::::::::;i*i;;;i*++++++#z+*+++******+++#znxMMMWWWWWWWWWWWWWWWWWWWWWWMMWWWWWxWWWWWWWWMMx#+znn+
WWWMMxxnnMMWWWWWWWWWWWWWWWWWWWWWWWWMMMMM+*i;;:::::;::::::::::::::;ii;;::;;**++++##+++**iiiii***++#znxMMMWWWMWWWWWWWWWWWWWWWWWWWWWWWWMWWWWWWWWMMMMxzz#i
WWWMMxxxMMWWWWWWWWWWWWWWWWWWWWWWWWWWMMMx**i;;:::::;;;::::::::::::;ii;;:::;;ii**+++++**ii;;iii***+##zxMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWMMWWWWWWWWWWMMnn#zz
WMMMxxxMMWWWWWWWWWWWWWWWWWWWWWWWWWWMMxMz**i;;:::::::;;:::::::::::;;;;;:::::;;ii**+++**i;;;;iiii*++#zxMMMMMMMWWMWWWWWWWWWWWWWWWWMWWWMMWMWWWWWWWWWMzn#xM
MMxxxMMWMWWWWWWWWWWWWWWWWWWWWWWWWWMMxxM#*iii;::::::;;;;::::::::::;;;;;;::;;;i***+#++*ii;;;;;iiii*++#nMMMMMMMWWWMWWWWWWWWWWWWWWWMMMWMMMWWWWWWWWWMxnxMMx
xnnxMMWWWMWWWWWWWWWWWWWWWWWWWWWWMMMMnxx+*iii;:::::::;;;;;;::::::::;;:;;;;;;i*+*++#++*ii;;;;;;iiii*+#zxMMMMMMWMMWMWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMWMMMxxM
xxMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMxnxx+*iii;::::::::;;;;;;;;::::::;::;;;ii**++++#+**i;;:;;;;;iiii*+#xxMMMMMWWMWMMMMWWWWWWWMMMxMMMMMMMMMMMWMMMMMxMn+xM
MMMWWWWMWWWWWWWWWWWWWWWWWWWWWWWMMMMxnxM+*iii;:::::::;;;;;;;;;;;::::::::;ii**+++++++**i;:::;;;;;iii*+#xxMMMMMMMMMMMxxMMWWWWWMMMxMMMMMMMMMMMMxMMMxxxn*MM
MWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMxxxnM#*iii;:::::::;;;;i;;;;;;;;::::::;;i***+++++**i;;:::;;*++****++nxMMMMMMMMMMMMMMMMMWWMMMMMMMMxxxxxxxnxxxxMnxxn*xM
WWWWWWWWWWWMWWWWWWWWWWWWWWWWWWWMMMnxxxxx+*ii;;::::::;;;;;iii;;;;;::::::;;iii****+*ii;;;:;i+##*i**++#+zxMMMMMWMMMMMMxMMMMMMMMMMMxMxxxMMMxxMMMMMxnMxzzxx
WWWWWWWWMWWMWWWWWWWWWWWWWWWWMMMMMxnxxxxxn*ii;;::::::;;;;;;;iii;;;;;::;;:;;iii***ii;;;;;;*#+*;;:;;;i**#xMMMMMMMMMxxxxMMMMMMMMMMMMMMMMMxxMMMMMMMnnxxxxxn
WWMWMWWMWWWWWWWWWWWWWWWWWWWWMMMMMnxxMxxxxz*i;;;:::::;;;;;iiiiiiii;i;;;;;;;;;ii**i;;;:;;*+*i;iii;;;ii*+nMMMMMMMMxxnnxxMMMMMMMMMMMMMMMxMMMMMMMxxxnxxnxnx
WMMMWWMMWWWWWWWWWWWWWWWWWWMMMMMMxnxxMMxxxxzi;;;::::;;;;;;iiiiiiiiiiii;;;;;iii++*i;;::;;;;i*+#zz#*iii**zxMMMMMMxnznznxMMMMMMMMMMMMMMxMMMMMMMnxMMxnzznxM
WWMMWMWWWWWWWWWWWWWWWWWWMMMMMMMxnxxxxMMxxxxzi;;;:::;;;;;;iiiii********iii*++izz#*;;:::;;;*+;##nzz+*iii*nxMMMMMMxnnnnxMMMMMMMMMMMMMxMMxMMMxxMxxxxxznxMM
WWWWWWMWWWWWWWWWWWWWWWWMMMMMMMxxxxxxxxMMxxxxzi;;;;;;;;;;;iiiii******+#nxz++#;#z+*i;:::;;i*;:iz#+z+**ii*+nxMxMMMxxxnnxMMMMMMMMMMMMMMxxMxxnxxxxMMMxnxMMM
WWWWWWWWWWWWWWWWWWWWWMMMMMMMMMxxxxxxxxxMMxxxxn*;;;;;;;;;;;iii******++#nx#**++*****;::;;i***ii*+++**iii*+#zxMxMMxxxnnxMMMMMMMMMMMMMMMxxxnxxMMMMMxnxMMMx
WWWWWWWWWWWWWWWWWWWWMWMMMMMMMxxxxxxxxMxMMMxxxxx+i;;;;;;;;;iii******+++zx#*iiiiiiii;;;iiiiiii;;iiiiiiii**+#zxMxxxxxxxMMMxMMMMMMMMMMxMxxxxMMMMMMxnnxMxxn
WWWWWWWWWWWWWWWWWMMMMMMMMMMMxnxxxxxxxMMxMMMxxxxxzi;;;;;;;;iii***++++++#x#iiii;;;;i;;iiiii;;;;;;iiiiiii**++##nxxxnxxxxxxxMMMMMMMMMMMMMxxxxxxxxnnxnxMxxz
WWWWWWWWWWWWWWMMMMMMMMMMMMMxnxxxxxxxxMMMMMMMxxxxxn*i;;;;;;;iii**++++++#n+iii;;;;;i;;iiii;;;;;;;iiiiiii**++###znnnxxxxxMMMxMMMMMMMMMxxxxxxxxxnzxxnxxxx#
WWWWWWWWWWWWWMMMMMMMMMMMMxxxxxxxxxxxxMMMMxMMxxxxxxx#i;;;;;;;ii**+##++*+n#ii;;;;;;i;;iiii;;;;;;;;;;;;;ii*++###znnxxMMMMxxxxxMMMMxMMMxxMMxxxxnnxMxxxxxzz
nMWWWWWWWWWWMMMMMMMMMMMxxxxnxxxxxxxxMMMMMxxMMxxxxxxxn+i;iiiiiii*+##++++nzii;;;;;ii;iiiii;::::::::;;;;ii**+####nxxxxxMMMMxxxxxxxxxxxMMxxMxxnnxxxxxxxx#n
xxWWWWWMMMnnMMMMMMMMMMMMMxnxxxxxxxxxxMMMMMxxMMxxxxxxxxz*iiiiiii*+###+++zn*i;;;:;iiiii**i;:::::::::;;;;ii*++###nxxxxxxxMMxxxxxxxxxxxxxxxxxxxnznnnxxxz#x
xxWWWWMMnzzxxMMMMMMMMxxxxnxxxxxxxxxxxMMMMMMxxMMxxxxxxxxnz+******+######zn+i;;::;i;;ii****;::,,,,::;;;;ii*++###nxxxxxxxxMMxxxnnxxxxxxxxxxxxxxzz#zznn#zx
MMMWMMMxzzznxxMMMMxMMxxxxnxxxxxxxxxxxMMMMMMMxMMxxxxxxxxxxxz#++**++####zznni;;:;;;;;;;iii**;:,,,,:::;;;ii*++###nxxxxxxxxxMxxxnxxnxxxxxxxxxxxxnzznnnn#nx
MWMWWWMnnnnnxxxxMMMMMMMxnxxxxxxxxxxxxMxMMMMMxxMMxxxxxMxxxxxxnz#+++#zzznnxx#i;;;i;:,:;;;;ii;;:,,,,::;;;ii**++##nxxxxxxxxxxxxxxxxnxnnxxxxxxxxxnxxnz#zzxx
MMMMMMMxxnnnnxxxMMMMMMxnnxxxxxxxxxxxxxxMMMMMxxxMMxxxxMMxxxxxxxnnz#zznnnxxxn*i;iii::::;;;;;:::::,:::;;iii**++##nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnz##+#zxx
MMxznxxxxnnnnxxxxxxxxxxnnxxxxxxxxxxxMxxMMMMMMMxxMMxxxxMMMxxxxxxxxnnnxxxxMxn+iiiiii;;;;;;;;:::;:::::;;iii***+#zxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxn##++#znnn
xMnnznnnnnnnxxxxxxxxxxnnxxxxxxxxxxxMMxMMMxMMMMxxxMMxxxxMMMxxxxxxxxxxxxxxxnxz*iii**i;;;;;;;;;;;;::::;;;iii*++#nxxxxxxxxxxxxxxnnxxxxxxxxxxxxxxnz#++*#nnn
xxMxxxxxxnnnnxxxxxxxxnnnxxxxxxxxxxxxMMMMMMMMMMMxxMMMxxxxMMxxxxxxxxxxxxxnnnxx+i;ii*ii;;;;;;;;;;;;:::;;;iii**+#xxxxxxxxxxxxxxxnnnnxxxxxxxnnxxxnn*i*+znnn
xxMxxnxxxxxxxxxxxxxxzzznnnxnznxxxxxxMxMMMMMMMMMxxxMMMxxxxMMxxxxxxxxxxxxnnnxxn*;;i*+*ii;;;;ii**;;:::;;;;ii*++nxMxxxxxxxxxxxxxxxxxxxxxxxxnnnxn#z#zz#znnn
xxMxnnnnxxxxxxxxxxxn*++++##++znnnznxMxMMxMMMMMMMxxxMMxxxxxMMxxxxxxxxxxxxnnxxx#i;i*++****i***i;;;:::;;;;ii*+zxxxxxxxxxxxxxxxxxnnnnnnxxxxnnnnnznz##+znz#
xxxMnnxxxxxxxxxxxxx+iiiii**ii+++*+#nxnxxxxxxMMMxxxnnMMnzznnMMxnxxnnzzzznnnxxxni:;i**ii;;ii;;;;;::::;;;;ii*#xxxxxxxxxxxxxxxxxnnnnnnnnnnnnzxnnznzz*;nn+,
xxxMxxxxxxxxxxxxxxz;;iiiiiiiiiiii*++##z####nMMMxz#++#Mx#+++#xxn#nxxz++++znxzzn*i`.,:;;;;;;;;;;::::;;;;;i*#nxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnz:;nn+,
xxxxxxxxMxxxxxxxxx*;iiiiiiiiiiiiii***+#***+#nMMMz*ii*zMn+***#xxn+zxxxz#++zn+#n+z+`  ```,,,,,,:::,,:;;;i*#nxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnzi+nz+,
nxxxMxxMMMxxxxxxx+;iii;iiiiiiiiiiii*i++****+zxMMx+*ii*nMz+***#xxn+zxxxxn###**n#+n+`          ``````.,;i+nxxxnxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnz+#zz*.
nxxxMMMMMMxxxxxn*;iiiiiiiiiiiiiiiii*i++*****#nMMMx*ii*+xx#+***#xxx##xxxxxxz**#n*nn;                  .i#nnnnnnxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnzz+zz#;.
nnxxxMWMMMxxxxnz+;;ii;;iiiiiiiiiiiiii+*++***+nxMMMz*ii*#Mx#+***zxxx##xxxxxn+*+n+zn#                 `:*#zzzz#zzznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn#+zzi,,
nxxxxMWMMMMxxxzn*;iii;;;iiiiiiiiii*ii+i*+#+**#xMMMMz*ii*nMx#+***zxxxz#nxxxn#++nz+nz:              .:i+zz+zzz#z#++#zznzznnnnnnnnnnnnnnnnnnnnnnnn#++;...
nxxxxMWMMMxxxnnz;iiiiii;i;i*iiii*i*ii#ii*+#+**zxMMMMz***+xMn#+***nxxxz#nxxxn##nn*nn#`         `.:**;i++++z#+###*+++######zznnnnnnzzzzzzzzznnnnzz*,.,,,
nxxxxMWMMxxxnz#;;iiii;;iiii**iiii**ii#iii*+##++nMMMMMz***#xxnz+**+nxxxn#nxxxn#zn+znn+.      `,;+#+;i*+#+#z*++#+**+++++++++zzzzzzzzzzzzzzzzzzzznz*.....
xxxxxMWMMxxnz;.:;iii;iiiiiiii***ii*i*#**iii*##+#xMMMMMz***zMxzz#**+xxxxn#nxxxnznz#nnz*i:,,,;ii+#+*+*+##+#+***+**++**++***+##+###zzzz#zzzzzzzzzzzz+,...
xxxxxMMMMxxxi..;iiii;i;iii;iii*+***i*#*+*iii*+##zxMMMMx#**+xxx#z#**#xxxxn#nxxxxnn#xnz###+****+##+#+**##++i++#***+**++*********++##+####zzzzzzzzzzz#:..
xxxxMMMMMxn+,,:;iiiiiiiiiiiii;i*+*+i*#*++iiii*+##nMMMMMx#**#xMn+zz**zxxxxn#nxxxxnznnz#+#++*+++i+##+*+#+i;*#z+******+******i*****+*++++++##+#####zzz#;.
xxxMMMMMxxx+:;:;iiiiii;iii*iiiii***i*z++#*iiii*+#nxMMMMMx#*+nMxz+zz**zxxxxxznxxxnznnnz*+*#+++ii++*+*##i**#zz***+**+*****ii**********i******+++++#####i
xxxMMMMMxxx#*;;iiiiiiiiiii**iiii**+i*z#z#+**iii**#nMMMMMMx#*#xxxz+nn*+nxxxxxnxxxnnnnnz*++##++**#+*+#####znn+**+*********i*********iiiii******+*+++++++
xxMMxxMxxxn+*iiiiiiiiiiiii***iiii*+i*z#zz#+**iii*+#xMMMMMMxz+zxxx#+nn++nxxxxxxxxnnnnnn+**##*+*##+++*;i+znnzi***********i********iiiiii**********++++++
Mxxxxxxxxx*i*#iiiiiiiiii;;i*+*iiii*i*z##zzz#+*iiii*#xMMMMMMxz+nxxx++xn+#xxxxxxxxxxnnnn#*+#+*++###z*;;*#nnz+i***i***i**i********iiiii*****i***i;;:::;i*
xxxxMxxxn*ii+n;iiiiiiii;;iii*+**ii*i*z+##znnn#+*ii**#xMMMMMMxz#xxxn*#xn+zxxxxxxnxxnxnnz#z++*i+##zz#ii+zzz+*i***i*****ii******iiiiiiii****i;,.`   ```.,
xxxMxxxn++**z#;iiiiiiiiiiiiii***ii*i*#++++#zznn#*iii*zxMMMMMMxznxxxz+zxz+nxxxxn#xnznnnzz#+*;*+++nz*i*#zz+*ii***i*****i******iiiiii*****i:`         ```
MMMxxxx+*+#zn#;iiiiiiiiiiiiiii***i*i*z##++++##zxz*ii**zxMMMMMxxnxxxxz+nxz+xxxxz#nzznnnz#+*i*++*+nz*;++z#**ii**ii****ii*****iiiiiii***i:`            ``
MMxxxxz**+#nn#;iiiiiiiiiiiiiiii****i*####+++###znz*iii+zMMMMMMxxxxxxxz+xxz#xxnz#nxnznnz#*+++****zz*i*+z#*iii**i***********iiiiii*i*i;`               `
Mxxxxxn#nznxn#iiiiiiiiiiiiiiiiii***ii###zz#++#z##zz*ii*+nMMMMMMxxxxxxx##xxzzxn##nn#zxn#++*i**+*+z##*+#z+*iii*ii******i***iiiiii*i*i,                  
xxxxxxxxxxxxx#iiiiiiiiiiiiiiiiiii**ii##+#zn#+#znz###*ii*+nMMMMMxxxxxxxx#nxxzxn##nnzzxz+++*+#*+++z++*+z#+*iii*ii**********iiiii*ii;.                   
xxxxxxxxxxxxx#;iiiiiiiiiiiiiiiiiii*ii+##++zn###zxz#z#*ii*+nMMMMMxxxxxxxn#xxxnz#zznznnz##**+#**#+#***+##**iii*ii*********iiiii**i;`                    
MMxxxxxxxxxxx#;iiiiiiiiiiiiiiiiii*i**+#++++znz##nxn##+*ii*#xMxxMxxxxxxxxnnxxxnnz#xnnxzz#+**++*#**i+*++#**iii*ii********iiiiiiii;`                     
xxxxxxxxxxxxn#;iiiiiiiiiiiiiiiiii*ii**#+##++zxxz#nxn#++*ii*#xxxxxxxxxxxxxzxxxxn##nnxnzzz#+ii**+*i+**++#*iiii*i*********i*iiiiii.                      
xxxxxxxxxxxnn#;iiiiiiiiiiiiiiiiii*i***+*+##+#zxxxnxxn#++****#xxxxxxxxxxxxnnxxxnz#nnnnnnn#++***i**+iii++*iiii*i**********iiiiii.                       
xxxxxxxxxxxxnz;iiiiiiiiiiiiiiiiiii**i*#*++++##znxxxxxxz#+****zxxxxxxxxxxxxnxxxxzzznxxzzz#++*++++#*ii;*+*iiiiii********i*iiiii:                        
xxxxxxxxxxxxnz;iiiiiiiiiiiiiiii*iii*i*#++++++#+#nxxxxxxz#+***+nxxxxxxxxxxxxnxxxz#zzxxz*+#*+######+i*;*+iiiiiii******i*iiiiii;`                        
Mxxxxxxxnxnnnni;iiiiiiiiiiiiiiiiiii*i*#+++++++++#zxxxxxxnz+***+nxxxxxxxxxxxnxxxn+zznxnz##++##+##+#+i;++iiiiiii******i**iiiii,                         
MMxxxxxxxnnnnniiiiiiiiiiiiiiiiiii*i*i*##+###+++++#zxxxxxxxz*+++#nxxxxxxxxxxxxxxn+zzzxxzz+*+#####z#**i+*iiiiiii***i***iiiiii;                          
xxxxxxxxxnnnnn*iiiiiiiiiiiiiiiii**i*i*#++###zzz####zxxxxxxxz++++zxxxxxxxxxxxnxnn+##zxnzz#ii++++##**+++*iiiiiii******iiiiiii,                          
xxxxxxxxxxnnnn+iiiiiiiiiiiiiiiii*ii*ii++++++##znnz#+zxxxxxxxz+++#nxxxxxxxxxxnxnnnz+nxzz++*+*i*++***+++iiiiiiii******iiiiiii`                          
Mxxxxxxxxnnnnn#;iiiiiiiiiiiiiiiii*iii*+++++++++##zzz#zxxxxxxxn#++#xxxxxxnnxxnnnnn##nn*+**++***+***+++*iiiiiiii*i*****iiiii;