####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
###############################################@@@@@@@@@############################################
#########################################&@@@@@@@@@@@@@@@@@@@@######################################
#####################################&@@@@@@@@@@@@@@@@@@@@@@@@@@@###################################
###################################@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###################################
#################################@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################################
###############################@@@@@@@@@@@@@@@@@@@@#@@)@@@@@@@@@@@@@@@##############################
##############################)@@@@@@@@@@@@@@@@@@( @@/  @@@@@@@@@@@@@@@@############################
##############################@@@@@@@@@@@@@@@@@  /@@*    @@@@@@@@@@@@@@@@###########################
##############################@@@@@@@@@@@@@@/   @@@       @@@@@@@@@@@@@@@###########################
###############################@@@@@@@@@  @@@,@@@ ,.@@@@    #@@@@@@@@@@@############################
###############################@@@@@@@@ / @@@@@   @ @@@@    .@@@@@@@@@@#############################
###############################@@@@@@@@@    /@.           ),@@@@@@@@@@##############################
###############################@@@@@@@@@@   @            )@@@@@@@@@@################################
##############################@@@@@@@&&@@##             @@) @@@@#)##################################
###############################@@##@@@##########)/../##@##@&########################################
###############################)&#############.   @ ###(      ,#####################################
#############################################*  @@              ####################################
#############################################  @@               ####################################
#############################################(@@@@@@...(@@@@@@@@####################################
#############################################@@@@@@@@@@@@@.     ####################################
############################################@@@@@@@@@@@@@@.     ####################################
#######################################&@@@@@@@@@@@@@@@@@)      ####################################
##################################@@@@@@@@@@@@@@@@@@@@@@@#     .####################################
##############################@@@@@@@@@@@@@@@@@@@@@@@@@@@(     #####################################
#############################@@@@@@@@.@@@@@@@@@@@@@@@@@@*      #####################################
##############################@@@@@&##/ @@@@@@@@@@@@@@@      *######################################
###############################@@@   )###)@@@@@@@@@@@@      )#######################################
#################################     ,####&@@@@@@@@@     /@@&######################################
################################        ####*.@@@@@@     @@@@@######################################
###############################,                .@@@      @@########################################
###############################                           ##########################################
##############################                       /       #######################################
#############################          .#            #, #). /#######################################
#############################         ###           ####(*##########################################
#############################       .####          (################################################
##############################       (###         .#################################################
##############################(       ###         ##################################################
###############################.       ###        ##################################################
################################      .####.        ################################################
#################################     .######        .##############################################
#################################,    /#######        (#############################################
##################################       ######        #############################################
##################################       #######(      #############################################
##################################/    ,##########     .############################################
###################################   .###########,      ###########################################
###################################   #############       ##########################################
###################################  ##############       ##########################################
###################################################*      ##########################################
####################################################     .##########################################
#################################################### (, *###########################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################