###########################################@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##################@@WWWW@@@WWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@Mnzn
########################@##########################@@@@@@@@@@@@@@@@@@@@@@@@@##@#####@#####@@WW@@@@W@@WWWW@@@W@@@@@@@@@@@@@@@@@@@@@@xzz#
@@#@@@@#######################################################@##@@@#@@@@@@#@@@##@@@@@@##@@WWWW@W@W@WWWWW@@W@@WW@@@@@@@W@@@@@@@@@@Mnzz#
@@@@@@#@##@#@@##########################################################@@@@@@@@@@@@@##@@@WWWWW@WWWWWWW@WW@WWWW@@@@@@@@@@@@@@@WWWMxzzzz
@@@@@@@@@@@@@#@@#@############################################################@##@@@@@#@@WWWWWWWWWWWW@WWW@@@W@@@@@@@@@@@@@@@@Wxnnnz#zz#
@@@@@@@@@@@@@@@@@@@@####@#######@#####################@@@###########################@@@@WWWWWWW@WWWWW@@@W@@WW@@@@@@@@@@@@@@@@Mnzzz##zzz
@@@@@@@@@@@@@@@@@@@@@@@@@#@##@#######################################################@@WWWWWWWWWWWWW@@@@W@W@@@@@@@@@@@@@@@@@Wxzz#zzz#zz
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@###############################################@@WWWWWWWWWWWWWWW@@W@@@@@@@@@@@@@@@@@@@Mnzzzzzzzzz
####@####@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@############################################@@WWWWWWWWWWWWWWWW@@@W@@@@@@@@@@@@@WWMMxnzzzzzzzzzz
############@#@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@#####################################@@WWWWWWWWWWWWWWW@W@@@@@@@@@@@@@@@@@Mnnnnzz#zz##zzzz
@@@########@@##@@#@@@##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@#@@#######################@@WWWWWWWWWWWWW@WWWW@@@@@@@@@@@@@@@@Wxzzzzzz#zz##z##z
@#####@###@#@#####@####@#@@@#@@#@@@@@@@@@@@@@@@@@@@@@@@@@@#@#@###################@@WWWWWWWWWWWWW@@WWWW@@@@@@@@@@@@@@@@Wxzzzzz##zzz#z#zz
#@@#################@##@@@####@#@######@@@@@@@@@@@@@@@@@@@@@@@@@@#####@##########@@WWWWWWWWWWWW@WW@@@W@@@@@@@@@@@@WWWWxnzzzzzzzz#zzz##z
@@@@@##@#################@######@############@##@@#@@@@@@@@@@@@@@@@##@#@@@######@@@WWWWWWWW@W@WW@@W@@@@@@@@@@@@@@@Mxnnzzzzzzzzzzzzzzzz#
@@@@@@@#@@#############@##############@##########@@#@##@##@@@#@@@@@@#@#@@@#####@@@WWWWWWW@WWWWW@@@WW@@@@@@@@@@@@@Wxzzzzzzzzzz##zzzzzzz#
@@@@@@@@@@@@@@@@#@@#########################@#######@#########@#@##@@@##@@@@@#@@@@WWWWW@@WWWW@W@@@@@@@@@@@@@@@@@@Mnzz#zzzzzzzzzzzzzzzzz
@@@@@@@@@@@@@@@@@@@@@@@@@@##@#########@@@####@######@##########@@@@#@@@@@#@@@@@@@WWWWWW@@WWWW@@@@@@@@@@@@@@@@@WWMxzzzz#z#z#zz#zzzzzzzzz
#@#@@@@@@@@@@@@@@@@@@@@@@@@@@#@#@@@@#########@###@@@@@#####@@@@@@@@@@@@@@@@@@@@@@WWWW@@WWWWWWW@@@@@@@@@@@@@@@Wxxnzzz#z#zz#zzzz#zzz#zzzz
###########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####@@@@@WW@@@@@@W@@@@@@@@WWW@@WWW@@W@WWWW@@W@@@@@@@@@@@@WMnzzzzzzz###zzzzzzzzzz#zz#
######@@#####@##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@W@@@@@@@@@@@@@@@@@@@@@WW@@@WWWWW@@@@@@@@@@@@@@@Wxz####zzzzzzzzzz#zzzzzzzzz
###################@####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WW@@@WWW@@@@@@@@@@@@@@WMMxzzzz#zzzzzzzzz#zzzzzzzzzzz
@@@@@#@############@#############@#@@@@@@@@@@@@@########@@@@W@@@@@@@@@@@@@@@@@@@@@@W@@@@@W@@@@@@@@@@@@@@@Mnzzzzzzzzzzzzzzzzzzzzzzzzzzzz
@@@@@@@@@@@@@######@####@@######@########################@@@@@@@@@@@@@@@@@@@@@#@@#@@@WW@W@@@@@@@@W@@@@@@Wxzzzzzzzzz#zzzzzz#zzzzzzzzzzzz
@@@@@@@@@@@@@@@###@##@#####################@###########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWW@@@@@@@@W@@@@@WWMnzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
##@@@@@@@@@@@@@@@@@@@@@@@@@##################@##########@@W@@@@@@@@@@@@###@##@###@###@@W@@@@@@@@@@@@@Wxxnzzzz#zzzzzzzzzzzzzzzzzzzzzzzzz
@##@##@@@@@@@@@@@@@@@@@@@@@@@@@#@#@######@#########@#@@@@W@@@@@@@@@@@@@@@@###@@#@@@@@@#@@@@@@@@@@@@@Wxzzzz#zzzzzzzz#zzzz#zzzzzzzzzzzzzz
############@#@@@@@@@@@@@@@@@@@@@@@#@@@@@@##@######@@@@@@@@@@@@@@@@@@@@@@@#####@@@@@@@##@@@@@@@@@@@WMnzzzzzzzz#zzzzz#zz#zzzzzzzzzzzzzzz
@##################@@@@@@@@@@@@@@@@@@@@@@@########@@@@@@@@@@@@@@@@@#@@@@#########@#@##@@#@@@@@@@@WMxnzzzzzzzzzzzzz#zzzzzzzzzzzzzzzzzzzz
###########################@@@@@@@@@@@@@@###@##########@@@#@@@@@@@@@@@@@@@###@########@@@@#@@@@@@Mnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
###@@@##@#########################@@@@@@@@@########@@#####@@@##@@@W@@@@@@@@@##@###########@@@@@WMxzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
##@#@#@#@@@@@#######################@@#@@#@####@####@##@@@@@@@###@@W@@@@@@@@##@@###@######@@@@Wxnnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
#@@@@@@@#################@#@########@@@@##@@@#######@##@@@@@@@@@#@@@@@@@####@@#####@@@@#@@@@@@Mzz#zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
##@@@#@@@@#############@##@@@######@#@@@@@@###############@@@@@@@@@@W@@@@##########@@#@@@###@@Wz####zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
@@@@@####@#############@#@###@####@@@@@@@@@########@@@@@@@@@@@@@@@@@@@@@@#@@#########@#@@####@@Mnzz##zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
@@#@@@#@########@@###@@@#########@@@@@@@@@#########@@@WW@W@@@@@@@@@@@@@@@@############@@@@@#@@@@xnzz###zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
@@@@@@@@@@#@@##@@##@@#@@@@#######@@@WWW@@@#######@@@WMMMMMMWW@@@@@@@#@##@@#############@#@@@@#@@Wxnnzz##zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
@@@@@@@@@@@@##@@@@@##@#@@@#@####@@@WWW@@@########@WMxxxnnnnxxMW@@@@@@@@@@@#######@@##@####@@##@@@Mxxnnzzzznzzzzzzzzzzzzzzzzzzzzzzzzzzzz
@@@@@@@@@@@@@@@#@@@##@#@@@@@#@@@@@@WW@W@@######@@WMxnnzzzzzzznxM@@@@@@WW@@@@#@@#@@#@#@#####@###@@Wnnxxnnznnzzzz#zzzzzzzzzzzzzzzzzzzzzzz
@@@@@@@@@@@@@@@#@@@@@##@@@@@@@@@W@MW@W@@####@@@@WMxnzzzzzzzzzzznxW@@@WWWWMWWWW@@#@@########@###@@@xznnxxnnnnzzzzzzzzzzzzzzzzzzzzzzzzzzz
@@@@@@@@@@@@@@@@@@@@###@#@@#@@#@WWWW@W@@@####@@WMnzzzzz#z#zzzzzznxW@@@WWWMxMW@@@@@@#@@@@###@@#@@@@Wzzznxxxxnnzzzzzzzz#zzzzzzzzzzzzzzzzz
WWWWWW@@WW@@@@@@@@@@@@@@#@@@@##WWWW@WW@@@@##@@WMnzzz######zzzzzzzzxW@@WMMMMxxMW@@@@#@@@@###@@#@@@@@n#zzznnxxnnnzzzzzzzzzzzzzzzzzzzzzzzz
xxnxxxMMxxMWWWWWWMW@@@@@@@@@@#@WW@WWW@W@@###@Wxxnzzz##++####zzzzzzzxW@@MMMMxxxMW@@@@#@@@@@##@###@@@x###zznnnxxnnnzzzzzzzzzzzzzzzzzzzzzz
####znnnzzxMMxxMxMM@#@@@WW@@@@WW@WWWW@W@@##@@Mnxzzzz##++####zzzzzzznxW@WMMMxxxxMWW@@@@@@#@##@@##@#@M#+###zzznxxxnnznzzzzzzzzzzzzzzzzzzz
zzzznxxxnnMMMMMMWWW@#@@@@W@@@@WW@@@WW@@W##@@Wxnnzzz###+#####zzzzzzznnxMWxMxMxxxxMMWWW@@@@#@####@@@@W#+++###zznnxxxnnzzzzzzzzzzzzzzzzzzz
MMMMWWWWMW@W@WW@@@@@@@@@@@@@@@WW@@WW@@@@##@@Mnnnzzzz#####zzzzzzzzzznnnxWxxxMMxxxxxMMW@@@@####@#@@@@@#*++++##zzznnxxxnnzzzzzzzzzzzzzzzzz
WWWW@W@W@@@@@W@@@@@@@@@@@@@@@@W@@WWW@@@@##@@Mznzzzzz####zzzzzzzzzzznnnnxxxxMMxxxxxMMWW@@#######@@@@@n***++++###zznnxxnnnzzzzzzzzzzzzzzz
WWWWWW@W@@@@@@@W@@@W@@@@@@@@@W@@@WW@@@W@@@@Wxznzzzzz#zzzzzzzzzzzznznnnnnnnnxxxxxxxxxMW@##@##@#@@@@@@n*****+++###zzznnnxxnnzzzzzzzzzzzzz
@WWWWWWWWW@@@@@W@@@@@@@@WW@@@W@@@W@@W@@@##@Wnznzzzzz#z###zzzzzzzzzzzznzznnnnxxxxxxxxMW@@@######@@@@@x*******+++###zzznnxxxnnzzzzzzzzzzz
@WW@@@WWWW@@@@@@@@@@@W@@@@WW@W@@@@@@@@@@##@Wnzzzzzzz#######zzzznzzzzzzzzzzzznnnnnxxxMW@@#######@@#@@W+********+++###zzznnxxnnnnzzzzzzzz
W@WWWWWWWW@@@@W@@@@@@W@@@@@@@W@@@@@@@@@@@@@Wnzzzzzz##########zzzzzzzzzzzzzzznnnnnxxxxMW@#@########@@W#**********+++###zzznnxxnnnnzzzzzz
WWWWWWWWW@W@@@WWW@@@@@@@@W@@@W@@@@@@@@@@@@@Mzzzzz##############zzzzzzzzzzznnnnnnnxxxxMW@@##@######@@W#************+++###zznnxxxnnnnzzzz
WWWWWWWWWWW@WWWWWWWWW@@@@@WW@W@@@@@@@@@@@@WMzzzzzzzzzzzzzzz####znzzzzzznnnxxxxxxxnxxxMM@######@@##@@W#+************++++###zznnnxxxnnnzz
WWWWWWWWWWWW@WWWW@@@W@@@@@@@@W@@@@@@@@@@@@WMnzzznxxxxxMxxxxnzzzzzzzzznxMMW@@W@@@WMxxxxMW@######@###@W#***************+++####zznnxxxnnnz
WWWWWWWWWWWWWWWWWWWW@W@@@WWWWW@@@@@@@@@@@@WxnzzxWWWWW@@WWWMMnnzzznnnnMWW@@@@@@@@@@WMxMMMW@#####@##@@W#+****************+++####zznnxxxnn
WWWWWWWWWWWWWWWWWWWW@WWWWWWWWWW@@@@@@@@@@WMxzzxWWWWW@@@@@@WMxnzzznnnxW@@@@@@@@@W@@@WMMxMMW#####@@#@@W+*******************+++###zzznxxxx
WWWMMMxxxxxxxxxxxxxxxxxxnxxxxnM@@#@@@@@@@nnzzMWMMMMxMWWWWWWMxnzzzznxMW@@@@WWMMMMMMWWWMxMMW@#####@#@@W++***+++**************+++###zznnnx
xxnnz####+++++++++++++++++++++n@@@@@@@##Mz#zxMxxnnnnznnxMMMxnzzzznnxMWWWMMxxnxxxxMMWWWMxMW@#####@@@@W++*++++++***************+++###zznn
zz##+****iiiiiiiiiiii*********n@@@@@@###x##nMMxnnznzznxMMMMxnzzzznnxMWWWWMxxMMxMMMMMMWWxxM@#####@@@@M++**+++++*****************+++###zz
##+***iiiiiiiiiiiiiiiii***i***z@@@@@@@#@n##nxnnnnxxnxMWWWWMxnzzzznnxMWWWMMMW@@WWWWMMMMWMxMW#####@@@@n+**+++++++******************++####
#+**iiiiiiiiiiiiiiiiiii*******#W@@@@###@z#znnznnMxMW@W@WMWMxxnzzznnxMWWWMnWM@@WW@WMMMMMxxMW######@@@z+*++++++++*******************+++##
#+**iiiiiiiiiiiiiiiiiiiiiiiii*+M@@@@###Wz#zzznnMMWMM@@@WxWMxnnzzznnMMWWWzzM@@@MM@@WMMMxxxxW######@@W#+*++++++++****++***************+++
#++************i****iiiiiiiiii*M@@@@###W#####zxxWWnnW@WMxMxxnnzzznnxMMMMxnxMWMMMWWWMMxxxxxM@#####@@M+******+*******++*****************+
zzz########+++++++++*iiiiiiiii*n@@@@#@@M###+#znxxxxxxxxMMxnnnnnzznxxMMxxxxxMMMMMMMxxxnnxxxM@#####@@n+********+*************************
xnnnnnnnnnnnnnnnnnnz+iiiiiiiiii#W@@@#@@M##+++#zznnxxxxxxxnnnnnnnnnnxMxxxxxxxxxMMMxxnnxnxxxM@#####@@z+++++++++++***********************+
xxxxxxxxxxxxxxxxxxxn+iiiiiiiiii+W@@@#@@x##+++##zznnnnnnnnnznnnnnnnnxxxxnxnnnnxxnnnnnnnnxxxx@@####@Wzzzzzzzzzz##+***************+#######
xxxxxxxxxxxxxxxxxxxn+iiiiiiiiii*MW@@#@@n##++++##zzzzzzzzzzznnnnnnnxxxxxxnnnnnnnnnnnnnnnxxxx@#####@Wxxxxxxxxxxxn#**************+#nnnnnnn
xxxxxxxxxxxxxxxxxxxn+*iiiiiiiiiin@W@#@@n+#+++###zzzzzzzzzzznnnnnnnxxxxxnnnnnnnnnnnnnnnxxxxxW@####@MxxxxMxxMMxxx#**************+zxMxxxxx
xxxxxxxxxxxxxxxxxxxn+*iiiiiiiiii+WW@@@@n+#+++###zzzzzzz#zzznnnnnnnxxMMxxnnnznnnnnnnnnnxxxxxW@@###@MxxMMMxxxMMMx#**************+zxMMxxxx
xxxxxxxxxxxxxxxxxxxn+*iiiiiiiiii*z@@@@Wn+#+++###zzzzz####zznnnnnnnnnxMMxnnzzzzznnnnnnnxxxxxW@@##@WxxxMxxxxxMMxn#**************+zxMMMxMx
xxxxxxxxxxxxxxxxxxxn#*iiiiiiiiiii*x@@@Wn+##+###z##zz#####zznnnzzznnnnxMMnnzzzzznnnnnnnxxxxxW@@@#@WxxxxxxxxxMMMx#**************+zxMMMMMM
xxxxxxxxxxxxxxxxxxxn#*i*i*****i**i+W#@Wx+################znxnnz##znnxxxMMnzzzznnnnnnnxxxxxxW@@@@@MxxxMMMMMxxMxn#**************+zxMMMMMM
xxxxxxxxxxxxxxxxxxxn#**************x@@Wx+##+###########zzznnnnzzzznxxxxMMxnznzznnnnnxxxxxxxM@W@@WMxMMMxxxxxMxxn#**************+zxMMMMMM
xxxxxxxxxxxxxxxxxxxn#**************z@@Wx######z########zzznnnnnnnnxMMMMMMMxzznnnnnnxxxxxxxxM@WWWMxxxMMMxMxMMxxx#+*************+zMMMMMMM
xxxxxxxxxxxxxxxxxxxxz+++***********#MMWx#######z#z####zzzznnnMMxnxMW@@WMWMMnznnnnnnxxxxxxxxM@WMMMxMxMMMxxxxxMxxz+*++++++++++++#zMMMMMMM
xxxxxxxxxxxxxxxxxxxxz#+++*++*+*+*+++##zn#########z###zzzzznnM@@MxMW@@@WWWMMxnznnnnnxxxxxMMMW@WxMMxMMMMMMMMMxxxxz#++++++++++++#znMMMMMxx
xxxxxxxxxxxxxxxxxxxxz#***************++########zzzzzzzznnzznMWMxMWW@WWWWWMMxnznnnxxxxxxxMMxW@WxMMMMMMMMMMMMMMxxn#++++++++++++#zxMMMMMMM
xxxxxxxxxxxxxxxxxxxxz#**iiii*iii**i***+zz#####zzzzz#zzznzzznxMxnxMWWWWWMMMMxnnnnnnxxxxxMMMMWWMxMMMMxMMMMxMMMMMxz#++++++**+++++zxMMMMMMM
xxxxxxxxxxxxxxxxxxxxz+***iiiiiiiiiii**+zz#####zzzzz#zzzzzzznnxxxxxxMMMMMMMxnnnnnnnxxxMxMMMMMMMMMMMMMMxxMMMMMxMxz++**********++zxMMMMMMM
xxxxxxxxxxxxxxxxxxxxz#********iiiiiii*+#z#####zzzzzzzzzzzzzzznxxxxMMWWMxxnxnnnnnnxxxxMMMMMMWMMMMMMMMMMMMMMMMMxxz#+***********+zxMMMMMMM
xxxxxxxxxxxxxxxxxxxxz+*******ii*******+#zz####zzzzzzzzzzzznnnxxxxxxMWWWMMxxxnxxnnnxxxMMMMMMWMMMMMMMMMMMMMMMMMMxz#************+zxMMMMMMM
xxxxxxxxxxxxxxxxxxxxz+**iiiiiii*******+#zz####zzzzzzzznnnnnxMWMMMxxxMWWWWWMMxxxxxxxxMMMMMMMWxMWMMMMMMMMMMMMMMxxz+************+zxMMMMMMM
xxxxxxxxxxxxxxxxxxxxz+**iiiiiiiiiii***++#nz###zzzzzzznnxxxxxMMxxMxxxMMWWWWWWWMMxxxxMMMMMWMMWMMWMMMMMMMMMMMMMMMxz#+***********+zxMMMMMMM
xxxxxxxxxxMxxxxxxxxxz+**iiiiiiiiiiiii*+#+nzz##zzzzzznnxMMMMxxxxnxxxnxxxMMMWW@WWMxxxMWMMMMMW@WWWMMMMMMMMMMMMMMMxz#+***********+zxMMMMMMM
xxxxxxxxxxxxxxxxxxxxz+***iiiiiiiiii***+#+zzzz#zzzzznxxMMMMxnnnnnnnnxMMMMMMMW@@WWMxxMMMMMMMW@WWWMMMMMMMMMMMMMMMxn#+***********+zxMMMMMMM
xxxxxxxxxxxxxxxxxxxxz+**iii**iiiiiii**+zznzzzzzzzzznxMWWMxxxxxMMMMMWMMWWWWW@@WWWMxxMWMMMMM@@WWWMMMMMMMMMMMMMMMxz#+***********+zxMMMMMMM
xxxxxxxxxxxxxMMxxxxxz+**iiiiiiiiiiii**+znnnzzzzzzzznMWWWMxMMMMMMMMWWWWWWW@@@@WWWWMMMWWWMMM@WWWWMMMMMMMMMMMMMMMxz#+***********+zxMMMMMMM
xxxxxxxxxxMxxxxxMxxxn+**iiiiiiiiiiii**+znnxz##znzznnxWW@WWWMMMMMMMWMMxxxMWWWMMWWWMMMWWWMMMWWWWWMMMMMMMMMMMMMMMxz#+**********++zxMMMMMMM
xxxxxxxxxMMxxxxxxxxxz+**iiiiiiiiiiii**+znzxzzzznzznnxWWMnxxMxxxxxMMxxxxMMMMMMxWWWMMWWWMMMWWWWWWMMMMMMMMMMMMMMMxz#***********++zxMMMMMMM
xxxxxxxxxxxxxxxMxxxxn#**iii*iiiiiiii**+znznnzznnnnnnxWMnnnxxxxnnnxxxxxMMMMMxMMMWWMWWWWMMMWWMWWMMMMMMMMMMMMMMMMxz#***********++zxMMMMMMM
xxxxxxxxxxxxxxxxMMxxn#****************+zxznxzznnnnnnxWxnnnnxxxxxxxxxxxxMMMMMMMMMWWWWWWWMWWWMWWWMMMMMMMMMMMMMMMxn#++*+++++++++#znxxxMMMx
xxxxxxxxxnnnnnxxxxxxn#+***************+znz#xnzznnnnxnMxnxnnnnnnxxxMMMMMMMMMMMMMM@WWWWMMMWWMMMWWWMMxxxxxxxxxxxxxz#++++++##++++##znxxxxxn
xxxxxxxxnz####znnxnnn#+***************+zn##xMzzznnnnxMxxxxxxnxxMMWMWWWWWWWMMMMWW@@WWWWWW@WMMMWWWWMnnnnnnnnnnnnzz#++++++#z#+++++#znnnnzz
xxxxxxxxz++++++zzzzzz#+***************+#z#+nMnzznnnnxMxxxnnnxxMWW@@W@WWWWMMMMWWW@@WWWWW@@MMMWWWWMxnzzzzzzzzzzzzz+*****+##+***++#znznnz#
xxxxxxxx#*****+#zzzzz+****i***********+#z##znnnnznnnxxMMxxxxxxMMWW@@@WMMMMMMMWW@@@WWWWW@@MMMWWWWMxnzzzznzznzzzz#+*****+##+***++#znzznz#
xxxxxMMx#*****+#zzzzz+****************+#z##znzxxnnnzxxMxxxxxxxxMMMWWWWMMxxMMW@@@@@@WWW@@WMMMWWWWWxnzzzzzznzzzzzz+*****+#z++++++#znnnzz#
xxxxMMMx#*****+#znzzz#+***************+#z##znzxxnnnnxxMMMMxxnxxxxMMMMMMMxMMW@@@@@@@WW@@WWMMMMMWWWMnznzznzznzzzzz#++++++#z#+++++#znnnzz#
xxxxMMMx#*i***+zzzzzz#+***************+#z##zn#nMxnxxxMMxMMMMxxxxxxxMMMMWWWW@@@@@@@@@@@@WMMxMMMMWWMnznzznnznzzzzz#++++++#z#+++++#znnzzz#
xxMxxMMx#*i***+zzzzzz#+***************+#z##zx#znMMxMMMMMWWWMMMMxxMMxMMMW@@@@@@@@@@@@@@@WMMxMMMWWWMnznzznzznzzzzz#++++++#z#+++++#znzzzz#
xxxxxMMx#*i***+#zzzzz#+***************+#z##zx+#znMMMMMMMWWWMWWMMMMMMMMWWW@@@@@@@#@@@@@WMMMxMWWWWWMnznzznzznznnzz#++++++zz##+++##znnnzz#
xxxxxMMx#*i***+#zzzzz#+**************++#z#+zx+##zxMMMWWWWWMWWWMMMMWWWWWWW@@@@@@@#@@@WWWMMMxMWWWWWMnznnznzznzzzzz#++++##znz######znnnnz#
xxMxxMMxz*****+#zzzzz#+**************++zz#+zx+###zxMW@@@WWW@WWWMWWWW@@WW@@@@@@@@##@WWWMMMMxMWWWWWxnznzznzznzzzzz#######znz#####zznnzz##
xxxxxxxn#*****+#znzzz#+**************++zz#+zx++##znMWWW@@@@@@WWWW@WWW@@@@@@@@####@@WWWMMMMxMWWWWWxnzzzzzzzzzzzzzz#zzzzznxnzzzzzzzzzzz##
nnnnzzzz+*i***+#zzzzz#+*************+++#z#+zn+++##znMWW@@W@@@@WWW@@@@@@@@@@@@####@@WWWMMMMxxMWWWMxzzzzzzzzzzzzzzzzzzzzznMnzzzzzzzzzzzzz
######+++*i***+#zzzzz#+++*++*++++++++++#z#+zn+++##zznMWW@@@@@@@@@@@@@@@@@@@@#####@@WWWMMMMxxMWWMMnzzzzzzzzzzzzzzzzzzzzznxnzznzzzzzzzzzz
**+++++++*****+#zzzzz###+++#+#############+zn++++#zznxMW@@@@@@@@@@@@@@@@#@#@###@@@WWWMMMMMMxM@WMxnzzzzzzzznzzzznzzznnnnxxnnnnnnnnnnnzzz
*******++++++++#zzzzzz#z###z##z##zzzzzzzz##zn+++++##znnxMW@@@@@########@#####@@@@WWWWMWMMMMMM@@Mxnnnnnnnnnxnnnnnnnxxxxxxxxxxxxxxxxxnnzz
*********+++###zzzzzzzzzzzzzzzzzzzzzzzzzzz#zz+#+++##zznnxW@@@@@######@@######@@@@WWWWWMMMMMMMM@@@WMxxxxxxxxxxxxxxxxxMxxxxxxxxxxxxxnnzzz
*********++####zzznnnnnnnnnnnnnnnnnnnnnnnz#z#++#+++###zznnMW@@@@@@#@@#####@@#@@@WWMWWMMMMMMMMM@@@#@WMxxxxxxxxnnnnnxxnxnnnxnnnnnnnnnzzzz
*********++###zzzzznnnnnnxxxxxxxxxxxxxxnnz##+++###++###zzznxMW@@@@@@@@@##@#@@@@@WWWMMMMMMMMMMM@@@@#@@WMxxnnnnnnzznnnnnnnnnnnnzzzzzzz###
**********++#######zzzzzzznnnnnnnnnnnnnnnxx#++++###++####zzznxMW@@@@@@#@@@@@@@WWWMWMMMMMMMMMMM@@@@#@@@@@@WMnzzzzzzzzzzzzzzzzzzzz#######
***********++++#########zzzzzzzzzzznnnnnWMz#++++++++++####zzznnxMMWW@@@@@@@@@WWWMWMMMMMMMMMMMM@@@@#@@@@@@#@@Wxz###zzz###z###########++#
***********+++++++#+###############z#zxMWn###++++++++++######zznxxxMMMWWWWWWWWWWWWMMMMMMMMMMM@@@@@@@@@@@@@@@@@Wn###################++++
***********++++######+#############zxMWMWx####++++++###########zznnnxxxMxMWWWWWWMMMMWMMMMMMMM@@@@@#@@@@@@@@#@@@@Mz##############+++++++
**+********+++#zzzz##++#######+###zW@WWWWWz++#+++++++########z###zzznnnnnxxMMMMMWMMMMMMMMMMM@@@@@@#@@@@@@@@@@@@@@@Mxz######++++++++++++
++++*******+++znxxnz#++#######++#nWWWWWWWWM#+++++++++#++######zzzzzzznnnxxxxxMMMMMMMMMMMMMMW@@#@@@@@@@@@#@@@@@@@@@@@WMnz#++++++++++++++
zzz#+******++#zxMMxz#+++#z###+#nMWWW@WWWWWWx++++++++++##########zzzzznnnnxxxxxxxxxxxMMMMMMW@@@@@@#@@@@#@@@@@@@@@@@@@@@@WMn#++++++++++++
znnz++*****++#nMMMxz#+++####zxMWWWWWW@WWWWWWn++++++++#######zzzzzzznnnnxxxxxxMxxnnnxxxxxMW@##@@@#@@@@@@@@@@@@@@@@@@@@@@@@@WMnz#++++++++
zzzz#+*****++#zxMMxz+**+##zxMWWWWWWWWWWWWWWWWn++++++++#######z#zzzznnnnnxxxxxxnnnnnxxxxxW@@@@@@##@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWMn#+++++
++##++*****+++zxxxn#+**+#nMWWW@WWW@@WWWWWWWWWWx#++++++######zzzzzzzznnnnnnnnnnnnnnnxxxM@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WMn#++
+**+++******++#znnz#+++zMWWW@@@WWWW@WWWW@WWWW@@M#+++++#####zzzzzzzzzzzznnnnnnnnnnnnxMW@#@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWxz
*******iii**++#zzzzzzzxWWWWW@@@WWWW@@WWWWWWWWW@@Wn++++######zzzzzzzzznnnnnnxnnnnnnxW@#@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@W
******iiii**+##zzzzzxW@@@@@@@@@@@W@@@@WWW@W@WW@@@@Mz+++#####zzzzzzzznnnnnnnnnnnnMW@#####@##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
*****iiiiii*++####zxW@@@@@@@@@@@@@@@@@@@W@@@@W@@@@@@Mz######zzzzzzzznnnnnnnnnxM@@@@@@#@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
*****iiiiii****++zM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Wxzz###zzzzzznznnnxxMW@@@@@@@#@##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
*****iiiiii****#M@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WMxxxxxxMMMMW@@@@@@@@@@@@#@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@
*****iiiiiii*+x@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@@##@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
*****iiiiii*nW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@
****iiiii*#M@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
****iiii+xW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@#@#@@@#@@@@@
****ii+xWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
*****#W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@
***+xW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@#@@
**#M@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@
*zWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@##@@@@
zW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@#@@@@@@@@
WW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@@@@@@@@@@@@##
W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@#@#@#@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@#@@@@@@@@@####
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@###@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@@##@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@#
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@#@@@@@@@@@@@@@#
WW@@@@@@@@@@@@WW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
WW@@@@@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@#
@W@WWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@WW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@##
@@@@WW@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@##@###
@@@@@W@@@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@#@@@@@####@###