zzzzzzzzzz#znz+***++*****+++++**********+##########**************+++++########zn#zznnn*iiiiiiiiiiiiiiiiiiiiiiiiiiiiii*+##z#+*
zznnnznnzzzzz#**+##+***++++#####++**++*++##########++++###++++++++#+#######zz##z#zznnn*iiiiiiiiiiiiiiiiiiiiiiiiiiiiii*+##z#+*
nnnnnnnnnnz#++*+##+++++#########+++#+##++#+++++++++###+**++zzz####zzz######zz##z#zzznn*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiii+##zz++
nnnnnnnnzz#+**+#z##+++##++++++++++++##++++++++++++#+i;::::::i#*#*;;;i##########z#zzznz*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiii+##zz++
zznnnnzz#+++##+####+++++++++++++###z#+++++++++++#z*;:::::::::i;;;::::*z######++z#zzznziiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii+##zz++
zzzzzz#####+#########+++++++++##zzz#++##+++++###z+::::::::::::::::::::#z#####+#z#zznnziiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*##zz#+
#########################++##zzzzz##++#####+#z+ii;::::::::::::::::::::*zz###++#z#zznnziiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*###z#+
###zz#zzzzzz#####z###########zzzz###+########i:;::::::::::::::::::::::;;n#+####z#zznnziiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*###z#+
zzzzzzzzzzz###zzzzz########zzzzz############i::::::::::::::::::::::::::;#######z#zznnziiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*###z#+
#zzz#zzzzz#zzzzzzzz######zzzzzzzzzz#######z+::::::::::::::::::::::::::::;;#z###n#zznnziiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*###z#+
zzzzzzzzzzzzzzzzzzzzzzzzzzznnzzzzzzz###z##z*::::::::::::::i;::;;::::::::::*z##zn#zznnziiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*###z#+
zzzzzzzzzzzzzzzzzzzzzzzzzzzznzzzzzz####z##zi:::::::::::::i#*i*#ii*;::;::::izzzzn#zznnziiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*###z#+
zzzzzzzzzzzzzzzzzznnzzzzzzzzzzzzzzzzzzzz#zzi::::::::::;i**;iiii*i*+*+#i:::*nzzzn#zznnziiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*###z#+
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznn#;:::::::::;i+*;;i****;:;;i+i:::;n#zzn#zznnzi;iiiiiiiii;;;;;;;;;;;;;;;;iiiii*###z#+
zzzzzzzzzzzznnnzzzzzzzz#zzzzzzznnzzzzznnz;::::::::::::;*i;;i*;;i*+***++::;+z#zzn#zznnzi;ii;;;;;;;;;;;;;;;;;;;;;;;;;iiii+##z#+
zzzzzzzzzzznnnznnnnnnnzzzzzzzzzzzzzzzznni:::::::::;::::*ii*+*i;;;;i;i*#i:*zzzznn#zznxzi;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ii+##z##
nnnzzzzzzznnnnzzzzzzznnnnzzzzzzzzzzzzzz#;:::::::::::::i*;;;;;;;;;;;;;i#*;#nznnnx#zznxzi;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ii+##z##
nnnnnnnnnnnnnnnzzzzzzzznnnnnznnnnnnzzzz+;::::::::::::i*;;;iii;;;;;:;;;;*+nnznnnx#zznxzi;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ii+##z##
nnzzznnnnnnnnnnnnzzzzzzzznnnnnnnnnnzzzz#;::::::::::;;+i;;*****i;;;;;;iizxnnnnnnx#zznxzi;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ii+##z##
nnnnnnzzzznnnxnnnnznnnnnnnnnnnnnnnnnnnnni::::::::::i;*;:**;;;i*;;;;i+**+znnnnnnx#zznnzi;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i++#z##
nnnnnnnnzznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnz;:::,:::;::i+**+;;;:;;i;;;*i;;;iznnnnnx#nznnzi;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i++#z#z
xxxxxxxnnnnnnnnnnnxnnnnnnnnnnnnnnxxxxnnx+::::::;**;*##nn#*iiii*+;;*i;i:;;+nnznnxznznnzi;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i++#z#z
#####zz##########################zz####z*::::::+**+i*i**:` .+i;#;;i+i;iii#Mnz##nznnnnz;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i++#z#z
####################################+####;::::;##+z#iii;:```;.:i;;:i;..*i*x#+###zxznnzi;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i++#z#z
########################################z#;:::i****#i;;:i:```,*;;;;;;.`,,*z###zzznnzxzi;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i++#z#z
#########################################+::::+****+*:;;:;i;i*ii;;;;:i,,ii#z#z###znxxzi;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i+++z#z
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz#:,:i#****+i;;;;i;;;i*i;;;;:i**i;i##zzzzzznMz;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i+++z#z
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxi:;++#****;;;;;*****;;;;;;;;++*i;*nxxxxxxxxn;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i+++z#z
nnnnnnnnnnnnnnnnzzznnnnnnnnnnnnnnnnnnnnnznz**i;****;;;;;;;;ii*;;;;;;;i*;;;:;#xxxxxxxxn;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i+++z#z
+++++++++++++++++++++++++++++++++++++++++++z+;;;;;;;;;;:;i**ii;*;:;;;i*;:;:;i#++#+++*i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i+++z#z
;;;;;;;;;;;;;;;iiiii;;;;;;;;;;;;;;;;;;;i;;i+i;;;;;;;;;;i**;;;;;**ii;;i*;;;:;;+i;i;;i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i+++z#z
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;+*:;;;;;;;;;;**;;;:;;;;i*ii*i:;;:;;*i;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++z#z
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i+;;;;;;;;;;;i*;;:;;;;;:;;**i;;;;;;;i*;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++z#z
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+i;;;;;;;;;;i*;;:;:*zz**;i;;;i;:;;;;;*;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++z#z
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;**;;;;;;;;::;ii;;;;;x@@@Mn+**ii;:;;;;;*;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++z#z
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;+i;;;;;;;;::;i;;;;:*M@#@#@z++i;;:;;;;;*;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*++zzz
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:*+;;;;;;;;;:;;;:;;;;;x#@##Mi:;;;;;;;;;;*i;;;;;;;;;;;;;;;;;;;;:;:;;;;;;;;;;;;;;;*++#zz#
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:+i;;;;;;;;;;;;;:;;;;;*M@@#ni;:;;:;;;;;;*i;;;;;;;;;;;;;;;:::::::::::::;;;;;;;;;;++#zz##
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iii*+;;;;;;;;;;;;;;;;;;;;;*#xMn+*;;:;;;;;;;*i;;:;;;;;;;;;;;;:::::::::::::;;;;;;;;;;+++z###
::::::::::::;;;:::;;;;;;;;;;iii*+++###n*;i;;;;;;;;;;;;;;;;;;;;;ii*i**;;;;;;;;;ii;::;;;:;;;;;;;;;;::::::::::::::::;;;;;*++##**
::::::::::::::::;;;::;;;ii*++++#######z;;i;;;;;;;;;;;;;;;;;;;;;;;;;;i;;;;;;;;;ii:;;;;;::::::::::::::::::::::::::::;;;:*++##++
:::::::::::;;;;:::;;ii**+++########++##;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;*i:::;;;;;:::::::::::::::::::::::::::::;*++#z##
::::::::::;;:::;ii**++######++###+##zn*;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++*;::::::::::::::::::::::::::::::::::::i+++znz
:::::::::::;iii**++####+###+++#####znn;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:;;;;;;;;;###++*;::;::::::::::::::::::::::::::::::;*++zz#
::::::;;;ii*++++######++++########zn+zi;;;;i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;++++zz#+i;;:::::::::::::::::::::::::::::;*++z#+
:::::;ii*+++###########+++#######znn*#i;;;;i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;##++###z##+*;:::::::::::::::::::::::::::;*++z#+
::;i*+++##z#############+++zzzzznz#+*+*;;:;i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:iz#++##zzz#zzz+*;::::::::::::::::::::::::;*++z#+
*+######+++##############++#zznz+****++i;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:+zz#++######zzzzz+*i;::::::::::::::::::::;*++z#+
#######+++++#########z####++zz+****+**+*;;i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:;#zzz#+#zzzzzzzzzz#++z#*i;::::::::::::::::;*++z#+
##########+++#####zz###zz##z#+*********#*;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#nzz###zzzzzzzzzzz#+#zz##**i;::::::::;:::;*+#z#+
###########++###zzzz#zzzznz+***********+#*i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*zznz+#zzzzzzzzzzz#+#zzzzzzz###+***i;;:::;+*#z#+
#########zz#++#zzzzzzzznnz**************+#i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;znnz##zzzzzzzzzzzz#+zzzzzzz#zz#++###+*i:;+*+z#+
#####zzzzzzz#+#zzzzzzznnz**+*************++ii;;:;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;#znn##zzznzzzzzzzz#+#zzzzzzz#z#+++####+****+z#+
##zzzzzzzzzzz##zzzzzzzn#******************++*;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;#*+nz##zznzzzzzzzz#+#zzzzzz#zzz#++###++##+++z#+
#zzzznnnnzzzz#+#zzzznn#********************+#i;;;;;;;;*+i;;;;;;;;;;;;;;:;;:;;*#**#n##znzzzzzzznzz##zznnnz#zznz++###+######z#+
+zzznxnnnnzzz###znnnn#*********************+++i:i;;;;:;i*++*ii;;;;;;i+;;;;;;*#+***zz#znnzzzzznnnz+#znn##zzzz+##++####+++####+
#znxxz##nnzzzz##znnn#************************++i;i;;;;;;;;;i*******+++++**+##+*****z##nznnnnznznz##zn+:;znzi;*#++#####++++#++
#znz#+++zxnnzz#+znn#++************************++;i;;;;;;;:;;;;;;;i;;;;*n++++*******#z#nznnnnnnznnz#zz;;izn*::iz+#zz##++++++#+
++++++++zxnnzzz##x#****************************+#*;;;;;;;;;;;;;;;;;;i*z#+********+**zzznnnnnnzzznz#z+;;izz;;;*z#z+zz#++++++++
++++++++#zxnnnz#zz*+****************************#x+*i;:;;;;;;;**i*+**+ii#*****+**+**+znnznnnnnnzn##zi;;in+;;;+nzi;*z###+++*++
++++++++++zMnnzzz+*******************************#*+#*i;;;;;;;i*#z*;i*:i#*****#+*****znnnnnnnzznnzzz;:;in*;;;#x*:;iz###+++**+
++++++++++#nMnnn+******************************+**+;:*++*ii;;+++*;i+*::;#*****#+*****#nnnnnnnnx#:;#z;;;izi;;in+:;;#z###++++*+
+++++++++++#xxx#**+****************************+**+i:::;i**+##+*++*;:::;#*****#++*****nnnnnnnnn#:;i#;:;i#i;;iz;;;izzz##++++**
++++++++++++zMx+**+*******************************+*:::::::;;;;;;;::::::#*****#+**+++*#xnnnnnnxni;;*i;;i+;;:i*:;;#zz####+++**
++++++++++++#M#************************************+i:::::::::::::::::::#+****##**+****nnnnnnnxx*;;i*;i+++*iii;;izz######++**
++++++++++++#n+************************************+*:::::::::::::::::::#+****+#*****++nxnnzz##z*;;;;;;iiii*+*;;+zz#z#####++*
++++++++++++z#*************************************+#;::::::::::::::::::#+****+#+***+*+#++*****+*;;:;;:;;;;:iii:+zzzz######+*
+++++++++++#z************************************+**#i::::::::::::::::::#+****+#+**+*******+**+++;;;;;;;i;;;;;;;+#zzz######+*
+++++++++++z#*********************+******++*********+*::::::::::::::::::#+*****##*+********++*+##;;:;;;;*i:;;;;:+#zzzzz####+*
++++#++++++n+****+*******************+++**+**********+;:::::::::::::::::#******+z++***********###i;;;;;;i*;;;;;;+#zzzzz####++
++##+++#++#z+****+***************+**+*****+**********+i:::::::::::::::::#*******##***********++z++;;;;;;;i;;;;;;##zzzzzz###++
++##++##++z#*****+************+++*+++*+#+*+**********+*::::::::::::::::;#*******+z+**********++z++;;;;;:;i;;;;:i##zzzzzz###++
+#####z#++z*******************+#zz#*+*##***********+*++::::::::::::::::;#*****+**##************#+#*;;:;:;;;;;;;#z#znzzzzz##++
#zz###z+++z****************+++++*++####**************++;:::::::::::::::i#*****+*++#**************+#i:;:;;;;;;;inz#zzzzzzzzz#+
#z###z#++#z**+************+#zzzzz#++zn+***************+;:::::::::::::::*+*******++#+**************+#;;;;:;;;:iznz#zzzzzzzzz#+
z###z#+++#z***************+++++++#zz#z+***************+i:::::::::::::::*+********+##+**************+#+i;;i;;*nnnz#zznzzzzzz##
z##zz#+++#z************************+zn+***************+*::::::::::::::;+**********+#+****************##+***+xxnnz##znnnzzzzz#
z#zz#++++#z*************+***********+z+***************+*::::::::::::::;+**********+z+**+***********+**++++#nxnnnz##znnnzzzzz#
#zzz#+++++n*++****+******************+#+++************++::::::::::::::i#********+*+z***+***********++++++#nnnnnnz##zznnzzzzz+
#zz#+++++#n+*+****+*******************+#+**************+::::::::::::::i#**********+#***************+#zzxMxnnnnnnz##zznzzznz##
#zz+++++++##***************************##+**+**********#::::ii::::::::*++*****+**+#+*****************+zxnnnnnnnnz##znnzznn##z
zz#+++++++#n+*+*************************#+******+*****++:::i#;::::::::+++******+*+z+*************+*+znnnnnnnnnnnz##znnnnzz#zn
z#+++++++++zz*+**********************++*+#+*+##*******++::;+i::::::::;#+*********z#**************+#nzznnnnnnnnnnz##znnnnzzznn
#+++++++++++z#*+**********************+**##++#zz#++***++i**;:::::::::i#********+z#+**++********+znxn#znnnnnnnnnnn##nnnnnzznnn
#++++++++++++z#*+************************+#+*+++#zzzz#nx*;:::::::::::++***#+++#z#*++*****+**++zxxnnz#znnnnnnnnnnnz#nnnnnzznxn
++++++++++++++n#**************************##***+*+++###+;:::::::::::;#+**+Mxzz#+*****+****+#nxxnnnnz#znnnnnnnnnnnz#nnnnnznnxn
++++++++++++++#zz*****************+***+++*+n#++*******+*::::::::::::;#+*++xxxz#+******+#zxxxnnnxxnnn#znnnnnnnnnnnzznnnnnzxxxn
+++++++++++++++#zz+***************+**##++**+#z++****+*+*::::::::::::i#+**+xxxxxnnzznnxxxnxxnnnxnnnnnzznnnnnnnnnnnzznnnxnnxxxn
++++++++++++++++znn+******+********+#z+*****+##*******++::::::::::::+#***#MMMxnxxxxxxnzznxnnnnnnnnnn#znnnnnnnnnnnzznnxxnnxMxn
+++++++++++++++#znxxz+************+##**++##++#n+******+#:::::::::::;#+***#MWWMxxxxxxxnzznxxnxxxnxxnnzznnnnnnnnxxnzznnxxnnxxxn
++++++++++++++###nxnxn+**++*+****+z#+*++*i;;;;+#*******#i::::::::::i#****#WWWWWMxnxxnnzznxxnxxxxxxnnznnnnnnnnxxxnzznnxxnnxxxn
+++++++++++####z#nxxxxxz+*****+**##**+*i;;;:;;;++******++;:::::::::i#****zWWMWWWMxxxnnznnxxxxxxxxxnnznxnnnnnnxxxnzzxnxxnnxxxn
+++++####zzzzzzzzznxxxxMxz+***+*+z**#*;;;;;;;;;i++******#*i*+#####+z#****znxMWMWWMxxnnznnnnnnnnnnnnnznnnnnnxxxxxnnnxnxxnnxxnn
######zzzzzz###zzznnzznzzxnz+*+*++*++;;;;;;:;;;;*z+***+zxxzznnnnnznnnnz#+#n#zMWWWWnzzzzzzzzzzzzzzzzzzzzzzzzzzznnnnnnnnxnxxxnn
#zzzz#zzzzzzzzznzznz##z#n##nWMz+++*#i;;;;;;;;:;;;+#+znxnzzzzzzzzzzzzzznxnxWnznxWMWMzz###########zz#######+###zz#########znxnn
zzzzzzzzzzznn#++#zz###znz#xWWWxnn#++;;;;;;;;;:;*;:zxnnzzzzzzzzzzzzzzzzzzznxMWn#xWWWx##########++############++##########+++#z
z#+#zzzzz##zz##+*+####zz+xWWnzz#zxz#;;;;;;;;;;;*i:znzzzzzzzzzzzzzznxnzzzzzzznxnzMWWM#+########z#+*+######zzz#+++#######z##+++
z#++#zzzzz#zzzz#+++#znn#nWMnzzz+#nMx;;;;;;;i*;;**;znzzzzzzzzzzzzzzznnxnzzzzzzzxnnWWWx+#####zzzzz##++#zz###zzz#++#zzzzz#zzz##+
zz#++#zzzzzzzzzz#++#zn#zMWnzzzn+#znn#;:;;;;;*i;**;#nzzzzzzzzzzzzzzzzzznxzzzzzzznnWWWM#+#zzzzzzzzz#++#zzzzzzzz#+++zzzzzzzzzz#+
zz#++##z#zzzzzzz#+++nz+n@xzzzzn+#zzzxz;;;;:;*i;ii:#nzzzzzzzzzzzzzzzzzzznxnzzzzzzzxWWWz+#zzzzzzzzz#+++#zzzzzzz##++##zzzzzzz##+
#zz+++#zzzzzzzzzz#+#n#zMWnzzzzn##zzxxn#+*;;;+i;ii:#zzzzzzzzzzzzzzzzzzzzznnnzzzzzzznMWn+#zzzzzzzzzz+++#zzzzzzzz#++#z#zzzzzzz#+
zzz+++zzzzzzzzzzz#+#z#nWMxzzzzn##z#xnnz##;;;*;;*i;nzzzzzzzzzzzzzzzzzzzzzznnzzzz#zzznWx++zzzzzzzzzz#++zzzzzzzzzz++#zzzzzzzzzz#
zzz++#zzzzzzzzzzz#+#z#MWnnxzzznz#z#xxzn##;;;*i;*;inzzzzzzzzzzzzzzzzzzzzzznnzzzzzzzzzMW#+zzzzzzzzzz#++zzzzzzzzzz++#zzzzzzzzzz#
zzz#+#zzzzzzzzzzz#+z#zMMznxnzznz#znMMxn##i;i*;;*;*zzzzzzzzzzzzzzzzzzzzzzzznzzzzzzzzzxW###zzzzzzzzz#++zzzzzzzzzz#++zzzzzzzzzz#
zzz#+#zzzzzzzzzzz##z#nWxzznxzznn#zMMxxMz#;;i*;i*izzzzzzzzzzzzzzzzzzzzzzzzzxzzzzzzzzznWz#zzzzzzzzzz#++zzzzzzzzzz#+#zzzzzzzzzz#
zzz#+#zzzzzzzzzzzz#z#MWnznzxnznn#zMMMMWnz;;+i;*;+nzzzzzzzzzzzzzzzzzzzzzzzzxzzzzzzzzzzMz#zzzznzzzzz#+#zzzzzzzzzz#+#zzzzzzzzzzz
nzz###zzzzzzzznnzzzzzMWnnzznxnnnzzMMMMMxz*+#;#nzMnzzzznzzzzzzzzzzzzzzzzzzzxzzzzzzzzzzxn#znzznnzzzn#+#zzzzzzzznz#+#zznzzzzzznz
nnz#+#znnznnnnnnnzz#nWMnnnnzxxnnn#nxMMMx#zxMxWW@Wxnnznnxzzzzzznzzzzzzzzzzzxzzzznzzzzznx#znnznnnnnnz##znnnnnzznz#+#zzznnnnnnnz
nnz###nnnnnnnnnnnzz#nWMnnnnznxxnxn++nnxMz+nMMWWW@MMMxxnxnzzzzznzzzzzzzzzzzxzzzznnzzzznx#znnnnnnnnnz##znnnnnnnnn#+#nzznnnnnnnz
nnz###nnnnnnnnnnnzz#xWMnznnnnxxnnxxMn##zz+nMMWWWWMMWMMMMnzzzzznzzzzzzzzzzzxzzzznnznzzzx#znnnnnnnnnz##znnnnnnnnz###nnnnnnnnnnz
nnn###nnnnnnnnnnnzz#xWWxxnnnnxxnnxxMxxMxz+znnMWWWMxxMMMWMzzzzznzzzzzzzzzzzxzzzznnznzzznznnnnnnnnnn###nnnnnnnnnz###nnnnnnnnnnz
nnn##znnnnnnnnnnnzn#xWMxxxxxnnnxxxnxn###z+zz#xWWWMxMMxMMMnnzzznzzzzzzzzzzzxzzzznnnxzzznnnnnnnnnnnn###nnnnnnnnnz###nnnnnnnnnnz
nnz##znnnnnnnnnnnzn#MWxnnnxxMMxn+#*#iii*#+zzzMWWWn#zzxxMMnzzzznnzzzzzzzzzzxnzzznnzxzzznxnnnnnnnnnn##znnnnnnnnnz##znnnnnnnnnzz
nnzzznnnnnnnnnnnzzn#MWxnnnnnnnnz*#*#ii*#z+znnWWWWxz#++#zxnzzzznnzzzzzzzzzzxnzzzzxzxnzzzxMnnnnnnnnnz#nnnnnnnnnnzzznxnnnnnnnnzz
zzzzzzzz##zzzzzzzzn#MWnz#zzzzzzn+#+xnxxnn#nnzMWWWxnnnn#+#nzzzznnzzzzzzzzzznnzzzzxznxzzzzxnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
##########zz####zzn#xWn######zzxxxxnznnxn#zzzMWWWnzzznMx#nzzzznnzzzzzzzzzzznzzzznnnxzzzzxnzz########z###zzzzz##zzzzzzzzzzzzzz
########zz#####zzzn#xWxzz##zzznnnxxnzzznz#nxnWWWWz###nMMznzzzznnzzzzzzzzzzznzzzznxzxnzznxzzz#####zzzzzzzzzzzz###z##zzzzzzz#zz
zzzzzzzzzzzzzzzzzzn#xWMzzzzzznnznnnxzzzn##nnxWWWWnz#znMWxxzzzznnzzzzzzzzzzzzzzznxMzznnnnnnnnnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzn#nWMzzzzznnnznnzxnzzn##nnnWWWMnzzzzMWMMzzzznnzzzzzz#zzzzzznnnxxnnnMxnz###zznnzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzznnzzWMnzzznxnzznnzzxnzn##nzxWWWMnzzzzxWWMzzzznnzzzzzznznnxzxxz++++i#n+++++*+++nnzzzznzzzzzzzzzzzzzzzzzzzzzzz
nnnnnnnnnnnnnzznznnnzMWnnnnxnnznnxnnnxnn##nnxWWWMnnzznnWWxzzzznxnzzzzznn+i#+z#+++++#x#+*++++*+++znnzznnnzzzzzzzzzzzzzzzzzzzzz
nnnnnnnnnnnnnnnnznnn#xWxnnxxnnnnxxnnnxxz#znnMWWWxnnnnnnMWxzzzznxxnzznn#i;iz#+*+*++++#z++++**+++*+nnnznnnnnnnnnnnnnnnnnnnnnnnn
nnnnnnnnnnnnnnnnnnnx#nWMnxxnnnnnxxnnnnM##nnnMWWWxnnnnnnMWxnxxxxxnnzn#i;;i##+*+++++++*+z#*++***+++#xnnnnnnnnnnnnnnnnnnnnnnnnnn
nnnnnnnnnnnnnnnnnnnxz#WWxMxnnnnnxxnnxnx##xnxWWWWnnnnnnnxWMMxnnzi***i;;;;##+**++++++++++##*+***++++xnnnnnnnnnnnnnnnnnnnnnnnnnn
nnnnnnnnnnnnnnnnnnnxn#xWWxnnnnnnxxnnnnn+#xnMWWWMnnnnnnnnMWWxzzni::::;;;*z++*++++++++++*#z++**+#zznxnnnnnnnnnnnnnnnnnnnnnnnnnn
nnnnnnnnnnnnnnnnnnnxx#nWWnnnnnnnxxnnnx#+nxxMWWWMnnnnnnnnxWWM#+xz;;;;;;i#+************++*#+*+#znnnxxnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxMz#MWxxxxxxxxxxnxx+#xWMWWWWxxxxxxxxxxWWM#+nn;;;;;;+#+*****+**++++++++##znnznxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
MMMMMMMMMMMMMMMMMMMMMx#nWWxMxxxxMMMxMz##MWWWWWWMxMMMMMMxxM@Wz+zz;;;;;*#+*****+++++*+#zzzznnnnnxMMxxxxxxxxxxxxxxxMMMMMMMMMMxxx
MMMMMMMMMMMMMMMMMMMMMMz#xWWMMxMxMMMMx##nMM@WWWMxMxxxxxMMxMMWx+zz;;;i*#+++**++*+++znxnnzzxxxxMMMMMxxxxxxxxxxxxxxxMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMx##WWMMxMMMMMMz+#xMWWWWWMxMxxxxxMMMxxWMzzz*i*##+++**+**+#znnnnzznxn#xMMMMMMMMxxMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMxMn#zMMxMMMMMMz+#nMMWMWWWMMMMMMMMMxMMxMWz+zz#++++++*+*#nnxnnnnnxxnz+zMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMxxz#zxMMMMWMz#+nWWWWWWWWMMMMMMMMMMMMMMxz++z+++++++#nxxnnnnnnnnz#+#zMMMxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMxMMMMMMMMMxMMMMMMMMx#+#zxxxnz#+zM@WWWW@WWWWWWWWWW@WW@Wn#z++z++++#nnnnnnxxnzz++++#nMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMWWWWWz##+##+##nW@@WWWWWWWWWWWWWWWWWWWn++nzzx#+zxMxnnnz#+++++#zxM@@WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMxxxxxxxx
xxxxxMxMMMMMMMMWWWWWWWWWWWWx##++##xWWWWWWWWMWWWWWWWWWWWWWn#+zWM+#z#zz##++++##znxnzxWWWWMWWWWMMMMxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxMMMMMMMMMMMMMMMMMMW@WxxxxMWWWWWWWWMMMMMMMMMWWWnnx+#xWWM#++++++++#nxMMMWWxnMWWWMMMMMMMMMMMMxxnnnnnnnnnnnnnnnnnnnnnnnnn
nnnxxMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWMMMMMMMMMMWWxzz##xWMMWx##zznnxMWMMMMMWW@WWWWWMWMMMMMMMMWWMMxxnnnnnnnnnnnnnnnnnnnnnnx
nnxxxMMMMMMMMMMMMMMMMMMMMMMMMWW@WWWWWWWMMMMMMMMMMMMWWxzz#xWWMMMMMMMWMMMMMMMMMMMWWWWWWMMMMMMMxxxxxMMMxnnzzz#############++++#z
nnnxxMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWMWMMMMMMMMMMMWWMzzMWWWxxnnnnnnxxxxxxxnnnnxMWWMnnnnnnnzzzznnnnz+*********************i**
nnnnnxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMxxxxxxnnnnnxxxWMz#MWWMnnnnnnnnnnnnnnnnnnnnnxnnnnnnnzznnnnzzz#**************************
nnnnnnnnxxxxMMMMMMMMMMMMMMMxxxxxxnnnnnnnnnnnnnnnnnnxWWMMWWWxnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnzz#+****************************
nnnnnnnxxxnnnnnnnnnnnnnxxnnnnnnnnnnnnnnnnnnnnnnnnnnnMWWMWWWnnnnnnnnnnnnnnnnnnnnxxxxxnnnnnnnnz##########++++++++++++++++++++++
xxxxxxnnnz##+++++++++####zzznnnnnnnnnnnnnnnnnnnnnnnnxWWWWWMxxxxxxxxxxxxxxMMxxxxxxxxnnnnnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
nnzz#####+++++++++++#++++++++++#####zzznnnnnnxxxxxxxMMWWWMMMMMMMMMxxxxxxxxxxnnnnnnznnnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
##+++++++#####+++++++++###zzznnnnnnnnnnnnnnnnnnnxxxxnnnnnnnnnnnnnnnnnnnnnzzzzzzzznnzzzzzzzzzznnnnnnnnnzzzzzzzzzzzzzzzzzzzzzzz
##########+++####zzznnnnxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnzzzznnnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
#+###+#####znnnnxxxxnnxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnzzzznzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
#####zznnxnxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnzzzzzznzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
##znxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnzzzzzzzzzzzzzzzzzzzzzzzzz
#nxxxxxxnnxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnzznnzzzzzzzzzzzzzzzzzzzzz