**********iiii*++**i*+*;;ii;;****i;nMWWx#i****iiiiiiiii+iiiiiiiiiiiiii;.`.:;ii;;;;;;;;;::,..........,,,,,,,,,,,,,,,,,,................................
********i:i*+*i:::;*+*iii*iii*****;+xMMMn#ii;;;iiiiiiiiiiiiiiiiiiiiiiii;.`.:;;;;;;;;;;::,,...........,,,,,:,,,,,,,,,,,................................
*****i:,:i**iii*i;;i*iiii*z**#****+:*+#zzz#+**i:::;iiiiii;iiiiiiiiiiiiii;:..,;;;;;;;;::,,,,.,.,.........,:::,,,,,,,,,,,,..............................
***i:,,;+*******iii*iiiiii+**#***+*;:i*####+++++*;:.ii;,.;iiiiiiiiiiiiiiii;:..,;;;;;:,..```.,,,,.......,,,:,,,,,,,...,,,..............................
*i:,:;ii**iii*iiii*+niiii**#**+**+;:::;*+#####+*****;,..,iiiiiiiiiiiiiiiii;;```,:,,.....,,,,,,,,,,,...,,,,,,,,,,,,..............,,,,,,,...........,...
:,;**iiiiiiiiiiiii*+Wxii***n#*++*+i;,,:;**++++*ii*+#*..,:iiiiiiiiiiiiiiiii;i` `,;;;;;;::,,,,,,,,,,,,,,,,,,,,,,,,,.............,,,,,,,,,,.........,,,,,
i*iiiiiiiiiii;;;i***Wx*****#z**z+**i:,:;;ii*++*ii**;,,,,;iiiiiiiiiiiiiiiii*M+.:;:;;;;;;:::,,,,,,,,,,,,,,,,,,,,,,,...........,,,,,,,,,,,.........,,,,,,
iiii;;;;;;;;;;;ii***x*********i+**+**i;:::;;iii**ii:,;:;iiiiiiiiiiiiiiii;i***:::.,;;;;;;:::,,,,,,,,,,,,,:::,.,,,,......,,,,,,,,,,,,,,,.........,,,,,,,
;;;;;;;;;;;;;;;iii**z******iiiiii*++#+i;:,,::;i:*i;;;i;**iiiiiiiiiiiiiii;;;;;;*;:::;;;;:::,,,,:,,,,,,,,::::,,,,,,...,,,,,,,,,,,,,,,,,,.......,,,,,,,,,
;;;;;;;;;;;;;;iiii***iiii**iiiiiii*#z#+*i;:,,,,:;;;;i*ii+iiiiiiiiiiii;;i;;;;;iii;;;;;;;:::,,,,,,,,,,,,::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
;;;;;;;;;;;;;;iiiiiiiiiiiiiiiiiiii**#nz#+*i;:.``.:::;+ii**iiiiiiiiiii;;;;;;;;i**;;;;;;;;:::,,,,,,,,,,,::::::,,,,,,,,,,,,,,,::::,,,,,,,,,,,,,,,,,::::::
;;;:::::;;;;;;;iiiiiiiiiiiiiiiiiiiii+znnzz+*i:.```.:;;+;;#*iii;;;iii;;;;;;;;;;;*;;;;;;;;::::,,,,,,:::::::::::,,,,,,,,,,,,::::::,,,,,,,,:::,,,,::::::::
;;:::::::::;;;iiiiiiiiiiiiiiiiiiiiii*+zxnnz#+*;,.``.::#nii*iii;;;;;;;;;;;;;;;;;;;;;;;;;;;::::,,,,:::::::::::,:,,,,,,,,,,,::::::,,,,::::::::,:::::::::,
:;:::::::::;;;;;iiiiiiiiiiiiiiiiiiiiii#nnnnnz#+*;,.`.,iziiii;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::,,,,,,,,,,,,,:::::::::::::::::::::::::::,,
::::::::::;;;;;;iiiiiiiiiiiiiiiiiiiiii+#zxxxxxnnzi:,.`;iiiii;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::,,,,,,,,,,,,::::::::::::::::::::::::,,,,,
:::::::::::::;;;iiiiiiiiiiiiiiiiiiiiiii*+#nxxxxzi,,,,.,;i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::,,,,,,,..,,::::::::::::::::::::::::,,,,,
::::,,,::::::;;;;;;iiiiiiiiiiiiiiiiiiiiii**#znzi;,,::,,:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::,,,,..,,:,::::::::::::::::::::::,,,,,
,,,,,,,,,,,:::::::;;;;;iiiiiiiiiiiiiii;;;;;i*##*i;:;:,,:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::,,,,..,,,,,::::::::::::::::::::,,,,,,
:,,,,,,,,,,::::::::;;;;;;iiiiiiiiiiiii;;;;;;;iii;;;::::i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::,,,,,,,,,,,,:::::::::::::::::::,,,,,,,
,,,,,,,,,,,:::::::::;;;;;;;;;;;;;;;;;i;;;;;;;;;;;:.,,:;i;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::,:::::::::::::::::,,,,,,,,,,,::::::::::::::::::,,:,,,,,,,
,,,,,,,,,,,:::::::::;::;;i;;i*;;;;;;;;;;;;;;;;;;;;.,,::;;;;;;;;;;;;;;;;;;;;;;;;;;:::::,,,,:,:::::::::::::::::::,,,,,,,,,::::::::::::::::::::,,,,,,,,,,
,,,,,,,,,,,,,,,:,,:::::;;;;;;;:::;;:i*;;;;;;;;;;;;.,,,:;;;;;;;;;;;;;;;;;;;;;;::;::::,,,,,::::::::::::::::::::::,,,,,,,,,::::::::::::::::::::,,,,,,,,,,
,,,,,,,,,,,,,,,,,,::::::;;;;;:::;:;;;;;;;;;;;;;;;;,.,,:i;;;;;;;;;;;,,,::;;;;::::::,::,:::::::::::::::::::::::::,,,,,,,,,,,:::::::::::::::::,,,....,,,,
,,,,,,,,,,,,,,,,,::::::::;;;;:::;:;;;;;;;;;;;;;;;;,,,,;i;;;;;;;;;,..````.:;;::::::i:;::::::::::::::::::::::::::::,,,,,,,,,::::::::::::::::,,,......,,,
,,,,,,,,,,::::::::::::::;;;;;::::::;;;;;;;;;;;;:;;:,,.::;;;;;;;;,.,:;,:,.,;:::::::::::::::::::::::::::::::::::::::::,,,,,:::::::::::::::::,.....,..,,,
,,,,,,:,:::::;;;;;;;;:;;;;;;;::::::;;;;;;;;;;;;:`.,:,...,;,:;;;:,;i;,::ii:,::::::::::::::::::::::::::::::::::::::::::,,:::::::::::::::::::,,,,,.,,,,,,
,,,,::::::;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;`` ``````.,,;;:,:i;,..:i*i:,:;:::::::::::::::::::::::,:::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,
::::;;;;;;ii;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;,`       `,,:,..,::...:i#*;:,:::::::::::::::::::::::::::::::::::::::::::::::::::::,:::,.,...,,,,,,,,,,
;;;;;;;;ii;;;;;iii;;;;+;;;;;;;;:::;;;;;;;;;;;;;;;.`       `,i#,..,,::,;izz*;::;::::::::::::::::::::::::::::::,:::::::::::::::::::::::,,,,..,,,,,,,,,,,
iiiiiiiiiiiiiiiii;;;;;+n#i;;;:;;:::;;;;;;;;;;;;:::,`      ``in,..:i:,:i*zn#*;:,;::::::::::::::::::::::,,::::::::::::::::::::,,,::::::,,,,,,,,::,,,,,,,
iiiiiiiiiiiiiiii;;;;;;;*xn+;;;;;;:;;;;;:::::;:;:,::,`      `*z,.;*;`.,;*#nn#*i,,:::::::::::::,,,,,::::,,:::::::::::,,,::::,:,,,,,:::::,,,,,,::::,,,,,:
iiiiiiiiiiiiiiiii;;;;;;;izzi::;;;:;;;;:::::::iM;,,,:,`      i+,.:,...,i+#nxxz*i:,:::::::::::,,..,,,,,,,,::::::::::,....,:::,,,,,::::::::::::::::::,:::
iiiiiiiiiiiiiiiii;;;;;;;;;#zi;::;;;;;:::::::;z+,,,:;++,`    .,,,,::::;;i+znxx#*i;:,::::::::,,....,,,,,,:::::::::::,,...,,,,,,,,:,,::::::::::::::::::::
iiiiiiiiiiiiiiiiii;;;;;;;;;*#*;;:;;;;::::::;i:,,,::xx+i;:.   `.:::::::::;*#nxn+iii:,:::::,,,,,.,,,,,,,:::::::::::,,,,,,,,,,,,,,,,,,:::::::::::::::::::
iiiiiiiiiiiiiiii;:;i;;;;;;;;;**;;;;::::::;i:,:,,:::WW#i:i:,.`.:::::::::::;;*#nn+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***********
#nMMMxn#+i;;;;;;:,:::;,:::,::::::::ii:::,,,:,:::::::::::,,,,:::::::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;****************
;#xxzzzzzz##+*i;,:::::.::,`,:::::::::::::::::::::::::::,,,,,::,,:::::::::::::;:,i:::::::::::::::::,,:::::::::::::::::::::::::::::::;i*+*+++***********
:;;ii**++###z###*;::,,::,`.:::;:::::::::::::::::::::::::,,,:;:,,::::::::::;;::::+*:::::::::::::::,,:::::::::::::::::::::::::::::;;i**+++************:,
;;;;:::::ii*+#+++*+#i:,`.,::::::::::::::::::::,,,:::::::::::;,,,:::i:::::::::::::**::::::::::::::::::::::::::::::::::::::::::;;i**+++**+**********:```
;;ii::;:;;;;ii+*****;...,:;:::::::::::::::::::,,,,,::::::::::,,::::;::::::::::::::ii;:::::::::::::::::::::::::::::::::::::;;i***+++++++***++****;.````
;i*i;:::;;;;;:*+**ii:;::;:::::::::;:::::,,,,,,,,,,,::::::::::::::::::::::::::::::::::;::::;i:::::::::::::::::::::::::::;;i**+++++*+++**++++***i,``````
;:::;::*i;;;i::*iiii;i#+;::::::::::::::,,,,,.,.,,,,,::::::;;i;:;::::::::::,,:::::::::::::,:::;i::::::::::::::::::::::;i**+++++++++*++*+++++*+*`````...
;:,::;;;i;;;nMiiii;;;;;++:::,::::::::::,,,,,,...,,,::::::;;*#+***i;::;:,::,,,:::::::::::,,::,,,```.;+*;::::::::::;;;i*+++++++++++++++++++++++*.````..,
;;;;;*;;;;;iWW*i;;;;;;:;+zi,,,::::::::::,,::,,,.,,,::::;;;*znn##*i*ii;:;;:,,,:::::::::::::::::;,..,*n#*;:::::::;;i*++++++++++++++++++++++++++++***i**i
;i+;;i;;;;;#*;;:;:::::::,,;,,,,::::::::::,,,,,,,,,,,:;i***znnxnz+*i**ii;::::::::::::::::::::::::,.,,:ii;:::::;i*++++++++++++++++++++++++++++++*****+zx
zz;;;;;;;;;;;:,.,,,,,,,,,,,,,,::::::::,:::::,,::,,::;*ii*#zxMxxnz#*****i;;;::::::::;:::::::::::::,,,,::;,:;;i++++++++++++++++++++++++++++++++**+++*++#
n*;;;;;;;;;;:,,,,,,,,,,,,,,,,::::::::::::::,,,::,::i++***+nxMxMMxz+**+*i;;::;;:::;;;::::::::::::::;:,.,:,i*+++++#++++++++++++++++++++++++++++*++++*;#n
*;;;;;;;;:::,,,,:::::,,,,:,:::,,::::::::::::::::::*##++i*+#nxxMMMxnz#++**i;;;;;;i;::::::::::::::::;;;,`.*+++###+++++++++++++++++++++++++++++++++++*;i*
::;;;;;;;::,:::::::::,::::::::,::::::::::::::;:;;*zzz#+*++*znxMMWMWWWMxnnz#*i;;;;;::::::::::::::::;+*+*;*###+++++++++++++++++++++++++++++++++++++*+*+*
.:;;;;;;:::::::::::::::::::,,,,:::::::::;;;;;;;;ixxnzz#z#+*znznxMMWWWWWMxnn#+i;;::::::::::::::;;;i++##########+++#++++++++++++++++++++++++++++++++++++
;;i;;;::;:::::::::::::::*;:,,,,::::::;;;;;;::;:;nxMxnzzz+#xn#+#zznxxMWMxxxnz+**;:;::::::;:;;;;i*+##########++#++###++++++++++++++++++++++++++++++++*++
;;;;;;::;;::::::::::::::#n*:,,::::::;;;;::;;;::+xxxxxxxxMMMn+*i**+zznxMWMMMxn#**;::;;;;;;;;i*+###############+++##++++++++++++++++#+++++++++++++++*+**
;;;;;;::;;;;;::::::::::::;i+*;::::;;:::::;;;;:;xMxMxxxMMWWx#*i;:::;;i#nxMMMMMxz**;;;;;;;i*++######################+++++++#++++++##+++++++++++++++++++i
;;;;;;;::;:::::::::::::::::::i+::;;;:;;;;;;;;;#MMMMMMMW@WMn#*;;:,.,,.,i+zxMMMMMzi*;;;i**+##################+#+#####++++++++#++++++++++++##+++++++++++:
;;;;;;;;;;::::::::;;:::;;;;;:.,*;:;;;;;;;;;;;;xMWMMWMMW@Wxz++i;:,,,,,:::;#xMMWMMz****++++########+###############+++##+++++#++**+####+#++++++++#+++++;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:.,;ii;;;;;;;;;;*MWWMWWWWWWMnz++*i;:,,,,,:::;+nMWWWMn####++############################+#++++##++i*++++#++++++++++++++++*
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:+i;;;;;;;;;#WWMWWWMW@Wxnz#++ii;:;:::::::;*zMWWWMn#++++##################################+#+++z++++#++++++++++#++*+++
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;#*;;;;;;;;xWWWWWMW@@Mxz##++*ii;;;::::::::inWWWWMxz############################+###++#++##+++z++#+#++++++++++*++++++
i;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;*i;;;;;;iMWWWWWW@@WMnnz###+*iii;;;;;:::::*xWWWWWxz###########################+#+###########+++++++++++#+####+++*++
;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;+WWWWWWW@@WMxnzz###+***i;;;;;::::;zWWWWWWxz#######################+#############++######++++++++++++++++++
;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;ii#MWW@@W@@@WMMxnzzzz#+++*i;;;;;::::+MWWWWWMxz############################++++i++ii+###+++#+++*++++++++#++++
;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;nWW@@@W@@@WWMMxnnnnz++++*iiii;;:,:;nWWWWWWMz###########################++++i*+ii+##++##++++++###++++++++++
::::;;;;::,::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;xWW@@@@@@@WWMMMxnnz#####++***ii;:::+W@WWWWMx###+++##################++##++i*n++#+i;:z#++++#+##++++++++####
::iz+;;;:,,:::;;;;;i;;;;;;;;;;;;;;;;;;;;;;;iM@@@@@@@@@WWMMMMnzzz##zzz###+*ii;;:;xWWWWWMx#++++++######z##########+##++++x#++*+znz##++++++##+#++++#####+
*zxn;;;;:::::;;;;;ii;;;;;;;;;;;;;;;;;;;;;;;iW@@@@@@@@@WWWMMMxxnnzznznznz##z#+i;:+WWWWWMxz#++*++#++###z################n#+iixMMn+++++++++###+++##++++++
*;;::;;;:::::;;;:;*i;;;;;;;;;;;;;;;;;;;;;;;*W@@@@@@@@WWWWWMMMMMxxnxnnnnnxMMxnz*:ixWWWWMnz###++**+############+**+###+*##;i#Mxz#++##+####+++*++++++++##
::;;;;;;;;;:::;:i;#i;;;;;;;;;;;;;;;;;;;;;;;*W@@@@@@@@WWWWWWWWMMMMxxxnxnxMWWMxn#;:#MWWWMxnz###+++++##########+++#####**#::iznz###+###+###++#######+++++
;;;;;;;;;;;;;;;;+ini;;;;;;;;;;;;;;;;;;;;;;;*W@@@@@@@@WWWMMWWWWWWWMMMxnxMW@@@WWM#;;nWWWWMnzz#+***i;i+#zzz########++**i*i,:+###++++############+#+++++++
;;;;;;;;;;;;;;;;;nMi;;;;;;;;;;;;;;;;;;;;;;i+W@@@@@@@@WWWMMWMWWWWWWMMxnxM@@WMnzz;,:+WWWWMxz*;;:,:i++++z##########+*ii;;.i**++######+######++++++++###++
;;;;;;;;;;;;;;;;;z##*;;;;;;;;;;;;;;;;;;ii**#W@@@@@@@@@WMMMMWWWWWWWWMzizMWMMxn#i:,,iWWWMMx*;*+##++++######z######i***:,`,+############++++###+++++++##+
;;:;;;;;;;;;;;;;;#*#ni;;;;;;;;;;;;;iiii**+#zW@@@@@@@@@MMWWWW@@@@@@Wxi,inxxxx#;.,,:;MWWWWMnz++i*i*****+####+#z#+iiiii:,`i############++#####++###zz#+++
;;;;;;;;;;;;;;;i**i+z#i;;;;;;;;;i**i**+##zznW@@@@@@@@@WWWWWW@@@@@@Wzi,:i+z#+;,,::::nWMWWMxzii**++*****+*;;ii*+*;ii;i:`.+################++++++z#+#++##
;;;;;;;;;;;;;;;i#+;;#z+i;;;;;;;i;,,,##zznzzzM@@@@@@@@@WWWWW@#@@@@@Wx+:,::;i;::;;:::zWMWWMx+*i*****iiii*++#*;+#;;iii;:``+z###z#######+++++++++++#####++
;;;;;;;;;;;;;;;+#+;;+z#*;;;;:,:i+##nzzzzz###x@@@@@@@@@WWWW@@WWWWWWWMzi,,::;iiiii;;:+WMxWWxn+iiii*i*+#zzz##,``..,;ii;:.`#z##zz#####++++++++*+##++++++++
;;;;;;;;;;;;;;*++i,;*z+iiii:;i*zzznzzz######n@@@@@@@@@WWWW@WWWWWWWWMx+:,::i##+***i;iWWxMMMnzi;;;*##zzz######+;,::;;::,.zWxz+#+++####+++++++*****+++++#
;;;;;;;;;;;;;i+*i,,;*#+;ii,i*+zzznz######zzznW@@@@@@@@@WWWWMMMMMMWWWMn*,::*nxnz+*i;;MWnzMxzz*i;*#zz##z#####zzz##;:::::,in#######++++++++++*+++####z++*
;;;;;;;;;;;;:i,:,`;i*+*;+:;*++##z######zzzzznW@@@@@@@@WWWMMMMxxMMWWWMx+,.,:#xMxn#*i;nWx;nn+*+;;#######zzzzzz##znz#+**i*+##zz####+###+++++#zz###+++**++
;;;;;;;;;;ii.``.``;ii*i.;,*++zz#####zzzzzzzzzW@@@@@@@@WWWMMMMxMMMW@Wxx*:`,:ixxMMn#*;zMx*#ni*+;.+zzzzzzzzz###z#nn######z#z#########++++++#####+++**+**+
;;;;;;;;;i;i:,`.``.i*i,.*+#zz###z#+zzzzzzzzzzW@@@##@@@@WWWWMMMMMWWWMxz+*;:i*znxMMn+i+@nx#n*;i*,nzzzzzz#zz#####Mnzzz+;:*##############zz++++++++++++###
iiiiiiiii:,;i*;```..;i;;#########i#zzzzzzzzzzW@@@##@@@@WWWWMMMMMWWWWMxxnz##;iznxxxz*+@Mxzni:;i*zzz#zzz#zz#####n#z####+:`,i####+++##zz#+++****++######z
iiiiiiiii,,,;i,```,+i*z*+##zzzz++*zzzzzzzzzzzM@@@##@@@@WWWWWWWMMWWWWWWWMxn#:;+nxxnn**@Wxxn+ii++####zzzzzz###########++#i``:++++###++++++++++++#####+++
iiiiii**i:,,::,,,:#M*+#zzzzzzz#zzzzz#zzzzzzzzM@@@###@@@WWWWWWWWMWWWW@WWMxx#i#MWxnzn++WWMxnz#zz##zz#zzzzzzzz#####z####++z,``:#+++++++##############+++#
iiii****i,,:*i;;;;+znzzz##zzzzz##zzzz#zzz##zzx@@@@##@@@WWWWWWWMWWWWWWWWWMxznzMxznzz##WWWMx####zzz#zzzzzz#zz#############;;..:+##++######z#++###++#####
ii***+##*::;iiii+#zznzzzzzzzzz##zzzzzzzzzz#zzn@@@@###@@@WWWWWWMWWWWWWWWWMxn#++*#zzz#zWMWMxz#zzzz#zzzzzzzzzz#zzz##########+*`:*###########zz#+++++###++
**+###zz+:::i##+#zzzzz#zzzzzzzzzzzzzzzzzzz#zzzW@@@#####@WWWWWWMWWW@WWWWMMx+**::i*+##xMMMMMn###zzz##zz#zzzz#zzz###z#+#z##z##;.i##++++#######+++++++++++
###zzzzzzi:;*zz#z##zzzzzzz#zzzzzzzz#zzzzzzzzzzW@@@#####@WWWWWWWWW@#@WWWMnxz*::;ii*++MMxnMxx####zz##zzz####zz#+++######zz####:.++++#####++#++++++++++++
zzzzzzzzz#i;+nzzzzzzz#zzzzzzzzz##zzzzzzzzzzzzzM@@@@#####@WWWWWWMWW@@WWWMxn*;i*ii;i*#MWxnxnzz##zz#######z#z##zzzzz###z#####+++,;+++++++++++++#+#+#z##z#
zz#zzzzzzzz#znzzzzz###zzzzzzzz###zzzzzzzzzzzzzx@@@@#####@WWWWWWWWWWWWWWWx+#zzz*;;;*nMMMxnx##++#zz###zzzz##zzzzzz####+++++#++++:+++++++++++++##zzzz#zz#
zzzzzzzzzzzzzzzzzz##+*##zzzzzzz#zzzzzzzzzzzzzznW@@@@#####@WWWWWWWWWWWWWWMxxxn#i;;;*MMxxxnzz###zzz##zzz##########++++###++####++##+++#zzzz#z#zz########
zzzzzzzzzz#+###nnnz#+ii+#zzzzzzzzzzzzzzzzzzzzzzW@@@######@@WWWWWWWWWWWWWMMMxz;::;;#Mxnxxxzz##z#zzzz#######+#+##nz++##+*izz#####+#############++###+++#
zzzzzzzz##++zzz#nzz#*i:;+#zzzzz#zzzzzzzzzzzzzznW@@@@#####@@@WWWWWWWWWWWWWMMz;,:;;inxnzznzz##+##########znzz###zxMxz#+#####+###z#z###+++++++++#####+++#
zzzzzzzn+#zznznnzn#+**ii;i#####zzzzzzzzzzzzzzzzW@@@@#####@@@@WWWWWWWWWWMMMzi;;;ii+xxnz#zz############zzzzzzzzz###z++##++#zzzzzzzz#####+++++#####+#+##+
zzzzzzz##znxxnxzzzz+z#+*i;i+##zzzzzzzzzzzzzzzzzW@@@@@#####@@@@WWWWWWWMMMMn+****++nnnnzzzz#zz#+++#zzzzzzzz####zz#####++##zz######++#+##zzzzzz####zzznzz
zzzzzzz+##zxxxxznnnzxx#z#ii*#zzzzzzzzzzzzzzzzzxW@@@@@#####@@@@@WWWWWWWMMMnzzzzz##xxzzzzzzzzzzzz##zzzzz###zzz######z#z#i######+++++####################
zzzzzz#++#nnnzzznnxxxnzzn+*#++zzzzzzzzzzzzzzznM@@@@@@@###@@@@@@@WWWWWWWWMMxxxnz#zzxzzzznzzz##znzzzz###zzz######zzzzzz*..+#######+++######++#zznzz###zn
#zzzzn#++nxxxxzzxMMWMxz###+z++#zzzzzzzzzzzzzzxW@@@@@@@@###@@@@@@@WWWWWWWWMxxnn#+zzzzznnnnznznnnzzz######zzzzzznnnzz###++**#z#+**i*#+##+zzzznznzzzzz##z
#z##z+zizxMMMnz#zxMMMMn+++#n#*+zzzzzzzzzzzzzxWW@@W@@@WW@@#@@@@@@@@WWMMMMMxxnzz#+znnzzzzzznnnnzzz#zz##znnnnnzzznzzznnzzznz###++++nnnzzznnzzzz#z##zz##z#
+*i*#+#+xMMMMz###znnnnn*+i+##*+#zzzzzzzzzzznMWWWWW@@WWWW@@@@@@@@@@WWWMMxxnnnz##+zzzzzzzzznzz##zzz#znnnnnnnnnnz#zznzzzzzzzznnnn#nnnnzzznz#######zzzznnn
#*i+####nxMMn#+#++nnx#z+#;**++*+#zzzzzzzzznxWW@WWWWWWWWWW@@@@@W@@WWWWMMMxxnnz##*##z####zzzzzzzzzznnnnnzzzzzz##zzzzzzzzznnnznnnzzzznnzzz####zzzzzzzzzzz
#**#z#xn#nxxz+#z#++zxz+z#*z+*+*++#zzzzzzzzxMW@@WWWWWWWWWWW@@@WWWWWWWWMMMxxnnz#+*z###zzz###zzzzznzzz#z##z######zzzzzzzznnnnzzzzzzznzz######zzz#######+#
xz#znnMMxznnz+nnxnzzn##+z##++i**+#zzznnnznMW@@@WMWWWWWWWWWWW@@WWWWWWWMMMxxnnz#+*zzzzzzzzzzzzzzzzz###z###zz#########znnzzz####zzz#zz#z#zz##zz#+#+######
x##nnxWMxznnn#zxxxxnnzz#nnz+*+*###zzzzzzzxWW@@@@MWWWWWWWWWWWWWWWWWWWMMMxxxnzz#+*#zzzzzzz###zzzzzzzz##########zzzzzzzz#######zz#####zzzzzz+++##zzzzzzzz
++znxxWxznnxxnznxnnzxnnn#nnn#+*#++#nnnnzzM@@@@@WWWWWWWWWWWWWWWWWWWMMMMxxnnnzz#+*##########z###z#####zzznnzznnnzzz#########z#zzzzzznnzzzzzzznnnzzzzzz##
+##xMMMzznxxnxznn#z#xxnxzznnn+++**#zznzznW@@@@@WWWWWWWWWWWWWWMMWWMMMMMxxnnzzz#+*z#+#######zzzz###znzzzzznnnnzz##########zzz##zzzzzzzznnnnnxnnzzzzzzz##
###xxxz#znxxxzznn#+#zxnnnzznz#+#*i+znzznMW@@@@WW@WWWWWWWWWWWWWMMWMMMxxxnnzzzz#*+xz#+#zzzzznzzzzznzzzzznnnnzzz#####zzz#z###z######zzznnznnzzzz##zzz#z##
##zxxn+znnxMnzznn#+##nnzzzzznz+z#*#zzznnMW@@@@@@@@MWWWWWWWWWWWMMMMMMxxxnzz####++nz####znnzzznnnnznzzzzzzzzzz####znzzzzz########zzzzzzzzzzzz#z##zzzzzz#
#zzxMz#xxxMxnnnnn#*+zznnnzzzz#++++#zzzzxWW@@@@@@@@WMWWWWWWWMWWWMMMMMxxnnz#####+#nzzzzz#zzznnzzzzznnz#z###zz###zzzzz#zzz##zzzzzznz##############zzz#znn
zzzMMznMMnxxxMz#z#z+##znxnnn+#+**##zzznMMW@@@@@@@@@WWWWWWWWMMMMMMMMMxxnnz#+###+#nzzzzzz######zzzznnz###znnnznzzz#zzznnnnnnnnnz##########zzzzzzznznnnnn
zzzMMnnMMnnMWMx##zzznxxnnznnzz+++#+#zznWWWWWW@@@WW@WWWWWWWWMMMMMMMMMxxnzz#++##+#xzzzz#zz##zzzznnnzzzzznnnnnzzzzzznnznnnnnnzz###z#zzzzzzzzzzzznnxxnnzz#
nzzxMxnMxnxMMWxzznzxMMMMznxxnz*+z#+zzzxMWWWWWWWWWWW@WMWWWWWWMMMMMxnxxxnzz#+++#*zxzz########znnnnnnnnznnnzzzzzzzzznnnnnnnzzz#z##zzzzznzzzznnznnnnzzz##z
xxxxMxxxnxxMxxxznnnnMWMxnxxxnz+##+*#zzMMMWWMMWWWWMW@@WWWWWWWWWWMMnzznxxn##+*++*zxnz#########nnnnnzznnzzznnnzznzzznnzzzzzzzzzzzzzz#zzzzznznnnnnzzzzzzzn
xMMMWxMxxxMxxWMnxWWWWWMMxnnz#zzz#++#nxMMMWWWWWWWWWW@@WMWW@@@@WWWMnzzzzzzz#+i;**znnnnz######+#zzzzznnzzzzzznnnnnnnzzzzzzzznzzz########zzzznnzzzzzzzzzzz
xMMMWMMMxxxnMWWMMWWWWWWMMxnzzzzz#++zzxMMMWWWWWWWWWWWWWMWWW@@@@@WMxnzzzz###+::i*zxMMxxnnz#####zznnnnzzzzznnnnnnzzzzzzzznzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
MxMMWMMMMMMWWWWWMMWWWWWWWxnnz#++++#nnMMMWW@WWWWWWWWWWWWWWWW@@@@@@WMxnzz####:,;;#xMMWWMMMMn#zz##nzz#zzznnxnzzz##zznnnnnzzzzzzzzzzznnnnnzzzz#zzzzzzznzzz
MMMMWMMMWMMWWWWWWMxWMMWWWMxnzz##+zzznMWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@Wxzz###+;,;+xxMWWWWWWxzz*;*#####zzzzz##zzzzzzzznnnnnnnzzz#znnnnnzzzzzznnnnnnxnnnnn
MMMMMWMWMMMWW@@WWMnxWWWWWWxnnnz#zzzzMMMWWMW@W@WWWWWWWWWWMW@@@@@W@@@@@WMnz####i:;zxMMWWWWWxzz#*i#zzz###zzzzz#zzzznzzzzznzzzzz##zzzzzzzznnnnnnnnnnnxxxnn
MMMWWWWWWWMWWW@WWMMxMWWWWWMxnnzznznnMWWWWMW@WWWWWWWWWWWWWWMWW@WWWWW@@@@Mnz####+;;nMMWWWWMxnz#####zzzzz#zzzzzzzzzzzzzzzzzzzz###zzzznnnnnnzznnnnnnxxxnzz
MMMMWWMWWWWMWW@@@WMMMMMMMMMxnzzzzzznMWWMMMWWWWWWWWWWWWWWWWMMMMMMWWMMW@@@Wnz#####iixWWWWWMxnz#####nzzzzzzzzzzzz####zzzznnz#####zzzznnnnzzzznnnnnxnnnzzz
MWMMWWWWWWWMMW@@WWMMxxxMMMxxxzzzzzznWMMMMWWWWWWWWWWWWWWWWWWMMMMMMMWWMM@@@Wxz#####i*nWWWWWxz#####zzzz#zzzzznnnnzznznnznzzzzzzzzzznnnnnnnnnnzznnznzzzzzz
WWWMWWWWWWWWWWWWWWWxxMMMMMMxnnzz#zzxWMMMWWWWWWWWWWWWWWWWWMMMMMMMMMMWWMMW@@Wxz#####+i*nW@@Mxz####nzzzznnnnnnxnnnnnnnnnnnnnnnznzzzzzzzzznzzz###zzzzz#zzn
@@WWWWWWWWWW@@WWWWWMMMMMxMMxnzzz#nnxMMWWWWWWWWWWWWW@@@@@@@@@WMMMMMMMWWWW@@@Wxz######*;+M@WWMnzzznnnnnnnnnnnnnnnnnnnnnnnnnnnzzzzzzzzz##zzzzzzzzznnnnnxn
@@@@WWWWWWWWW@@WWWWMMMxMxxxnnnxz###xMWWWWWWWWWWW@@#@@@MnnnxMMW@WMMMMMWWWWW@@Wxzz#####+iixWWWMxznxnnnnnnnzzzzzznnnnnnxxxnnnzznnnnnnxxnzzzzzzzzznnnnnnzn
@@@@@WWWWW@@@@@@@@W@MxMMMxMxznxziizMWWWWWWWW@@@#@Wxzz#########x@@WMMMWWWWW@@@Mnzzzzzzzz#izW@WMzzxxxnnnn#zznzzzzznnxnnnnnznnnxxxxnnnnnnzz#zzznnnzzzzz#z
@@@@@@WWWWW@@@@@@@W@@WMMMMMMxznz*nMWWWWWWW@@###@xzzzzzzzzzz#####x@WWMWW@@WW@@Wxnzzzzzzznn;#@@Wz#znnnnn#+zznnnnnxnnnnzznnnnnnxxxnnnzzzznnnnnnnnnzzz###z
@@@@@@@WWW@@@@@W@W@@@WWMMMMMx#z,zxMWWWWW@@####Wnzzzzzzzzzzzz#####n@WWWWW@WWW@@Wxnzznnzz#z#;z@@n###zznnnnnnnnnxnnnnzzzzznnnnzznzzzzznnnznnnnnznzzzzzzzz
@@@@@@@@WW@@W@@@WWW@WWWWWWWW;`.iWMMWWWW@###@WMMMMxzzzzzzzzzzz#####zMWWWWW@WWW@WMnzznzzzz##+;M@Mzz##xxnxxxxxnnnzznnnnzzzzzzzzzzzzzzz#zznnzzznzzznnnzzzn
##@@@@@@@W@@@W@@WMW@@WWW@WWz```zWMMWWW@##WMMMx@@@@Wn#zzzzzzzz#######MWWWW@@WWW@Wxnznzzz######M@Mz##zxxxxxxxxnzzznnnnzzzzzzzzzzzz#zz#######z#zzzzzzznnn
@@#@@@@#@W@@@@@x*;i++#nMWMx:```xMMWW@@##WM@@Wn@WM@@@x##zzzzz#########xWWWW@@WW@@Mnznnn########zMWMnznxnnnnnnxnnnnnnnznzzzzzzzzznnzzznznznnzzzz#zznnnzn
@@##@@@@@WWW@M+##+;;;::izzi```:MMMW@###@MW@@xnxzzM@@@n#zzzzzzzzzz#####xW@W@@@WW@WxnnnxnzzzzzzzzzxMWWxnnnznnxxnnxxnnzzznn#znxxxnnxxxxxnnxxnnnnnznz#zzzz
@@##@@@@@xnW@Wxzxxz+i;;:;:```.;MMMW@##@@@@@@nnMMnxWWWWnzzzzzzzzzzz#####xWWW@@WW@@MnnxxWxxxnznnnzxxnxWWnnnxxxxxnnnnnznnnnnnxxxxxxxxxxxnnnnnnnnnnnnnnnnn
@@@##@@@@xxnMMMz#z+;iii:;:.,::+WWW@###@@@@@MWWWWWMMxxWWzzzzzzzzzzzzz####x@WW@@WW@MnxxxWWxnxxnz####zznMWnxxxxnnnxxxxxxxxxxxxxxxxxxxnnzzznnnnnxxxxxxxnnn
#@@###@@@xxMMMMnxz*iiii;;;*+*;*WW@###@@@@@@W@@@@@MnzzxWMzzzzzzzzzzzzz###+zWW@@@WWWxMMMMxxWWMnzz######zMMnxnnxxxxxxnxxxxxMxxxxxnnxxnnnxxxxxxxxxxxxnnnzz
###@###@MxxMxWWWn#+iiii;;;*#+::WW@##@@@@@@@@@Wxx@xnnznW@nzzzz++zzzzzz###z#xWW@@WWWMxMxnMWWMWMzz#z####+#Mxnnxxxxxxxxxxxxxxxxxxxxxnnxxnnxxxxnzxnzz*;;znz