@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########@#################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#######@@#################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@############################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########@###################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########@###################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##############################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##############################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@######@#######################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@######@#######################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##############################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####################################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####################################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####################################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####################################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########@@############################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########################################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########@@###############W+++z@#########################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#######################@#;:;nz.##########################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@######@@############@n:,nMW##n,#W@######################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@##################Wnn;#@######n;ix######################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###############@###@#+*+@##########@+++#####z@#############################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#################@#izx@#############@zzzzzzzzin############################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#############@@n:#,::n#####################@#,:M##########################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#############Mn;#M:W@@######################@@*iM#########################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################M:*@M:i@###########################M:M########################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##############@M:*WM: ;+@##########################@*+########################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###############@i*xWM,..zM############################n+@#######################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###############M:W#M,*@@###############################+#@######################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#################i*@#i*@#n#@#############################n,#@#####################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################@iM@n,;ii,#@##############################n,######################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########@########@##M;+MMMMM@################################n;@####################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########@#######@z::iW@######################################W,+####################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########@########@z#@#################################@n@#######M+W###################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########@#######@#,@##################################@,#########+n###################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@######@@#######@#.n@###############################W;:xni########W*M##################################################
@@@@@@@@@@@@@@@@@@@@@@##@@@@@@#################n.n@################################@@#zMi#########*:@#################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################@*+#################################x@##;*i#########@:n##################@zzzzn#########################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###############@*,x################################@;+@#z,+x########@#;##################W,##..z########################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@###############@#:,M##################################M,*@@;z#@########W.#################@*M##Mz*@#######################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@##############@z.nW####################################M,#@;@*z@########n+@###############@;@###M,z#######################
@@@@@@@@@@@@@@@@@@#@@@@@@@###############@z.z#######################################ziM;@z,W#########+*@##############@;@####zz#######################
@@@@@@@@@@@@@@@@@@#@@@@@@@##############n*+n########################################M:n;@#n#@########x,*@#############n#@####z;W######################
@@@@@@@@@@@@@@@@@@@@@@@@@@#######@##@#@x,+@##########################################+:n##@,+@########M,*@############*M#####W;x@#####################
@@@@@@@@@@@@@@@@@@@@@@##@@##########Wx:*W@###########################################@*x###x,+@########M,+###########@iM###@n,z*:MW###################
@@@@@@@@@@@@@@@@@@@@@@@@######@@##@z+i*@##########@zzzzzzW############################@;@###x,+@########M+z@##########:W###@,z#@*i+zn#################
@@@@@@@@@@@@@@@@@@@@##@@##########i:x###########n**#####;;W###########################@,#####x,+@########x:*@#####@#*:z####+:@####x+,*x###############
@@@@@@@@@@@@@@@@@@@@@@######@#@@#.nM#@#######@@x,+x@####Wn*@###########################n.n####x,:z########M:@#####+,nxW###+.########xx+;@#############
@@@@@@@@@@@@@@@@@@@@@@#######@Mz,n@##@#####@M;.*W@#######@,:W###########################n#@####@n.z@######@;;W####iz######ixM.z#######@;W#############
@@@@@@@@@@@@@@@@@@@#########@n.#@@#######@n+,.i@#########@i`*############################*+@#####n,z#######W;;W####,@#####iM##z########;@#############
@@@@@@@@@@@@@@@@@@@#########n+z@########n*.+++@###########@**############################x:W######n:@#######W;;W##@;@####M+W#zz########;@#############
@@@@@@@@@@@@@@@@@@@@######@n+W#####@@@W;,+xx,n#############x,n############################x*@#####@n+@#######W;:+@@;@####zz##z,M#@@#M;n;@#############
@@@@@@@@@@@@@@@@@@@@#####@x+@@###@WW*,, *@#n*@#############@#,M###########################@:i@#####@n#@#######@M::z:@####zz##z.MM,z@@#`.@#############
@@@@@@@@@@@@@@@@@########n:@####Mz.;;MM.z##n+################iM############################W:+#######++@########@@#innW##zz#@*#@#i*x@*,i@#############
@@@@@@@@@@@@@@@@@#######@:#@###M:i#@#@+i@##n+################iM######n++++++++++++++++W#####M+M######x:W###########@#;z##zz#x:MW:n*ii:M###############
@@@@@@@@@@@@@@##########@;W##@M:iW###W:x###n+#########@xM@@##iM####Mi,#nnnnnnnnnnnnnni:W#####M**@#####x*@############WW##zz#M,i;:@MnnM################
@@@@@@@@@@@@############@;W##@,i@###WiM####n+#########xnnW###iM###MiWW@##############@i:W#####W:;@####@iW################zz#@WWWW#####################
@@@@@@@@@@@@@@##########@;W##@,x####*;W####n+########@xnxx@##iM##@:+##################@i:M#####W:;W####W+M###############zz###########################
@@@@@@@@@@##@@##########@z#@#@*i####*n#####n+########@xMWM@##iM##n:@###################@i#######M;iW####n:M##############zz###########################
@@@@@@@@@@###############W;@##Mi####*n@#@+in+##@@@####W#@#@##i;@n,z#####################n,M######W:i@###@iz##############zz###########################
@@@@@@@@#################W,*##Mi####+,:M+,xn+#@WnW##@########W:W##@#####################@*,M######W:*W@###,M############M,n###########################
@@@@@@@@@@################Mi##W*M####@i;;x#niW@nxx@######@@W#@++*#########################*,x#######x,+@###n@##########@#i############################
@@@@@@@@@@################Mi###z###########M:n@W@########@Mx##W,n#########################@+,x#######x,*+x@:z###########.n############################
@@@@@@@@@@####@@@#########Mi###z#############n##@########@xx##W;@##########################@n+iW######xn+,xn;@########@;n#############################
@@@@@@@@@@################Mi###z############@*:@########@@x@##W;@############################W;:W@######@+n@n+@#####@W*x##############################
@@@@@@@@##################Mi###z#############W:x@#######@xn@##n;@#############################@i:+########n#M,+@####x`,M##############################
@@@@@@####################M,x##z#############@+;@WMW@###Mnn@#@:#################################n+########n##x:+@###x:M###############################
@@@@@@@@####@@############@*###z##############@#zxnnxxxxnnM##@;W################################n+######M,n###M,+###x*################################
@@@@##@@###################n#@#z###############n,zWnnnnnnn@#@*x#################################n+#####@n+@####M,::::+################################
@@@@#######################@*#@z###############@z.zWxxnnnW@##:M#################################n+#####n;@######@@@@@@################################
@@@@########################n,Wz;W##############@z,z@@MMW@#W+M##################################n+####@:z#############################################
########@@###################;WW;;@##############@z.z@####W;*###################################n+####@;@#############################################
#######################@WWW##;W#W;W###############@z.z####W;W###################################n+####@;@#############################################
######@@##############@*,;,xW;W##;W#################z.z@##W;####################################n+####M*@#############################################
######################x,x@+;;,W##;W##################z,z#@#;####################################n+####iM##############################################
###################xii;*#@@Mz:W##;W###################z;@@:n####################################n+####iW##############################################
##################M,+Mzi+:::#;M##;W###################W,::x#####################################n+####iW##############################################
##################xi@@z,,M@n. ,M#;W####################@@@#####################################Mi@####iM##############################################
#################z*i#z,;###@n*ii#;W############################################################Mi####x:W##############################################
#################.*iz.`:W#####Mi#;W############################################################Mi####++@##############################################
###############@inni*zMW######xi@;W############################################################Mi###@+n###############################################
@@##############,#.i*x#######x,++:@############################################################Mi###n,x###############################################
################z::::x#######:.#+M#############################################################Mi###n+################################################
################z;n`iW#######nzzM##############################################################Mi##W;+################################################
################.nx.###########################################################################Mi##M;W################################################
################ M@@@##########################################################################Mi##Mi#################################################
################ M############################################################################@#;#@zz#################################################
###############M#W############################################################################@:n#@;@#################################################
##############################################################################################W;@#@;@#################################################
#############################################################################################WiM##@;@#################################################
###########################################################################################@z;;W##@+zzW###############################################
##########################################################################################@*:#W####@#;i@##############################################
##########################################################################################;nM########W;;@#############################################
#######################################################################################Wz,n#@M@#######W:M#############################################
######################################################################################@:in@n*:#@WM@x##@*;@############################################
######################################################################################@;@n*`,+,x;+@:*n#Wi#############################################
######################################################################################@:;#n:#,`n`,n,`,xWi#############################################
#######################################################################################@@@;;#+ix;+nM;#,zi#############################################
##########################################################################################;ni+nMi+*Mi@#i##############################################
##########################################################################################;*n+nMix:ni#################################################
##########################################################################################;,@+nMi#ini#################################################
##########################################################################################W*@+nMi#*iW#################################################
#############################################################################################++Mi##@##################################################
#############################################################################################x:ni#####################################################
##############################################################################################xii#####################################################
###############################################################################################WW#####################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################