###########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WW@WWWWWWW@WWW@@W@@@@@@@@@@@@@@@@@@@@@@@#@@@@@#@WxxnnxxxMW@@@########################@####################
##########@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WW@WWWWWWWWWWW@@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M#i;i;;i+zMWM@########################@####################
##########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@@WWWWWWWWWWW@WWW@W@@@@@@@@@@@@@@@@@@@@@@@@@Wx*,:ii*++ii*+xW@@@#####################@#######@############
@###########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@WWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@Mn#:..i*##nxnz+:*MW@@##################@##@#######@############
@@##########@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWWWWWWWWWWWWWWWW@@@@MM@@@@@@@@@@@@@@@WM#;..:;+###xxnnxn#+xW@@################@###@#######@############
@@########@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWWWWWWWWWWWWWWWW@@@Mznzx@@@@@@@@@@@@Wz+;.,:;*nx#nxnnMWWM#*nM@@###############@###@#######@############
@@@#########@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@WWWWWWWWWWWWWWWWWWWWW@@@@@MMMnW@@@@@@@@@@M+,.::,:+xx#xnxWWWWWM#*xW@###################@########@###########
@@@########@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWWWWWWWWWWWWWWW@@@@@@@WWWMnM@W@@@@@@@n,.:;,,:zMnz+zW@@W@@Wxz#M@##@###############@#####################
@@@##########@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWWWWWWWWWWWWWWW@@@@@@@WWM@WxnW@@@@@@ni..:*:::zxn+iM@@@@@@WWxxz@@@@@####################################
@@@#######@##@@@@##@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWWWWWWWWWWWWW@@@@@@@@WWWW@Wx#x@@@WM*.,;i;**+znz*n@@WW@@@@@WMxxW@######################################
@@@@######@#@#@@@##@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWWWWWWWWMWWW@@@@@@@WWWWWWWnn###*i*:.;i*+;;+MMnxW@WWW@@@@@@MxxM@##@##############@####################
@@@########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWWWWWWWWWWW@@@@@@@@WWWWMMWMzzzz+**,::i*#:;zMx#zW@WW@@W@@@@WWWn@##@##########################@########
@@@#######@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWWWWWWWWWWM@@@@@@@@WWWWWMWWx#nxz*:,,,*i*::nMn;n@W@@@W@@@@@@WWxW@#####################################
#####################################@@@@@@@@@@@@@@@@@@@WWWW@@@@@@@@WWWWWMWW@Mn#z+;:,;*i#;*xx#*W@WW@WW@@@@@@@WMM@#@#############@#####################
#########################################@@@@@@@@@@@@@@@@@WW@@@@@@@@WWWWWWMWWWWnz;;::iizn#nzz+n@@W@WM@@@@@@@WWMM@#####################################
########################################@@@@@@@@@@@@@@@@@@@W@@@WW@@@WWWWWWWMWMMWn;,,:i+#*+zxxM@@W@WMW@@@@@@@WMMx@##############@######################
##############W##########################@@@@@#@@@@@@@@@@@@WW@WWW@@@@WWWWWWWnxnn#,`.:*zi;+zx#nW@@WMMW@@@@@@@WMnx###############@######################
##############nM#########################@@@@#@@@@@@@@@@@@@W@WW@@WW@@WWWWW@@x###z,,:;+z;;#nz+MWWWxWWW@@@#@@@@Wzn@######################@##############
#############@+#################@#########@#@@@@@@@@@@@@@@@WW@W@@WWW@WWWWWW@@Mnx;in#i+niinx*#MWWznMW@@@@##@@@@@MxM@###################################
#############n**M##############x,###WWW###@@@#@@@@@@@@@@@@@W@@W@@WMWWWWWWW@@M*;#;zz*#zni#xx*nW@xnnxWW@@#@@@#@@#@@WxMWWW@@############################@
############@z+*####@;:+@*+##i+n,++WWW@WWxW@@@@@@@@@@@@@@@@W@@W@WWWWW@WWWWW#,:;;,;;*#nn+nMn*M@@znnxWW@@@@@@@@@@@@@@WMxzzzznxM@######################@@
############n****M##W;; n i;.+;z`#*,WWxnM@xMW@MWx@x@@@@@@@@W@@@@WWWWWWW@@x;.:;ii.i*zMWxnMWxzW@WznxMW@@@@##@@@##@@@@WMMWW@WMMnn@#######################
###########@***+*###i,; z #,z##x.#x.WMxx##xMW@MW@z@@@@@@@@@W@@@@WWWWWWWW+,,i+#+i;**z@@@MW@MM@@WnMW@@@@@@@@@@@###@@@@####@@@@@MW#######################
###########n++##++W#:+M z #i;Wzn.#x.WMxx##xMW@MWMxM@@@@@@@@W@@W@WWWWWWn,.i#+###i;+#xM@@#@@@@@@@W@@@@@@@@@@@@########@####@W@@WW@##################@###
##########@++z#@++z#x,,;n,#W;.:z;#M:WWMx##M@nxnWM@x@@#@@@@@W@@WWWWWWW+:;++#zz##*:*znM@@@Mx@@@###@@@@@#@@@@#@##@##@@#####@@@######################@####
##########n++x##z+#M#########@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@WW@@WWWWM#:#nzz#zz##+**+nnM@M#nW@@##@#@@@@@@@@@@@####@@@@###@@@######################@#####
#########W+++M##n++x#########@MxxxWnxxxxxxMMxMxxxxx@@@@@@@@WWW@WWMWM+*#;;#xzzzzz#z#xMWM#izW@@##@@@W@@@@@@@@@#@########@@@#############################
#########z#xW###@Mz+M@#####################@##@@@@@@@@@@@@@@@WWWWWWMz*::*+znxzzzznMxzx##nMW@#@@@@@@@@@@@@@@@@@####@@@@################################
########Wx@########Wn@#########################@@@@@@@@@@@@@@WWWWWWWz;*#nz#zxMxnxnxxx+i*n@@@@@@@W@@@@@@@@@@WxzW@@@@@##################################
######################@@########################@@@@@@@@@@@W@WWWWWWn:;ii+#zzzxMMMMnM#iii+xW@@@@@@@@@@@@@@@@MMMMx@#####################################
####################@##########################@@@@@@@@@@@@WWWWWWWM;iii**##zznMW@MWxz**;znMW@@@@@@@@@@@@@@MWWMWMW##@WM@###############################
########MnM###n##@nnW###########n####MMx##n@####@@@@@@#@@#@W@WWWWW#z*++###nznzxW@WWWWnzzznWW@@@@@@@@@@@@@WWWWMMMM@Wn@@@###############################
#########nM@WMiW@z#MxxMWMW#xxxM+#xW@#nxznM*n@#MWMMM@@#@@@@@W@WWWWW#i:**i*#zxxnxW@@@W@MMMMW@W@@@@@@@@@@@@@WWWW@@xnx@@@@@###################@###########
########zzx##**M@#xz+*+#iWx;i*niz+nz#nnz*#+*WW*ni##M##@#@@@W@WWWWW*;;i++**+nMMMW@@@@@WW@@@@@@@@@@@@@@@@@@@@W@###W@@@@#@@############@#################
########WW@WnMW#@nMWMMMMW@WWMMMWMx#W#WWWWWMM@@xMMxM@@@@@@@@@WWWWWMi;;iii##+#znM@@@@#@#MW@@@@@@@@@@@@@@#@@@@@@###@@@###WW@#############################
#############################################@@#@@@#@@@@@@@W@WWWWM;:*i+*i+nnxMxMW@####@xW@@@@@@@#######@@@@@@###@W####@@@@####@#######################
#############################################@##@@##@@@@@@@W@W@WWM:;*+++*i+zxMMW@WW@###@@@@@@##########@#@@#####@##@@#@@@@#############@@#@###########
###########################################@@###@@@@#@@@@@@W@@@WWn:i**;***#znMWWW@@@##############@@@WWWW@@WW@###@@@@#@##@#@#@@@@@@@@@@@@@@###########
##########################################@@###@@@@#@@@@@@@W@@@@@n:*i+i:i+z#+##zxMWW@####WW######@###@W@#@WW@@####@@@###@@@@@@@@@@@@@@@@@@@#@@@@######
###############################@#@###@@@@@@@@@@@@@@@@@@@@WW@W@@@@z:i;*+*+nz*+++M@x+znMWWz+MMnnnW@W@#@############@@@####@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@
@@@@@@##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@WW@@WWW@W@@@W*;;i***;i+nx#z@@#xMMMWM##@@M#zWWx@@W@###########@@@####W@@@@@@@@#@@@@@@@@@@@@@@#####@
@@@@@@@@@@@@@WWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWW@@WWWW@WW@n;*:ii:;#xnxn+M@nxW@WMxn+n@@WzxWzM@WM#@@@@@#@###########W@@@@@@@@@@@@@@@@@#@@@#@@@@##@
@@@@@@@@@@@@@@@W@WW@WWWWWWWWWWWWWWWW@@@@@@@@@@@@@W@WWWWWWWWW@@@W++z*ii#xxMxn##@MnW@@WMxz#W@@@xMMz@@MW#@@@@#@##@#########M@@@##################@@@#####
@@@@@@@@@@@@@@@@WWWWWWWWWWWWWWWWWWWW@WWW@@@@@@W@WWWWWWWWWWWWWWWx:in+zxxxMMn#+xW#@@M@WMxzn@@@@MW#M@@n@@@#@@#@@@@@@@#@@###M#############################
@@@@@@@@@@@@@@@WWWWWWWWWWWWWWWWWWWWWWWWWWWWW@WWWWWWWWWWWWWWWWWW+:izx+xxxMx#+#W+M@WW@WMxnx@@@WWMz@@@z@@@#@@#@@@@@@@@@@##@WW############################
#@@@@@@@@@@@WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW*i+xn#nMMx##*nzx@WxW@WMxnxWWW@WzM@@Mx#@@##@#@@@@@@######@@W############################
#@@@@@@@WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWM;#zxWM+xxn##inx@@xM@@WxxxW@WW@zx@@#nW@@#####@@@@@#######@@W##########################@@
#@@@WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW*####++*znz+i+M@@MMWWWMMMM@@WWnx@@@@z@#@#######@@@#######@@W##@#########################
#@@@WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWn,;i#nxxx#zz*;nW@@MMWWWMWW@@@Wnn@@@#xx@@#@######@#@@@@###@@@@############################
#@@@@WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWi*+nxnnxxn#z+#WW@WMWWWWWW@@@@nzW@@@#nW@@##########@######@@W####@########################
##WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWz##xnxzxMWWx#zM@@@WWWWWWWW@@@MzW@@@#WM@@@@########@@######@@W################@@###########
##@WWWWWWWWWWWWWWWWWWWMMMMMMMMMWWWWWWWWWWWWWWWWWWWWMMMMMMMMM*#xMxMxMMMMWzxW@@WWWMWWWWW@@WnM@@@@#@@@@@@@#######@#######@@W#############################
@#@@W@@WWWWWWWWWWWMMMMMMMMMMMMMWMWWWWWWWWWWWWWWWWWMMMMMMMMMM+##nMMxxMWWWMMWWWWWWMMWMWW@WxW@@@@##@@@@@@@######@@######@@W@#############################
@###@W@@@@@WWWWWWWWWMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWMMMMMMMMM#*#z++#zxxMxxxWMWWWWMMMMMMWMW@@@@##@@@@@@@@######@#######@@W@######################@@@####
@###@@@@@@@@WWWW@WWWWWMMMMMMMMMMMMWWWWWWWWWWWWWWWWWMMMMMMMMn+zxnzzzznnxxxxnWMMMMxxMMMW@@@@@@@@@@@@@@@@@#####@@#######@W@@#######################@@@###
@@#@@#@@@@@@@@WW@@WWWWWMMMMMMMMMMWWWWWWWWWWWWWWWWWWMMMMMMMMzWMzzn#znnzz+znznxxxxxxMMM@@@@@@@@@@@@@@@@@@#####@@#######@W@@#####@@######################
#@#@###@@@@W@@WWWWWWWWWMMMMMMMMMMWWWWWWWWWWWWWWWWMMMMMMMMMnxxzzz#znxn#++zzznnMMMxMWW@@@@@@@@@@@@@@@@@@######@@######@@#@@@###@@@######################
#######@WWWWWWWWWWWWWWWWMMMMMMMMMMMWWWWWWWWWWWWMMMMMMMMMMxzx+x#nnnzz#+++nnxxxMW@W@@@@@@@@@@@@@@@##@@@@#@####@#######W@##@@@@@@@#######################
########@WWWWWWWWWWWWMMMMMMMMMMMMMMMMMMWWWWWWWMMMMMMMMMxxxz+nz#nz#++#++znnMxxxW@@@@@@@@@@@@@@#####@@@@@#####@#######W@@@@@@@@@@#######################
###@#####@WWWWWWW@WMMMMMMMMMMMMMMMMMMMMWWWWWWWWWMMMMMMxxxx*#n*z##*+z++#znzxxxxW@WW@@@@@@@@@@@@###@@@@#@####@@######@@@@@@@@@@#########################
##@@#####@@WWWWWMWMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWMMMMMxxxxx*xznz+#+z#+#znnnxMMxM@@W@@@@@@@@@@@@@#@#@@#@@####@@######@#@@###@@##########################
#########@@WWWMMMMMMMMMMMMMxMMMMMMMMMMMMMMMWWWWMMMMMMMxxxn#xzM##znz+#nnnnnxMMMM@@W@#@@@@@@@@@@@#@@@@@@@####@#######@@@######@#########################
#####@###@@@WMMMMMMMxxxxxxxxxxxxxMMMMMMMMMMMWMMMMMMMMMxxx#z#xx##nn++znnxxxxWWWM@@@@@#@##@@@@@@@@@@@@@@#####@#######@@#@@##@@@#####@@@@################
##########@@@WMMMxxxxxxxxxxxxxxxxxxMMMMMMMMMWMMMMMMMMMxxx#n+Mn#zxz+#xxMxMxxWWWWW#@W@#@######@@@@@@@@@@#####@######@###@W#@@#########@@################
#@@@@@@@@@#@@@WMxxxxxxxxxxxxxxxxxxxMMMMMMMMMMWWWMMMMxxxxn#xzxn#xxzzxMWMMMMMW@WW@##@@@@#####################@######@##@W##@####@#######################
##@@@#@##@#@@@@@WWMMxxxxxxxxxxxxxxMMMMMMMMWWWWWWMMMxxxxxnzznxn#MMnzMMWWWMxW@@@W@##@@@@#####################@#####@@@######@@@@########################
#########@@@@@@@@WWMWWMxxxxxxMMMMMMMMMMWWWWWWWWWMMMMxxxxx##xxzzMMx#MMMWWWxW@@@W@###@@######################@###@@@@####@@@@@@##@#########@############
########@@#@@@@@@@@MMWWWMMMMMMMMMMMMWWWWWWWWMMMMMMMMMxxxxz+xx#MWMMzWWW@@WW@#@@@@#@##@###########@##############@W@###WMW###@@@########################
########@#@@@@@@@@@WWWWWMMMMMMMMMWMWWWWWWWMMMMMMMMMMMMMxxnixM#WMxWxWWW@@WM@#@@@@################################W####@####@@@#########################
#######@##@###@@@WWWWWWWWWMMMMMWMMMMMWWMMMMMMMMMMMWWMMMMMM+nxnMMMMM@WW@@@M@#@@@#################################@##############@######################
##############@@@@@@@WWWWWWWWWWWWMMMMWWMMMWWWWWWWWWWWWWWWW#zzMWMMMM@WW@@@M@##@@#@###############################@@##@#############################@###
##@###########@@@@@@@@@WWWWWWWWWMMMMMMMMMMWWWWWWWWWWWWWWWWnzzMMWMWW@@W@@WM@##@@##################@#########@#####@################################@#@@
################@@@@@@@@WWWWWWWMMMMMMMMMMMWWWWWMWWWWWWWWWWM+xMMMMWW@@@@@WM@##@@@#################################@####################################
@############@@###@@@@@@WWWWWMMMMMMMWMMMWWWWM@WWWWWWWWWWWWz+WWWMMWW@@@@@WM###@@##################################@@###################################
#############@@##@@@@@@@@WWWWWWWMWWWW@@WWWWWMWW@WW@WW@@@@z#nWWWWWWW@@@#@WM####@###########################@######@@##############@@@##################
##########@###@@######@@@@@@WWWWWW@W@@@WWWMWWWWWWWW@@@@@M**WWWWWWWW@@@@@WW####@###########################@#######W###################################
##############@####@@@@@@@@@@@@@@@WWWWWWWWW@WWW@@W@W@@@W#inWWWWWWW@@@##@W@########################################@###################################
################@#######@@@@@@@@@@@@@WWWWWWWW@@@@@@@WW@x*nW@@@WWWW@@@##@W@########################################@###################################
#########@@#@######@@####@@@@@@@@@@@W@@@@W@@@@@@@@@@@W@nxW@@@@WWWW@@###@W@############################################################################
#########@@#######@@#####@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@M@@@@@WWMM@@####@W@############################################################################
###################@@@###@########@@@@@@@@@@@@@@@@@@@@@@M@@@WWMMM@@####@W@###############################@############################################
######################################@@@@#@@@@@@@@@@@@WnWWWWMMx@@#####@W#############################################################################
####################################@##@##@@####@@#@@@@xxxMMMnnW@#####@@W##############@##############################################################
########@##############################@###@@##@@##@@@@MnnnzzzW@#######WW############@@###############################################################