##########################################################################iii############################
########################################################################iiiiii###########################
#######################################################################iii::ii###########################
#####################################################################iii;:::;i###########################
###########################################################MMMMMMMMMM*i;::::;i###########################
########################################################MMMMMMxxxMxxzi;:::::ii###########################
#####################################################MMMMMxxnnnnnnx#ii::::::i+M##########################
##################################################MMMMxnznnnnnnnnn#i:;::::::*xMMM########################
################################################MMMMn#*ii*+znnnnn#i:::;::::;*nxMMMM######################
###########iii###############################MMMMxz*iiiiiiii+znn#i::::;::::;+nnnxxMMM####################
#########iiiiii###########################MMMMxxz+*iiiiiiiiii*++i:::::;::::iznnnnnxxMMM##################
#########ii;:;iii######################MMMMMxnz####+*iiiiiiiiiii:::::::;:::*nxnnnnnnxMMM#################
########ii;:::;iii##################MMMMMxnz##########*iiiiiiiii::::::::;:;+nnxxnnnnnnxMMM###############
########ii::::::iii#############MMMMMMxxnz##############+*iiii:;:::::::::iiznnnxxnnnnnnxxMM##############
#######ii;:::::::;ii########MMMMMMMxxnnnnnnzz#############+ii::;:::::::::;*nnnnnxxnnnnnnnxMMM############
#######ii:::::::::;iiiMMMMMMMMMxxnxxnnnnnnnnnnzz##########*i::::;::::::::i#nnnnnnnxnnnnnnnxMMM###########
######ii;::::::::::;i+xMMMMxMxnnnnnnxxnnnnnnnnnnnzz######*i:::::i::::::::*znnnnnnnnxxnnnnnnnMMM##########
######ii:::::::::::::i+nnnnnnxnnnnnnnnxxnnnnnnnnnnnnz###*i::::::;;::::::i+nnnnnnnnnnxxnnnnnnnMMM#########
######ii::::::::::::::i+nnnnnnxxnnnnnnnnxxnnnnnnnnnnnnz*i::::::::;::::::i*#nnnnnnnnnnxxnnnnnnnMMM########
#####ii;:::::::::::::::i+nnnnnnxxnnnnnnnnxxnnnnnnnnnnnn#;:::::::::i::::iiii#nnnnnnnnnnxxnnnnnnxMM########
#####ii:::::::::::::::::;+nnnnnnxxnnnnnnnnnxnnnnnnnnnnnnzi:::::::::;:::iiiii#nnnnnnnnnnMxnnnnnnxMM#######
#####ii::::::::::::::::::;+nnnnnnxnnnnnnnnnnxnnnnnnnnnnnnn*:::::::::i:iiiiiii#nnnnnnnnnxMxnnnnnnxMM######
#####i;:::::::::::::::::::iznnnnnnxnnnnnnnnnnxnnnnnnnnnnnnn+:::::::::iiiiiiiii#nnnnnnnnxMMnnnnnnnxMM#####
####ii;::::::::::::::::::::inxnnnnnxnnnnnnnnnnxnnnnnnnnnnnnn+::::::::i+*iiiiii*znnnnnnnxMMxnnnnnnnxMM####
####ii::::::::::::::::::::::#Mnnnnnxnnnnnnnnnnnxnnnnnnnnnnnnn+::::::;*##*iiiiii*nnnnnnnxMMMxnnnnnnnMM####
####ii::::::::::::::::::::::;xxnnnnnxnnnnnnnnnnxxnnnnnnnnnnnnn*:::::i###+iiiiiii+nnnnnnxMMMxnnnnnnnxMM###
####ii:::::::::::::::::::::::zxnnnnnxnnnnnnnnnnnxnnnnnnnnnnnnnn;:::i+####+iiiiiiiznnnnnnMMMMnnnnnnnnMM###
####ii:::::::::::::::::::::::iMnnnnnxxnnnnnnnnnnxxnnnnnnnnnnnnnz::;*######*iiiiii*nnnnnnMMWMxnnnnnnnxMM##
####ii::::;::::::::::::::::::;xnnnnnnxnnnnnnnnnnnxnnnnnnnnnnnnnn+;*########iiiiiii#nnnnxMM#MMnnnnnnnnMM##
####ii::::;;::::::::::::::::::nxnnnnnxnnnnnnnnnnnxnnnnnnnnnnnnnnn+#########*iiiiii*nnnnxMM#MMnnnnnnnnxMM#
####ii::::;;::::::::::::::::::zxnnnnnxnnnnnnnnnnnnxnnnnnnnnnnnnnnzzzzznnnnnnnzzzz##nnnnxMM#MMnnnnnnnnnMM#
####ii:::::i::::::::::::::::::#xnnnnnnxnnnnnnnnnnnxnnnnnnnnnnnxxxMxxnzz########zznxMMMMMM##MMxnnnnnnnnxM#
####ii:::::i::::::::::::::::::zxnnnnnnxnnnnnnnnnnnxnnnnnnxxMMxn#+*i;::::::::::::::;W##@@M##MMMMxxxxnnnxMM
####ii:::::i;:::::::::::::::::zxnnnnnnxnnnnnnnnnnnxxxxxxxz+*;::::::::::::::::::::::;W#######MMMMMMMMMxxMM
####ii:::::ii:::::::::::::::::nxnnnnnnxnnnnnnnnnnxxxn#*;::::::::::::::::::::::::::::i@############MMMMMMM
####ii:::::;i;::::::::::::::::nxnnnnnnxnnnnnnxxxn#+i;::::::::::::::::::::::::::::::::*###################
####ii::::::i;::::::::::::::::nxnnnnnnxnnnxxxxn+;:::::::::::::::::::::::::::+nMMxzi:::z##################
####ii;:::::ii::::::::::::::::nxnnnnnnxxxMMWW@##xi::::::::::::::::::::::::#@#######xi::M#################
#####ii:::::;i;:::::::::::::::zxnnnnnxMMWMz##n@###n:::::::::::::::::::::;M###x##zW###+:i#################
#####ii:::::;ii:::::::::::::::zxnnnxMMW@#     `;M##x;::::::::::::::::::;W####    `;W#@i:n################
#####ii;:::::ii:::::::::::::::#xnxxW@####*      `###x::::::::::::::::::W######     .W#W:;@###############
######i;:::::;i;::::::::::::::#Mx#M######@.       +##z::::::::::::::::n#######,     :###:z###############
######ii::::::ii::::::::::::::*+:+########i        z#@i::::::::::::::i########+      z#@:;@##############
######ii;:::::ii;::::::::::::::::W########i        `W#n::::::::::::::x########+      .@#+:n##############
#######ii::::::ii:::::::::::::::*#########,         *#@;::::::::::::;@########;       n#x:i##############
#######ii::::::;i;::::::::::::::x#M@#####n          `@##::::::::::::+#@@#####x`       i#@::M#############
#######ii;::::::ii::::::::::::::@#*:W###n`           n#x::::::::::::n#x,M###x.        .##i:##############
########ii:::::::i;::::::::::::i##, `:;.             *#W::::::::::::M#+  :;,          `@#+:;#############
########ii;:::::::i::::::::::::i#@`                  ;#@::::::::::::W#i                M#+::M############
#########+i::::::::;:::::::::::*#@`                  ,#@::::::::::::@#;                M#+::n############
#########n*;:::::::::::::::::::*#@`                  ,#@::::::::::::@#;                M#+::+############
#########xzi:::::::::::::::::::i#@.                  ;#@::::::::::::W#i               `@#+::;############
#########xM+;::::::::::::::::::;##:                  *#W::::::::::::M##               .##i:::@###########
#########xMx*;::::::::::::::::::W#n*****************+M#x::::::::::::n#M***************z#@;:::W###########
#########xMMni;:::::::::::::::::n######################+::::::::::::*###################x::::x###########
#########nMMMzi;::::::::::::::::*WWWWWWWWWWWWWWWWWWWWWW;:::::::::::::WWWWWWWWWWWWWWWWWWW+::::n###########
#########zMMMMzi;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::z###########
##########MMMMxz*i:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::z###########
#########zMMMMxxx#i;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::z###########
#########+MMMMxxxMx#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::z###########
#########*xMMMxxxMMn:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::n###########
#########+xMMMxxxMMx:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::n###########
#########*xMMMxxxMMM:::::::::::::;################################zzzzzzzzzzzzzzzzzzzz#::::::M###########
#########ixMMMMxxxMMi::::::::::::#####################################################@::::::W###########
#########*xMMMMxxxMW#::::::::::::M##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##WWM:::::;@###########
##########xMMMMxxxMWx:::::::::::;##Mnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnx##i:::::::i############
#########+MMMMMxxxxMMi::::::::::+##xnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnx##i:::::::+############
#########+MMMMMxxxxMMz::::::::::##@nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnM##::::::::n############
#########+MMMMMxxxxMMM;:::::::::x#n+#zznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnW#M::::::::W############
#########zMMMMMMxxxxMM#:::::::::x#+ii*++##zznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn@#z:::::::i#############
#########zMMMMMMxxxxMMx;::::::::x@*+i;ii**+###znnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnx##*:::::::z#############
#########zMMMMMxMxxxxMM#::::::::x@*i++i;iii**+###zznnnnnnnnnnnnnnnnnnnnnnnnnnnnnW#@::::::::W#############
#########nMMxxMxxMxxxMMMi:::::::n@++i*+*i;;iii*++###zznnnnnnnnnnnnnnnnnnnnnnnnnn@#n:::::::*##############
#########nMMxxMxxxxxxxMMx;::::::###++ii++*;;;iii**+####znnnnnnnnnnnnnnnnnnnnnnnM##i:::::::x##############
#########xMMxxxxxxMxxxMMMz::::::*#z+++ii*++i;;;ii*i*+####zznnnnnnnnnnnnnnnnnnnn@#x:::::::;###############
#########xMMxxxxxxxMxxxMMMz;::::;@W++++ii*+++i;;;ii*i**#####znnnnnnnnnnnnnnnnnM##*:::::::n###############
########+xMMxxxxxxxxMxxxMMMni::::n#n++++iii+++++;;;ii*i**#####znnnnnnnnnnnnnnn@#x:::::::i################
#########MMMxxxxxxxxxMxxxMMMM#;::i#@+++#+ii+nxMM*;;;iiiii**#####znnnnnnnnnnnnM##i:::::::x################
########zMMMxxxxxxxxxMMxxxMMMMMn+iM#x+#znxMMMMMMz*;;;;iii*i*+#####nnnnnnnnnnx##n:::::::+#################
########zMMMxxxxxxxxxxMxxxxxMMMMMMMMMMMMMMMMMMMMx++i;;;;i*iii*+####znnnnnnnn@#@;::::::;@#################
########zMMxxxxxxMxxnxxMxxxxxxMMMMMMMMMMMMMxxxMMM+++*;;;;iiiiii*#####znnnnnW##+:::::::x##################
########nMMxxxxxxMMxxnxxMxxxxxxxxMMMMMxxxxxxxxxMM#++++;;;;;iiiii*+####znnnM##n:::::::####################
#######ixMMxxxxxxxMMxnxxxMMxxxxxxxxxxxxxxxxxxxxMMz+++++i;;;;iiiiii*#####nM##M:::::::*####################
########MMMxxxxxxxMxznxxxxMMxxxxxxxxxxxxxxxxxxxMMxi+++++*;;;;;iiii**+####x#W;::::::i@####################
#######zMMMMxxxxxxMM*znxxxxxMxxxxxxxxxxxxxxxxxxMMMii*++++*;;;;;iii*i**####ni::::::i@#####################
#######xMMMMxxxxxxMM#+nxxxxxxMxxxxxxxxxxxxxxxxxxMM+ii*+++++;;;;;ii*iii*####+:::::i@######################
#######MWMxMxxxxxxxMM#xMxxxxxxMMxxxxxxxxxxxxxxxxMM#iii*+++++i;;;;;iiii**+###+;::*@#######################
#######MWMxxMxxxxxxMM##MMxxxxxxxMMxxxxxxxxxxxxxxMMniiii*+++++i;;;;;iii*i*+####;##########################
######nMWMnxMxxxxxxMWM##WMMxxxxxxxMMMxxxxxxxxxxMMMx*iiii*+++++i;;;;;ii*i**+####M#########################
######nMMxnxxMxxxxxxMMW###MMMxxxxxxxxMMMMMMMMMMMMMM#iiiii*+++++i;;;;;iii*i*+####M########################
######xWMnznxMxxxxxxMMM####MMMxxxxxxxxxxxxxxxxxxxMMz+iiiii*+++++*;;;;;ii*i**+####x@######################
######xWMnznxMxxxxxxxMMM#####MMMMxxxxxxxnxxxxxxxxMMn#+iiiii++++++*;;;;;i*i*ii+###########################
#####+xMxzznxxMxxxxxxMMM######WMMMMxxxxxxxxxxxxxxMMx##*iiiii++++++i;;;;;ii*iii+##########################
#####nMMn+zznxMxxxxxxMMMM#######WWMMMMMxxxxxxxxxxMMx##+*iiiii++++++i;;;;;i*iii*+#########################
#####xMMz+zznxxMxxxxnxMMMM########WMMMMMMMMMMMMMMMMM##++iiiiii++++++i;;;;;iiii**+########################
#####xMM+*zzznxMxxxxxxxMMMM##########MMWWWWMMMMMMMMx##+++iiiii*++++++i;;;;;iii*i*+####n##################
#####xWx*i#zznxxMxxxxxxMMMMx############W@@@@Mnnz#+++#++#*iiiii*++++++;;;;;;ii*ii*#######################
####zMMnii#zznxxMxxxxxxxMMMMx################@++++++++++++*iiiii*++++++;;;;;;i*iii*######################
####nMMzii+zzznxxMxxxxxxxMMMMn###############W++++++++#++#+iiiiii++++++*;;;;;iiiiii+#####################
####xMM#ii*zzznxxMxxxxxxxxMMWx################+++++++++++##+iiiiii++++++i;;;;;iiiii*+###+i###############
###*xWMziii#zzznxxMxxxxxxxxMMWMzi#############*++++++++#+#+#*iiiii*++++++i;;;;;iiiii*####+###############
####MMMniii#zzznxxxxxxxxxxxxMMWMxn#############++++++++++#+#+iiiiii+++++++;;;;;;iiiii*####+##############
###nMMxn*ii*zzzznxxMxxxxxxxxxMMMMMxn###########*+++++++++#+#+*iiiiii++++++*;;;;;iiiii*+###+##############
##ixMMxx+ii*zzzznxxxMxxxxxxxxxxMMMWMMMn#########*++++++++#+#++iiiiii*++++++i;;;;;iiiii*####*#############
##+xMMxx#iii#zzzznxxMxxxxxxxxxxxMMMMMMMMMMMMMWMW+++++++++#+#+#+iiiiii+++++++;;;;;;iiiii+####;############
###MMxxxniii+zzzznxxxMxxxxxxxxxxxxMMMMMMMWMWWMMMM++++++++++#+++*iiiiii++++++*;;;;;iiii**####+############
#`zMMxxxn*ii*zzzzznxxxMxxxxxxxxxxxxxMMMMMMMMMMMMM*+++++++++#++++iiiiii*++++++i;;;;;iii*i*###+,###########
#:xMMxxxx+iii#zzzznnxxMMxxxxxxxxxxxxxxxxxxxMMMMMx++++++++++#+++#*iiiiii++++++*;;;;;;ii*i*+###+###########
#*MMMxxxxziii+zzzzznxxxMxxxxxxxxxxxxxxxxxxxxxMMM##+++++++++++++++iiiiii*++++++i;;;;;ii*ii*####*##########
#zMMxxxxxniii*zzzzzznxxxMxxxxxxxxxxxxxxxxxnxxMMx##*+++++++++#+++#*iiiiii+++++++;;;;;;i*ii*+###+##########
#nMMxxxxxn*iii#zzzzznxxxxMxxxxxxxxxxxxxxxxnnxMMx##++++++++++++++++iiiiiii++++++*;;;;;iiiii*##############
ixMMxxxxxx#iii*zzzzzznxxxxMxxxxxxxxxxxxxxxxxMMMn###++++++++++#+++#+iiiiii*++++++;;;;;;iiii*+###*#########
*xMMxxxxxxniiii#zzzzznnnxxMMxxxxxxxxxxxxxxxxMMMz###++++++++++#+++++iiiiiii++++++*;;;;;iiiii*###+#########
+MMMxxxxxxn*iii+zzzzzznnxxxMMxxxxxxxxxxxxxxxMMx####+++++++++++#+++#*iiiiii*++++++;;;;;;iiii*####*########
#MMMxxxxxxx#iiii#zzzzzznxxxxxMxxxxxxxxxxxxxxMMx#####++++++++++++++#+iiiiiii++++++i;;;;;iiiii+###+########
+MMMxxxxxxxniiii+zzzzzzznxxxxxMxxxxxxxxxxxxMMMx#####*+++++++++++++##*iiiiii*++++++;;;;;;iiii*####+#######
#MWMxxxxxxxx+iii*#zzzzzzznxxxxxMxxxxxxxxxxxMMM######*+++++++++++++#++iiiiii*++++++i;;;;;iiiii+###+#######
#MMMxxxxxxxxziiii+zzzzzzzznxxxxxMxxxxxxxxxxMMx#######++++++++++#++#+#*iiiiii++++++*;;;;;iiiii*###+#######
+xMMxxxxxxxxn*iii*#zzzzzzzznxxxxxMxxxxxxxxMMMn#######*++++++++++++#+++iiiiii*++++++;;;;;;iiii*####i######
+xMMxxxxxxxxx#iiii+zzzzzzzzznxxxxxMMxxxxxxMMM########*++++++++++#+#+++iiiiiii++++++*;;;;;iiiii+###*######
#xMMxxxxxxxxxn*iiii#zzzzzzzzznnxxxxxMMxxxxMMx#########++++++++++#+#+++*iiiiii*++++++;;;;;iiii**###+######
#nMMMxxxxxxxxx#iiii*zzzzzzzzzznnxxxxxxMxxMMMn#########++++++++++++#++++iiiiii*++++++i;;;;;iii**####*#####
#zMMMxxxxxxxxxn*iiii+zzzzzzzzzznnxxxxxxMMMMx##########*++++++++++##+++#iiiiiii++++++*;;;;;iii*i+###i#####
#ixMMxxxxxxxxxx#iiii*#zzzzzzzzzznnxxxxxxMMMn##########i++++++++++##+++#*iiiiii*++++++;;;;;iii*i+###+#####
##MWMxxxxxxxxxxn*iiii*zzzzzzzzzzznnnxxxxMMM############+++++++++++#+++#+iiiiiii++++++;;;;;;ii*i*###+#####
##xMMMxxxxxxxxxx#iiiii+zzzzzzzzzzzznnxxMMMx############+++++++++++#+++##iiiiiii++++++i;;;;;ii*i*####*####
##nMMMxxxxxxxxxxn*iiiii#zzzzzzzzzzzznnxMMM#############*++++++++++#+++#+*iiiiii*+++++*;;;;;ii*ii+###i####
###MMMMxxxxxxxxxxziiiiii#zzzzzzzzzzzznMMMx#############+++++++++++#+++#++iiiiii*++++++;;;;;ii*i*+###*####
###xMMMxxxxxxxxxxn+iiiii*#zzzzzzzzzzznMMM##############+++++++++++++++#++iiiiiii++++++;;;;;;i*i**###+####
###;nMMxxxxxxxxxxxn*iiiii*#zzzzzzzzzzMMMx###############+++++++++++#++#+#iiiiiii++++++i;;;;;i*i**########
#####MMMxxxxxxxxxxxziiiiii*#zzzzzzzzxMMx################*++++++++++#++#+#*iiiiii*+++++*;;;;;i*i**########
####;nMMMxxxxxxxxxxx+iiiiii*#zzzzzznMMMn################*++++++++++#++#+#+iiiiii*+++++*;;;;;i*i*i+#######
#####+xMMxxxxxxxxxxxn*iiiiii*#zzzzzxMMx#################*+++++++++++++#+#+iiiiiii++++++;;;;;iii*i+#######
######nMMMxxxxxxxxxxxn*iiiiii*#zzznMMM###################+++++++++++++#+#+iiiiiii++++++;;;;;;ii*i*#######
#######xMMMxxxxxxxxxxxziiiiiiii+znMMMx###################+++++++++++++#+##*iiiiii++++++i;;;;;*i*i*#######
########MMMxxxxxxxxxxxx#iiiiiiii+xMMx####################+++++++++++#+#+##*iiiiii++++++i;;;;;ii*i*#######
#######:zMMMxxxxxxxxxxxn#iiiiiiizMMxn####################*++++++++++#+#+#++iiiiii*+++++*;;;;;ii*i*#######
########+xMMMxxxxxxxxxxxn#iiiii+MMMn#####################*++++++++++#+#+#++iiiiii*+++++*;;;;;iiii*#######
#########zMWMMxxxxxxxxxxxn+iii*xMMx######################*++++++++++##+##++iiiiii*+++++*;;;;;iiii*+######
##########nMMMMxxxxxxxxxxxn#iizMMx#######################################################################
###########xMMMMxxxxxxxxxxxn##MMMn#######################################################################
############xMMMMxxxxxxxxxxxxMMMn########################################################################
#############nMMMMxxxxxxxxxxMMMx#########################################################################
##############nxMMMMxxxxxxxMMMx##########################################################################
###############zxMMMMxxxxxxMMxz##########################################################################
################zxMMMMMxxxMMxz###########################################################################
##################nxMMMMMMMMn############################################################################
####################nMMWWMMx#############################################################################
#####################znxMMx+#############################################################################
#######################zxxn##############################################################################