#@####################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
#################################################################@####################################################################
#################################################################+#@##################################################################
################################+##############################+@;;@''###############################+################################
##############################################################++'':@:+;++#############################################################
###############################@#+@########################+#'':#;#'@'@;+'#+######################'###################################
###################################;''####################+#;@++@;@:@:#'+#;#+###################'';###################################
##################################'+;+++#################'';::,+,#:@,+,;:::''+################+++;+'##################################
##################################'++':,.###############@'#@:#:;;'#++;:+:@:@#'@##############,,;'#+'##################################
####################################+;;::,'#########@#+'';':#'#';'#++;;##;':;;+++##########',::';#####################################
#####################################;';;'+'########@@'@#'#;'+#:::.+..+;#;';#;##'@@#######'+'''';#####################################
######################################'++;:,+#########'';#,+,,.+..+.;,`+``:+;+;''########+,;'+''@@####################################
#######################################;';'':,######@+@+`.;+,,+.+,.+..+..':;.,.@#+@#####,:'';;;#######################################
#########################################''';###;;#++,;.+..,+..+,.+:,;,':.+..,+.,'###'###''''#@@######################################
###########################################'###'+#@#,',;.#,:.#.,#.:+.,#..+..'+..;#:@##'###'+@@@#######################################
#######################################@######'+++;,++.::+,,+,,''.;+,;+,+:;',;.+,';:'#+'##@#@@########################################
##########################################@@##''+@+,.,+..;#.,#.;+:+;,+',;#,.+.:,+.:,###'###@@@########################################
#################################+########@###+++;'+.,.#.',;'',,#,,#,,#.'',+.,:+..;#;'++###@@@########################################
##########################################@###+##;'.#,+:,.+.,+:',;+.:#,:+',,+.;:;'#,;'#+##@@@#########################################
##########################################@@#@'#'+,#',.#,+,:;+,.+.,+,,+,,#,+,:'+,.+';#'+##@@@#########################################
##########################################@@###+#;:,#,+;,.+.+,,+,,+;:':'+:;:+,,';+#,:+#+@@@@##########################################
##########################################@@@##+;+,+;:,:,+:;:';:',''::#:,#,:;+:+:,++;#'+@@@@##########################################
##########################################@@@@#+#:+,,,+,+,,;+:;+;:,+,,++::+,,,+:+,;:;'#+@@@@##########################################
##########################################@@@@@#';'+;#,+,:'+:''+:,+,+::#;::#:;,':+:#:''#@@@@##########################################
###########################################@@@@#+#+++:'::+'++;';;+++';::+;+;#+;;':+'###@@@@###########################################
###########################################@@@@@@++;';;;';#+;'+#;#;#;#;#'';+#'+;';''++#@@@#@##########################################
###########################################@@@@@#+#+++'++++#+++++++#+++++++#'+++++++##@@@#############################################
#############################################@@#####+###############+####+########+###+@@@############################################
#############################+##############+#+#+######+###++'++++++++''+'+############+##############################################
##################################+++#.,:+:;+#++#+###++++++++''''++++'';'++#+#######++++#+;#':;+######################################
################################+++;+;;;'''++##++++++++++++++;''';;;;;;:;'+'++++++++++++##';:';,'+''##################################
#################################++'++''++'++##''+#+;;'',:::+;;;;::::::::'+++'++++++++++#+'';;'';,++####+#############################
##############################@@#@+'+#####@######+',:;;;,.,::';;:;::,:::+;;':;'+';+##+'#####';''#+'+#++++#############################
#############################################+##'',,:;;;.``;`:'`       +,:;,.,;'';:'+######@@#########################################
##############################################++;,,;';;, ```:`:,`   ``;;,;,....:;;;:''#+##############################################
###############################################;;.:;:,``.` ``..'.`  `.':,:.``....:;::'+###############################################
##############################################+;,::,.``,``, . ..,````;:,,``.```..,:',;'###############################################
##############################################;:,;,.``.``, ;`; ;####++,`.`.``` ``.,;:,;+##############################################
#############################################+;,:;,.```..`;`+`+;'+@##@`'`;`,```` ``,:::'##############################################
#############################################':::.`  `` .,`+.+,+''##'';.'`:``` ````.:','##############################################
#############################################',;;.```  .`,,::'.'+#+#@;'',;..` ``  ``.;:;+#############################################
############################################+;::.``  `` .`;.#.'''#'+#,;+,;,.``  ``` `,;:'#############################################
############################################+:;:````` ```;`#.#';'':;+,;`#`;`.  ```....::'#############################################
############################################':;```` .` `.`;,''''+:.,;+#;.+`, `` `,``  ,;;+############################################
###########################################+;::``... `` `.:,#.+#;.`.,'#',;,````.,`,:,..;:+############################################
###########################################+:;....`,:````:`#.;+':.``,;+'#`:`` `,`;;.```::'############################################
###########################################+:;.`.;;`., ```;,;;#;,```.:'+:'`,``.`;:.;';,.;;############################################
###########################################';,`.,.:+.,.```:.#;+:.```.:;#.'.``.`;,,+',,`.;;+###########################################
###########################################;;:,;++,,+`,``.`':';:.```.,;+;`:```.;,#:,'+;,:;+###########################################
##########################################+;;,.,,;+::;`,`..;.+:,.```.,:;;,.`.`'.#::#';:::;+###########################################
##########################################+;:.;';.;#.'.,``,.;+:,.````.:;';`.`,.';:#:,;;,.''###########################################
#######################################+##+;;,;;++:;+.+`,`..'+:,.````.:;+...`;.#,#:,'++',;'###########################################
######################################++##+;;.,,;++,#:;,..`,';:,.````.,;+..`,.+:+',+':::,''+##+#######################################
#####################################++@##+'::++;,++,@.'`,`,+;:,.````.,:';.`;,+:#,';,:';.''+###+######################################
#####################################+++##'';;'++;:#;+';,,`,+;:..````.,:;'..,+,#;'+.:+#+;;'+###++#####################################
#####################################+'+@#'';,:;+#;'#,#.'..;+;:..````.,:;+.;.+:#:+,:+'';:''+@+++######################################
####################################'#+@##'';,;;;'+:#;+:;,,'+;,..```..,:;+.:';#;+','';;:,''+@#'#######################################
###################################''+####+';;'+;;#';#:#,'.+';,...`...,:;#:.#,#:#,'';;'',''+@##+'+####################################
##################################+++###@#+'+''++;'#;#;+:',+';,.......,:;+;:;+;'':+;;+#';''+@###+++###################################
##################################+:###@#++'+;;+#+;++'#:+:;#';,,......,:;+'#,@;#:'';+#+;''++#@###:+###################################
##################################++##@###+'+;,;+#''#;#;#:;#;:,,......,:;'+''++';+;'#+':'+++@#@###+###################################
###################################+#####+++'':;'++;+''+;''#;:,,.....,,:;'+:#;#:+''#+';:'+++#####++###################################
##################################++#####+++''';;'#''#;#;+'#;:,,.,.,,,,:;'#;+'+;#;+#';;;''++#####+####################################
##################################+##+#++'++''+';;'+;+''+;+#;:,,,,,,,,,:;'#';+;+''#''''''+++++###++###################################
###################################+#++#+@++''++';'++'#;#;##;:,,,,,,,,,:;'#;'+;+'++'''++'+++##++#+####################################
#####################################'+@@@++'+++'';'+;+'''#+;:,,,,,,,,::;'#'+;+''+';''++'++#@#'''#####################################
################################++###@@@@@++'+'++';;'';+;;#+;:,,,,,,,::;;'#++'+;+';''++'+++@@@@@###++#################################
###############################''+;@@@@@@@#+++'''+';;';'';#+;;:,,:::::::;'##;+''+;''''''+++@@@@@@@;+++################################
##############################+'':@@@@@@@##+++'''''';;';+'#+';:::::::::;;'##;+;+';'''''++++@@@@@@@@;'''###############################
#############################+++;'@@@@#####+++'''''+':';'+#+';:::::::::;;'##;;'';'''''''+++####@@@@':'++##############################
#############################''':+@@########++''+''''';';##+';:::::::::;;'##;'';;''''''+++#######@@#:''+##############################
############################''',;###########+++'++';'+;;;##+';:::::,,::;;'##'';;''''++'+++#######@@@':'++#############################
###########################;+',:#############++'++++'''';##+;;;:::,,,::;;'##+;;''''++++++############::'#;############################
###########################+'++##############'+++++++''';##+;;;:::,,,::;;;##+''''+++++++'#############+#;+############################
###########################+++################'+++'''''';##+;:::::,,,::;;;+##'''''''+++'###############''#############################
###########################+@##################''+++++'''##+::::::::::::::+##''''++'++'@################@##@##########################
###########################@#####################''+++++'##+::::;::::::::'+##''+++++'+@@##############################################
###################################################''''+'##+'::,,:::,,,,:++##'+++'''@@###################@############################
##################################################@@''++'#+++,,,,,,,,,.,:++#@''++'@@@#################################################
####################################################@@@@#@@@#+,,,,,,,,,,+@@@@++##@@###################################################
######################################################@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###################################################
#######################################################@@##@@#@@@@@@@@@@@@@@@@@@@@####################################################
##########################################################@##########@@##@##@@@#######################################################
########################################################################@#@###########################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
######################################################################################################################################
##################################################################################################################################@#@#