################################################################################################################################################################################################################################################################
################################################################################################################################################################################################################################################################
################################################################################################################################################################################################################################################################
################################################################################################################################################################################################################################################################
################################################################################################################################################################################################################################################################
################################################################################################################################################################################################################################################################
################################################################################################################################################################################################################################################################
################################################################################################################################################################################################################################################################
################################################################################################################################################################################################################################################################
################################################################################################################################################################################################################################################################
################################################################################################################################################################################################################################################################
################################################################################################################################################################################################################################################################
################################################################################################################################################################################################################################################################
################################################################################################################################################################################################################################################################
################################################################################################################################################################################################################################################################
################################################################################################################################################################################################################################################################
#############################################################################################################################################################################################################################################################+##
################################################################################################################################################################################################################################################################
################################################################################################################################################################################################################################################################
################################################################################################################################################################################################################################################################
################################################################################################################################################################################################################################################################
########################################################################################################################################################################+-+#################################################+################################+##
#################################################################################################################################################################+######.. .#####################################################################++#+######++
##################################################################################################################################################+#################- #######################################################################----+.-#
#########################################################################################################################################+#########################. .##############################################################################
###################################################################################.. ..######################################################################+. ##############################################+#+###########+#################
#################################################################################. .#############################################################+#########+. ########################################################################++####
###############################################################################. .#######################################################################-. .#########################################+####################################
############################################################################### .+######################################################################### #########################################+#########################++-##+-#####
###############################################################################. # -..########################################################################## -###################################+#+--+#--######++.+#####################+##
###############################################################################. .########################################################################## ############################################################-#################
###############################################################################. .####################################################################. .###################################+#################################+#
############################################################################### . .###################################################################. ####################################################++##+######+######
##############################################################################. .... .....+..####################################################+#####+++. ##########+++######################+#####+############.-#+####+######
######################################################################### ............... ... --.###################################################### ########################+###+-+#++#+####+########################+
######################################################################## ....................... .-################################################## ######+#####++####################++###############+-+########+..
####################################################################.. ... .................... .... ...########################################## ############+#+#####+#+..#######---...-+##---#++##########++-
###################################################################... ...................................######################################## +### ## -##################++###############++-++##########+--++--..
................ #
................. #
####+############################# ##### ########################## .#######........ .........###############################+#### ###################### -.## .. ++#############+#+.#..-+###+###+# ################################
################################## ##### ########################## #+#######....... ...... .####################################- ######################### . #. #. ..###################..-#######-##### ###-.-+#####+-####+++ --+. ..--
###+############################## ########################### ##########...... ...... ################################# ##########################. . ## # . ###################+-+#++..-#+ +###################- -#######-#
####################+#############.##### ##################################+### ..... ......#####################-+################ ########################+######+ ########+#.#+#+###..+###+-.-##+#+# ##### #########+#++#######-+####+--..#
##################################-##### #################+###################-.. . ####################################### #############---.-----##+####### ################################## ##### ..--#+-###-#++++-+++-+-#+###+-++
##################################-##### ###############+#################### ###################################### ################################ ####################++----+++-.-- ##+#- +.-##-+##++.-#+#########-.-+####
########.+########### ############-##### ############+######-############ ## ############ ############-###-#+##### ######.##########+-####### ### -.#.## #######+.... --...--..### -###- -####+###### ###-+######+ ..+ .
#+######.############.############-##### ######+############-############ # #######-### #####+######.###########.######-############+##+++# #+ .- -###+..-++#+ +++######+-+ ####+ +####+####++ ###-#-###+#+ ++#+#+
########.############.############.##### ###################-############ # +########## ####-####### +########## ######+#####-.###########+ ## . +## ##### ##### ##### +++## ##### .#+++ ##### ##### #-. .#+++#
#+###### ############.############.##-## ###################-###########+ ###+###### ############.########### ###### #+####+############ ## ++#- ++-+# ###.+ #+++# .--- +.#+. +#### ##### #++. .-+-+ ..--.
#. .-+++.#####+######.############.##+## -###########+######-########## +######### ############.###+--+#### ######.####-###+#.. . #### #+++- ####. .#.#. --#+# ##### +#### ##+- ###+# ##+-+ -##+-
#+++-+## ############ ############.##### #########+######### ######## .######### ############.#####+##### ###+.- .###+- ##### -###+# #+- -+##+ --+#. ++-+# -+### +###- ##-.. ..##+ -+.-+ ##.# ..-##
######+# ###########+.+##.###++--#-###+# ########..+-#######.###### ######### +###########.######+#### #-.-#- -#### ##++# - +- +++ #### +###+ ###- -+- ++#-- . .-# +#### #+### ###+. +++++ .#+--
#+####-+ ############ ######-#####.##### ##########++-###### #++-# +#######- ####++##+### ###-..#-###.##+### ##### +#+## ##### #+.# ###+. ####. -+-++ ##### -##+- --+#+ ---+# .####+ #++## -.-.. ...--
######## ######--#+#+ ++#########+ +-+## +###+###########+#+ +##+ . ######### ##+## ##### +####--+###.##.-## #### ##+## +###. -.+- +-##. ##### #####- .-.--+-##### #+### -.+## #-###+ .+###+##....
##-+#### #####+-+-.-# ####++-#####.##### +######--####-###-#.###-- ... - +###+- ##### ##+#. .+#+...#--- .--+## .#### ##### ###-# ###+ - -..- .-+#+++#++## ##########++ .#- . . . .- -...-.. . .
#.###### ##++######## #####+ #---- -.-## +-+######### +###+# #+###-- .... ### ##++ ##### ##### -#++#-+###+ ###### +#### ##### .####+ ##.+ . -+#+-.##+-..--..-- +##+##-###+# #+--- +##+.. --.-..-+++++ ----.-
# +#### ##### #+### ##### ##++#.#-+## .-+#+ +##- ##++#+ ##### .### ....... #+# #--- ###++ #.-+# .########## ####.# ###### #++-- ###### #+.- .# .###- ##+--####### .-##+##-+-.. .--.. .-..... ...-...##+.- --####