**********iiii*++**i*+*;;iii;****i;nMWWx#i****iiiiiiiii+*iiiiiiiiiiiii;.`.:;ii;;;;;;;;;::,..........,,,,,:,,,,,,,,,,,,................................
********i:i*++i::;;*+*iii*iii*****;+xMMMn#ii;;;iiiiiiii*iiiiiiiiiiiiiii;.`.:;;;;;;;;;;::,,...........,,,,,:::,,,,,,,,,................................
*****i:,:i**iii*i;;i*iiii*z**#****+:*+zzzz#+**i:::;iiiiii;iiiiiiiiiiiiii;:..,;;;;;;;;::,,,,.,,,,......,,,::::,,,,,,,,,,,..............................
***i:,,;+*******iii*iiiiii+**#***+*;:i*#####++++*;:.ii;,.;iiiiiiiiiiiiiiii;:..,;;;;;:,..```.,,,,,......,,,:,,,,,,,...,,,..............................
*i:,;;ii**ii**iiii*+niiii**#**+**+i:::;*######+*****;:..,iiiiiiiiiiiiiiiii;;```::,,.....,,,,,,,,,,,...,,,,,,,,,,,,....,,.......,,,,,,,,...........,...
:,;**iiiiiiiiiiiii*+Wxii***n#*++*+i;,,:;**++++*i**+#*..,:iiiiiiiiiiiiiiiiiii` `,;;;;;;::,,,,,,,,,,,,,,,,,,,,,,,,,............,,,,,,,,,,,.........,,,,,
i*iiiiiiiiiii;;;i***Wx*****#z**z+**i:,:;;ii*++*i***;,,,,;iiiiiiiiiiiiiiiii*M+.:;:;;;;;;:::,,,,,,,,,,,,,,,,,,,,,,,.......,..,,,,,,,,,,,,.........,,,,,,
iiii;;;;;;i;;;;ii***x**********+**+**i;:::;;iii**ii:,;:;iiiiiiiiiiiiiiiiii***:::.,;;;;;;:::,,,,,,,,,,,,,:::,.,,,,......,,,,,,,,,,,,,,,.........,,,,,,,
;;;;;;;;;;;;;;;ii***z*********iii*++#+i;:,,::;i:*ii;;i;*+iiiiiiiiiiiiiii;;;;;;*;;::;;;;:::,,,,:,,,,,,,,::::,,,,,,,..,,,,,,,,,,,,,,,,,,......,,,,,,,,,,
;;;;;;;;;;;;;;iii****iii****iiiiii*#z#+*i;:,,,,:;;;;i*ii+iiiiiiiiiiiii;i;;;;;iii;;;;;;;:::,,,,,,,,,,,,::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,
;;;;;;;;;;;;;;iiiiiiiiiiiiiiiiiiii**#nz#+*i;:.``.:;;;+ii**iiiiiiiiiii;;;;;;;;i**;;;;;;;;:::,,,,,,,,,,:::::::,,,,,,,,,,,,,,,:::::,,,,,,,,,,,,,,,,::::::
;;;;::::;;;;;;;iiiiiiiiiiiiiiiiiiiii+znnzz+*i:.```.:;;+i;#*iiii;iiiii;;;;;;;;;;*;;;;;;;;::::,,,,,,:::::::::::,,,,,,,,,,,,::::::,,,,,,,,:::,,,,::::::::
;;:::::::::;;;iiiiiiiiiiiiiiiiiiiiii*+zxnnz##*;,.``.::#nii+iii;;;;;i;;;;;;;;;;;;;;;;;;;;;::::,,,,:::::::::::::,,,,,,,,,,:::::::,:,,:::::::::::::::::::
:;::::::::;;;;;;iiiiiiiiiiiiiiiiiiiiii#nnxnnz#+*;,.`.,iziiiii;;;;;ii;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::,,,,,,,,,,,,,::::::::::::::::::::::::::::,
::::::::::;;;;;;iiiiiiiiiiiiiiiiiiiiii+#zxxxxxnnzi:,.`;iiiii;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::,,,,,,,,,,,,:::::::::::::::::::::::::,,,,
:::::::::::::;;;iiiiiiiiiiiiiiiiiiiiiii*+#nxxMxzi,,,,.,iiii;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::,,,,,,..,,::::::::::::::::::::::::,,,,,
::::,,:::::::;;;;;;iiiiiiiiiiiiiiiiiiiiii**#znzi;,,:::,:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::,,,,..,,:,::::::::::::::::::::::,,,,,
,,,,,,,,,,,:::::::;;;;;iiiiiiiiiiiiiii;;;;;i*##*i;:;:,,:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::,,,,,,,,,,,:::::::::::::::::::::,,,,,
:,,,,,,,,,,::::::::;;;;;;iiiiiiiiiiiii;;;;;;;iiii;;::::i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::,,,,,,,,,,,:::::::::::::::::::::,,,,,,
,,,,,,,,,,,:::::::::;;;;;;;;;;;;;;;;ii;;;;;;;;;;;:.,,:;i;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::,,,,,,,,,,,::::::::::::::::::::::,,:,,,
,,,,,,,,,,,:::::::::;::;;i;;i*;;;;;;;;;;;;;;;;;;;;.,,::;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::,:::,:::::::::::::::::::,,,,,,,,,:::::::::::::::::::::,,,,,,,,,
,,,,,,,,,,,,,,,:,::::::;;;;;;;:::;;:i*;;;;;;;;;;;;.,,::;;;;;;;;;;;;;;;;;;;;;;::;::::,,,,,::::::::::::::::::::::,,,,,,,,,:::::::::::::::::::::,,,,,,,,,
,,,,,,,,,,,,,,,,,,::::::;;;;;:::;;;;;;;;;;;;;;;;;;,.,,:i;;;;;;;;;;;,,::;;;;;::::::,::::::::::::::::::::::::::::,,,,,,,,,,,:::::::::::::::::::,....,,,,
,,,,,,,,,,,,,,,,:::::::::;;;;::;;:;;;;;;;;;;;;;;;;,,,,;i;;;;;;;;;,..````,:;;::::::i:;::::::::::::::::::::::::::::::,,,,,,,::::::::::::::::,,,......,,,
,,,,,,,,,,::::::::::::::;;;;;::::::;;;;;;;;;;;;:;;:,,.::;;;;;;;;,.,:;,:,.,;;::::::::::::::::::::::::::::::::::::::::,,,,,:::::::::::::::::,....,,..,,,
,,,,,,:,:::::;;;;;;;;:;;;;;;;::::::;;;;;;;;;;;;:`.,:,...,;,;;;;:,;i;,::ii:,::;:::::::::::::::::::::::::::::::::::::::,,:::::::::::::::::::,,,,,,,,,,,,
,,,,::::::;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;`` ``````.,,;;:,:i;,..:i*i:,:;:::::::::::::::::::::::,:::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,
::::;;;;;;ii;;;;;i;;;;;;;;;;;;;:::;;;;;;;;;;;;;;,`       `,,:,..,::...:i#*;:,:;:::::::::::::::::::::::::::::::::::::::::::::::::::,:::,.,...,,,,,,,,,,
;;;;i;;;ii;;;;iiii;;;;+;;;;;;;;:::;;;;;;;;;;;;;;;.`       `,i#,..,,::,;izz*;;:;::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,..,,,,,,,,,,,
iiiiiiiiiiiiiiiii;;;;;+n#i;;;:;;::;;;;;;;;;;;;;:::,`      ``in,..:i:,:i*zn#*;:,;::::::::::::::::::::::,,::::::::::::::::::::,::::::::,,,,,,,,::,,,,,,,
iiiiiiiiiiiiiiii;;;;;;;+xn+;;;;;;:;;;;;::::;;:;:,::,`      `*z,.;*;`.,;*#nx#*i,,:::::::::::::,,,,,::::,,:::::::::::,,,::::,:,,,,,:::::,,,,,,::::,,,,,:
iiiiiiiiiiiiiiiii;;;;;;;izzi::;;;:;;;;:::::::*M;,,,:,`      i+,.:,...,i+#nxxz*i:,:::::::::::,,..,,,,:,,,::::::::::,....,:::,,,,,::::::::::::::::::::::
iiiiiiiiiiiiiiiii;;;;;;;;;#z*;::;;;;;;::::::;z+,,,:;++,`    .,,,,::::;;i+znxx#*i;::::::::::,,....,,,,,,:::::::::::,,...,,,,,,,,:,,::::::::::::::::::::
iiiiiiiiiiiiiiiiii;i;;;;;;;*#*;;:;;;;::::::;i:,,,::xx+i;:.`  `.:;:;:::::;*#nxn+iii:,:::::,,,,,,,,,,,,,::::::::::::,,,,,,,,,,,,,,,,::::::::::::::::::::
iiiiiiiiiiiiiiii;:;i;;;;;;;;;**;;;;::::::;i:,:,,:::WW#i:i:,.`.:::::::::::;;*#xn+i;:,.,,,,,.,,,,,,,,,,,,,:::::::::,,,,,,,,,,,,,,,,,::::::::::::::::::::
iiiiiiiiiiiiiii:;;;i;;;;;;;;;;*i;:::::::++:::,,::::WWz;:*:::::;::::::::::::,.;nn+i:,...,,.,,,,,,,,,,,::,:::,,,,::,,,,,,,,,,,,,,,,:::::::::::::::::::::
iiiiiiiiiii**;::i;;;;;;;;;;;;;;*;:::::;#*::::,::::+z;::#x::::::::::::::::::...:#z#;,..,:,,,,,,,,,,,,:::,,,,,,,,,,,,,::,,,,,,::::::::::::::::::::::::::
iiiiiiiiii#z;::;;;;;;;;;;;;;;;;;i::::;zi,:::::::::#::,:*ni::::::::::::::::,..,..,i+;,::,,,,,:,,,,:::::,,,,,,,,,,,,,::::,,,,:::::::::::::::::::::::::::
iiiiiii:;+ni;;;;;;;;;;:;;;;;;;;:i;,:;#i:,,:::::::::::::;:::::::::::::::::,,,,,.....:::,,,,,,:,:::,:,,,,,,,,,,,::::::::::::::::::::::::::::::::::::::::
iiiiii;,:**;;;i;::;;;;;;;;;;;:::;i;.``,:,,::::::::::::::::::::::::::::::,,,,,,,,,...,,,,,,,,,:::,,,,,,,,,::,,,:::::::::::::::::::::::::::::::::::::::i
iiiii,.;+z+ii;;;:::;;;;;;;;;;;:::;i;:.:,,:,:::::::::::::::::::::::::::::,,,,,,,,,...,,,:,:,,::,,,,,,,,,::::,,:::::::::::::::::::::::::::::::::::::::::
iiiii,::+z*;;;;;:::;;;;;;;;;::::::;:::::::,::::::::::::::::::::::::::,,,,,,:,,,,,,,,,,:,,,,,,,,,,,,:::,:::,,,:::,:::::::::::::::::::::::::::::::::::::
iiii::::##;;;;;:::;;;;;;:,i;:::,,:::::::,,::::::::::::::::::::::::,,..,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::,,::::::::::::::::::::::::::::::::::::::::;i
iiii;:;;*;;;;;;:::;;;;:..*;::::.`.::,:::,,,,:::::::::::::::::::::.....,,,,,,,,,,,,,,,,,,,,,:::,,:::::::::::::::::::::::::::::::::::::::::::::::::;ii**
iiii;:;;*,;;;;;:::;;;,.:;;;;::::.`.:,;;,,,,,:,:::::::::::::::::::....,,::,,,,::,,:,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::;;i***+*
:iii;:::i,;;;;;;;;;:.,;;;;;:::::::,;::*:,,,,,,:::::::::::::::::::,,,,:::::,::::::::,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::;;i***+****
,iiii;,:;:;;;;;;;;,.:;:;;;:::::::::;;:i;,,,,,,::::::::::::::,::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;i***+*******
znMMMxn#+i;;;;;;:,:::;,:::,::::::::ii:::,,::,:::::::::::,,,,:::::::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;******+*********
;#xxzzzzzz##+*i;,:::::.::,`,:;:::::::::::::::::::::::::,,,,,::,,:::::::::::::;:,i:::::::::::::::::,,::::::::::::::::::::::::::::::;;i*+*+++***********
:;;ii**++###zz##*;:::,::,`.:::;:::::::::::::::::::::::::,,,:;:,,::::::::::;;::::+*::::::::::::::::,:::::::::::::::::::::::::::::;;i**++++***********:,
;;;;:::::ii*+#+++*+#i:,..,:::;:::::::::::::::::,,:::::::::::;,,,:::i:::::::::::::**::::::::::::::::::::::::::::::::::::::::::;;i**++++*+**********:```
;;ii::;:;;;;ii+*****;...,:;::::::::;::::::::::,,,,,::::::::::,,::::;::::::::::::::ii;:::::::::::::::::::::::::::::::::::::;;i**+++++++++**++****;.````
;i*i;:::;;;;;:*+**ii:;::;;::::::::;;::::,:,,,,,,,,,::::::::::::::::::::::::::::::::::;::::;i::::::::::::::::::::::::::;;;i**+++++*+++**++++***i,`````.
;:;:;::*i;;;i::**iii;i#+;::::::::::::::,,,,,,,,,,,,,::::::;;i;;;::::::::::,,::::::::::::;,::;;i::::::::::::::::::::::;i**+++++++++*++*+++++++*`````...
;:,::;;;i;;;nMiiii;;;;;++::::::::::::::,,,,,,...,,,::::::;;*#+***i;::;::::,,,:::::::::::,,::,,,```.;+*;::::::::::;;;i*+++++++++++++++++++++++*.````..,
;;;;;*;;;;;iWW*i;;;;;;;;+zi,,,::::::::::,,::,,,.,,,::::;;;*znnz#***ii;:;;:,,,:::::::::::::::::;:..,*n#*;:::::::;;i*++++++++++++++++++++++++++++***i**i
;i+;;i;;;;;#*;;:;:;:::::,:;,,,:::::::::::,,,,,,,,,,,:;i***znnxnz+*i**ii;::::::::::::::::::::::::,.,,:ii;:::::;i*++++++++++++++++++++++++++++++*****+zx
zn;;;;;;;;;i;:,,,,,,,,,,:,,,,,::::::::::::::,,::,:::;*ii*#zxMxxnz#*****i;;;::::::::;:::::::::::::,,,,::;,:;;i+++++++++++++++++++++++++++++++++*+++*++#
n*;;;;;;;;;;:,,,,,,,,,,,,,,,,::::::::::::::,:,::,::i++**++nxMxMMxz+**+*i;;;:;;:::;;;::::::::::::::;:,.,:,i*+++++#+++++++++++++++++++++++++++++++++*;#n
*;;;;;;;;:::,,,,:::::,,,,:::::,:::::::::::::::::::*##++i*+#nxxMMMxnz#++**i;;;;;;i;::::::::::::::::;;;,`.*+++###+++++++++++++++++++++++++++++++++++*;i*
::;;;;;;;::,::::::;::,:::::::::::::::::::::::;:;;*zzz#+*++*znxMMWMWWWMxnnz#*i;;;;;:::::::::::::;;:;+*+*;*###+++++++++++++++++++++++++++++++++++++*+*+*
.:;;;;;;:::::::::::::::::::,,,,:::::::::;;;;;;;;ixxnzz#z#+*znznxMMWWWWWMxnnz+i;;::::::::::;;::;;;i++##########+++#++++++++++++++++++++++++++++++++++++
;;i;;;::;:::::::::::::::*;:,,,,::::::;;;;;;::;;;nxMxnnzz##xn#+#zznxxMWMxxxnz+**;;;:;:::;;;;;;;i*+##########++#++###++++++++++++++++++++++++++++++++*++
;;;;;;::;;;:::::::::::::#n*:,,::::::;;;;::;;;::+xMxxxxxxMMMn+*i**+zznxMWMMMMn#**;:;;;;;;;;;i*+###############++###++++++++++++++++#+++++++++++++++*+**
;;;;;;;:;;;;;::::::::::::;i+*;::::;;:::::;;;;:;xMxMxxMMMWWx#*i;;::;;i#nxMMMMMxz**;;;;;;;i*++########################+++++#++++++##+#+++++++++++++++++i
;;;;;;;:;;;:::::::::::::::;::i+::;;;:;;;;;;;;;#MMMMMMMW@WMn#*;;:,.,,.,i+zxMMMMMzi*;;;i**+####################+#####+##+++++#++++++++++####+++++++++++:
;;;;;;;;;;::::::::;;:::;;;;;;.,*;:;;;;;;;;;;;;xMWMMWMMW@Wxz++i;::,,,,:::;#xMMWWMz****+++#########+################+###+++++#++**+####+#+#++++++#+++++;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:.,;ii;;;;;;;;;;*MWWMWWWWWWMxz#+*i;:,,,,,:::;+nMWWWMn####++##############################++++##++**++++#++++++++++++++++*
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:+i;;;;;;;;;zWWMWWWMW@WMnz#++ii;:;:::::::;*zMWWWMn#++++##################################+#+++z+++##++++++++++#++*+++
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;#*;;;;;;;;xWWWWWMW@@Wxz##++*ii;;;::::::::inWWWWMxz############################+###++#++##+#+z+##+#++++++++++*++++++
i;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;+i;;;;;;iMWWWWWW@@WMxnz###+*iii;;;;;:::::*MWWWWWxz###########################+#+############+#++++++++#+####+++*++
;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;+WWWWWW@@@WMxnzz###+***i;;;;;::::;zWWWWWWMz#####################################++######++++++++++++++++++
;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;ii#MWW@@W@@@WMMxnnzzz#+++*i;;;;;::::+MWWWWWWxz############################++++i++ii+###+++#+++*++++++++#++++
;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;nW@@@@W@@@WWMMxxnnnz++++*iiii;;:::;nWWWWWWMz###########################++++i*+ii+##++##++++++###++++++++++
::::;;;;::,::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;xWW@@@@@@@WWMMMxnnzz#####+***ii;:::+W@WWWWMx###+++##################++##++i*n+##+i;:z#++++#+##++++++++####
::iz#;;;:,,:::;;;;;i;;;;;;;;;;;;;;;;;;;;;;;iM@@@@@@@@@WWWMMMnzzz##zzz###+**i;;:;xWWWWWMxz+++++#######z##########+##++++x#++*+znz##++++++##+#++++#####+
*zxn;;;;::;::;;;;;ii;;;;;;;;;;;;;;;;;;;;;;;iW@@@@@@@@@WWWMMMxxxnzznnnznz##z#+i;:+WWWWWMxz#++*++#++###z################n#+iixMMn#+#++++++###+++##++++++
*;;::;;;:::::;;;:;*i;;;;;;;;;;;;;;;;;;;;;;;*W@@@@@@@@WWWWWMMMMMxxnxnnnnnxMMxnz*:ixWWWWMnz###++**+############+**+###+*##;i#Mxz#++##+####+++*++++++++##
:;;;;;;;;;;::;;:i;#i;;;;;;;;;;;;;;;;;;;;;;;*W@@@@@@@@@WWWWWWWMMMMxxxnxnxMWWMxn#;:#MWWWWxnz###+++++##########++######**#::iznz###+###+###++########++++
;;;;;;;;;;;;;;;;+ini;;;;;;;;;;;;;;;;;;;;;;;*W@@@@@@@@WWWWMWWWWWWWMMMxnxMW@@@WWM#;;nWWWWMnzz#+***i;i+#zzz########+#**i*i,:+####+++##############+++++++
;;;;;;;;;;;;;;;;;nMi;;;;;;;;;;;;;;;;;;;;;;i+W@@@@@@@@@WWMMWMWWWWWWWMxnxM@@WMnzz;,:+WWWWMxz*;;:::i++++z##########+*ii;;.i**++#############++++++++###++
;;;;;;;;;;;;;;;;;z##*;;;;;;;;;;;;;;;;;;ii**#W@@@@@@@@@WWMMWWWW@WWWWMzizMWMMxn#i:,,iWWWMMx*;*+##++++#####zz######i***:,`,+############++++###+++++++###
;;;;;;;;;;;;;;;;;#*#ni;;;;;;;;;;;;;iiii**+#zW@@@@@@@@@MMWWW@@@@@@@Wxi,inxxxx#;.,,:;MWWWWMnz++i*i*****+####+#z#+iiiii:,`i####################+###zz#+++
;;;;;;;i;;;;;;;i**i+z#i;;;;;;;;;i**i**+##zznW@@@@@@@@@WWWW@W@@@@@@@zi,:i+z#+;,,::::nWMWWMxzii*+++*****+*;;ii*+*;ii;i:`.+################++++++z#+#++##
;;;;;;;;;;;;;;;i#+;;#z+i;;;;;;;i;,,,##zznzzzM@@@@@@@@@WWWWW@#@@@@@Wx+:,::ii;::;;:::zWMWWMx+*i*****iiii*++#*;+#;;iii;:``+zz##z#######+++++++++++#####++
;;;;;;;;;;;;;;;+#+;;+z#*;;;;:,:i+##nzzzzz###x@@@@@@@@@WWWW@@WWWWWWWMzi,,::;iiiiii;:+WMMWWxn+iiii*i*+#zzz##,``..,;ii;;.`#z#zzz#####++++++++*+##++++++++
;;;;;;;;;;;;;;*++i,;*z+iiii:;i*zzznzzzz#####n@@@@@@@@@WWWW@WWWWWWWWMx+::::i##+***i;iWWxMWMnzi;;;*##zzz######+;,:;;;::,.zWxz+#+++####++++++++****+++++#
;;;;;;;;;;;;;i+*i,,i*#+ii*,i*+zzznz######zzznW@@@@@@@@@WWWWMMMMMMWWWMn*,::*nxnz+*i;;WWnzMxzz*i;+#zz##z#####zzzz#;:::::,in#######++++++++++++++####z++*
;;;;;;;;;;;;:i,:,`;i*+*;+:;*++##z######zzzzznW@@@@@@@@@WWMMMMxxMMWWWWx+,.,:#xMxn#*i;nWx;nn+*+;;#######zzzzzz##znz#+**i*+##zz####+###+++++#zz####++*+++
ii;;;;;;;iii.``.``;****,;:*++zz#####zzzzzzzzzW@@@@#@@@WWWMMMMxMMMW@Wxx*:`,:ixxMMn#*;zMx*#ni*+;.+zzzzzzzzz##zz#nn######z#z#########++++++#####+++**+*++
i;;;;;;iiiii:,`.``.i*i,.*+#zzz##z#+zzzzzzzzzzW@@@##@@@@WWWWMMMMMWWWMxz#*;:i*znxMMn+i+@nx#n*;i*,nzzzzzz#zzz####Mnzzz+i:*##############zz++++++++++++###
iiiiiiiii:,;i*;```..;i;;##z#z####i#zzzzzzzzzzW@@@##@@@@WWWWWMMMMW@WWMxxnz##;iznxxxz*+@Mxzn*:;i*zzzzzzz#zz#####n#z####+:`,i####+++##zz#+++****++######z
iiiiiiiii,,,;i,```,+i*z*+##zzzz++*zzzzzzzzzzzM@@@##@@@@WWWWWWWMMWWWWWWWMxn#:;+nMxnn**@Wxxn+ii++####zzzzzz###########++#i``:++++###++++++++++++#z###+++
iiiiii**i:,,::,:,:#W*+#znzzzzz#zzzzzzzzzzzzzzM@@@###@@@WWWWWWWWMWWW@@WWMxx#i#MWxnzn++WWWxnz#zz##zz#zzzzzzzz#####z####++z,``:#+++++++##############+++#
iiii****i,,:*i;;;;+znzzz##zzzzz#zzzzzzzzz##zzx@@@###@@@WWWWWWWWWWWWWWWWWMxznzMMznzz##WWWMx####zzzzzzzzzz#zz#z###########;;..:+###+######z#++####+#####
ii***+##*::;iiii+#zznzzzzzzzzz##zzzzzzzzzz#zzn@@@@###@@@WWWWWWWWWWWWWWWWMxn#++*#zzz#zWMWMxz#zzzz#zzzzzzzzzz#zzz##########+*`:*###########zz##++++###++
**+###zz#:::i##+#zzzzz#zzzzzzzzzzzzzzzzzzzzzzzW@@@#####@WWWWWWWWWW@WWWWMMx#**::i*+##xMMMMMn###zzz##zz#zzzz#zzz###z#+#z##z##;.i##++++#######+++++++++++
###zzzzzzi:;*zz#z#zzzzzzzz#zzzzzzzz#zzzzzzzzzzW@@@#####@WWWWWWWWW@#@WWWMnxz*::;ii*++WMxxMxx####zz##zzz####zz#+++######zz####:.++++#####++#++++++++++++
zzzzzzzzz#i;+nzzzzzzz#zzzzzzzzzz#zzzzzzzzzzzzzM@@@@#####@WWWWWWMWW@@WWWMxn*;i*iiii*#MWxxxxzz##zz######zz#z##zzzzz###z######++,;+++++++++++++#+#+#z##z#
zz#zzzzzzzz#znzzzzz###zzzzzzzz###zzzzzzzzzzzzzx@@@@#####@WWWWWWWWWWWWWWWx+#zzz*;;i*nMMMxnx##++#zz###zzzz##zzzzzz####+#+++##+++:++++++++++++###znzz#zz#
zzzzzzzzzzzzzzzzzz##+*##zzzzzzz#zzzzzzzzzzzzzznW@@@######@WWWWWWWWWWWWWWMxxxn#i;;;*MMxxxnzz###zzz##zzz##########++++####+####++##+++#zzzz#z#zz########
zzzzzzzzzz#+###nnnz#+*i+#zzzzzzzzzzzzzzzzzzzzzzW@@@######@@WWWWWWWWWWWWWMMMxz;::;i#Mxnxxxzz##z#zzzz#######+#+##nz++##+*izz#####+#############++###+++#
zzzzzzzz##++zzzznzz#*i:;+#zzzzz#zzzzzzzzzzzzzznW@@@@#####@@@WWWWWWWWWWWWWWMz;,:;;inxnzznzz##+##########znzz###zxMxz#+#########z#z###+++++++++#####+++#
zzzzzzzn+#zznznnzn#+**ii;i###z#zzzzzzzzzzzzzzzzW@@@@#####@@@@WWWWWWWWWWWMMzi;;;ii+xxnz#zz###########zzzzzzzzzz##zz++##++#zzzzzzzz#####+++++#####+#+###
zzzzzzz##znxxnxzzzz+z#+*i;i+##zzzzzzzzzzzzzzzzzW@@@@@#####@@@@WWWWWWWMMMMn+****++nnnnzzzzzzz#+++#zzzzzzzz####zz#####++##zz######++#+##zzzzzz###zzzznzz
zzzzzzz+##zxxxxznnnzxx#z#ii*#zzzzzzzzzzzzzzzzzxW@@@@@#####@@@@@WWWWWWWMMMnzzzzz##xxzzzzzzzzzzzz##zzzzz###zzz######z#z#i######+++++####################
zzzzzz#++#nnnzzznnxxxnzzn+*#++zzzzzzzzzzzzzzznM@@@@@@#####@@@@@@WWWWWWWWMMxxxnz#zzxzzzznzzz##znzzzz###zzz######zzzzzz*..+#######+++######+##zznzz###zn
zzzzzn#++nxxxxzzxMMWMxz###+z++#zzzzzzzzzzzzzzxW@@@@@@@@###@@@@@@@WWWWWWWWMxxnnz+zzzzznnnnznznnnzzz######zzzzzznnnzz###++**#z#+**i*#+##+zzzznnnzzzzz#zn
zz##z+zizxMMMnz#zxMMMMn+++#n#++zzzzzzzzzzzzzxWW@@W@@@WW@@#@@@@@@@@WWMMMMMxxnzz#+znnzzzzzznnnnzzzzzz##znnnnnzzznzzznnzzznz###++++nnnzzznnzzzz#z##zz##z#
+*i+#+#+xMMMMz###znnnnn*+i+##*+#zzzzzzzzzzznMWW@WW@@WWWW@@@@@@@@@@WWWMMxxnnnz##+zzzzzzzzznzz##zzz#znnnnnnnnnnz#zznzzzzzzzznnnn#nnnnnzznz#######zzzznnn
#*i+####nxMMn#+#++nnx#z+#;**++++#zzzzzzzzznxWW@WWWWWWWWWW@@@@@W@@WWWWMMMxxnnz##*##zz###zzzzzzzzzznnnnnzzzzzzz#zzzzzzzzznnnznnnnzzznnzzz####zzzzzzzzzzz
#**#z#xnznxxz##z#++zxz+z#*z#*+*++#zzzzzzzzxWW@@WWWWWWWWWWW@@@@WWWWWWWMMMxxnnz#+*z###zzz###zzzzznzzz#z##z######zzzzzzzznnnnzzzzzzznzz######zzz#######+#
xz#znnMMxnnnz+nnxnzzn##+z#z#+i**+#zzznnnznMW@@@WWWWWWWWWWWWW@@WWWWWWWMMMxxnnz#+*zzzzzzzzzzzzzzzzz###z###zz#########znnzzz####zzzzzz#z#zzz#zz#+#+######
x##nnxWMxznnn#zxxxxnnzz#nnz+*+*###zzzzzzzxWW@@@@MWWWWWWWWWWWWWWWWWWWMMMxxxnzz#+*#zzznzzz##zzzzzzzzz##########zzzzzzzz#######zz#####zzzzzz+++##zzzzzzzz
++znxxWMznnxxnznxnnzxnnn#nnn#+*#++#nnnnzzM@@@@@WWWWWWWWWWWWWWWWWWWWMMMxxnnnzzz+*##########z###z#####zzznnzznnnzzz#########zzzzzzznnnzzzzzzznnnzzzzzz##
+##xMMMznnxxnxznn#z#xxnxzznnn+#+**#zznzznW@@@@@WWWWWWWWWWWWWWWMWWMMMMMxxnnzzzz+*z#########zzzz###znzzznznnnnzz##########zzz##zzzzzzzznnnnnxnnzzzzzzz##
##zxxxz#znxMxzznn#+#zxnnnzznz#+#**+znzznMW@@@@WW@WWWWWWWWWWWWWMMWMMMxxxnnzzzz#*+xz#+#zzzznnzzzzznzzzzznnnnzzzz####zzzzz###z######zznnnznnzzzz##zzz#z##
##zxxn+znnxMnzznn#+##nxzzzzznz+z#*#zzznnMW@@@@@@@@WWWWWWWWWWWWMMMMMMxxxnzz####++nn####znnzzznnnnznnzzzzzzzzz####znzzzzz########zzzzzzzzzzzz#z##zzzzzz#
#zzxMz#xxxMxnnnnn#++zznnnzzzz#++++#zzzzxWW@@@@@@@@WMWWWWWWWWWWWMMMMMxxnnz#####+#nzzzzz#zzznnzzzzznnz#z###zz###zzzzzzzzz##zzzzzznz###z##########zzzzznn
zzzMMznMMxxxxMz#z#z+##znxnnn+#+**##zzznMWW@@@@@@@@@WWWWWWWWMMMMMMMMMxxnnz#+###+#nzzzzzz#####zzzzznnzz##znnnznzzz#zzznnnnnnnnnz##########zzzzzzznnnnnnn
zzzMMnnMMnnMWMx##zzznxxnnznnzz+++#+#zznWWWWWW@@@WW@WWWWWWWWMMMMMMMMMxxnzz#++##+#xzzzzzzz##zzzznnnzzzzznnnnnzzzzzznnznnnnnnzzz##z#zzzzzzzzzzzznnxxnnzz#
nnzMMxnMxnxMMWxzznzxMMMMznxxnz*+z#+zzzxWWWWWWWWWWWW@WMWWWWWWMMMMMxxxxxnzz#+++#*zxzz########znnnnnnnnnnnnzzzzzzzzznnnnnnnzzzzz##zzzzznzzzznnnnnnnzzz##z
xxxxMxxxnxxMMxxznnnxMWMxnxxxnz+##+*#zzMMMWWMMWWWWMW@@WWWWWWWWWWMMnzznxxnz#++++*zxnz#########nnnnnzznnzzznnnzznzznnnzzzzzzzzzzzzzz#zzzzznznnnnnzzzzzzzn
xMMMWxMxxxMMxWMxxWWWWWWMxnnzzzzz#++#nxMMMWWWWWWWWWW@@WMWW@@@@WWWMnzzzzzzz#+i;**znnnnz######+#zzzzznnzznzzznnnnnnnzzzzzzznnzzz########zzzznnzzzzzzzzzzz
xMMMWMMMxxxnMWWMMWWWWWWWMxnzzzzz#++zzxMMMWWWWWWWWWWWWWMWWW@@@@@WMxnzzzz###+::i*zMMMxxnnz#####zznnnnzzzzznnnxnnzzzzzzzznzzznzzzzzzzzzzzzzzzzzzzzzzzzzzz
MxMMWMMMMMMWWWWWMMWWWWWWWxnnz#++++#nnMMMWW@WWWWWWWWWWWWWWWW@@@@@@WMxnzz####:,;;#xMWWWMMMMn#zz##nzz#zzznnxnzzz#zzznnnnnzzzzzzzzzzznnnnnzzzz#zzzzzzznzzz
MMMMWMMMWMMW@WWWWMxWWMWWWMxnzz##+zzznMWWWW@WWWWWWWWWWWWWW@@@@@@@@@@@Wxzz###+;,;+xxMWWWWWWxzz*;*#####znzzz##zzzzzzzznnnnnnnzzz#znnnnnzzzzzznnnnnnxnnnnn
MMMWMWMWMMMWW@@WWMnxWWWWWWxxnnz#zzzzMMMWWMW@W@WWWWWWWWWWMW@@@@@W@@@@@WMnz####i:;zxMMWWWWWxzz#*i#zzz###zzzzz#zzzznzzzznnzzzzz##zzzzzzzznnnnnnnnnnnxxxxn
MMMWWWWWWWMWW@@WWMMxMWWWWWMxnnzznznnMWWWWMW@WWWWWWWWWWWWWWMWW@WWWWW@@@@Mnz####+;;nMMWWWWMxnz#####zzzzzzzzzzzzzzzzzzzzzzzzzz###zzzznnnnnnzznnnnnnxxxnzz
MMMMWWMWWWWMWW@@@WMMMMMMWMMxxzznzzznMWWMMMWWWWWWWWWWWWWWWWMMMMMMWWMMW@@@Wnz#####iixWWWWWMxnz#####nzzzzzzznzzzz####zzzznnz#####zzzznnnnzzzznnnnxxnnnzzz
MWMMWWWWW@WMMW@@WWMMxxxMMMMxxnzzzzznWMMMMWWWWWWWWWWWWWWWWWWMMMMMMM@WMM@@@Wxz#####i*nWWW@Wxz#####znzz#zzzzznnnnzznnnnznzzzzzzzzzznnnnnnnnnnzznnznzzzzzn
WWWMWWWWWWWWWWWWWWWxxMMMMMMxnnzz#zzxWMMMWWWWWWWWWWWWWWWWWMMMMMMMMMMWWMM@@@Wxz#####+i*n@@@Mxz###znzzzznnnnnnxxnnnnnnnnnnnnnnnnzzzzzzzznnzzz#z#zzzzz#zzn
@@WWWWWWWWWW@@WWWWWMMMMMxMMxnzzz#nnxWMWWWWWWWWWWWWW@@@@@@@@@WMMMMMMMWWWW@@@Wxz######*;+W@WWMnzzznnnnnnnxnnnnnnnnnnnnxnnnnnnzzzzzzzzz##zzzzzzzzznnnnxxx
@@@@WWWWWWWW@@@@WWWMMMxMxxxnnnxz###xMWWWWWWWWWW@@@#@@@MnnnxMM@@WMMMMMWWWWW@@Wxzz##z##+iixWWWMxznxnnnnnnnnzzzzznnnnnxxxxnnnzznnnnnxxxnzzzzzzzzznnnnnnnn
@@@@@WWWWW@@@@@@@@W@MxMMMxMxznxziizMWWWWWWWW@@@#@Wxnz#########x@@WMMMWW@WW@@@Mnzzzzzzzz#izW@WMzzxxxnnnn#znnzzzzznnxnnnnnnnnnxxxxnnnnnnzz#zzznnnzznzz#z
@@@@@@WWWWW@@@@@@@@@@WMMMMMMxznz*nMWWWWWWW@@###@xzzzzzzzzzz#####x@WWMWW@@WW@@Wxnzzzznzznn;#@@Wz#znnnnn#+zznnnnnxnxnnzznnnnnnxxxnnnzzzznnnnnnnnnzzz###z
@@@@@@@WWW@@@@@W@@@@@WWMMMMMx#z:zxMWWWWW@@####Wnzzzzzzzzzzzz#####n@WWWWW@WWW@@Wxnzznnzzzz#;z@@n###zznnnnnnnnnxnnnnzzzznnnnnzznzzzzznnnnnnnnnznzzzzzzzz
@@@@@@@@WW@@W@@@WWW@WWWWWWWW;`.*WMMWWWW@###@WMMMMxzzzzzzzzzzzzz###zMWWWWW@WWW@WMnzznzzzz##+;M@Mzz##xxxxxxxxxnnzznnnnzzzzzzzzzzzzzzz#zznnzzznzzznnnzzzn
##@@@@@@@W@@@W@@WWW@@WWW@WWz```zWMMWW@@##WMMMx@@@@Wn#zzzzzzzzz######MWWWW@@WWW@Wxnznzzz######M@Mz##zxxxxxxxxnzzznnnnzzzzzzzzzzzz#zz#####z#zzzzzzzzznxn
@##@@@@#@W@@@@@x*;i++#nMWMM:```xMMWW@@##WM@@Wn@WM@@@x#zzzzzz##z######xWWWW@@WW@@Mnznnnz#######zMWMnznxnnnnnnxnnnnnnnnnzzzzzzzzznnzzznznznnzzzz#zznnnzn
@@##@@@@@WWW@M+##+;;;::izzi```:MMMW@###@M@@@xnxzzM@@@x#zzzzzzzzzz#####xW@W@@@WW@WxnnxxnzzzzzzzzzxMWWxnnnnnnxxnnxxnnzzznn#znxxxnnxxxxxnxxxxnnnnznz#zzzz
@@##@@@@@xnW@Wxzxxz+i;;:;:```.;MMMW###@@@@@@xxMMnxWWWWnzzzzzzzzzzz#####xWWW@@WW@@MnnxxWxxxnznnnzxxnxWWnnnxxxxxnnnnnznnxnnnxxxxxxxxxxxnnnnnnnnnnnnnnnnx
@@@##@@@@xxnMMMz#z+;iii:;:.,::+WWW@###@@@@@MWWWWWMMxxWWzzzzzzzzzzzzz####x@WW@@WW@MnxxxWWxnxxnz####zznMWnxxxxnnnxxxxxxxxxxxxxxxxxxxnnzzznnnnxxxxxxxxnnn
#@@###@@@xxMMMMnxz*iiii;;;*+*;*WW@###@@@@@@W@@@@@Mnzzx@Mzzzzzzzzzzzzz###+zWW@@@WWWxMWMMxxWWMnzz######zMMnxnnxxxxxxnxxxxxMxxxxxnnxxnnnxxxxxxxxxxxxnnnzz
###@###@MxMMxWWWn#+iiii;;;*#+::WW@###@@@@@@@@Wxx@xnnznW@nzzzz++zzzzzz###z#xWW@@WWWMxMxnMWWMWMzz#z####+#Mxnxxxxxxxxxxxxxxxxxxxxxxnnxxnnxxxxnzxnzz*;;znz