####MMMMMMMMMMMxxxxxxxxxxnnnnnnnzzzzzz######++++++*******iiiiiiiiiiiiiiiii;iiiiiiiii********++++++######zzzzznnnnnnnnxxxxxxxxxxMMMMMMMMMMMxnxnxMnnzznz
##MMMMMMMMMMMMxxxxxxxxxnnnnnnnnzzzzzz######+++++*******iiiiiiiiiiiii;;;;;;;iiiiiiiiiii*******+++++++#####zzzzznnnnnnnnxxxxxxxxxxxMMMMMxMMMMxnnMxnxxnzz
MMMMMMMMMMMMxxxxxxxxxxnnnnnnnnzzzzzz######+++++*******iiiiiiiii;;;;;;;;;;;;;;;;iiiiiiiii******++++++#####zzzzzznnnnnnnnxxxxxxxxxxMMMMMxxxMMMxn#znxxz#+
MMMMMMMMMMMxxxxxxxxxxnnnnnnnnnzzzzz######+++++******iiiiiiii;;;;;;;;;;;;;;;;;;;;;;iiiiiii******++++++#####zzzzzznnnnnnnnxxxxxxxxxxxMxMMMMMMMMMMMnn#znz
MMMMMMMMMxxxxxxxxxxxxnnnnnnnnzzzzz######+++++******iiiiiii;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiii*****++++++#####zzzzzznnnnnnnnxxxxxxxxxxxMMMMMMMMMxnxnxxnnz
MMMMMMMMxxxxxxxxxxxxnnnnnnnzzzzzz######+++++*****iiiiiii;;;;;;;;;;;;;;;;;;:::;;;;;;;;iiiiiii******+++++#####zzzzzznnnnnnnxxxxxxxxxxxxxMMMxxMMxnxxxxnnn
MMMMMMMxxxxxxxxxxxxnnnnnnnzzzzzz######+++++*****iiiiiii;;;;;;;;;:::::::::::::::;;;;;;;;iiiiii******+++++#####zzzzzznnnnnnnnxxxxxxxxxxxxMMMMMxnznnMxnnn
MMMMxxxxxxxxxxxxxxnnnnnnnzzzzzzz#####+++++*****iiiiii;;;;;;;;:::::::::::::::::::;;;::;:;;iiiii******+++++#####zzzzzznnnnnnnnxxxxxxxxxxxxxxxMMMxnnxMMMx
MMxxxxxxxxxxxxxxxnnnnnnnzzzzzzz#####+++++*****iiiiii;;;;;;;::::::::::::::::::::::::;;;;;;;iiiiii*****+++++#####zzzzzznnnnnnnnxxxxxxxxxxxxxxxxMxxxMMxnz
xxxxxxxxxxxxxxxnnnnnnnnzzzzzzz#####+++++*****iiiiii;;;;;;:::::::::::::::::::::::::::;;:;;;;iiiiii****+++++######zzzzzznnnnnnnnnxxxxxxxxxxxxxxxxxMMnnxn
xxxxxxxxxxxxxnnnnnnnnnzzzzzzz#####+++++*****iiiiii;;;;;;:::::::::::::,:,:::::::::::::::;;;;;iiiiii*****++++######zzzzzznnnnnnnnnxxxxxxxxxxxxxxxxxxxxnn
xxxxxxxxxxxnnnnnnnnnnzzzzzzz#####+++++*****iiiiii;;;;;:::::::::::,,,,,,,,,,,,:::::::::::;;;;;iiiiii****+++++######zzzzzzznnnnnnnnnxxxxxxxxxxxxxxxz##zn
xxxxxxxxxnnnnnnnnnnzzzzzzz######+++++*****iiiii;;;;;;;:::::::::,,,,,,,,,,,,,,,,:::::::::;;;;;;iiiii*****+++++######zzzzzzznnnnnnnnnnnxxxxxxxxxxxxnznz#
xxxxxxnnnnnnnnnnnnzzzzzzz######+++++*****iiiiii;;;;;:::::::::,,,,,,,,,,,,,,,,,,,,::::::::;;;;;;iiiii*****+++++######zzzzzzzznnnnnnnnnnnnxxxxxxxzznnnzn
xnnnnnnnnnnnnnnnzzzzzzzz######+++++*****iiiiii;;;;;;::::::::,,,,,,,,,,,,,,,,,,,,,,::::::::;;;;;;iiiii*****+++++++#####zzzzzzzzznnznznnnnzznnnnnnnxnnnn
nnnnnnnnnnnnnzzzzzzzzz#######+++++*****iiiiii;;;;;::::::::,,,,,,,,,,,,,,,,,,,,,,,,,::::::::;;;;;;iiiii*****++++++######zzzzzzzzznznnzzzzzzzzznnnznzzzz
nnnnnnnnnnzzzzzzzzzz#######++++++*****iiiiii;;;;;;::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,:::,::::;;:::;:;iii******+++++########zzzzzzzzzznnnnzzzzz########+
nnnnnzzzzzzzzzzzz#########+++++******iiiiii;;;;;;::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,:::;;;iiii******++++++########zzzzzzzzzzzzznzz####zzzzzz
zzzzzzzzzzzzz##########+++++++******iiiiii;;;;;;:::::::,,,,,,,,,,,,..........,,,,,,...........,:;;;;iiiiii*****+++++++#########zzzzzzzzzzzzz+###zzzzzz
zzzzzzzz#########++++++++++*******iiii;;;;;:::::,,...``````...`.`````` ``````...,,,......,,,::;;;;;;;;;iiii******++++++++###########zzzzz#######zzz###
##############+++++++**iii;:::::::,,,........,,,,,,...`````````````````````````````````...,,,:::;;;;;;iiiiiii*******++++++++++####################++++
+*++++***ii;;;;;iiiiii**iiii;;;::::::,,,,,,,,,,,.....```````````....``````````..`````````......,,,,:::::;;;;:;ii*********+++++++++++++################
i******i;;:;:::,,,,,.,,,,,,:::::::,,,,..................,,,,,....`````````````````````````...,,,,:::::::::::::;;iiii************++++++++++++++++++++++
;;;;::::;::::::::,::::,,,:::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...................................,,.,,,::::::,::::;;iiii***********************
;;;::;;;;;;::::;;;;;;;;;;;;;;;;;;;;::::::::::,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,,,,:,,,,::::,,,,,::::::::,,,,,,::::::::;;;;;;;iiiiiiiiiiiiiiii
;;;;;;;;;:::::::::::::::::::::,,,:::,,,,,,,,,,,,,,,,,,,,,,,,,,,.............,,.,,,,,,,,,,,,,,,,,,,,..,,,,,,:::::::::::::::::::::,::::::::::::;;;;;;;;;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....,,,,,,,,,,::,,,,,:,:,,,.``.,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,:::::
,,,,,,,,,,,,,,,,,,,,,,,,,:;;;,,::,,,,,,,,,,,,,,,,,:;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,;ii*;*;::;;;:....,::,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,
;::::::::::::;;:;;::::::;i;;;;;;:::::::::::::::::;iiiii;;;::,:::,,,:::::::::::::ii;+xnnzii;i;::::::;+i;::::,:;;:::;:::;;;::::;;i;;;:::;;;;;;:,,,,,,:::
iiiii;i*iiii**+++++#+##*****iiii;;;;;;;;;;;;;;;iiiiiiiiiiiiii;ii;;;;;;;iiiiiiiii**#xxxxxn++*i*;i**i+nz++#+++#z#+*i**i;;;;;;;iiiii;;i;;;;;ii;;;;;;iiiii
**+++**ii***+#zzzzzzzzzz#*ii;ii;;;;;;iiiiiiiiiiiiiiiiiii;;iiiiiiiiiiii***iiiiii;;*xxxxxxxxzznxnnnnnxxxnnnnnnnnnnnnnnn###+++++*+++++++++*i;;;;;;;;;;iii
**+++i;ii**+zzzzzzzzzzzzzz#*iiii;i;;;i***iiii*******i*iiiiiiiiiiiiiiiiiiiiiiiiii*xxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnz######+######+++++++**iiiiii**+
;;iii;;;;;;#####zzzzzzzzzzzzz#++++i::::::;;;;;;:::;ii*ii;;;;i;;;iiiiiiiiiiiiiii*nxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnn#+++++++####+++##########++##+
i;;;;;;;;;;*zzzz###zzzzzzzzzz#**ii:::::,,,,,,::::::;::::::;;;;;;;;:,,,,,:;;;ii#xxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnznzzzzznz#+++++****++#################
iiiiiiii;;;:izzzzzzzzzzznnz#*;;;::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;zzi#xxxxMxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnzzz######++****+**************i*
**++++++++***+#znnnnzzz##+*ii;;;::;;;::::::::::::::,,,,,,......,,,,,,,,+zMMMMMMMxxMxxxxnnnnxxxnnnnznzzzzz########++#++***********i**++*+**+++#++++++++
####+++++++++++++******iiii;;;;;;;;:::,,,,,::::::::::,,,.......,,,,,,;zxxMMMMMMMxnnzzzzzz##zz###+++#+++******#z##zzzzz#*******+++++++++######++++znnnn
##########++++*iii*********+++*******iii;;;;;;;;;::,,,,,,,,,::,:,,,;+#znnxxxxxxnnz###++#+**+******ii*++++***+nnnnnnnnz++++++++++++#+####++++++++nxMxxx
zzzzz###++****i*i**iii*****+++++++*******iiiiiiiiii;;;;;;;;;;::::ii*+###++*****iii***i;;i;;;;;iiii;;*nxxxxnxnnnnzzzn#+++++##++++*i;:;:;;;;;i*+*#nxxxxn
zzzzzz##+**iii***+++++#######+++++++*********iiiiiiiiiiii;;;;;:::;;i*+#++**iiiiiiiii;;;;iiii*++**ii;;;i*+#zzznz#+*********+++++**i;;;;;;;i*+##znnnnnnn
nnnnnzzzzzzz######zzzzz##########+++++++********iiiiiiiiiiiii:,:::;i+znxnz#++++*+*i*#znxMz+*+z##z##zn+*iii::::;;ii+*iiiiiii**iii;;;::;;i+#zznxxnnnzz##
nnnnnnnnnnnnnzzzzzzzzzzzzzz########++++++++**********iiiiiiiii;:,:;+##znnnzzz#i::;ixMxxMz******+++*++****i;:;;;;;;i*ii;;;;iiii;ii::**#znnznnnxxnnzz###
nnnnnnnnnnnnnnnnnnnzzzzzzzzzzz#######++++++++++***********iiiiii;,,;i**+++*i;::;iii*xxxz******+++++++*ii*#z#z#**++#z#+iii*+#++#nnnnnnnnznnnxxxxnnz#++*
xxxxxxxnnnnnnnnnnnnnnnnzzzzzzzzzz########++++++++++*************ii;;;;:;ii;:,,;i***ii**;;ii*+++iii;;ii*++##nnnnznnnnzznzznnnxnnMxxxnzzznnxxxxxnnnz##**
xxxxxxxxxxxxxnnnnnnnnnnnnnnzzzzzzzz#########++++++++++***************iii;:;ii;;;;;iiiiiiii;;;ii;ii**++#########znnnnxnnzzxnnznxnnzzzznxxxMxxxnnzz##*ii
xxxxxxxxxxxxxxxxxxnnnnnnnnnnnnzzzzzzz#########++++++++++++***************iiii*******ii;,..,:;i*+++****ii;iiii*+#++*+*+#####+#++++znnxxxMMxxnnnzz#++i;;
xxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnzzzzzzz##########++++++++++++++***********+++++++**i;:;;iiii**+++*;,.`..,..:,;;i+i*i*+####*i*+#nxxMMxxxnnzzz##+*i;;;i
MMMMMMMMxxxxxxxxxxxxxnnnnnnnnnnnnnnnzzzzzzzzz##########+++++++++++++++++++++++++++++++++++++++###*:`  ``,,,:i*++++##zzz#+#z##nxxxxxxxxnnzz##+**i;;inxx
MMMMMMMMMMMxxxxxxxxxxxxxxnnnnnnnnnnnnnnzzzzzzzzzz##########++++++++++++++++++++#######++#######+:``  `.,:ii*******+*+*++znnnxnxxnxnxxxnz##+++*iii;;nxx
MMMMMMMMMMMMxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnzzzzzzzzzzzz####################################z#zz#: ``````..,.,::;;i*+#nnxxxxxxxxxnz#znxxnzzzzz#+*iii;*xx
MMMMMMMMMMMMMxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnzzzzzzzzzzzzz#############################zzzzzz#. `````````,,:ii++nnnnnnnnnxxnz##+++znnnnnzz###z##+ii;in
MMMMMMMMMMMMMMMMMMMxxxxxxxxxxxxxxxxxxnnnnnnnnnnnzzzzzzzzzzzzzz#####zz###zzzzzzzzzzz#zzzzzzzz#.`````.`.`..,;+zzzzz#####znnxxMx#+++znznnnzzzz#zz######++
WWWWWMMMMMMMMMMMMMMMMMxxxxxxxxxxxxxxxxxnnnnnnnnnnnnzzzzzzzzzzzzzzzzzzzzzzzz###zzzzzzzzzzzznn;`````......:;+++**+###zznxxxxzzxMz##+##zzzznz#####+++Wn#n
WWWWWWWWWWMMMMMMMMMMMMMMMMMMxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnzzzzzzzzzzzzzzzzzzzzzzzzznnnnnnn,````...,,::iii*++zzzznnnnnnn*#nnxMxz+++##zzzzz++##+i+#z+z
WWWWWWWWWWWWWWMMxMxnxxnxxMMMMMMxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnznzzzzzzzznnnnnnnnnnnnnnn.````..,,,:iii*+#zzzznnnnnn#*znnnnxMMn#++#####z#+##++i#+i*
WWWWWWWWWWWWWWMz##++++#+++zxMMMMMxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxi.`...,:,,:;ii*+++##zzzz###+#znnnznnnxxxz#+++####+#++*;ziin