:::::::;;:::;:::::::::::::::::::::::::::::::*@@WWWWMWW@@MMMWWWWWMMxxMMMMMMxxMMxxnnxMMM@@WW@@@@@W@@@@
::::::::::::::::::::::::::::::::::::::::::::iM@WWWWMWW@@MMWWWWWWWMxxMMMWMMxxMMxxnnxMMM@@@W@####@####
::::::::::::;:::::::::::::::::::::::::::::*;;M@WWWWMWW@@MMWWWWWWWMxxMMMWWMxxMMxxxnMMMM#@@@@####@####
:::::::::::;;:::::;:::::::::::::::::::::::i;;M@W@WWWWW@@MMWWWWWWWMxxMMMWWMxxMMxxxnMMMW#@@@@###@@####
:::::::::::;;;::::;;::::::::::::::::::::::::;x@W@WWW@@@@WMW@@WWWWMxxMMMWWMMMWMxxnnMWWW#@@@@###@@####
:::::::::;*nni::::;;:::::::::::::::::::::::;;x@W@@WW@@@@WMW@@WWWWMMMMMMWWMMMWWxxnnMWWW#@@@####@#####
::::::::;;xWW#;::;;:::::::::::::::::::::::::iW@W@@WW@@@@WMW@@WWWWMMMMMWWWWMMWMxxnxMWWW#@@@####@#####
::::;:;;;:iMM*:;;;::::::::::::::::::::::::::*WMx@WWW@@#@WM@@@@WWWMMMMM@WWMMMWMxxnxMWWW#@@@####@#####
:;::;+*#z#;+;::;;;::::::::::::::::::::::::;;iMWWW@WW@@#@WM@@@@WWWMMMWWWWWWMMWWxxxxWWWW#@@@####@#####
:;izx@WW@M+::::;;;;:::::::::::::::::::::::;i;ixM@@@W@@#@WW@@@@@WWMMMWWWWWWMMWMxxxxWWWW#@@@####@#####
;:*xxW@WWMii*i:;;:::::::::;;;::::::::::::::;;:;+M@@W@@#@WW@@@@@@WMMMWWW@WWMM@MxxxxWWW@#@@@####@#####
;;;nW@WMMz;MWM;:::::::;iiiiii;;:::::::::;::::::+@@@@@##@@W@@@@@@@WMMWWW@WWMW@WxxxxWWW@@@@#####@#####
;i:#MMnxxznMMn;:::;;ii***iiii;;;:::::::::::::::;W@@@@##@@W@@@@@@@WWWWW@@@WWW@WxxxMWWW@#@@#####@#####
:i:ixi;+ix@Wx+:::;i******iiii;;;;;;::;;:::::::::*xW@@##@@W@@@@@@@WMMWWW@WWWW@MMxxMWWW@#@######@#####
;i;:z;:::*nn;;;;ii********iii;;;;;i;::::::::::::;;+@@##@@W@@@@@@@WWWWWW@WWWW@MMxxMWWW@@@############
;i*:;::::::;:;;**++++++++***iii;;;::::::::;;;;;:::+@@##@@W@@@@@@@WWWWWW@@WWW@MMxxM@W@@@@############
;*+:;::::::::;*++#######++***ii;:::::::;;;;;;;;;:::#@##@@W@@@@@@@WWWWW@@@WWW@WMxMM@@@@@@############
i+*::::::::;:;zzzzzzzzzz#++**i;::::::;iii;;;;;;;i::;*W#@@@@@@@@@@WWWW@@@@WWW@WMxxW@@@@@#############
*i+i;::::::;:innzzzzzzzzz#++i;::::::iiiiii;;;;;;ii;;;*W#@@#@@@@@@WWWWW@@@WWW@WMxxW@@@###############
ii+i;::::::;:*nnzzzzzzzzzz#*;:::::;****iiiii;;;;;ii;;;*@@@#@#@@@@WWWWW@@@WW@@WMxxW@@@###############
*+#i;;;:::::;*nzzzzzzznnzz+;:::::;+++**iiiii;;;i;;;ii;;*@@#@@@@@@WWWWW@@@WWW@WMxxW@@@###############
*#+i;;i;:::::*nzzzzzzznnzz*::::::+#+++****ii;;iiiiiiiii;*W#@#@@@@@WW@@@@@WWW@WMxMW@@@###############
*#+;;;;;;;;;;*nzz####znnz#;:::::*##+#++****iiiiiiiiiiiiiiiM####@#@@@@@@@@WWW@WMMM@@@@###############
++i;;i;i;;;;;*nzz##++#zzz+:;:::i######+++**iiiiii**iiiiiii*n#####@@W@@@@@WW@@WMMM@@@@###############
#+i;i*i;;;;;;inzz##*ii#zz*:;::;zz###z#++++*iiiiii****iiiiiii#W###@WW@@@@@WW@@WMMM@@@@###############
+*i;**i;;;;;;;zzz#+*;:*zzi:;::zzzz#zz#++++**ii*ii****iiiiiiii*zM@@W@@@@@@@W@@WMMM@@@@###############
+*;i**;;;;;;;;#z##+*;::+#i:;:;zzzzzzz#++##**i********iiiiiiiiiii*+zxW@@@@@@@@WMMM@@@@###############
+*ii*i;;;;;;;;+z##+*;;:;z;:::*zzzzzzzz####+**********iiiiiiiiiiiiiii*+#nxMW@@WMMW@@@@###############
+ii**;i;;;;;;;iz##+i;;::#;:::+zzzzzzzz##z#+****+++***iiiiiiii;;;;;;;;;;iii*zxMMMW@@@@###############
#ii**;i*;;;;;;;#z#+*;:::*::::#zzzzzzzz##zz#***+++++**iiiiiii;;;;;;;;;;;;;::;;*#xW@@@################
+ii*;:i++*;;;;;+z##*;::::::::#zzzzzzzz##zz#++++#+++***iiiiii;;;;;;;;;::::::;;;;i*n@@################
*;i**;+++#*;;;;*zz#*;::::::::#zzzzzzzz##zz#+++###++***iiiiii;;;;;;;:::::;;iiiiii**#W################
*;i++;i*+zz;;;;izz#*;::::::;:*zzzzzzzzz#zz##+####++***iiiiii;;;;;:::::;ii;;;;;;;;i*+n@##############
iii#i;**+zx;;;;;#z#*;::::::::;zzzzzzzzz#zz########++***iiiiii;;;::::;ii;;;;;;;;;;;;***x#############
ii*+*i+++zx;;;;;#z+*;:::::::::#zzzzzzzzzzz########++***iiiiii;;:::;ii;;;;;;;;;;;;;;;**;+W###########
ii+++iz#+zz;;;;;+z+*;:::::::::*zzzzzz#############+++***iiii;;:::;i;;;;;;;;;;;;;;;;;i*i;ix##########
;*+#+in##x*;;;;;*#+*;;:::::::::+#z##z###########z##+++***iii;::;ii;;;;;;;;;;;;;;;;;;;i*;;ix#########
;*##+*nzzn;;;;;;i#+*;;;;;::::::;#####++##++########+++***ii;::;iii;;;;;;;;;;;;;;;;;;;i*i;;iM########
i*#+i*#zni;;;;;;;#+*;;;ii:::::::i#####++++*++#######++***i;::;iii;;;;;;;;;;;;;;;;;;;;;**;;;*W#######
i*##;;zn+:;;;;;;;++*i;ii+*:::::::*##++******+++#####+++*i;::i*iii;;;;;;;;;;;;;;;;;;;;;i+;;;i########
i+z#;izn::;;;;;;;*+*i;i*+*;:::::::+#+**i*****++++####++*i::i*iiii;;;;;;;;;;;;;;;;;;;;;i+i;;;ix######
i+z*:*n*::;;;;;;;i+*i;i*+#i;;:::;izn+**+***i***##+###++*;:;**ii;;;;;;;;;;;;;;;;;;;;;;;i+i;;;i+######
*#z;;#z;:;;;;;;;;;**i;i*+z+;;****@##@z++++++++*+######*i:;+**iii;;;;;;;;;;;;;;;;;;;;;;i**;;;i*M#####
*##:;ni;;;;;;;;;;;**i;;*+n+;;i#+*@####M#i;;i#xnnnzz##+*::*+**ii;;;;;;;;;;;;;;;;;;;;;;;i*+;;;;iz#####
*+;;+*;;;;;;;;;;;;**i;;i+z#;;i+#+@########@#######xz#+i:i++**ii;;;;;;;;;;;;;;;;;;;;;;;i*+;;;;i+@####
+;:i#:;;;;;;;;;;;;i*i;;i+z#;;;*++@#################W#+;;+++*iii;;;;;;;;;;;;;;;;;;;;;;;i*#;;;;i*W####
+;iz;:;;;;;;;;;;;;;*i;;i*z#;;;;;;@##################M+;*#++*iii;;;;;;;;;;;;;;;;;;;;;;;i+#;;;;i*x####
*;*#::;;;;;;;;;;;;;iii;;i#+;;;;;;@###################z;##+**iii;;;;;;;;;;;;;;;;;;;;;;;i+#;;;;i*n####
;i#i::;;;;;;;;;:;;;ii;;;i+*;;;;;;@###################@+##+**ii;;;;;;;;;;;;;;;;;;;;;;;;i#+;;;;i*n####
;*#;::;;;;;;;:;:;;;;i;;;i+;;;;;;;@####################M##+**ii;;;;;;;;;;;;;;;;;;;;;;;i*z*;;;;i*n####
i#i;::;;;;;;;:::;;;;;;;;*i;;;;;;;@####################x##+**ii;;;;;;;;;;;;;;;;;;;;;;;i*zi;;;ii*x####
*#:::;;;;;;;;:::;;;;;;;i;;;;;;;;;@####################n##+*iii;;;;;;;;;;;;;;;;;;;;;;i*#z;;;;ii+M####
#;:::;;;;;;;;:::;;;;;;;i;;;;:;;;;@####################z##+*ii;;;;;;;;;;;;;;;;;;;;;;ii+n*;;;;i*#W####
*::::;;;;;;;;:::;;;;;;;i;;;;:;;;;@###################@##+**ii;;;;;;;;;;;;;;;;;;;;;;i*#n;;;;ii*z@####
:::::;;;;;;;;::;;;;;;;;i;;;;:;;;;@###################M##+**ii;;;;;;;;;;;;;;;;;;;;;ii+n*;;;;i*#x#####
:::::::::::::::;;;;::;;i;;;;:;;;i@###################n##+*iii;;;;;;;;;;;;;;;;;;;;ii+n#;;;;ii+zW#####
:::::::::::::::;;:::::;;;;;;:;;;i@###################z##+*ii;;;;;;;;;;;;;;;;;;;;ii*zn;;;;;i*#M######
:::::::::::::::;;::::;;i;;;;:;;;i@##################M###**ii;;;;;;;;;;;;;;;;;;;;i*zn;;;;;i*+n@######
:::::::::::::::;;::;;;;i;;;;:;;ii@##################n##+*ii;;;;;;;;;;;;;;;;;;;ii*zn;;;;;ii*zM#######
:::::::::::::::;;::::;ii;;;;:;;;i@#################@###+*ii;;;;;;;;;;;;;;;;;;;i*#n;;;;;;i*#x@#######
::::::::::::::;;;::::;;i;;;;:;;ii@#################W###+*ii;;;;;;;;;;;;;;;;;;i*#n*;;;;;;i*zW########
::::::::::::::;;::::::;i;ii;:;;ii@#################x##++*ii;;;;;;;;;;;;;;;;;ii+zz;;;;;;i*+x#########
::::::::::;;;;;:::::::;i;;i;:;;ii@#################z##+**i;;;;;;;;;;;;;;;;;ii*#n*;;;;;;i+zW#########
:::::::::::::;::;:::::;i;;i;:;iii@################@###+*ii;;;;;;;;;;;;;;;;;i*+zn;;;;;;i*#x##########
:::::::::::::::;;:::;;;i;;i;:;iii@################W###+*ii;;;;;;;;;;;;;;;;ii*+z#;;;;;i*#zW##########
:::::::::::::;;;:::::;;*;;i;:;i;i@################x##+**ii;;;;;;;;;;;;;;;;i*+#zi;;;;;i+zx###########
::::::::::;;;;;:::::::;i;;i;:;;;i@################z##+**i;;;;;;;;;;;;;;;;i*++#z;;;;;i*#zM###########
::::::::::::;;::::::::;*;;i;:;;ii@###############@###+*ii;;;;;;;;;;;;;;;ii*++#+;;;;;i+zn@###########
:::::::::::::;::;::::;;*;;;;:;;ii################W##+**ii;;;;;;;;;;;;;;;i*+++zi;;;;i*#zx############
::::::::::::::;;:::::;i+;;;;:;;;i################M##+**ii;;;;;;;;;;;;;;;i*+*+#;;;;;i+znW############
:::::::::::::::::::::;;*;;;;:;;;i################x##+*iii;;;;;;;;;;;;;;ii***#*;;;;;i+zx@############
:::::::::::;;;::::;::;;*i;;;:;;;i################z++**ii;;;;;;;;;;;;;;;i****z;;;;;i*#nM#############
::::::::::::;::::::::;;*i;;::;;;i#################;iiiii;;;;;;;;;;;;;;ii***+#;;;;;i*#x@#############
:::::::::::::::::::::;i+i;;::;;;;@###############+;;;;;;;;;;;;;;;;;;;;ii**+zi;;;;i*+zM##############
::::::::::::::::::::;;i*i;;::;;;;W###############i;;::::::;;;;;;;;;;;;ii**##;;;;;i*+n@##############
::::::::::::::::::;;;;ii;;;:;;;;i+##############@;;;:::::::::::;;;;;;iii*+zi::::;;i*#@##############
:::::::::::::::;;;;;;;;;;;;:i;;;i;##############M;;;:::::::::::::::;;;;;i*i::::::;;in###############
:::;::;;;;;;::::;;;;;;;;::::i;;;;;+###########@Wz;;::::::::::::::::::::;;i:::::::;;*W###############
;;::::::;;;;;;;;;;;;;;;:::::+;;;;;;x@WMxz#+*iiii;;;::::::::::::::::::::;ii:::::::;;#################
;;;;;:;;:;;;;;;;::;;****+#zz*;;;;;;;;;;;;;;;;;ii;;::::::::::::::::::::;;i;:::::::;iM################
;;;;;;;;i*+#zz####+*i;:::::::::;;;;;;;;;;;;;;;;;;:::::::::::::::::::::;ii:::::::;;+#################
#znxnxnn#+*i;::::::::::::::::::;;;;;;;;;;;;;;i**;;::::::::::::::::::::;i;:::::::;;x#################
*i;:::::::::::::::::::::::::::::;;;;;;;;;iii*#nxi:::::::::::::::::::::;*::::::::;*@#################
:::::::::::::::::::::::::::::::;;;;iiii*+++#zxMWi;:::::::::::::::::::;i;::::::::;z##################
:::::::::::::::::::::::::::::::::;;i#zz#nxzxMW@#i;;;:::::::::::::::::;i::::::::;i@##################
::::::::::::::::::::::::::::::::::::;+zxxxxM@@##i;;;;:::::::::::::::;i;::::::;;iM###################
::::::::::::::::::::::::::::::::::::::::i+zW####*;;;;:::::::::::::::;i:::::;;;;#####################
::::::::::::::::::::::::::::::::::::::::::::*#nxi;;;:::::::::::::::;*;:::::;;;*@####################
:::::::::::::::::::::::::::::::::::::::::::::::;;;;;::::::::::::::;ii:::::;;;iM#####################
:::::::::::::::::::::::::::::::::::::::::::::::;;;;:::::::::::::::;i:::::;;;;z@#####################
::::::::::::::::::::::::::::::::::::::::::::::::;;;::::::::::::::;i;:::::;;;*@######################
::::::::::::::::::::::::::::::::::::::::::::::::;;;:::::::::::::;;i:::::;;;in@######################
:::::::::::::::::::::::::::::::::::::::::::::::::;;:::::::::::::;i;:::::;;;+W@######################
::::::::::::::::::::::::::::::::::::::::::::::::;;;::::::::::::;;i:::::;;;inW#######################
::::::::::::::::::::::::::::::::::::::::::::::::;;;::::::::::::;i;:::::;;;*WW#######################
::::::::::::::::::::::::::::::::::::::::::::::::;;::::::::::::;;i::::::;;izWW#######################
::::::::::::::::::::::::::::::::::::::::::::::::;;::::::::::::;i;:::::;;;ixW@#######################
::::::::::;;i;::::::::::;;;::;::::::::::::::::::;;::::::::::::;i::::::;;;*MW@#######################
:::::;ii**+#**++++++++**iii**i**i:::::::::::::::;;:::::::::::;;;::::::;;;*WW@#######################
::::;**+++++++*+*******+#++++#+;::::::::::::::::;;:::::::::::;i;:::::;;;;+WW@#######################
::;*++++#++++++***+++z##zzzz*;:::::::::::::::;;;;;::::::::::;;i;:::::;;;;#WW@#@#####################
iiii*++i*++++++#z#+##zz#zz#;::::::::::::::::;;;;;;::::::::::;;;::::::;:;;zMW@@######################
******++####zzz##zzz##znni::::;;:::::::::::::::;::::::::::::;i;::::::::;;nMW@@######################
******+++###zzzz##zzzzzni::::::::::::::::::::::;:::::::::::;;;;::::::::;ixMW@@######################
i***++**+++z++##zz#z##z#:::::::::::::::::::::::;;;:::::::::;i;:::::::::;iMMW@@######################
;;i;;;;;;::::::::::;z+#*::::::::::::::::::::::::;;:::::::::;i;:::::::::;ixMW@#######################
:::::::::::::::::::::*i;:::::::::::::::::::::::::::::::::::;i::::::::::;ixMW@@######################
:::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::;;::::::::::;ixMW@@######################
:::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::i;::::::::::;ixWW@@######################
:::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::i;::::::::::;ixMW@@######################
:::::::::::::::::::::::::::::::::::::::::::::::;;::::::::::;;::::::::::;ixWW@@######################
::::::::::::::::::::::::::::::::::::::::::::::;;:::::::::::;;::::::::::;iMMW@@######################
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;::::::::::;*WM@@#######################
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;::::::::::;zMM@@#######################
::::::::::::::::::::::::::::::::::;;::::::::::::::::::::::;i;:::::::::;;MMM@@@######################
::::::::::::::::::::::::::::::::;;;:;;;:::::::::::::::::::;;;:::::::::;*@WW@@@######################
:::::::::::::::::::::::::;+n;:::;;;;;:;;::::::::::::::::::;;;:::::::::;n@MM@@@######################
::::::::::::::::::::::;*nMMM;:;;::;;;;;:::::::::::::::::::;;::::::::::*W@MM@@@@#####################
::::::::::::::::::;*+###++zM;:::;;::;;;;:::::::::::::::::;;;:::::::::;nWWMWW@@@##@##################
::::::::::::::;+zz###+++*iii;:::::;;:::::::::::::::::::::;;;:::::::::;nWWMWW@@@##@####@@############
::::::::::;+nW#Wn#++++**iiii;:::::::;;:::::::::::::::::::;;:::::::::;;*xWMMWW@@##@#####@############
:::::::;+x@####Mz+++****iiii;::::::;;::::::::::::::::::::;;:::::::::;:*nWMMMMMW@#@###@@@@###########
:::;*#nMW######W#+******iii*;:::::::;::::::::::::::::::::;;::::::::;;:*zWMxz#zxM@@##@@@@@@##########
i#x@WMxxMW#####W#********i**;::::::::::::::::::::::::::::;:::::::::;::*#xz++##nM@@#@@@@@@@@@########
@@@@Mxnnxx@#@@@x#*****++****;::::::::::::::::::::::::::::;:::::::::::;+++++++#zM@##@@@@@@@##########
WWWMxxnnxxxW@Wxz#+****++***i;;::::::::::::::::::::::::::;::::::::::::i+++++++#zxW@###@@@############
xxxxxxnnxxxzzzzz#+*********i;;;;:::::::::::::::::::::::::::::::::;::;i+++***++zxW@@####@@@@@@@@#####
nxxnxnnnxxxnzzzz#+**ii***i*i;;;::::::::::::::::::::::::::::::::::;:;;i***iii*+#xW@@@@@@@@@@@@@@@@###
nnnnnnnxxxxzzzz#+********iii;;::::::::::::::::::::::::::::::::::;;;;;i**iiii*+#zM@@@@@@@@@@@@@@@@@@@
nxxnxxxxxxnnnnz#++*****iiii;;;::::::::::::::::::::::::::::::::::;;;;;;**iii***##n@@@@@@@@@WWWWWWW@@@
nnnnxxxMMxnnxxn##+****iiiii;;::::::::::::::::::::::::::::::::::;;;;;;;i*ii***++#zW@@@@@@@WMxnxxxMWW@
nnnxMMMMMMnzzz####+**iiiiii;;:::::::::::::::::::::::::::::::::;;;;;;;;iiii**+++##xW@@W@WMxnnzznnxxMW
xxxMMMWWMMnnnnzzzz+**iiiii;;;:::::::::::::::::::::::::::::::::;;;;;;;;iii***+++++znxxxnnzzzznznnnnxx
MWMWW@@@WMxMMWMxxxn+iiiii;;;:::::::::::::::::::::::::::::::::;;;;;;;;iiii****++++###zz#####zznznnnnx
##########M#####W@@xiiii;;;;:::::::::::::::::::::::::::::::::;;;;;;;;iiii***++++++####+++##zzznnnnnx
##########W#####W#@Wii;;;;;:::::::::::::::::::::::::::::::::;;;;;;;;;iiiii***+++++++++++++##znnnnnnn
##########W#####W@#W*;;;;;;:::::::::::::::::::::::::::::::::;;;;;;;;iiiiii*+*++++++++++++++#zznnnnnn
##########W#####M@WW*;;;;;:::::::::::::::::::::::::::::::::;;;;;;;;;iiiiiii*+++++++++++++++#zzznnnnn
##########W#####MWn*;;;;;::::::::::::::::::::::::::::::::::;;;;;;;;;iiiiiiii*+++++++++++++++#zzznnnn
##########W####W+i;;;;::::::::::::::::::::::::::::::::::::;;;;;;;;;;iiiiiiii**++++++++**+++###zzznnn
##########M@@Mz*i;;;;:::::::::::::::::::::::::::::::::::::;;;;;;;;;;;iiiiiiii*+++++++*+**++###zzzznn
#########@z#+**i;;;:::::::::::::::::::::::::::::::::::::::*;;;;;;;;;iiiiiiii****++++++*+++++####zznn
#######@x+**ii;;;;::::::::::::::::::::::::::::::::::::::::*i;;;;;;;;;iiiiiiiii***+++++*+++++#####zzn
####Wxz+*ii;;;;;;;::::::::::::::::::::::::::::::::::::::::;*;;;;;;;;;iiiiiiii*ii*++++++**+++######zn
@#Mz***ii;;;;;;:;;:::::::::::::::::::::::::::::::;:::::::::;;;;;;;;;;;iiiiiiiiii**+++*+++++#######zz
n#*iiiii;;;;;;::;:::::::::::::::::::::::::::::::::;:::::::::;;;;;;;;;iiiiiiii******+++**++++#######z
iii;;;;;;;;;::::::::::::::::::::::::::::::::::::::;:::::::::;;;;;;;;;iiiiiiiiii*********+*+++######z
;;;;;;;;;::::::::::::::::::::::i::::::::::::::::::;:::::::::;;;;;;;;;iiiiiiiiiii*i*********++#####z#
;;;;;;;::::::::::::::::::::::::;::::::::::::::::::::::::::::;;;;;;;;;iiiiiiiiiiiiii*******++++#####z
;;:::::::::::::::::::::::::::::;::::::::::::::::::::;:::::::;;;;;;;;;;iiiiiiiiiiiiii***i****+++++##z