WWWWWWWWWWWWWWWWWWWWWW@WWWWWxMWW@@@@@@@WWWWWWWWWWWMMMMMWWMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@Wx#+#nWW@@@@WWWWWW@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWWWWWWWnMW@@@@@@@WWWWWWWWWWWWMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@WWMz+#zM@@@@@WWWWWW@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWWWWWWMxMWW@@@@@@@WWWWWWWWWWWMMMMMMWMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@WWWWW@@@@@@@Wn#+#nWW@@@W@@@WWW@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWWWWWWMxMWW@@@@@@@@@WWWWWWWWWMMMMMWMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@WWxz+#zM@W@@@@@@@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWWWWWWxxM@W@W@@@@@WWWWWWWWWWWMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@WWWW@@@@@@W@Mz+++nWW@@@@@@@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWWWWWWxnWWWWW@@@@@WWWWWWWWWWWMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@WWWWW@Wnz+*#MW@@@@@@@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWWWWWWnxWWW@@@@@@@WWWWWWWWWWWMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@WW@@WWWxz+*+x@@@@@@@@@@@@@@@@@@W@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWWWWWWnx@WW@@@@@@@WWWWWWWWWWWMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@WWW@@@@Wxn#**nW@@@@@@@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWWWWWMnx@@W@@@@@@@WWWWWWWWWWMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@WWW@@@@@Mnz**#W@@@@@@@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWWW@WxzM@@W@@@@@@@@WWWWWWWWWWMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@WW@@@@@Wnz+i#W@@@@@@@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWWWWWnnW@WW@@@@@@@@WWWWWWWWWWMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@Wxn#*+M@@@@@@@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWWWWWznW@WW@@@@@@@@@WWWWWWWWWMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@WWWWWWW@W@Mnz*ix@@@@@@@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWWWWMzx@@WW@@@@@@@@@WWWWWWWWWMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@W@@@@WWWW@Wxz+;zW@W@@@@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWWWWxzM@@W@@@@@@@@@@WWWWWWWWWWMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@WW@@@@WWWWWWxn#*zWW@@@@@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWWWWnnW@@@@@@@@@@@@@WWWWWWWWWMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@WW@@@WWMnz+#nWW@@@@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWWWWznW@@@@@@@@@@@WWWWWWWWWWWWWMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@WW@@@W@Wnz##xWW@@@@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWWWM#x@@@@@@@@@@@@WWWWWWWWWWWWMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@WW@@@@@Wxn##xM@W@@@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWW@WxzM@@@@@@@@@@@WWWWWWWWWWWWWWMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@W@@@@@WMnz#nxW@@@@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWWWnzMW@@@@@@@@@WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWWWMMxMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@WW@WW@W@@@MnnznxM@@@@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWWWznW@@@@@@@@@WWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMxxMxznnnxWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@WW@@W@W@Wxnznxn@@@@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWWWzx@@@@@@@@WWWWWWWWWWWWWWWWWWWWWWWWWWWWWxxn#+++**+##znxMWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@WW@@WWW@@xnznnnW@@@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWWMzM@@@@@@@@@WWWWWWWWWWWWWWWWWWWWWWWWWWMMn+iii*ii**+###nxMMWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@WWWW@@WW@W@MnnznnM@W@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWWxzW@@@@@@@@@WWW@WWWWWWWWWWWWWWWWWWWWWMx#;;ii**i;***#z##nxMWWWWWWWWWWWWWWWWWWWWWWWWWW@@@WWWWW@@W@@W@WnnnnnMWW@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWWnnW@@@@@@@W@WW@@@WWWWWWWWWWWWWWWWWWWMn*::;;i**ii****#####xMWWWWWWWWWWWWWWWWWWWWWWWW@@@@WWWWWWW@@@@@@xnzznxWW@W@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWWzx@@@@@@@@@W@@@@@WWWWWWWWWWWWWWWWWWMni:::;iiiiii**++*+++#zxWWWWWWWWWWWWWWWWWWWWWWWW@@@@WWWWWWW@@@@@@MnnzzzW@@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWMzM@@@@@@@@@W@@WWWWWWWWWWWWWWWWWWWWWx+:;;:iiiii;;i*****+++#nMWWWWWWWWWWWWWWWWWWWWWWWW@@@@WWWW@@@@@@@@Mxnzz#W@@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWxnW@@@@@@@@@@@@WWWWWWWWWWWWWWWWWWWWMx;ii;iiiii;;;iii***+###nxMWWWWWWWWWWWWWWWWWWWWWW@@@@@WWWW@@@@@@@@WxxnnzM@@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWnnW@@@@@@@@@@@@WWWWWWWWWWWWWWWWWWWMM+;i*;iiii;;iiii***+++#znxMMWWWWWWWWWWWWWWWWWWWWWWW@@@@W@@@@@@@@@@@Mxnznx@@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWnx@@@@@@@@@@@@@WWWWWWWWWWWWWWWWWWWMzii*ii**iii;iiii***+++#zzxMMMMWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@WxnnzxW@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWWzx@@@@@@@@@@@@@WWWWWWWWWWWWWWWWWWMni;**+***ii;;;iiii*++#+++#nxxMMWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@MxnzzM@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWW@WxzM@@@@@@@@@@@@@WWWWWWWWWWWWWWWWWWni;i**+***iii;iiii*+###z#+#zznMxMMWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@Wxnzzx@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWnnW@@@@@@@@@@@@@WWWWWWWWWWWWWWWWWM*;ii**+++**ii;;;i+##z##zz###znnxMMWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@Wxnz#zW@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWznW@@@@@@@@@@@@@WWWWWWWWWWWWWWWWMzi;i*+++#++#*iiii**ii+#z#z#++#znxMMMWWWWWWWWWWWWWWWWWWW@WW@@@@@@@@@@@@@@Mnz#zM@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWWzxW@@@@@@@@@@@@WWWWWWWWWWWWWWWWWM#***+z##+***+*ii*+*#+*+z#z#+++#nxMWMWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@Wxz#+x@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWM#M@@@@@@@@@@@@@@WWWWWWWWWWWWWWWWx#+**+n##*+z#*+**++++#++#+#+*++#zxxMMWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@Wxnz+nW@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWn#W@@@@@@@@@@@@@@@@@WWWWWWWWWWWWMxz***#z#+*++i*****iiii**#++**++#znxMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@Mxn#zM@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWWznWW@@@@@@@@@@@@@@@@@@WWWWWWWWWWMn*;*+z#++**iii****iiii**++#**++#zznxMWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@Mxnz#M@@@@@@@@@@@@@@@@@
WWWWWW@WWWWWWWWWWWWW#nW@@@@@@@@@@@@@@@@@@@WWWWWWWWWMzi;i*#zz+*****i***+i*****++#***#z#zzxMMWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@Wxnz#xW@@@@@@@@@@@@@@@@
WWWWWW@WWWWWWWWWWW@W+x@@@@@@@@@@@@@@@@@@WWWWWWWWWMx**i***#zx+***iii***+*i*****#z+**#z#zznxMWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@WWW@@@WMxn#nW@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWW@x#M@@@@@@@@@@@@@@@@@@WWWWWWWWMn#+*i+#+zzx#+**i;i*i*+*ii***+zzz+*++#zzzxMMWWWWWWWWWWWWWWWWWWWWWWWW@WWWWWWW@@@@Mxxz#x@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWWn#MW@@@@@@@@@@@@@@@WWWWWWWWMxn#+*i*+++z#n##**i;*+i*++ii**+#zzxz+*++#z#nMMMMWMWWW@WWWWWWWWWWWWWWWWWWWWWWWW@@@@WxnnznMMMW@@@@@@@@@@@@
WWWWWWWWWWWWWWWWWWW#nWW@@@@@@@@@@@@@@@@@WWWWWWWnz*i;*+++#zzz+#+**i#z++nz*i++##zzxz+**++#nzxxxMMxWWW@WWWWWWWWWWWWWWWWWWWWWWWW@@@@Wxnnzz#+zxM@@@@@@@@@@@
WWWWWWWWWWWWWWWWW@W+xWW@@@@@@@@@@@@@@@@WWWWWWMxx#iiii*+#+###+##+*i*nxnz#*i+###z#nzz**#+++zxnxxMWWW@@@WWWWWWWWWWWWWWWWWWWWW@W@@@@@Mxnn#*i+zzxW@@@@@@@@@
WWWWWWWW@WWWWW@WW@M+x@@@@@@@@@@@@@@@@@@WWWWWWx#*i*i*i+z#++##++++ii*+++++ii*++###zznz*+z#++nxxxWMxMWWW@WWWWWWWWWWWWWWWWWW@@@W@@@@MMxnz**i#nnzxW@@@@@@@@
WWWWWWWWW@@@@@@WWWx+M@W@@@@@@@@@@@@@@@@WWWWWMx++###**#z+#+##+++*ii***i**ii**++++znn##*nz+*nMxMxxMWW@@WWW@@WWWWWWWWWWWWWWWWWW@@@MnMMn+ii+nnznnxW@@@@@@@
WWWWWWWWWWWWW@WW@WzzM@@@@@@@@@@@@@@@@WWWWWWWWx#znnz++#*+++##+++ii*+###+******+++#nz+#*nn+*zxxxnMWWWW@@@@@@WWWWWWWWWWWWWW@@@W@@Wn#zxn+**nnz#zznx@@@@@@@
WWWWWWWWWWWW@@@@@W#nWW@@@@@@@@@@@@@@@W@WWWWWWn#xnn#+++*#*###+**i*#zxzzzn#+**+##++z#+#+zn#*nxxxMWWWWWWWW@@WWWWWW@WWWWWWW@@@@@@@M#*++zn##++#z#nnxW@@@@@@
WWWWWWWWW@@@@@@@WWzxW@@@@@@@@@@@@@@@@@WWWWWWWnxMxn++#**#+z#++**i*+**+***+++++####+z+z+#nz+nxxMMMWWWW@WWWWWWWWWWW@WWWWWW@@@@@@@M#*#++z#**+#zznzxM@@@@@@
WW@@WWWWWWWWW@@WWMnxW@@@@@@@@@@@@@@W@WWWWWWWMxnxn+*+++*#+#+++*i***+++++#+*+*+####+##z+#nn##znxnMWWWWW@WWWWWWWWWWWW@WWW@@@@@@@@Mxz##z#**+#zzzzzxx@@@@@@
WWWWWWWWWWW@@@@@WMxxW@@@@@@@@@@@@@@@@@WWWWWWMMnz#i+**+*#+#+++i*+*ii+###+**+++*#####zzzznxnz#+zxxxxxMW@WW@@WWWWWWWWWWWWWW@@@@@WMxWxMz*++##+##zzxxW@@@@@
WWW@WWWWWWW@WW@@WMxx@@@@@@@@@@@@@@WWWWWWWWMWMx+**ii*#++#+#+++*******+++*i*+#++z###zx#zznnxnnznnnnnznWWW@@WWWWWWWWWWWWWW@@@@@@@Wx@@W#*+#+++#zzznxW@@@@@
WWWWWWWWWWW@WWWWMxxM@@W@@@@@@@@@@W@@@WWWx#+zn++ii;;++*+#####+*******++****+++#####nM#n#zznnnnnnzznxxxWWWWWWWWWWWWWWWWWW@@@@@@@Wn@@Mxz#+##zz##znxM@@@@@
WWWWWWW@@WWWWWWWnnWW@WW@@@@@W@@@@WWW@WMxz###++ii;;*+***#z+##+***i*********+++#zz##xMzn##znnnnzznzznnnMWWWWWWWWWWWWWWWWW@@@@W@@WnW@Wx####zz#+#nnxM@@@@@
WWWW@@@@WWWWW#zMMxM@MxWM@@@@W@@@@@@Wxxxnnzzzz***i*++i**z####+****ii*******+++#zzz#xMnnz#znxxnnnnnnnznzxWWW@WWWWWWWWWW@@W@@@@@@WnW@Wn#+##**+#znnxM@@@@@
WWWW@@@@@Wz+zz*nWMMMxWnnW@@@W@@@@@Mxxxnxnnz##+**+z+++*zn##z#+***ii**********+#zzzzxMnnnznnxxxnnnzznnnznnnxWWW@@@WWWWW@@@@@@@@@@nM@Mxnz***#zznxxxM@@@@@
WWWWWWWWWz+znnnxMxn#MxzxW@@@@@@@Wxxxnxxnxnnnz##+#z#n++nz##z#++***i**********+#zzzznxnxznzxMnxxxnnnnnnnnnzznWWWWWWWWW@@@@@@@@@@Wxx@@Wzz++#nxxxMxxM@@@@@
WWWWWWWWn#nMn#+#nMMWMxxW@@@@@@Wxxxnnnnnxnnnnn#++#nzn+znz#zz++++**************+#zzzzxzz#zznxxxxxnznxxnnnnnnnxWWWWWWWWW@@@@@@@@@Wxn@@WxnxxMxMWMMMMM@@@@@
WWWWWWWW#zxxz#+++x@WWWW@@@@@WxnnzznxnnMxxxnnn###zxnn+nz##zz#+++**************+#zzzznz#+zznxxxxnnnnnxnnnnnnnnxWWWWW@@W@@@@W@W@@@xnW@WW@WxxzzMMMMxW@@@@@
WWWWWW@nznxzzz#+#zW@@@@@@@Wxzz##zxMxxMxxxxxxnznnzxnz+nz+zz#++++****+****+****+#zzzznnz##nzxxnMxnxnnnnnnnnxxxxMWW@WW@@@@@@W@W@@@xnW@WW@MnnzzxWWMxW@@@@@
WWWWWWWnxxn##znz#znMW@@@@MzznnnxMMxMMxxxxxxMxzxnxxnx#zz#zz#+++++***++********++#zzznxnz#nnxnnnxxnxxxnnnnnnxxxnMWWWW@@@@@@W@W@@@nnM@@W@WxxnznMMMMW@@@@@
WW@@@@MxxMxzz++#zzxMW@@@WnxMMMMMMxMMMMxxxxMMxnxxxxnnnzz#nz##++++*+**+****+****++#zznxxn#zxxxnznxxnnnxnnnxxxxxnnxWWWW@@@@WW@W@@@nnx@@MW@xxnzzMMxMW@@@@@
W@@@@WMxxMxz##+##zxMW@@Wx@@@WMMMMWMMMxxxxMMxxxxxMxzzMxznzz###+++****+*+*******+++zznxnzzzxxxxnxxxnxxnnnxxMxnnnnzxMWW@@@@W@@@@WWznx@@MMWMxnzzMMMMW@@@@@
@@@@@@Mxxxn###zznnnMMMMnnMMWWWMMWWMMxxxxxMMxxxxxxz#xxznnzz#z#+*+*****++++*+****++#znnz#zzxMxzxxxxxxxxnnnxnnnnnnnnznWWW@@@@W@WxnnnnW@WMWWxzzzxMMM@@@@@@
@@@@@@xxxxx####zznxMxnnnxxxxxxMWWWMMxxxxMMxxxnxnnxxxzznxnz###+*++****+*+++*****++#zznzz#nxMMxMMxxxnxnnnnnnnnnnnnnnnMWWWMWWWMnnnxnnM@WMW@MnzzxMMW@@@@@@
@@@@W@xnxxxnz#+zznMWMMxxMMMxxWWWWWMxMMxMMMxxxzxxxxxxnxxxnz####+*+*****+++++*+***++#zxnnzzMxMMMMMMxxnxnnnnnnnnnnnnnnxMznnMxnznMxxnxM@@MW@WxnnxMMW@@@@@@
W@@WW@MnnxxxnzzxxnxWWMMxMMxMMWWWWMMMMMMWWMxxMxnMxnxxMxxxzzzz##+++**+**+++++*****+###nnnnzxMMMxzMMxxxnnnnnxnnnnnnnnxxnnxxMxnnxMxxnxx@@W@#@MnnxMMW@@@@@@
@WWW@@Mxxxxn#zxxxMMWWWMMxxMMWWWWWMMMMMWWMxMMxxxxxzxnMxxxzzzzz#+++**+*+*++++**+**+#z#znnxnxxMMxzxMMnnxnnnxxxnnnnxnnxxnxxMMMxnMMMxnxxW@W@#@MnxxxM@@@@@@@
@WWWWWWxxxxx#+###xW@W@WMWMMWWWWWWMMMMWWMMxMxxxxMMxnzMxxznnnzz#++#**+*+*++++++*+**+#zznnxnznxMMxMMMxnnnnxxxxxnnnxxnxxxxxMMMMxMMMMnxnW@@##@WxxnxW@@@@@@@
@@WWWWWxMxxxxznznM@@@WWM@WWWWWWWWMMMWWMMxMWMMxxMxxxzxznzxxnzz#+++**++++*+++++*+**+#znnznnzzxMMMxMMMxxxxxxxxxxnnnnxxxxxxWMMMMMMMMnxnW@@##@WMxnxM@@@@@@@
@@WWWWWxMMxxMMMWW@@@@@WW@@WWWWWWWMMMWMMMMMMMMxxMxMxxxnzzxxnnz+++++*+*++++++++++***#znxznxxnxWMMMWMMxxxxxxxxxxxxnnxMxxMxWMMMMMMMMnxxM@@##WWWxxxx@@@@@@@
@@WW@WWx@WMWWWW@@@@@@W@WW@#WWWWWWWMWWMMMMMMxMxxMxMMMxxzzxMnxz#++++*++**++++++++***##nxnxxxxMWWMxxMxxxxxxxxxxxxMxxMMxMxxWMWMMMMMMnxxM@@##WWWxxxxW@@@@@@
@@WW@@MW@#@@@W@@@@@@WW@WW@@#@WWWWWMWWMMMMMxxMxxMxMMxMMxxMxxxz#+++++++++++++++++++++znxxMxxxxMMWWMMxMxxnxxxxxxxxMMMMMMxxWMWMMMMMxnxxM@@#@MMWMxxxM@@@@@@
@@@WWWMW@##@@W@@@@@@@W@@W@@##@@WWWWWWWMMMMxxxxxMxMMxMWMxxMxnn##+++++#++++++++++*+++#zxxMxxxnxMMMMxMMMxxxxxxxxMMMMxxMMxxWMMMMWMMMnxxMW@#@MxWMxxnM@@@@@@
@@@WWWWW@###WW@@@@@@@W@@WWW@@#@@WWWWWMMMMMxxxxxMxMxxMMMxMxxxn####+++#+++#+++++++*++#zxMMxxxxxMxxMxMMMMxxxxxxxMMMMMMMMxxWMMMMWWMMzxxxW##WxxWWxxnxW@@@@@
@@WWWMW@@##@WW@@@@@@@@@@@WWWW@@@@WWWWMWMMMxxMxxMxMMMMMxxxxxnnz####++##++#++++++++++#zxMMMxnxMMxxxxxMMMxxxxMMMMxxMMMMxxM@MMWMMWWMnxxxW##WxxMWMxnxW@@@@@
@@@WWMWW@##@MW@@@@@@WW@@@WWWWW@@@@WWMMMMMMMMMxxMxMMMMMnxxzWxnn#z##++##++##+++++++++#zxMMWMMxxMxxxxxxxMMxxxxMMMxxMMxxxxM@MMWMMMWMxxMxW##WxxMWMxnxM@@@@@
@@@WMWWWW##@W@@@@@@@@WW@@WWWWWW@@@@WWMMMMMxMxxxMxxxMMMxnxnMMxn#z##+++#++#++++++++++#zxxMMMMMxxMxxxxxxMMMxxxxxxxMMxxxnnM@MMMMMMMWMxMxW##MxxMMWxnnM@@@@@
@@@WMWWWW##WW@@@@@@@@@W@@WWWWWW@@WWWWMMMMMxMMxxMxxMxMMMMMnMMMx#####+###+#+##+++++++#zxMMMMxMMxMMxxxxxMMMMxxxxxxxMxnxnxM@WMMMMMMWWMMMW##WxxxxMxxnMW@@@@
@@@WMWMWW@@WMWWWW@@@@@W@WWWWWWWWWWWWWMMM*::i+z*xxnxxMMxMWxMMMMz###***++i**+##++*;;;izxM*ii;*xMMWxxxxxxxxxxxxxnzz#####zM@WMMMMMMWMMMMW##WxxxxMxnxMM@@@@
@@@WWWi``..,*.``*@@@@@@@@@WWWWWWWWWWMMM,`;++:``i```nMMxMWxMMMMn#zi```i*```i###+i`  `,zM,`  .xMMWMxxxxx.,xMxxxi    `  `i@WMMMMMMMMMMMM##WMxxxn.`zxM@@@@
@@@MWWz;   in, ;xWzi;;*M@MMMWWMxxWWMMWn  +#MM+.zi` zMnnxMMz*ii*+#z#` ;#+` iz##+++.   .#M# *Mxn*;:;+xz; .#nxxxz+``,##, `Wn***+xMMM#++#x@n+++##` #xxW@@@
@@@MWWWW+ `:z`i@W: .*: .z```#z`  zWWWWM` `+Mz:#Mz  i.``iM#`.#i `+zz` ;##` ;z##++#,`.  `*n`+M#` ;*` :;`  `+xxxxx, ,zz,``n``#+``nM:`*+,.n`,+i`*.`xnxM@@@
@@WMWWWW@+  `:W@n  #@x``i+` +W#  zWWWWM#.``.` `xn  :+. `xx;;#i  *##` :##` :zz#++#,`+, ` :`+M: .nx;``zi .znxxxxn, ``` `iWi:z+` +n` ,i*zi `:i*n:,xxxM@@@
@@WWWW@@@@; `x@@z `n@W:`:W` +WW` zWWWWn.nn+i.  +z` #xi `n*` ,i` i;#` ;+#` ;###+**,`*;`  ` *n, .zz#.`#* .xxxxxxx, .+++zM#` ,*. +#;    `n.    ii*xxxxW@@
@@WWWWWW@@i  xM@n `z@M` ;W,`i@M``+WWWWn ;nnnn``#+  zxi `#. `ni  ;.z` ,+*` ,*z+#**.`**+,   *#:`.nx*``z* `**nxxnz` `nxxxx:``xz` +,z;,`  z*:.` ,++xxxxW@@
@@MWWWWWM;`  .;@@: `i, .xW*;.;,``**WWMn`,.::, .*,``,+.  ,.  ,,``.`: `:;, `;;n##i.  `:#z;` *##` ,;``ix# `,*xxx#,   .*xxx;  ,:.`,.`in# `i`#z: ;``nnxxM@@
@@WWWWW@x,::;;*@@Wziii#WWWx:,:z*;**WWMMzMx*ii+z+;:;:+:::;+;;+n+;;;:,,::,,,,:nzz*::,,;##z+;+zM#i;:izMxx*;inxxx#;:::;+xxxx*;+Mz;;z+*i;inn+i;;+M**Wxxnx@@
@@WWWWWWxxzM@@@@@@@@@@#@@WW@@WWWWWWWWMMMMWMMMxxMMMMMxMxxxxxMMMMMx##zzz#zzz#znnnn##**+znxxxMMMMMMMWWMxxxxxxxxxxxxxxxxxxxWWMWWWWWMMWWMMMWWMMMMMMWWxMxxW@
@@MWWW@@WxzM@@@@@@@@@@@@@WW@@WWWWWWMMMMMWMMMMMMMMMMWxxxMxMxMMMMMxnzzzzzznn##nnxnz####znMxMMxMMMMMMWMMxxxxxxxxxxxxxxxxxxWWMWWWWWMMWMMWMWWMMMMMMWWMxxxM@
@@WWWW@@@MMW@@@@WWW@@@@@@WW@@@WWWWWMMMMWWMMMMMMMMMxWMMxMxMMxxMMWxnnzzz#zznn#znxxz###zznMMMMxMxMMMMWMMMxMxxxxxxxxxxxxxxxWWMWWWWWMMWMMMMMWWMMMMMWWWxxxM@
@@WWWW@@@W@@@@@@@@@@@@@@WW@#@@WWWWWWMMWWWMWMMMMMMMxWxxxMxMMxxxMMMxxnnzzznnxz#nnnz##znzzxMMMMMxMMxMMWMMxxxxxxxxxxxxxxxxMWWMMWWWWMMWMMMWMWWMMMMMW@WxxxMW