,;*+################################zznnxnnnznnnznxnnnxxznnn#zz#zz+####++++##+++*+****+++*++####z###++z#**+###+####zz###z#####+*i;;:,,..,,..,,,::,,:,,
i*+################################zzznnnnnnznxxnxxxxxnnnnznzzzzzz####z####+++++***++*++++++###z#zzz++#+**+########z##z#####zz#+*i;:::,,:,,,,,,:;:,::,
+##################################znznnnnnzzznxnxxxxxnnnnzznzzznn###zz###+++##+****+*++**++##zzz#zz#++*++#zz#####zz####zzzzz##+**i;::::;:,,::;;;::;::
###################################nnnnnnnxnnznnxxxxMxnnnnxznz##zz###zz########+*+****++**+####zz####+**++#######zz###zzzzzz##+++++*i;;;i;::;;iii;;;;;
#################################zznxnnnnnxnnnnnnnxxxxnnnnxnnzzz###z####+######+++***+++**+##zzzz#z#++*++++#zznz#####zzz#zz####+++++*iiiiiiiiiiiii;iii
##############################+#znnnnxxnnznnnnzznnxxnnxxnznnnzz##+######+#++####+++++++*+*+##zzz#z#+**+++++#zzz######zz##z#+++#####+*****++***********
################################znnnnnxxnzznnxnnnnxnzznnz#zzznzzz###+#####+++####++*+++***+zzzzzzz+***+++++++#+++zz##z#############++++#++#+++++++++++
##########################+#####znxxxnnxnnznxnnxnnnnnxnnnnznnznzz##+#z#zz#++##+#++++*+++++###zzz##+++*+*++++++#########+##+#+###++#+++++++++++++++++++
###############################zznxxxxnxnnnnnnnxznnnnnnxxnnnnzzzz##+#zzz##++######++++++++##zzzz##++++++#######z########+++##zz#++++++++#+++++++++++++
##############################znznnnxxxxxnnzznnzzznnnnnxxxnzzzzzzz##zzzz####zz#####+**+++##zzzzz#++++++#zz##+###++##++##++#####+++++++++#+++++++++++++
##############################nnnznnnxxxxxnzzzzzzznxnnxxxxnnnnzznz##zzzzz#zzzz#zz###+++++#zznnz##+##+##z###+++++*+z#####++####+++++++++##+++++++++++++
#############################zznnnnnnnnnzxxxzzzzzznnnznxxxxnxxnnnnzzzzzzzzznzzzzz###+++++##znnz#+##+#zz##++++###++####zz####+++**+##++++#+++++++++++++
############################zzzznnnnznnnnnnnz###znnxxnxxxxxxxxxxnnnnnnnznnnnnzzznzz#++##++#zzzz#+####zz####++########zz###+++++**+##++++++++++++++++++
############################znzznzzznnxxxnnnnnz#zznnxnxxxxxxxxxxxxxxxxnnnnxxnnnnnnzz#++##+#zzz#####z#+##############zz#+++++#++**+####++++++++++++++++
###########################zznnnnzzznnnxxxnznnzzzznnxxxxxxxxxxxxxxxxxxxxnnnnnnnnnzzzz#####zzz#zzzzz##+#z###zz#+###+####++++##+++++##zz#++##+++++++++++
###########################znnxnnnnnnnnnnxnznznzzzznxxxxxxxxxxxxxxxxxxxxxnnnnnzzzzzzzzzzzzzzzzzzzzz###z##zzzz####+++#++++++##+++###zzz#+###+++++++++++
####################++#####znxxxnnxxnnnnnnzznzzzzzznxMMxxxxxxxxxxxxxxxxxnnnnnnnnnnzzzzzzzzzzzzzzzzz###zzzzz##++#++*+++##+*+#+++##zzzz#++#+++++++++++++
###########################nxxxxxnxxnnzznzzzz#zznnnnxxxxxxxxxxxxxxxxxxxnnnxnnnnnnnnnnnzzzzzzzzzzzzzzzzzzzzz#+++####+####*+#####zzzzz##++++++#+++++++++
#########+++######++#######zxxnxxnnnnnzznxnzz#z#zznxxxxxxxxxxxxxxxxxxnxxnnnnnnnnzzzzzzzzzzzzzzzzzzzz#zzzz#####zz###+##+######zz#######+#++++++++++++++
##################+++######znnnxxnnnnnnnnnnzznz##nxxxxxxxxxxxxxxxxxxxxxnnnnzzzzzzzzzzzzzzzzzzzzzzzzz####z##z#zzz#z#######+++########z#++++++++++++++++
####################++####zznnxxxnnnnnnnnzzzznnzznxxxxxxxxxxxxxxxxxxxxnnnnzzzzzzzzzzzzzzzz##zzz#zzzzz###zzzzzzzzzzz#####+++###+++#zzz##+#+++++++++++++
###########################znxxxxxnnnnnnnz#zzznzzznxxxxxxxxxxxxxxxnnxnnnnnzzzzzzzzzzzz##z##zzzzzzzzzzz###zzzzzzzzzzz#+#z+#####+++#zz####++++++++++++++
###########################znnnxxxnnnxnnz#znnzzzzznxxxxxxxxxxxxxxxxxnnnnnnzzzzzzz#########zzzzzzzzzzzz#####zzzzzznnz#+##+##+###+###zzz##++++++++++++++
###########################zznnnxnnnnnnnnz#zxnzzzznnxxxxxxxxxxxxxxxxnnnnnnzzzzzzzz#########zzzzzz############zzzznn#+###+*++#zz##+#zzz#++##+++++++++++
###########################znnnxxnnxxnznnnz#nnzzzznnxxxxxxxxxxxxxxxnxnnnnnzzzzzzz##########zzzzz#zz############zznn#+##++*+++#z##+#######+++++++++++++
###########################znxnxnnnnxzzzznz#zz###znnxxxxxxxxxxxxxnnnnnzzzz####z#####++##############++++++++####znnz##++++##++####z###z#++++++++++++++
###########################znxxnnzznnnz##z#+#z##znnnxxxxxxxxxxxxnnnnnnzzz##++++++###++++++#########+++++++++#####zz####++++++++######zz###++++++++++++
###########################zznnxnnnnnnz####++#z#znnnxxxxxxxxxxxxxnnnnxnnzzz####+++++****++++#++++++++++++++++####zz#+#+++**++++*++++#z#####+++++++++++
###########################znnnnnnxxnzz##z####z#zznnxxxxxxxxxxxxxnnnnnnzzz##zz###++++**++***+++++++++**+*+++++###zz#+##++**+*****#####zzz+++++++++++++
###########################znnnnzznnzzz###z######zznxxxxxxxxxxxxxnnnnzzzz#########zz######++#####++*******+#+*+#######+++****++++#z##zzzz+++##++++++++
###########################znxxnzzz#zz##########zznnxxxxxxxxxxnnxnnnnnzz###+++###############++####+*iii***++++##z###+***++*++++#zzz#zzz######++++++++
##########################zznxxnzz##zzzzzzz####zznxxxxxxxxxxnnnnnnnnnnzz###++####+++####+#++++*+++##+**ii***++###z##+*****++++++#znz#znz###+++++++++++
#####################++####znxnzz###znzzznz##zznnxxxxxxxxxxxnnnnnnnnzzzzz##+++###++++###++++++++**+++##+****++#####+**++****+###znzznnnzz##++##+++++++
#######+################+##znnzz###zzzz#zz##zznnnxxxxxxxxxxxxxxnnnnnnnzz##++++++++++++++++++++++++***+###+**+++####+*+++**++#zzzznnnnnzzz##++#++++++++
##############+#########+#znnzzzz##zz###z#zzznnnxxxxxxxxxxxxxxxxxxxxxxnnz#++**+++***+++*++*++++#++++***####**+#####++++#++####++zzznnnzzz##+++++++++++
######################+###znnnzzz########znnnnxxxxxxxxxxxxnnnnnnnnnnnnnnnzz#+++***************++#++++**++##+*++#zz#+++##+++*+**+z##znnnz###+++++++++++
###################+##+###znnnzzzz###zzzznnxxxxxxxxxxxxxxnnnnnnnzzzzzz#zzz#####+++++++*++*+*********+++**+####+#z##+**+**+*****+###zzzz###++++++++++++
##################++######znnnnzzzzzzzzzznnxxxxxxxxxxxxxxxnnnnzzzzzzzz##########################++++++++++##++##zz#++*****+*++*###znznnz#+++++++++++++
###################++#####znnnnzzzzzzzzzznxxxxxxxxxxxxxnxnnzzzzzzz########++++#####+############zzz##+++++++++##zz#+**++++++###zzzznnnnz##++++++++++++
##########################znnnz######zzzznxxxxxxxxxxxxxnnnzzzz##########+***++####+++########++##########++**+##zz#*i*+*+++###zzzzznnzzzz#++++++++++++
##############+############znzz#++####zznnxxxxxxxxxxxxxnnzzzz#######++++*****+++++++++#+++++++++#+++++++###+++#####+***ii**+*+z++++znz#z##++++++++++++
###############+++#########znz##z#++###nxxxxxxxxxxxxxxnxxxnzzzz#z#++++**+***********++##++*****+**++****+++##+##zz#+++**+ii**+###zzznnzz#+++++++++++++
###########################znnzzz####zznnxMMxxxxxxxxxxnnnxxnzzzzzzzz#++******iiiiiii**++**ii*************++++####zzz#+*++++**+#zznnznnzz#+++++++++++++
###################+##+####znnnzzzzzznnnnxMMxxxxxxMMMMMMMMMMMxnnnzznnnz#+*+++*iiiiiiiii**iiiii*****iii****+++++##zzzz#+++#+*++#znnnnzzzz#+++++++++++++
###################++++##+#nxxnnnnnnnxnnxxMMxxxxMMWWWW@@@@@@@@WWMnnnxxnzz###++++******iii*********iiiiiiii*+++++#zzzz+++*#++####zznnnz##++++++++++++++
###################+++###+#nxxxxnnxxnnxxxxMxxxxMWW@@W@@@@@@@@@@@WWWWWWMMxz+#zzzzz#++++++*+++********iiiiii***+++#zzzz#+++++++++##znnnz#+++++++++++++++
###########################nxMMxnnnnzzxMMMMxxxMWWW@@@@@@@@@@@@@WW@@@W@@WWxznxxxxxxMxxxxnnzzz###+*++**iiii***++++#zzzzzz#+****++++#z##z#+++++++++++++++
###############++##########nMWMnzzzz##nxMMMxxMW@WW@@@@@@@@@@@@@@@W@@W@@@@WWxnz+++#zz#znxMMWWWWMxMMMMMxxn#znz##++#zzzzzz####++*####z###z#+++####++++##+
###########################nMMxnzzzz#znxMxMxMM@W@@@@@@@@@@@@@@W@@@@@@@@@@@@WMn#####++++#zxMW@@@W@@@@WWWWMMWWWMnzzzzzzzzz##########z##z###+++++++++++++
#######################+###nMMxnzzzznnznMMxxMnM@@WW@@@@@@@@@@@@@@@@@@@@@@@@@Wxzznznnz##nMW@@@@@WWW@WWWWWWMWWWWWWMMnzzzznnzzz#####z######++++++++++++++
##########+########+###+##zxMxxxnzzzznnnMMxMMxM@@@@@@@@@@@@@@@@@WWWW@@@@@@@@@WMxnzxxnnnM@@@@@@@@W@WWWWWWWWWMMWWWWWMxnzzzzzz#++####+###+++++++###++++++
##########+############+##zxxxxxn###zzznxMMMWWW@@@@@@@@@@@@@@@@@@W@@@@@@@@@@WWWn#+++zxW@@@@@WW@@@@WWWWWWWWMMMMWWMMWMxn#zzz#+++##z####+++++++#####+++++
#######################+###nxxxxn##zzzznMMWxM@@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Wz++++#xW@@@@@@WW@@@WWWWWWWWMMMMMWMWWWMMz#z#####z##zz###+++#####++#+++++
#######################+###nMxxxxnznnnnxMMWMW@@@W@@@@@@@@@@@@@#@@@@@@@@@@@@@@@Mz##++zM@@@@@@@@WWWWWWWWWWWWMMMMWWWWWMWWx####z##z##zz####+++++#+++###+++
###########################nxxxxxnnnnnxMxxMM@WWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Mz###znM@@@@@@@@@WWWWWWWWWWWWMMMWWWWWWWWMz#+#z++znnnz#+##+++++#+++++++++
###########################zxxxxnnnnnnxMMxxM@W@@@@@@@@@@@@@W@@@@@@@@@@@@@@@@@@Mz###znM@@@@@@@@@@@@@@@@@W@@WWWWMWWWWMWWWx*++#+#xWMnz#+#++++++++#+++++++
###########################znxxxxnnnnxxMMxxM@W@W@@@@@@@@@@WW@@@@@@@@@@@@@@@@@Wxz#+#zxW@@@@@@@@@@@@@@@@@@@@@WWWMWWWWWWWWM+**#*+MWMxz####+++++++++++++++
############################nxxMxxnxxxxxxxxM@@@@@@@@@@@@@@WWW@@@@@@WWW@@@@@@@Wn#+*+zxWW@@@@@@@@@WWW@@@@@@@@@WWWWWWWWWMWW+*+#+zMMMnz#+##+++++++++++++++
############################nxxMMxxxxxxxxxxMW@@@@@@@@@@@@@@WW@@@@@@WWW@@@@@@Wxn#**+zxMW@@@@@@@@WWWW@@@@@@@@@@@WWWWWWWMMW+i+#zxMMxz##++#+++++++++++++++
############################zxxxxxMMxxxxMMxxW@@@W@@@@@@@@@@@@W@@@@@WW@@@@@@WMnz#*i*#nxM@@@@@@@@WWWW@@#@@WW@@@@@WWWWWMWWM#nn#zxxMnz##++++++++++++++++++
############################znxxnxMMxxMMMxxxW@W@@@@@@@@@@@@@@W@@@@WWW@@@@@@Wxnz+***#nxM@@@@@@@@@WWW@@@@@WWW@@@@WWWWMMWWWxMn++nxMnz##++###+++++++++++++
#############################nxnnxMxxxMMxxxxM@@@@@@@@@@@@WWW@WW@@@W@@@WW@WMxnz#+***+znxW@@WWWW@@@@WW@@@@WWWWW@@WWWMMMWWWnz#*+zMMnz##+##+###+++++++++#+
#############################nxxnxMxnxMMxxxxMW@@@@@@@@@@@WWWWW@WW@@@@@W@WMxnnz#++***#nxMMW@WWWWW@@WW@@WWWWWWWWWWWMMMMWWM#+++#nxxxz####+++##+++++++++#+
#############################zxxxMMxnxMMxxMMxMW@@W@@@@@@@@@@WW@WW@@WW@@@Mxnnz##++***#nxxnM@@WW@W@@@W@@WWWWWWWWWWWWWWWWWM###zznxxnz#########+++++++++++
########+####################znxxMMxxxMxxxxxxxM@@@@@@@@@@@@@@@@@@@@@@@WMxnzzz##++++++znnzxW@WW@W@@@@@@WWWWWWWWMMWWWWWWWx#znnnxxxn###++###+++++++#++++#
#######++#####################nxxxMMxxMMxMxxxxxMW@@@W@@@@@@@@@@@WW@@WMnnnzzzzz###++++##znnMW@WW@@@@@@@WWWWWWWWMMMMMWWWWnznnznxxxz###+++##+++++++#++++#
#######++#####################nxxxMMxxMMMMxxxxnnxW@@@@@@@@@@@@@@@@WMnnzzzznnzzz###++####znnM@@W@@@@@@@@@WWWWWWWWMMMWWWMnznzznxxnz##++++##+++++++##+++#
########+#####################znxxMMxxMMxMxxxxnnzxMW@@@@@@@@@@@@@Mnz#zzzzznnzz####++#####z#nM@@W@@WW@@@WWWWWWWWWMMMMWWxnnnnznxxz###+++++++#######+++##
+#############################znxxxxxxxxxxxxnnnnzznxMW@@@@@@@@WMxz####zzznnnzz####+#####+++#nMW@W@WWW@WWWWWWWWWMMMMWWMnnnnzznxnz#+++++############++++
###+++++++####################znnxxxxxxxMxxxnnnnnnzznnxMWWWMMxxz#**+##zzznnzzz####+++##++**+#nM@@WW@WW@@W@@@WWWMMMWWMxnznnzzxxz##+++++############++++
++**iiiii**+++#################znxxxxxMMMxxxxnnznzzzzzzzznnzz#+***+#zzzzznnzzz###++*+++****+++#n@WWW@@WWWWWWWWWMxWWMnnn#xnznxnz###++++++##########++#+
i;;:::::;;;;ii*++##############znxxxxxMMxxxxnnnznzzzzz#zznz++++**+znnzz#zzzzz####+*********##+**zM@@WW@@WWWWWWWMMWMnzxz#Mn#nxz#+##++++++###++#++++++##
::,,,,::::::::;i*+##############nxxxxxMMxxxxnnnzzzzz###++++**+++#zznnzz##zzzz###+***ii****+###+**+nW@@@WWWWWWWWMMxnznxznMzznnz#+#++++++##+++++++++++++
....,,,::,,,,,::i+#########+####zxxnxxMMMxxxxxnzzzz###z#++**++##znnnzzz##zzz##++*iii;;*+*+#####+***#xWW@@@WWWMxnzzznnnnxxznnz###++++++++++++++++++++++
``..,,,,,,,...,,;*#########++###zxxxxxMMMMMMMxxnnzz####z#++###zznnnzzzzzzzzz##+i;;ii;;*+########++**+#zznnz#z#+###zznnnnnnnz###+++++++++++++++++++++++
```.,::::,.....,:*#########++###zxxxxxxMMMMxxxxnnzz#####z###zzzznnnzzzzz##zz##+i::;iii*+########+++*iii****+*++###zznnnznxn###+##+++++++++++++##++++++
``.,;i**i;:...,,;*#########++####nxxMMxMMMMMxxxnnnznnzzzzz#zzzzznnz##+++##zz##+i;;*****++++++++###++***iii*+**+++#znnxnzznz###+##+++++++++++++###+++++
 `,;*####+;:,,::;*##########++###znxMMxMMMMMxxnxnnnnnnnnzzzzzzznnnz##+*i*##z##+***+**i*++iiiii+#zz###++****+***+##znxnzzzzz######+++++++++++++++++++++
