#######################################################################@##@@#@########################################################################
###################################################################@@@@@@@@@@@WWWWW@@#################################################################
###############################################################@WWWWW@@####@@@WWxMMxW@################################################################
##############################################################@MxMMMW@######@@@WWWMWnxM@@@############################################################
############################################################@WMxMMWMW@######@@@@@@MMMxxxnxW@##########################################################
###########################################################@MMxWW@W@@########@@@@@WWWMMMMxM@##########################################################
##########################################################@MMWMMWMW@@##########@@@@WWWWMMMW###########################################################
#########################################################@MWWxMWMW@@##########@@@@@WMWWMMxMW##########################################################
#########################################################@WMMx@WW@@@###########@@WWWWWWWMxxW##########################################################
#########################################################@@WM@@@@###############@@@@WWWW@Mxx@#########################################################
########################################################@@WW@@@@@###@###########@@@@@WWWWMxxW#########################################################
########################################################@@W@@@@###@@######@#####@@@@@@WMMxxxW#########################################################
########################################################@@@@W@####@####@##@####@@@@@W@WWMMxnW#########################################################
#######################################################@###@W@@###@####@@@@#####@@@@@@@WWMMxM#########################################################
###########################################################@W@@@@#@#@#@@@@@#@@#@@@@WWW@@WWMMMW########################################################
###########################################################@@@W@#@@#@@@@@@#@@@@@@WW@@WW@@WWMMW########################################################
###########################################################@@@W@#@@##@@@@@@@@WW@@WWW@@WW@@WMxW@#######################################################
###########################################################@@@W@@@@@@@@@@@@#WWWWW@@WW@@@WMWMxWM#######################################################
###########################################################@WWW@@@#@@@@W@@##@WWWWW@W@@#@WMnxxMW@######################################################
##########################################################@MMW@@@@@@W@@@@@#@@@@@@@W@@@##@@MxxMWW######################################################
##########################################################@WWW@@@@@@@W@@@@@@@@W@@#@@######@@WW@#######################################################
##########################################################@@@@WW@W@@@@@@@@@@MWW@@#@#####@@WW##########################################################
#############################################################@MxxMWW@@@@@W@WznW@@@####@#@WWW@#########################################################
#############################################################WxnznxxW@@@@W@M+#M@@@@@@@@@#@WWW#########################################################
############################################################@Mn##znnxWW@@@@M++nMWW@MMWWW@@@W@@########################################################
#######################################################@@##@WMn##+zzzxMW@@Wn#+##xxnz#znxW@@@W@########################################################
#######################################################@@##@@@Mz++*zz#nxxWx#++**#+***zxxnM@WMW########################################################
#######################################################@@#@@@#@Wn#i+z#*nznn*#**+#iiinW@@xn@xxM########################################################
######################################################@W@#@@@@#@@Wx**#+i##n**i++i#MW@@WMnzWxnnM@######################################################
#####################################################@W@@#@@######@Wnxzi+zx*i*#xW@@@@@@WnzMW@x*#M@####################################################
###################################################@MxM@##@@#####W@@@WxnnMMxnxW@@@W@##@xzzn@@M#**#x@##################################################
#################################################@MnnW@@#@W@#@@###@#@@@@Wz*x@@@@@@@##@z+zznxMxz#+**+x@################################################
################################################MzzxMW@##@W@@WMW@@@@##@@x+i#M@@@@@@Wx#+znznnxnzz##++*+n@##############################################
##############################################MzznxMW@@##@@@@WMMWW@@@W@xn+i#zn@MxMxnnnnnxnzxnnnz####+**+x@############################################
############################################Mz#znnMWW@###@@@@@WMMMWMMWMnn#+##nxxx#znnnxMxnzxWMnz######+**+M###########################################
##########################################M##znnnxMMW@###@@#@@WMMMxxMx@WMnnnMM+#nx#znxMMxnznWWM##+++++++***#W#########################################
########################################Wz#zznnxnxxMWW###@@@@WWMMMxMnzW#@WW@M++#+nxzznxxxnnnWxx++++++++++++**n########################################
######################################Wn#zzzzznnnnxxM@###@@@@WWMMxMxnznMW@WM+*#+#zMnznznxxnxMxnz**++*****+++**+M######################################
####################################@n#zzzzzz#zznnxMW#####@@@WMMxxMxnnzzMMxz*+++zznxzzzzxxnxxxzzz++++*ii**++##+*n@@###################################
###################################xzznzzzzz####nxMMW@####@@@@WMnMMxnz###nn++++#z##xnznnxxxxxnz#zz#+**iii**+#####++++*+#zxM@##########################
##########################@Mn#+iii#znnnnnz######zxMMWW@####@@WWMxMxxxnnnz##znnxxxxnnxnzxMMMxxz######+iiii**++##zzz#+*i*****+#nW#######################
#######################@x#*iii;;innnnnnzzz#+####nxMMWW@##@#@@@WMMMMWWWWMWMMMMMM@@@WxxnnxMMWMMnz##++#+i*****++###zznz#+i**++++##zM#####################
#####################Wn#+**ii;i#xxxxnnnzzzz##zzznxxMWW@#####@@WMMxW##@MnnzzzznxW@@@MxMxxMWWWMxnz##+++**+***++####znnnn#*ii;i+#zzzzM@##################
###################Wnz##+**ii*zxMxxxxnnnzzzz##zzznxMW@@######@@MMx@@@@WWxnnznxMxxxMWMxxMMWWWMMxnnz#+**+***++####znnnxxxz+i*+zzzznnzzW#################
#################@xnnznxnzz#+#xMxxnnxnnzzznzz#+zznxMW@########@MMxMxMMxnnz#zzzzxxnznxMMWW@@MxxMMxn#+**i*+##z####znnnxxxxn#znnxMxnxxnzn@###############
################MnnnnnMMxnzz#nMxxxnnnnzzzzzzz###nxMW@@########@@WxMMxWWMxxnnxMMMnnnnMWWW@@@MxxxMMxz#+i*+##zzz##zznnnnxxxxnnnxxMMxxxxxnzM##############
##############@xnxxxxnnxnnzznxMMMxxxxxn##zzzzzzzzxMWW@#########@@WMWMWWWWW@@@WWMxxMMWW@@##@Wxxxnnxxz+*++##zz##znnnnnxxxxxnnnxxnnnnxxxxxnn@############
#############WxxxnnnxnnzzzznxxMMMMxxxxxz###zzznnnxMWWW@########@@@@@WW@@@@WWMMWWWWWWW@@###WWxxnzzzzzz#zzzz####nnxxxxxxxxxxznxxxxxxxnnxMMxnW###########
############MMxxnnnxxxnnnzznnxMMMxxxxnnz#++#zxMxxxxMWW@#########@@@@@@@WMxzzznnxMMMW@####@WWMxnnz#++znxxzz##+#znnxxxMxxxxnnnxxxxxxxxxxxMMMx@##########
###########MMxxxxxxMxxxxnnnnnxxxMxxnnnnzz###zxMWMxnxM@@###########@@@WMMxnznnnnxxMW@####@WWWxxxxz#*+zxxnnzz####nnnnxxxxxxnnnxxxMMMMMMMMMMMMM@#########
##########WWMMxMMMxxMxxxxnnnxxxxxxxnxnnxnzznxMMxxxxxMW#############@@WMMMMWWMMWMWW@####@@WWMxxMnz###z#nxxnnzzz#znnxxxxxxxxxxxxMMMMMMWWMMMMWWM@########
#########@WWWMMMMMMMMxxxxxxxxMxxxxxxnnnxxxxnnxxxnnxMMW@##############@WW@W@@@W@@@#####@@WWWWMMxnnzz#+#zznnxnnzzzznxxxxxxMxMxxxxMMMWMWWWWWWWWWM########
########@W@WWWWMMMMMMMxxxxxxxMxxnxxnnnnxMxxxxxnnxnxMW@################@@@@############@WWMMWMxxMMnz##+++zzxxxnnzznnxxxxxMMMMMxxxMWWWWWWWWWW@@WW#######
#######@W@@@WWWWMWMMMMxxxxxxMxxnnnnnnxxxxnxnnnxnnxMW@@@##############################@@WMMMMMnMWMMnz###++#znnzzzzzzznxnxxMMMMMMxMMWWMWWWW@@@@@W@######
#######@@@@@@WWWWMMMMxxMMxxxxxxnzzzznnnxxnnnnnxxxxMWW@###########@@################@#@WMMMMMnxMxzxxnz#+###z#znzz##zzzznnxMMMMMMMMWMWWWWWW@@@@@@W######
######@@@@@@@@WWWMMMxMMMxMxMMxnz#zzzzzzzznnnnnnxxWWMW@@@#########@@###############@@@WWWMMMMxnnxnznMnz###z#znzzz###zzzzznxxMMMWWWWWWWWWWW@@@@@@@W#####
#####@@@@#@@@@@WWMMMMMWMMMMMxnnzzzz###++#znnnxnxMWWxWWW@#########@@##############@@@WWWMMWMMxnnznzznMnzzznnxnz######zznnnnxxMMWWWWWWWWWWW@@@@@@@@@####
#####@####@@@@@WWMMMWWWWMxMxxnzzzzz++++++zznnxxxMMMMxMW@@#########@##############@@@WWWWWWMMxxxnznznnxnznnnxnz#####+#znnnxxMMMMWWWMWWWWWW@@@@@###@####
####@#####@@@@WWWWWWWWWWMMMxxnzzzz#++*+++#zzznnxxMxxxWW@@#######################@@@WWWWWMWMxnxnnnzznnnzzzznnnz#++++##znnxxxxMMMWWWWWWWWWW@@@@@###@@###
####@######@@@WWWWWWWWWMMMMxxxnnz#++++++##zzzznnnznnxMWW@@#######################@@WWWMMMxxxnnnnzzzzzz##zzzzzz#######znnxxMxMMMWWWWWWWWW@@@@#@####@###
###########@@@@WWW@@WWWMMMMMMxxn###+###zzznnzzzzz#+#znxMW@@########@############@WWWWMMxnnnnnzz#####z##zzzzzznnzzzz##znxxMxMMWWWWWWWWW@W@@@@######@@##
###@#######@@@@@W@@@WWWWMMMMMMxnzz###zznnnnnnzzz#++###znMW@@####################@@WWWMnnxnnzz###+++++##zzzznznxnnnnzzznnxxxMMMWWWWWWW@@@@@@@@######@##
###########@@@@@@@WWWWWWMMMMMMxxnnzzznnnxxxnznzz####++#znxMW@######@############WWWWMMxnzzz##+++*+++++#zzznnnnxxnnnzznnxxxMxMWWWWWWW@@@@@@@@@######@##
###########@@@@@@@@WWWWWWWMMMMMxxnnnnnxxxxxnnnnz####+++#znnxMW@####@###########@WWWMxxn###+++*****++++#zzznnnxxxxnnnnnnxxMMMMMWWWWWW@@@@@@@@@#########
##@######@@#@@@@@@@WW@WWWWMMMMxxxnnnnxxxMxxnnnzz##++#+##zz#zxMW@@##@@##########@WMMMxnz#++****i*****+##zzznnnxxxxnnnnnxxMMMMMMWWWWWW@@@@@@@###########
##@##########@@@@@@@WWWWWWMMMMMMxxnxxxxMxxnnnnzz#+++####zz+#zxMM@@####@#@#####@WWMxnnz#+****+*+**+*++zzzzznnnnxxxxxnxxMMMMMMWWWWWWW@@@@@@#############