####@WW@#@W@#@@@@@@@@@W@###@W@#@W@#@W@@W@@@@@@WW@@@@@@@###@@@@WWWW@@@WW@WW@WWWWWWWW@@WWxnnnnnnnxxxnnnxxnz+i*+n@@##@###################################
####@@@##@@@#@@@@@@@@@@@###@@###@@#@@@@@@@@@@@@@@@@@@#####@@@@@@@@@@@WW@@@@W@@WW@WW@W@Mnnnnnnnnnnnnnnxxxxxz*ii#M@@@###################################
@##################@#@@################@#####@##@#@@####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Wnxnnnnnnnnnnnnnnnxnnxxz*i+zW@@##################################
@##################################################@@##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@xzxxnnnnnnnnnnnnnnnxxxnnn+i*#M@@#################################
######################################################@@@@@@@@@@@@@@@@@@@WW@@@@@@@@@WzzxMMMMxxxxxnnnnnnnxnnnnnxzii+n@@@###############################
######################################################@@@@@@@@@@@@@@@@@WW@@@@@@@@@W@M#nWWWWWWWWWWMMxxxnnnnnxnxxnzii+n@@###############################
####################################################@@@@@@@@@@@@@WWWWMMxxxxMWWWW@W@@n+M@@@@@@@@@@WWWWMxxnxxnnnnnnn*i+M@@##############################
###################################################@@@@@@@@@WWMxz+i;,,......:;+nMW@M#zW@@@@@@@@@@@@@WWWMxxxnnnnnnnzii+W@##############################
#################################################@@@@@@@@@@M#;,.`` `   `````` ``,izn#xW@W@@@@@@@@@@@@@@WWMxnnxnnxnxz#+z@##############################
#################################################@@@@@@@@M#:` ```` `       `   ````,inW@WW@W@@@@@@@#@@@@@WMxxxnnnnnxxn*W@@############################
################################################@@@@@@@M#,``````` `````````````` ````.;zWWW@@@@@@@@######@WWMxnnnnnnxn*M@#############################
################################################@#@@@Wz:```````````..```````` ```````  `;#WW@@@@@@@@#####@@@WMxnnnnnnn*M##############################
################################################@@@@Mi``......::,.`.,`````````````````````ix@@@@@@@@@@@@@@@@@WMxnnnnnn*M##############################
################################################@@@x:``..`````.,````,``````````````````````.#W@@@@@@@@@@@###@@WMxxnnnn*W##############################
################################################@@n,``.,:,.`` `..```,````````` ``````````` ``iM@@@@@@@@#######@@Mxnnxz*@##############################
################################################@M:` `:,.;i,.```.```,```````````````````` ````*W@@@@@@@@#######@@Mnnx+z@##############################
################################################Wi```.,.,i;i;,```,``,` ``````````````````  `` .z@@@@@########@@@@Mnnn*x@##############################
###############################################@x.```...:*;;;;.``..`.  ``````````````````    ``,MWW@@@@##@@##@##@@Mxz#@@##############################
##############################################@@n````...i;:;ii:```,..`````````````````````  `` `*nnxxMMWW@@@@@##@@@M#x@@#@############################
############################################@@@W#```.,.,:.,,:;i.` .,.`.```````````````````   ` `.+z###zzznxMMW@@@@W##W############################@@@@
######################################@@@@WMxxnn#` `,,*;,i#,,;;.```:``.```````````````````    ```;##########zzznxWn+x@###########################@@@@@
####################################@@WWMxnnznnx#..,;#MnMWn,.:;,```:`.`  ``````       ```` ```` ``;*###########++###xW@@########################@@@@@@
############################@@###@@WMMxnzzznnxMWMxxMM@WW@W+,.:;,```,.,``` `````       ````   ``````.*##+##++++##z#+z##zxM@@#####################@@@@@@
#######################@###@@@@@WMxnnnzzzzzz+znMW@@@W@@@@W+;.,;,```,,,``` `           ````   ````  `:###z#+***+#z*+z#####zxMW@@@##################@@@@
###########################@@WMxnnnnnzz##nMM#znM@W@@@@@@@@Wn+,;.` `,:.```         ``````````  `  ```,###zz#+*+###*zz########znMW@@@#@@@###########@@@@
######################@@@@WMxnnnnznnnz##xW@@MnnW@WW@@@@@W@WW+.:.```.:```` `       ````````..```` ```.##########z++z##########zzzxW@@@@@###########@@@@
#####################@@WWMxnnnnzznnnnnzxW@@@@WMnnW@@@@@@WW@M;,:````,:`  `  ````   ````` ``:...``  ``,#########z#*z#######+##zz####nM@@@@@#############
###################@@WMxnnnnnnzzzzznnnxW@@@@@M##x@@@@@@@W@Wz..:````,:````  ```    ```````,,...`` ` `;####z####z+#z#######++#######+#zxW@@@#@@#########
##################@WxxnnnnnnnnnnnnnnnnM@@@@@@@M##n@@@@@@@@@+,,;````::````````         ` .:....` `` .+zzz#+#####*zz#######+++#######z##nxW@@@@@########
##############@@@WMnnnnznzzznznnnnnnnx@@@@@@@@Wz#x@@@@@@@@@M+;:``..:.`````            ``:.....`  ``*Mnzz######+#z#######################znMW@@@#####@@
########@@@###@Mxnnnnnnzzzzzzzzzzznnnx@@@@@@WWz#x@@@@@@@@@Wz:i:```.;.`````   ``````````,,....`````iMWMzzzzzzz#*nz#########++############++#nMW@@@@@@@@
##########@@@WxnnnnnnnnnnnnnnnnnnnnnzM@@@@@@M#zxWWW@@@@@@@n,,;,`...:```````````````` `.:....`````;xWWM#z##zzn#+xz#########++++++#############xW@@@@@@@
#########@@WMnnnnnnnnznnzzzzzzzzzznnnxM@@@@@Wnn@@@@@@@@@WWi.:i,`...:``````......``````:,....```.:x@WWn###zzzz*znz#########+++++###++########++zxW@@@@#
@######@@Wxnnnnnnnnnzzz#+++******+#nxzn@@@@@Wn#M@@@@@@@@@n,.ii,...., `.` ``````.,,.`.,:.,,.```.,z@WWWn#####z++nz###########+##+#+++++++++++++++#zxW@@#
@@@###@Wn+++++#zzzz##+*************+z#nW@@Mxz#nM@@@@@@@@@+..:i:..,.,`..````       ```;;:,,.``.,zWWWWWn+##++z*#nzz###zzz######++++++++++++++++++++#nM@@
@@@@#@x#********+##+++******++++++++zzx#nxxzzMW@@@@@@@@@Wi..,iii*#;,`,```.````` `  `,nn+:,..:+MW@WWWWnz####+*zzzz#z###zzzz##+++++++++++++++++++++++#nM
@@@@Wn+*********++++*******+++++++##nxM###zMM@@@@@@@@@@@W;..:;;i#xx:..`.....````````;M@@Wn#nM@@@WWWWW*+n###*+zzzz#####zzzz#++++++++++++++++++++++++++z
@@@Mz******************+***++++++++*zWMznzx@@@@@@@@@@@@@M,.,;;;+xWM:,``......``````,:n@@@@@@@@@@@WWWWzi*zn#*#zzzzzzz##zz####++++++++++++++++++++++++++
@Wn+******************+++++*****+#z#z@WMWWW@@@@@@@@@@@@@z::;i;iM@@W*..........``` `:.#W@@@@@@@@WWWWWWxn#*z*+z##zz############+##++++++++++++++++++++++
x#***************++++++******+##znnnnWWW@@@@@@@@@@@@@@@Mi::;iiz@@@@x:...........``,,`;W@@@@@@@@WWWW@@Mnnn+*znzzzzzzzzzz######+++++++++++++++++++++++++
+***************++++++****+#znnnnnnnnM@@@@@@@@@@@@@@@@@n;;;ii*W@@@WWn:..........`.:,`,x@@@@@@@@WWW@@@Mnnn*#nznnzzzzzz#########+++#++++++++++++++++++++
*****************+++****+#nnnnnnzznnnx@@W@@@@@@@@@@@@#@n*n**#M@@@@@@@n:...........,,`.z@@@@@@@WWWW@@Wxnn#*nz#nxnz##############+++++++++++++++++++++++
**********************#znnnnnnnnnnnnnnM@@@@@@@@@@@@@@@#xzz#W@@@@@@@@@@z,..........,...;W@@@@@WWWWW@@Mxnn*#n#nxxz+##############+++++++++++++++++++++++
********************+#nnnzzzznzzzzzznznW@@@@@@@@@@@@@@#@@W@@@@@@@@@@@@n,..........,...,n@@@@@WWWW@@@xnn#*#zz#xn++######+#######+###+++++++++++++++++++
*****************++#znnnzzzzzzzzzzzzzzzxW@###@@@@###@@@@@MznW@@@@@@@@@W;..........,...,n@@@@@WWW@@@@xnn+#znz+#+######++###########++++++++++++++++++++
**************++#zznnnzzzzzzzzzzzzzzzzzzxW@##@@####@@@#W#i;;i+zxMW@W@@W*.............,#W@@@WWWW@@@@Wxxz++#xn*#zz####+######++++##+++++++++++++++++++*+
********++++##zznnnnnzzzzznnzzzzzzzzzzzznM@######@###@#W*;;;,..,:;;i*+#i............,#W@@@WWW@@@@@@Mzz++##zn*#z#####++#####+++++#+++++++++++++++++++*+
******+#zznnnnzzznnnnnzzzzznzzzzzzzzzzzznxW@###@@@@##@Wx#;;,.........,;;,,..........ix@@@@WW@@@@@Wxzi*+++*nx++######++#####+++++#+++++++++++++++++++++
***+#zznnnnzzzzzzzzzzzzzzzzzzzzzzzzzzzzznxMW@#@W@@#@W@xii;;,..........:;i;:.....`.,iin@@@W@@@@@@WM*i**+#+xWM++#####++++####++++##+++++++++++++++++++++
+#zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznxxx@@nnnn@W+xxi;;;:,,........,:;ii;.....:iiiM@@@@@@@@WWx+izz*znW@@W#+##+###+++++++++++###++++++++++++++++++++
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznnnnxW**##xMiizi;;i***i;:,.....,::;ii::;ii;;iM@@@@@@@WMz**zz+#W@@@@@z#xz+###++++++++++++#+++++++++++++++++++++
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznnxnnW+i++*+;;ii+nWWWWWMn+i:,,...,:;;;ii;;;;;x@@@@@WMn#+zz#*+n@@@#@@z#WWn#+#++++++++++++++++++++++++++++++++++
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznxxxxnii*+i;i#xW@@@@@@@@WMx#i;:,:::;;;;;;;;iM@@@@WMz+zz++z+#M@@@@@@n#W@Wx######++++++++++++++++++++++++++++++
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznnnnz#+*+#*inWW@@@@@@@WWWWWWWxz###+###zz#++nW@WWWz*#z#+znz*znMW@@@@x#W@@@xz####++++++++++++++++++++++++++++++
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznnz##+++***+zMWW@@@@@@@@WWWWWW@@@@@@@@@@@@@W@WW@WM++zz++nnn++z##zxW@@x#M##@@xz##++++++++++++++++++++++++++++++#
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznnnz#+++++++++#W@WW@@@#@@@WWWWWWWW@@@@@@@@@@@WWWWWx+zn+*zxz#z*z###+#nW@M#x#@#@Wx###++++++++++++++++++++++++++++*+
z#zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznxnz#####+++##++zW@@@@@#@@WWWWWWWWW@@@@@@@@WWWxzzz++n#+zxzzxn++z####+#zxM#x@@##@Wz++#+++++++++++++++++++++++++++**
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznxnnz#####++##+++*zW@@@##@@WWWWWWWWWW@@@@@@WxxMx#;i#z++x@@Mz#n*z#####+###xzn#@##@@M#+++###+++++++++++++++++++++++++
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznnxnnzz#####++##++++n@@@##@@WWWWWWWWWWW@@@@@@M#+nxxz#+nM@@@@Wx++xz####+#zznzz@@##@@@x##+++++++++++++++++++++++++++++
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznxxnnzzzz###########zW@@#@@@WWWWWWWWWW@@@@@@@@M#*+++#x@@@@@@@M+zznn####zzznz#W@####@Wz####++++++++++++++++++++++++++
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznnxnnnzzzz###########zW@@##@@@WWWWW@W@@@@@@@@@@@WMnnMW@@@@@@@@#+Mx#zxn##zz#nn+x@####@@z########++++++++++++++++++++*+
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznxnnnnzzzzz##########x@####@@@WWWWWWW@@@@@@@@@@@@@@@##@@@@@@@M*n@@Mz#nn#zz#zn+nx@###@@z##########++++++++####++++++++
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznnxnnnnzzzzzzzz####z#zW@####@@@@WWWWW@@@@@@@@@@@@@@@@#@@##@@@@#+W@@@@n+nxnzzzn+zzM@##@@z###########+++++##zzz####++++#
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznnnnnnnnzzzzzzzzzzzzzzzW@####@#@@@WW@@@@@@@@@@@@@@@@@@@#####@@M*n@@@##@M##xxzzn+##nW##@Mzz#z#zzz#########zzzzzzzz#####z
zzzzzzzzzzzzzzzzzzzzzzzzzzzzznnnnnnnnzzzzzzzzzzzzzzzzzW@@@@@@@@@@@@@@@@@@@@@@@@@@@########@#@z#W#@####@Wn+nxnn###x@@@Wnzzzzzzzzzzzz##zzzzzzzzzzzzzz##z
zzzzzzzzzzzzzzzzzzzzzzzzzznnnnnnnnnnzzzzzzzzzzzzzzzzzzW@@@@@@@@@@@@@@@@@@@@@@@@@@@########@@W+n@@#####@@@M#zxx##M@@@Mnzzzzzzzzzzzzzzzzzzzzzzzzzzzzz##z
zzzzzzzzzzzzzzzzzzzzzzzzzznnnnnzzzzzzzzzzzzzzzzzzzzzzzM@@@@@@@Wzx@@@@@@@@######@@@########@@n+W@@########@Wz#x#z@@Wxnznnzzzzzzzzzznnnnnnnnzzzzzzzzz##z
zzzzzzzzzzzzzzzzzzzzzzzzzznnnnzzzzzzzzzzzzzzzzzzzzzzzznWWM#***;iMWMW#@#@@####@@@@@@#######@W+n@@@#########@Wxnzx@Wnzzzzzznzzzzzzznnnnnnnnnnnnnzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzznnxnnzzzzzzzzz##zzzzzzzzzzzzz;+z#:,.,;x@WMzM#@#####@@@@@@########@n#W##############@MxWWnzzzzznnnnnzzzzznnnnnnnnnnnnnnnzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzznnxxnnzzz#zzz##########zzzzzn#;i**,,,:+W@@@WM@#####@@@############W+n@################@@xznnzzznnnnnnzzznnnnxxxxxxxnnnnnnnzzzz
zzzzzzzzzzzzzzzzzzzzzzzznnxnnz################zzznnn*,.,::,.:+W@@@@@@@#@@@@@@##@@@#######@n+W################@@Mnnnnznnnnnnnnnzzznnnnxxxxxxxxxxnnnnnzn
zzzzzzzzzzzzzzzzzzzzzzznnnnzz##+++++++++######zznnn+``..::,,*x@@@@@@@@##@@@@@@@@@@####@#@W+n@################@@xnnnnnnnnnnnnnzzzzznnnxxxxxxxxxxxxnnnnn
####zzzzzzzzzzzzzzzzzzznnz##++++++++**+++####zzznnn:....,:,*z@@@@@@@@@#@@@@@@@@@@@#####@@n#W#################@Mnnnnnnnnnnnnnnnzzzznnnnnnnnnxxxxxxxxnnx
###zzzzzzzzzzzzzzzzzzzzzz#+++++++++*****+####zzzzn*``...,:;+W@@@#@@@@#@@@@@@@@@@@@####@@W#n@#################@xnnnnnnnnnnnnnnzzzzzznnnnnnnnnnnnxxxxnnx
zzzzzzzzzzzzzzzzzzzzznz#++++++++++*****++#####zzzz:```.,,;;z@@@@@@@@##@@@@@@@@@@@@####@@n#W@@################Mnnnnnnnnnnnnnnnzzzzzzznnnnnnnnnnnnnnnnnx
zzzzzzzzzzzzzzzzzzzznz##++####++++++**++##########:````,:i*W@@####@####@@@@@@@@@##@@@#@@#n@@@###############@xnnnnnnnnnnnnnnnzzzzzzznnnnnnzzznnnnnnnnx
zzzzzzzzzzzzzzzzzzzzz#+++######+++**+++###########;,``,;;iM@@@#########@@@@@@@@@##@@@##@zM##@##############@Mnnnnnnnnnnnnnnnnnzzzzzznnnnnnnnnnnnnnnnnn
zzzzzzzzzzzzzzzznnz###########++++**++####+++++++#+;::;;#M@@@@#############@@@@@##@@@#@#W@@#@#############@Wxnnnnnnnnnnnnnnnnnnzzzzzzzzznnnnnznnzzzzzz
zzzzzzzzzzzzzznnnnz###++#####++++++++####+++++++++##*+#M@@@#@@############@@@@@@@@@@@@@Wn@@##############@Mxnnnnnnnnnnnnnnnnnnnnzzzzzzzzzznnnnzzzzzzzz
zzzzzzzzzzzzznnnnz#++##+++++++++++++####++++++++#+###znW@@@@@@###########@@@@@@@@@@@@@M+iW##############@xnnnnnnnnnnnnnnnnnnnnnnnzznnzzzzzzzzzzzzz###z
zzzzzzzzzzzznnnnz##++##++++++++++++#z##+++++#+++####zznW@###@@##########@@@@@@@@@@@@@x;;iM##########@@@Wxnnnnnnnnnnnnnnnnnnnnnnnnnnnnzzzzzzzzzzz#####z
zzzzzzzzzzznnnnzz##+###+++++*+++##zzz#+++*++#++####zzzxW@###########@@#@@@@@#@@@@@@@M;,i*W#########@WWMnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnzzzzzzzzz#######
zzzzzzzzzzznnnzz###+#++++#++*++#zznzz#++++++######zzzznW@@@@######@@@@@@@@@###@@@@@Mi,iix@#########@Mxnznnnxnnnnnnnnnnnnnnnnnnnnnnnnnnzzzzzzzz########
zzzzzzzzzznnnnz###++#++++#+###zznnnzz#++++++#####zzzzzzMW@@@####@@@@@@@@@@@MxMWWWWx;,i*x@@########@Mnzznnnnxnnnnnnnnnnnnnnnnnnnnnnnnnnzzzzzzz#########