`.:*+####+*i;:;;i*##########++####zzxxxxMMMMMxxxnnnnnnnnzzznzzznnxz##+*ii+#z####++++**iiiiii;;*##zz###++**++*++##zznnnzzzzz##+++++++++++++++++++++++++
`.;+##++##+*iiii*+##################nxxxxMMMMMMxxnnnnnnnnnnnnznnnxnzzz#+*+#z#####+*+++*iiiiiii*##znz###++++++++##zznnnzznz##++++++++++++++++++++++++++
`,i+#######+****++################+#nxxMxMMMMMMxxxnnnnznnznzzzzzznnnxxxnzzzzz#####+++***++++++###znnnzz##+++++##zznnnnznnz#++++++++++++++++++++#++++++
`:*#++#+++##++++++##+#########++##+#nxxMMMMxMMMMxxxnnnnnzzzzzzzzznxxMWWWWxnnnz########zxxxnz####zznxxnzz######zzzzznnzznn#+++++++++++++++++++###++++++
`:*###########################++###+nMMMMxxxxMMMMxxnnnnzzzzzzzzznnzznnnnxMMxnnzzzz##nMWWWWWMx#++#zznxxnzz#####zznnnxxnznz+#+++++++++++++++++++++++++++
`:*+##########################++####nMMMMxxxxxMMMxxxxnnnnzzzzzzzzz######zxxMMxxxnnnzzz##+##+++*+####nxnzzzz#zzzznnxxxxz+##+#+#++++++++++++++++++++++++
.:*+###+#####+################+++###nMxMMxxxxxMMMxxxxnnnnnnnnnzzzzz#####znxnnxxxxnz###+**iiii***+#++znxnnzzzznnnxxxxxnn;;#++++++++++++++++++++++++++++
`:*+##++#####################+++++##nMxxMxxxxxxMMxxxxxnxnnnnnnnnnzzz####zxxzz###+++*#z#+*iii****+++++zxxnnzzznnxxxxxxxz:i##+++++++++++++++++++++++++++
`,i+##++##############++##++++######nMxMMxxnnnxMMMxxxxxxnnnnnnnnnzzzzzz#znnnz##+++#+#z#+****+**++++###nxxnzznnnxxxxMMxz*z#++++++++++++++++++++++++++++
`.;+##+####++++++#####++###+++#####+nxxMMMxxnnxxMMxxxxxnnzznxnnnnzznnnnznnnnz#zz#zz+#nz##+*++**+++####zxxnnznnxxxxxxMxz##+##++++++++++++++++++++++++++
 .:*##+###+++*+++++########+++######nMMMMMxxnnnxMMxMMxxnn##znznnnnnxnzzznxxnz#nz+##+#nz#z#+++**++##+*+#nxxnznxxxxxnnnz#+#+++++++++++++++++++++++++++++
 `.;*+###++******+#++#++##++++#####zxMMMMMMxnnnxMxxxxxxnz++znnxxnnxxnnzzznxnzznz##z#zzz##zz#+##+***++*+zxxnnnxxnxxz#+++##+++++++++++#+++++++++++++++++
 ``,:i****iiiii**+###+###+++#++##zxMMMMMxMxxxnnnxxxxxxnz###nxxxnznxnzznnnnxnzzz#+#nzznz##zzz##+++***+++zxnnnxxnnxnz+++++++++++++++++++++++++++++++++++
 ```.,::::::;;ii*++######+##+##nMW@@WMxxxMxxxnzzxMxnxxnnzzznxxnzznnz#znnnnnnzz#++znzzzzzznzz#z+**+++#+*#nnznxxnnxn#++##+++#++++++#++++++++++++++++++++
````...,,:::;;;i*++###+##+++#zxW@@@WWMMMMMMxxnnnnMxnxxznnnnxMMnzzxnz##znnnnnz##++#z##zznxnz##z#+i**##*i#nzznxnnxxn#++++++++++#++++#++++++++++++++++++#
.......,,,::;;i*+#####+##++#nM@@@@@WWMMMMMMMxxnnnxMxxxnzznxMMMxxxxxnzzznnzzz#++++++++#znn##zz#+#++*+#+*zzznxxnnxxz#+++**iiii*+++++++****+++++++++***++
,,...,,,,::;;i*+##+#####++#xW@@@@@@WWMMMMMMMxxnnzxMMxxxnzznxMMMMMxMxnnnnnzz#++******++#####nz#+zzz##+*+zzznxnnnxn#+++**i;;:::;i*+++i;;;;i*+++++*i;;;ii
;::,,,,:::;;i*+###++####+zxMW@@@@WW@WMMMMMMMxxnnznMMxxMxzznxMxxxMMMxxMxnxnnnz#+****+######znz#zxMxnz#++zzznnnnnxz#++**ii;:::,,,;i*i;,,,:;i+++++*::,,::
+*ii;;;;;ii*+++##++++###zxWW@@#@@W@@WMMMMMMMMxnnznMMxnxxnnznxnxxxxxMMMxxxxxnnnnz##zzzzzzzznnnnnxMMxz++#nznnnnnnn##++**i;;:,,,..,:;;,....,;*+++*;,...,,
##++++++++++##+##++####nMWWW@@@@@WWWWMMMMMMMMxnnzxMMxnnxnznxxnxxnnxnnnxxxxxxxxxxnnnzzznnnnnnnzznxxn#+#zzzznnnnnz++++**ii;:,..``..,,.````,;*+++*:.```..
######++#######+++#++#nMWWWW@@@@@WWW@WMMMxxxxxxnznxMMxnnnnnxnnnxxnnnnznnnnnnnnnxxxnnzzz###zzz##znnz#+zznznnnnxx+iiiii;;;::..`````..`   `.:*##+*:`` ```
#++++++++#+++##+##++#nMWMMWW@@@@WWWW@WMMMMxxxxxnznnMMxnnnnnz#zzxxxnnnnzzzzz####zzz#####++#####zzzzzz#znnnzznxxni::,:::::::,.`   ````   `.:*#++*:`   ``
####+++###+++#+##++#nMWMMWWW@@@WWWWWWWMxxMxxxMxxnnnxMxxnznnnzzzzxxnnzzzzzz#+++++++*++####z++zz##z##z#znnnnnnxx*:....,,::::,.`           .:*#++*:`     
####++++##++++####zxMMMMMMWW@@@WWWWWWWWMxMMxMMMxnnnnxxMxzz#znzzznxxxnzzzz###+++#++*++####++#z#++z###znnnnnnxx#:..```.,:::::,.`     `    `:*#++*:`     
+##+++++++++++#+#zMWMMMWMMWW@@@WWWWWWWWMxMMMxxxxxnnzzxMxz#+#nnnnnnxxxnnz##+#++###+++++++++#zz#+#zz##zxnnnnnxzi.```  `.,:::::.`     ``   `,*+##*:`     
+++******+***+#zxMMWWWWWWWWWW@WWWWWWWWWWxxMxxxxxxnzzznMxn#+#nnnnznxxxxxnz##+++++++++++++#zzz#+#zz#++#nnnnnnn+:..`   ``,:::::.`     ```  `.;i*+i,`    `
****iiiiiiii+#xMWWMMWWWWWMMW@@WWWWWWWWWWMxxMxxxxxnzzznxxxn#znnxnnnnxxxxxnnnnzz########zznzz####zz+++#znnnnn#;,,.``````.,::::.`   `````````,:;;:.`    `
;iii;;::;*+zxWWMMMWMMMMMMMMW@@WWWWWWWWWWMxxMMxxxxxznnznxnnnzznnnnnnnnnnnxxxxxxxxxxxxnnnzzz####zz#+#z##znnnzi:;;:.``...,,,:::.`   `....````.,,,,`   ```
:;iii*+nxMMMMMMMWWMMMMMMMMMWW@WWWWWWWWWWWMxxMMxxznnxxnnxnxn#nnnnnnnnnnnnxxnnnnnxnnxxxnz########z##zz#+#znz+;;**i:,....,,,,,,,.```.,::,.....,,,,.``````
*#zxMWWWWWMMMMMMMMMMMMMMMMMWW@WWWWWWWWWWWWMxxMxxnnxxnnxnxnz#nnnnnnnnzznnnnzzz##zznzzz###++#zz###+##+###nz*ii*+++*;:,,,,,::::,....,:ii;:,,,,,,,,,.`..,,
MWWWWWMWWMWWMMMMMMWWMMMMMMMWWWWWWWWWWWWWWWMxxxMxxnnnzznxzz##znnnnnnnzzznnzz##++##zzz##+#+##z####*+*i*#+n#ii++++++*i;;:::::::::,,::i*+*i;::::::::,,,::;
WWWWWWWWWWWWMMMMMMMMMMMWWMWWWWWWWWWWWWWWWWWMxxxxxzzz##nnzzz##znnnznnzzzzzzzz#+####zz##++##z###++#+*i*++z#*+#++++++++**iiiiiiiiiiii*+#+++*ii;;;;;;;;ii*
WWWWWWWWMWWMMMMMMMMMMMWWMMWWWWWWWWWWWWWWWWWMxxxxxnzz##zznzz##zznzznnzzznznnn#+z##zzzz#####z###++#+*++++#+*++++++++++++++++++++++++++#++++++++**+*+++++
WWWWWWWWMWWMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWMxxxMMxzzzzzz#zzz##zzzzzzzzz#zz###n##nnnzz####z###++#**i*+##+++++++++++++###########+#+#++++++++++#####+##